/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: google/api/client.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./launch_stage";
import * as dependency_2 from "./../protobuf/descriptor";
import * as dependency_3 from "./../protobuf/duration";
import * as pb_1 from "google-protobuf";
export enum ClientLibraryOrganization {
    CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0,
    CLOUD = 1,
    ADS = 2,
    PHOTOS = 3,
    STREET_VIEW = 4,
    SHOPPING = 5,
    GEO = 6,
    GENERATIVE_AI = 7
}
export enum ClientLibraryDestination {
    CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0,
    GITHUB = 10,
    PACKAGE_MANAGER = 20
}
export class CommonLanguageSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        /** @deprecated*/
        reference_docs_uri?: string;
        destinations?: ClientLibraryDestination[];
        selective_gapic_generation?: SelectiveGapicGeneration;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("reference_docs_uri" in data && data.reference_docs_uri != undefined) {
                this.reference_docs_uri = data.reference_docs_uri;
            }
            if ("destinations" in data && data.destinations != undefined) {
                this.destinations = data.destinations;
            }
            if ("selective_gapic_generation" in data && data.selective_gapic_generation != undefined) {
                this.selective_gapic_generation = data.selective_gapic_generation;
            }
        }
    }
    /** @deprecated*/
    get reference_docs_uri() {
        return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
    }
    /** @deprecated*/
    set reference_docs_uri(value: string) {
        pb_1.Message.setField(this, 1, value);
    }
    get destinations() {
        return pb_1.Message.getFieldWithDefault(this, 2, []) as ClientLibraryDestination[];
    }
    set destinations(value: ClientLibraryDestination[]) {
        pb_1.Message.setField(this, 2, value);
    }
    get selective_gapic_generation() {
        return pb_1.Message.getWrapperField(this, SelectiveGapicGeneration, 3) as SelectiveGapicGeneration;
    }
    set selective_gapic_generation(value: SelectiveGapicGeneration) {
        pb_1.Message.setWrapperField(this, 3, value);
    }
    get has_selective_gapic_generation() {
        return pb_1.Message.getField(this, 3) != null;
    }
    static fromObject(data: {
        reference_docs_uri?: string;
        destinations?: ClientLibraryDestination[];
        selective_gapic_generation?: ReturnType<typeof SelectiveGapicGeneration.prototype.toObject>;
    }): CommonLanguageSettings {
        const message = new CommonLanguageSettings({});
        if (data.reference_docs_uri != null) {
            message.reference_docs_uri = data.reference_docs_uri;
        }
        if (data.destinations != null) {
            message.destinations = data.destinations;
        }
        if (data.selective_gapic_generation != null) {
            message.selective_gapic_generation = SelectiveGapicGeneration.fromObject(data.selective_gapic_generation);
        }
        return message;
    }
    toObject() {
        const data: {
            reference_docs_uri?: string;
            destinations?: ClientLibraryDestination[];
            selective_gapic_generation?: ReturnType<typeof SelectiveGapicGeneration.prototype.toObject>;
        } = {};
        if (this.reference_docs_uri != null) {
            data.reference_docs_uri = this.reference_docs_uri;
        }
        if (this.destinations != null) {
            data.destinations = this.destinations;
        }
        if (this.selective_gapic_generation != null) {
            data.selective_gapic_generation = this.selective_gapic_generation.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.reference_docs_uri.length)
            writer.writeString(1, this.reference_docs_uri);
        if (this.destinations.length)
            writer.writePackedEnum(2, this.destinations);
        if (this.has_selective_gapic_generation)
            writer.writeMessage(3, this.selective_gapic_generation, () => this.selective_gapic_generation.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CommonLanguageSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new CommonLanguageSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    message.reference_docs_uri = reader.readString();
                    break;
                case 2:
                    message.destinations = reader.readPackedEnum();
                    break;
                case 3:
                    reader.readMessage(message.selective_gapic_generation, () => message.selective_gapic_generation = SelectiveGapicGeneration.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): CommonLanguageSettings {
        return CommonLanguageSettings.deserialize(bytes);
    }
}
export class ClientLibrarySettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        version?: string;
        launch_stage?: dependency_1.LaunchStage;
        rest_numeric_enums?: boolean;
        java_settings?: JavaSettings;
        cpp_settings?: CppSettings;
        php_settings?: PhpSettings;
        python_settings?: PythonSettings;
        node_settings?: NodeSettings;
        dotnet_settings?: DotnetSettings;
        ruby_settings?: RubySettings;
        go_settings?: GoSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("version" in data && data.version != undefined) {
                this.version = data.version;
            }
            if ("launch_stage" in data && data.launch_stage != undefined) {
                this.launch_stage = data.launch_stage;
            }
            if ("rest_numeric_enums" in data && data.rest_numeric_enums != undefined) {
                this.rest_numeric_enums = data.rest_numeric_enums;
            }
            if ("java_settings" in data && data.java_settings != undefined) {
                this.java_settings = data.java_settings;
            }
            if ("cpp_settings" in data && data.cpp_settings != undefined) {
                this.cpp_settings = data.cpp_settings;
            }
            if ("php_settings" in data && data.php_settings != undefined) {
                this.php_settings = data.php_settings;
            }
            if ("python_settings" in data && data.python_settings != undefined) {
                this.python_settings = data.python_settings;
            }
            if ("node_settings" in data && data.node_settings != undefined) {
                this.node_settings = data.node_settings;
            }
            if ("dotnet_settings" in data && data.dotnet_settings != undefined) {
                this.dotnet_settings = data.dotnet_settings;
            }
            if ("ruby_settings" in data && data.ruby_settings != undefined) {
                this.ruby_settings = data.ruby_settings;
            }
            if ("go_settings" in data && data.go_settings != undefined) {
                this.go_settings = data.go_settings;
            }
        }
    }
    get version() {
        return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
    }
    set version(value: string) {
        pb_1.Message.setField(this, 1, value);
    }
    get launch_stage() {
        return pb_1.Message.getFieldWithDefault(this, 2, dependency_1.LaunchStage.LAUNCH_STAGE_UNSPECIFIED) as dependency_1.LaunchStage;
    }
    set launch_stage(value: dependency_1.LaunchStage) {
        pb_1.Message.setField(this, 2, value);
    }
    get rest_numeric_enums() {
        return pb_1.Message.getFieldWithDefault(this, 3, false) as boolean;
    }
    set rest_numeric_enums(value: boolean) {
        pb_1.Message.setField(this, 3, value);
    }
    get java_settings() {
        return pb_1.Message.getWrapperField(this, JavaSettings, 21) as JavaSettings;
    }
    set java_settings(value: JavaSettings) {
        pb_1.Message.setWrapperField(this, 21, value);
    }
    get has_java_settings() {
        return pb_1.Message.getField(this, 21) != null;
    }
    get cpp_settings() {
        return pb_1.Message.getWrapperField(this, CppSettings, 22) as CppSettings;
    }
    set cpp_settings(value: CppSettings) {
        pb_1.Message.setWrapperField(this, 22, value);
    }
    get has_cpp_settings() {
        return pb_1.Message.getField(this, 22) != null;
    }
    get php_settings() {
        return pb_1.Message.getWrapperField(this, PhpSettings, 23) as PhpSettings;
    }
    set php_settings(value: PhpSettings) {
        pb_1.Message.setWrapperField(this, 23, value);
    }
    get has_php_settings() {
        return pb_1.Message.getField(this, 23) != null;
    }
    get python_settings() {
        return pb_1.Message.getWrapperField(this, PythonSettings, 24) as PythonSettings;
    }
    set python_settings(value: PythonSettings) {
        pb_1.Message.setWrapperField(this, 24, value);
    }
    get has_python_settings() {
        return pb_1.Message.getField(this, 24) != null;
    }
    get node_settings() {
        return pb_1.Message.getWrapperField(this, NodeSettings, 25) as NodeSettings;
    }
    set node_settings(value: NodeSettings) {
        pb_1.Message.setWrapperField(this, 25, value);
    }
    get has_node_settings() {
        return pb_1.Message.getField(this, 25) != null;
    }
    get dotnet_settings() {
        return pb_1.Message.getWrapperField(this, DotnetSettings, 26) as DotnetSettings;
    }
    set dotnet_settings(value: DotnetSettings) {
        pb_1.Message.setWrapperField(this, 26, value);
    }
    get has_dotnet_settings() {
        return pb_1.Message.getField(this, 26) != null;
    }
    get ruby_settings() {
        return pb_1.Message.getWrapperField(this, RubySettings, 27) as RubySettings;
    }
    set ruby_settings(value: RubySettings) {
        pb_1.Message.setWrapperField(this, 27, value);
    }
    get has_ruby_settings() {
        return pb_1.Message.getField(this, 27) != null;
    }
    get go_settings() {
        return pb_1.Message.getWrapperField(this, GoSettings, 28) as GoSettings;
    }
    set go_settings(value: GoSettings) {
        pb_1.Message.setWrapperField(this, 28, value);
    }
    get has_go_settings() {
        return pb_1.Message.getField(this, 28) != null;
    }
    static fromObject(data: {
        version?: string;
        launch_stage?: dependency_1.LaunchStage;
        rest_numeric_enums?: boolean;
        java_settings?: ReturnType<typeof JavaSettings.prototype.toObject>;
        cpp_settings?: ReturnType<typeof CppSettings.prototype.toObject>;
        php_settings?: ReturnType<typeof PhpSettings.prototype.toObject>;
        python_settings?: ReturnType<typeof PythonSettings.prototype.toObject>;
        node_settings?: ReturnType<typeof NodeSettings.prototype.toObject>;
        dotnet_settings?: ReturnType<typeof DotnetSettings.prototype.toObject>;
        ruby_settings?: ReturnType<typeof RubySettings.prototype.toObject>;
        go_settings?: ReturnType<typeof GoSettings.prototype.toObject>;
    }): ClientLibrarySettings {
        const message = new ClientLibrarySettings({});
        if (data.version != null) {
            message.version = data.version;
        }
        if (data.launch_stage != null) {
            message.launch_stage = data.launch_stage;
        }
        if (data.rest_numeric_enums != null) {
            message.rest_numeric_enums = data.rest_numeric_enums;
        }
        if (data.java_settings != null) {
            message.java_settings = JavaSettings.fromObject(data.java_settings);
        }
        if (data.cpp_settings != null) {
            message.cpp_settings = CppSettings.fromObject(data.cpp_settings);
        }
        if (data.php_settings != null) {
            message.php_settings = PhpSettings.fromObject(data.php_settings);
        }
        if (data.python_settings != null) {
            message.python_settings = PythonSettings.fromObject(data.python_settings);
        }
        if (data.node_settings != null) {
            message.node_settings = NodeSettings.fromObject(data.node_settings);
        }
        if (data.dotnet_settings != null) {
            message.dotnet_settings = DotnetSettings.fromObject(data.dotnet_settings);
        }
        if (data.ruby_settings != null) {
            message.ruby_settings = RubySettings.fromObject(data.ruby_settings);
        }
        if (data.go_settings != null) {
            message.go_settings = GoSettings.fromObject(data.go_settings);
        }
        return message;
    }
    toObject() {
        const data: {
            version?: string;
            launch_stage?: dependency_1.LaunchStage;
            rest_numeric_enums?: boolean;
            java_settings?: ReturnType<typeof JavaSettings.prototype.toObject>;
            cpp_settings?: ReturnType<typeof CppSettings.prototype.toObject>;
            php_settings?: ReturnType<typeof PhpSettings.prototype.toObject>;
            python_settings?: ReturnType<typeof PythonSettings.prototype.toObject>;
            node_settings?: ReturnType<typeof NodeSettings.prototype.toObject>;
            dotnet_settings?: ReturnType<typeof DotnetSettings.prototype.toObject>;
            ruby_settings?: ReturnType<typeof RubySettings.prototype.toObject>;
            go_settings?: ReturnType<typeof GoSettings.prototype.toObject>;
        } = {};
        if (this.version != null) {
            data.version = this.version;
        }
        if (this.launch_stage != null) {
            data.launch_stage = this.launch_stage;
        }
        if (this.rest_numeric_enums != null) {
            data.rest_numeric_enums = this.rest_numeric_enums;
        }
        if (this.java_settings != null) {
            data.java_settings = this.java_settings.toObject();
        }
        if (this.cpp_settings != null) {
            data.cpp_settings = this.cpp_settings.toObject();
        }
        if (this.php_settings != null) {
            data.php_settings = this.php_settings.toObject();
        }
        if (this.python_settings != null) {
            data.python_settings = this.python_settings.toObject();
        }
        if (this.node_settings != null) {
            data.node_settings = this.node_settings.toObject();
        }
        if (this.dotnet_settings != null) {
            data.dotnet_settings = this.dotnet_settings.toObject();
        }
        if (this.ruby_settings != null) {
            data.ruby_settings = this.ruby_settings.toObject();
        }
        if (this.go_settings != null) {
            data.go_settings = this.go_settings.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.version.length)
            writer.writeString(1, this.version);
        if (this.launch_stage != dependency_1.LaunchStage.LAUNCH_STAGE_UNSPECIFIED)
            writer.writeEnum(2, this.launch_stage);
        if (this.rest_numeric_enums != false)
            writer.writeBool(3, this.rest_numeric_enums);
        if (this.has_java_settings)
            writer.writeMessage(21, this.java_settings, () => this.java_settings.serialize(writer));
        if (this.has_cpp_settings)
            writer.writeMessage(22, this.cpp_settings, () => this.cpp_settings.serialize(writer));
        if (this.has_php_settings)
            writer.writeMessage(23, this.php_settings, () => this.php_settings.serialize(writer));
        if (this.has_python_settings)
            writer.writeMessage(24, this.python_settings, () => this.python_settings.serialize(writer));
        if (this.has_node_settings)
            writer.writeMessage(25, this.node_settings, () => this.node_settings.serialize(writer));
        if (this.has_dotnet_settings)
            writer.writeMessage(26, this.dotnet_settings, () => this.dotnet_settings.serialize(writer));
        if (this.has_ruby_settings)
            writer.writeMessage(27, this.ruby_settings, () => this.ruby_settings.serialize(writer));
        if (this.has_go_settings)
            writer.writeMessage(28, this.go_settings, () => this.go_settings.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): ClientLibrarySettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new ClientLibrarySettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    message.version = reader.readString();
                    break;
                case 2:
                    message.launch_stage = reader.readEnum();
                    break;
                case 3:
                    message.rest_numeric_enums = reader.readBool();
                    break;
                case 21:
                    reader.readMessage(message.java_settings, () => message.java_settings = JavaSettings.deserialize(reader));
                    break;
                case 22:
                    reader.readMessage(message.cpp_settings, () => message.cpp_settings = CppSettings.deserialize(reader));
                    break;
                case 23:
                    reader.readMessage(message.php_settings, () => message.php_settings = PhpSettings.deserialize(reader));
                    break;
                case 24:
                    reader.readMessage(message.python_settings, () => message.python_settings = PythonSettings.deserialize(reader));
                    break;
                case 25:
                    reader.readMessage(message.node_settings, () => message.node_settings = NodeSettings.deserialize(reader));
                    break;
                case 26:
                    reader.readMessage(message.dotnet_settings, () => message.dotnet_settings = DotnetSettings.deserialize(reader));
                    break;
                case 27:
                    reader.readMessage(message.ruby_settings, () => message.ruby_settings = RubySettings.deserialize(reader));
                    break;
                case 28:
                    reader.readMessage(message.go_settings, () => message.go_settings = GoSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): ClientLibrarySettings {
        return ClientLibrarySettings.deserialize(bytes);
    }
}
export class Publishing extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        method_settings?: MethodSettings[];
        new_issue_uri?: string;
        documentation_uri?: string;
        api_short_name?: string;
        github_label?: string;
        codeowner_github_teams?: string[];
        doc_tag_prefix?: string;
        organization?: ClientLibraryOrganization;
        library_settings?: ClientLibrarySettings[];
        proto_reference_documentation_uri?: string;
        rest_reference_documentation_uri?: string;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [2, 105, 109], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("method_settings" in data && data.method_settings != undefined) {
                this.method_settings = data.method_settings;
            }
            if ("new_issue_uri" in data && data.new_issue_uri != undefined) {
                this.new_issue_uri = data.new_issue_uri;
            }
            if ("documentation_uri" in data && data.documentation_uri != undefined) {
                this.documentation_uri = data.documentation_uri;
            }
            if ("api_short_name" in data && data.api_short_name != undefined) {
                this.api_short_name = data.api_short_name;
            }
            if ("github_label" in data && data.github_label != undefined) {
                this.github_label = data.github_label;
            }
            if ("codeowner_github_teams" in data && data.codeowner_github_teams != undefined) {
                this.codeowner_github_teams = data.codeowner_github_teams;
            }
            if ("doc_tag_prefix" in data && data.doc_tag_prefix != undefined) {
                this.doc_tag_prefix = data.doc_tag_prefix;
            }
            if ("organization" in data && data.organization != undefined) {
                this.organization = data.organization;
            }
            if ("library_settings" in data && data.library_settings != undefined) {
                this.library_settings = data.library_settings;
            }
            if ("proto_reference_documentation_uri" in data && data.proto_reference_documentation_uri != undefined) {
                this.proto_reference_documentation_uri = data.proto_reference_documentation_uri;
            }
            if ("rest_reference_documentation_uri" in data && data.rest_reference_documentation_uri != undefined) {
                this.rest_reference_documentation_uri = data.rest_reference_documentation_uri;
            }
        }
    }
    get method_settings() {
        return pb_1.Message.getRepeatedWrapperField(this, MethodSettings, 2) as MethodSettings[];
    }
    set method_settings(value: MethodSettings[]) {
        pb_1.Message.setRepeatedWrapperField(this, 2, value);
    }
    get new_issue_uri() {
        return pb_1.Message.getFieldWithDefault(this, 101, "") as string;
    }
    set new_issue_uri(value: string) {
        pb_1.Message.setField(this, 101, value);
    }
    get documentation_uri() {
        return pb_1.Message.getFieldWithDefault(this, 102, "") as string;
    }
    set documentation_uri(value: string) {
        pb_1.Message.setField(this, 102, value);
    }
    get api_short_name() {
        return pb_1.Message.getFieldWithDefault(this, 103, "") as string;
    }
    set api_short_name(value: string) {
        pb_1.Message.setField(this, 103, value);
    }
    get github_label() {
        return pb_1.Message.getFieldWithDefault(this, 104, "") as string;
    }
    set github_label(value: string) {
        pb_1.Message.setField(this, 104, value);
    }
    get codeowner_github_teams() {
        return pb_1.Message.getFieldWithDefault(this, 105, []) as string[];
    }
    set codeowner_github_teams(value: string[]) {
        pb_1.Message.setField(this, 105, value);
    }
    get doc_tag_prefix() {
        return pb_1.Message.getFieldWithDefault(this, 106, "") as string;
    }
    set doc_tag_prefix(value: string) {
        pb_1.Message.setField(this, 106, value);
    }
    get organization() {
        return pb_1.Message.getFieldWithDefault(this, 107, ClientLibraryOrganization.CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED) as ClientLibraryOrganization;
    }
    set organization(value: ClientLibraryOrganization) {
        pb_1.Message.setField(this, 107, value);
    }
    get library_settings() {
        return pb_1.Message.getRepeatedWrapperField(this, ClientLibrarySettings, 109) as ClientLibrarySettings[];
    }
    set library_settings(value: ClientLibrarySettings[]) {
        pb_1.Message.setRepeatedWrapperField(this, 109, value);
    }
    get proto_reference_documentation_uri() {
        return pb_1.Message.getFieldWithDefault(this, 110, "") as string;
    }
    set proto_reference_documentation_uri(value: string) {
        pb_1.Message.setField(this, 110, value);
    }
    get rest_reference_documentation_uri() {
        return pb_1.Message.getFieldWithDefault(this, 111, "") as string;
    }
    set rest_reference_documentation_uri(value: string) {
        pb_1.Message.setField(this, 111, value);
    }
    static fromObject(data: {
        method_settings?: ReturnType<typeof MethodSettings.prototype.toObject>[];
        new_issue_uri?: string;
        documentation_uri?: string;
        api_short_name?: string;
        github_label?: string;
        codeowner_github_teams?: string[];
        doc_tag_prefix?: string;
        organization?: ClientLibraryOrganization;
        library_settings?: ReturnType<typeof ClientLibrarySettings.prototype.toObject>[];
        proto_reference_documentation_uri?: string;
        rest_reference_documentation_uri?: string;
    }): Publishing {
        const message = new Publishing({});
        if (data.method_settings != null) {
            message.method_settings = data.method_settings.map(item => MethodSettings.fromObject(item));
        }
        if (data.new_issue_uri != null) {
            message.new_issue_uri = data.new_issue_uri;
        }
        if (data.documentation_uri != null) {
            message.documentation_uri = data.documentation_uri;
        }
        if (data.api_short_name != null) {
            message.api_short_name = data.api_short_name;
        }
        if (data.github_label != null) {
            message.github_label = data.github_label;
        }
        if (data.codeowner_github_teams != null) {
            message.codeowner_github_teams = data.codeowner_github_teams;
        }
        if (data.doc_tag_prefix != null) {
            message.doc_tag_prefix = data.doc_tag_prefix;
        }
        if (data.organization != null) {
            message.organization = data.organization;
        }
        if (data.library_settings != null) {
            message.library_settings = data.library_settings.map(item => ClientLibrarySettings.fromObject(item));
        }
        if (data.proto_reference_documentation_uri != null) {
            message.proto_reference_documentation_uri = data.proto_reference_documentation_uri;
        }
        if (data.rest_reference_documentation_uri != null) {
            message.rest_reference_documentation_uri = data.rest_reference_documentation_uri;
        }
        return message;
    }
    toObject() {
        const data: {
            method_settings?: ReturnType<typeof MethodSettings.prototype.toObject>[];
            new_issue_uri?: string;
            documentation_uri?: string;
            api_short_name?: string;
            github_label?: string;
            codeowner_github_teams?: string[];
            doc_tag_prefix?: string;
            organization?: ClientLibraryOrganization;
            library_settings?: ReturnType<typeof ClientLibrarySettings.prototype.toObject>[];
            proto_reference_documentation_uri?: string;
            rest_reference_documentation_uri?: string;
        } = {};
        if (this.method_settings != null) {
            data.method_settings = this.method_settings.map((item: MethodSettings) => item.toObject());
        }
        if (this.new_issue_uri != null) {
            data.new_issue_uri = this.new_issue_uri;
        }
        if (this.documentation_uri != null) {
            data.documentation_uri = this.documentation_uri;
        }
        if (this.api_short_name != null) {
            data.api_short_name = this.api_short_name;
        }
        if (this.github_label != null) {
            data.github_label = this.github_label;
        }
        if (this.codeowner_github_teams != null) {
            data.codeowner_github_teams = this.codeowner_github_teams;
        }
        if (this.doc_tag_prefix != null) {
            data.doc_tag_prefix = this.doc_tag_prefix;
        }
        if (this.organization != null) {
            data.organization = this.organization;
        }
        if (this.library_settings != null) {
            data.library_settings = this.library_settings.map((item: ClientLibrarySettings) => item.toObject());
        }
        if (this.proto_reference_documentation_uri != null) {
            data.proto_reference_documentation_uri = this.proto_reference_documentation_uri;
        }
        if (this.rest_reference_documentation_uri != null) {
            data.rest_reference_documentation_uri = this.rest_reference_documentation_uri;
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.method_settings.length)
            writer.writeRepeatedMessage(2, this.method_settings, (item: MethodSettings) => item.serialize(writer));
        if (this.new_issue_uri.length)
            writer.writeString(101, this.new_issue_uri);
        if (this.documentation_uri.length)
            writer.writeString(102, this.documentation_uri);
        if (this.api_short_name.length)
            writer.writeString(103, this.api_short_name);
        if (this.github_label.length)
            writer.writeString(104, this.github_label);
        if (this.codeowner_github_teams.length)
            writer.writeRepeatedString(105, this.codeowner_github_teams);
        if (this.doc_tag_prefix.length)
            writer.writeString(106, this.doc_tag_prefix);
        if (this.organization != ClientLibraryOrganization.CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED)
            writer.writeEnum(107, this.organization);
        if (this.library_settings.length)
            writer.writeRepeatedMessage(109, this.library_settings, (item: ClientLibrarySettings) => item.serialize(writer));
        if (this.proto_reference_documentation_uri.length)
            writer.writeString(110, this.proto_reference_documentation_uri);
        if (this.rest_reference_documentation_uri.length)
            writer.writeString(111, this.rest_reference_documentation_uri);
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Publishing {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Publishing();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 2:
                    reader.readMessage(message.method_settings, () => pb_1.Message.addToRepeatedWrapperField(message, 2, MethodSettings.deserialize(reader), MethodSettings));
                    break;
                case 101:
                    message.new_issue_uri = reader.readString();
                    break;
                case 102:
                    message.documentation_uri = reader.readString();
                    break;
                case 103:
                    message.api_short_name = reader.readString();
                    break;
                case 104:
                    message.github_label = reader.readString();
                    break;
                case 105:
                    pb_1.Message.addToRepeatedField(message, 105, reader.readString());
                    break;
                case 106:
                    message.doc_tag_prefix = reader.readString();
                    break;
                case 107:
                    message.organization = reader.readEnum();
                    break;
                case 109:
                    reader.readMessage(message.library_settings, () => pb_1.Message.addToRepeatedWrapperField(message, 109, ClientLibrarySettings.deserialize(reader), ClientLibrarySettings));
                    break;
                case 110:
                    message.proto_reference_documentation_uri = reader.readString();
                    break;
                case 111:
                    message.rest_reference_documentation_uri = reader.readString();
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): Publishing {
        return Publishing.deserialize(bytes);
    }
}
export class JavaSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        library_package?: string;
        service_class_names?: Map<string, string>;
        common?: CommonLanguageSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("library_package" in data && data.library_package != undefined) {
                this.library_package = data.library_package;
            }
            if ("service_class_names" in data && data.service_class_names != undefined) {
                this.service_class_names = data.service_class_names;
            }
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
        }
        if (!this.service_class_names)
            this.service_class_names = new Map();
    }
    get library_package() {
        return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
    }
    set library_package(value: string) {
        pb_1.Message.setField(this, 1, value);
    }
    get service_class_names() {
        return pb_1.Message.getField(this, 2) as any as Map<string, string>;
    }
    set service_class_names(value: Map<string, string>) {
        pb_1.Message.setField(this, 2, value as any);
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 3) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 3, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 3) != null;
    }
    static fromObject(data: {
        library_package?: string;
        service_class_names?: {
            [key: string]: string;
        };
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
    }): JavaSettings {
        const message = new JavaSettings({});
        if (data.library_package != null) {
            message.library_package = data.library_package;
        }
        if (typeof data.service_class_names == "object") {
            message.service_class_names = new Map(Object.entries(data.service_class_names));
        }
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        return message;
    }
    toObject() {
        const data: {
            library_package?: string;
            service_class_names?: {
                [key: string]: string;
            };
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        } = {};
        if (this.library_package != null) {
            data.library_package = this.library_package;
        }
        if (this.service_class_names != null) {
            data.service_class_names = (Object.fromEntries)(this.service_class_names);
        }
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.library_package.length)
            writer.writeString(1, this.library_package);
        for (const [key, value] of this.service_class_names) {
            writer.writeMessage(2, this.service_class_names, () => {
                writer.writeString(1, key);
                writer.writeString(2, value);
            });
        }
        if (this.has_common)
            writer.writeMessage(3, this.common, () => this.common.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): JavaSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new JavaSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    message.library_package = reader.readString();
                    break;
                case 2:
                    reader.readMessage(message, () => pb_1.Map.deserializeBinary(message.service_class_names as any, reader, reader.readString, reader.readString));
                    break;
                case 3:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): JavaSettings {
        return JavaSettings.deserialize(bytes);
    }
}
export class CppSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
        }
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
    }): CppSettings {
        const message = new CppSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CppSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new CppSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): CppSettings {
        return CppSettings.deserialize(bytes);
    }
}
export class PhpSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
        }
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
    }): PhpSettings {
        const message = new PhpSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): PhpSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new PhpSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): PhpSettings {
        return PhpSettings.deserialize(bytes);
    }
}
export class PythonSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
        experimental_features?: PythonSettingsExperimentalFeatures;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
            if ("experimental_features" in data && data.experimental_features != undefined) {
                this.experimental_features = data.experimental_features;
            }
        }
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    get experimental_features() {
        return pb_1.Message.getWrapperField(this, PythonSettingsExperimentalFeatures, 2) as PythonSettingsExperimentalFeatures;
    }
    set experimental_features(value: PythonSettingsExperimentalFeatures) {
        pb_1.Message.setWrapperField(this, 2, value);
    }
    get has_experimental_features() {
        return pb_1.Message.getField(this, 2) != null;
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        experimental_features?: ReturnType<typeof PythonSettingsExperimentalFeatures.prototype.toObject>;
    }): PythonSettings {
        const message = new PythonSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        if (data.experimental_features != null) {
            message.experimental_features = PythonSettingsExperimentalFeatures.fromObject(data.experimental_features);
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
            experimental_features?: ReturnType<typeof PythonSettingsExperimentalFeatures.prototype.toObject>;
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        if (this.experimental_features != null) {
            data.experimental_features = this.experimental_features.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        if (this.has_experimental_features)
            writer.writeMessage(2, this.experimental_features, () => this.experimental_features.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): PythonSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new PythonSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                case 2:
                    reader.readMessage(message.experimental_features, () => message.experimental_features = PythonSettingsExperimentalFeatures.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): PythonSettings {
        return PythonSettings.deserialize(bytes);
    }
}
export class PythonSettingsExperimentalFeatures extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        rest_async_io_enabled?: boolean;
        protobuf_pythonic_types_enabled?: boolean;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("rest_async_io_enabled" in data && data.rest_async_io_enabled != undefined) {
                this.rest_async_io_enabled = data.rest_async_io_enabled;
            }
            if ("protobuf_pythonic_types_enabled" in data && data.protobuf_pythonic_types_enabled != undefined) {
                this.protobuf_pythonic_types_enabled = data.protobuf_pythonic_types_enabled;
            }
        }
    }
    get rest_async_io_enabled() {
        return pb_1.Message.getFieldWithDefault(this, 1, false) as boolean;
    }
    set rest_async_io_enabled(value: boolean) {
        pb_1.Message.setField(this, 1, value);
    }
    get protobuf_pythonic_types_enabled() {
        return pb_1.Message.getFieldWithDefault(this, 2, false) as boolean;
    }
    set protobuf_pythonic_types_enabled(value: boolean) {
        pb_1.Message.setField(this, 2, value);
    }
    static fromObject(data: {
        rest_async_io_enabled?: boolean;
        protobuf_pythonic_types_enabled?: boolean;
    }): PythonSettingsExperimentalFeatures {
        const message = new PythonSettingsExperimentalFeatures({});
        if (data.rest_async_io_enabled != null) {
            message.rest_async_io_enabled = data.rest_async_io_enabled;
        }
        if (data.protobuf_pythonic_types_enabled != null) {
            message.protobuf_pythonic_types_enabled = data.protobuf_pythonic_types_enabled;
        }
        return message;
    }
    toObject() {
        const data: {
            rest_async_io_enabled?: boolean;
            protobuf_pythonic_types_enabled?: boolean;
        } = {};
        if (this.rest_async_io_enabled != null) {
            data.rest_async_io_enabled = this.rest_async_io_enabled;
        }
        if (this.protobuf_pythonic_types_enabled != null) {
            data.protobuf_pythonic_types_enabled = this.protobuf_pythonic_types_enabled;
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.rest_async_io_enabled != false)
            writer.writeBool(1, this.rest_async_io_enabled);
        if (this.protobuf_pythonic_types_enabled != false)
            writer.writeBool(2, this.protobuf_pythonic_types_enabled);
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): PythonSettingsExperimentalFeatures {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new PythonSettingsExperimentalFeatures();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    message.rest_async_io_enabled = reader.readBool();
                    break;
                case 2:
                    message.protobuf_pythonic_types_enabled = reader.readBool();
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): PythonSettingsExperimentalFeatures {
        return PythonSettingsExperimentalFeatures.deserialize(bytes);
    }
}
export class NodeSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
        }
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
    }): NodeSettings {
        const message = new NodeSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): NodeSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new NodeSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): NodeSettings {
        return NodeSettings.deserialize(bytes);
    }
}
export class DotnetSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
        renamed_services?: Map<string, string>;
        renamed_resources?: Map<string, string>;
        ignored_resources?: string[];
        forced_namespace_aliases?: string[];
        handwritten_signatures?: string[];
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [4, 5, 6], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
            if ("renamed_services" in data && data.renamed_services != undefined) {
                this.renamed_services = data.renamed_services;
            }
            if ("renamed_resources" in data && data.renamed_resources != undefined) {
                this.renamed_resources = data.renamed_resources;
            }
            if ("ignored_resources" in data && data.ignored_resources != undefined) {
                this.ignored_resources = data.ignored_resources;
            }
            if ("forced_namespace_aliases" in data && data.forced_namespace_aliases != undefined) {
                this.forced_namespace_aliases = data.forced_namespace_aliases;
            }
            if ("handwritten_signatures" in data && data.handwritten_signatures != undefined) {
                this.handwritten_signatures = data.handwritten_signatures;
            }
        }
        if (!this.renamed_services)
            this.renamed_services = new Map();
        if (!this.renamed_resources)
            this.renamed_resources = new Map();
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    get renamed_services() {
        return pb_1.Message.getField(this, 2) as any as Map<string, string>;
    }
    set renamed_services(value: Map<string, string>) {
        pb_1.Message.setField(this, 2, value as any);
    }
    get renamed_resources() {
        return pb_1.Message.getField(this, 3) as any as Map<string, string>;
    }
    set renamed_resources(value: Map<string, string>) {
        pb_1.Message.setField(this, 3, value as any);
    }
    get ignored_resources() {
        return pb_1.Message.getFieldWithDefault(this, 4, []) as string[];
    }
    set ignored_resources(value: string[]) {
        pb_1.Message.setField(this, 4, value);
    }
    get forced_namespace_aliases() {
        return pb_1.Message.getFieldWithDefault(this, 5, []) as string[];
    }
    set forced_namespace_aliases(value: string[]) {
        pb_1.Message.setField(this, 5, value);
    }
    get handwritten_signatures() {
        return pb_1.Message.getFieldWithDefault(this, 6, []) as string[];
    }
    set handwritten_signatures(value: string[]) {
        pb_1.Message.setField(this, 6, value);
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        renamed_services?: {
            [key: string]: string;
        };
        renamed_resources?: {
            [key: string]: string;
        };
        ignored_resources?: string[];
        forced_namespace_aliases?: string[];
        handwritten_signatures?: string[];
    }): DotnetSettings {
        const message = new DotnetSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        if (typeof data.renamed_services == "object") {
            message.renamed_services = new Map(Object.entries(data.renamed_services));
        }
        if (typeof data.renamed_resources == "object") {
            message.renamed_resources = new Map(Object.entries(data.renamed_resources));
        }
        if (data.ignored_resources != null) {
            message.ignored_resources = data.ignored_resources;
        }
        if (data.forced_namespace_aliases != null) {
            message.forced_namespace_aliases = data.forced_namespace_aliases;
        }
        if (data.handwritten_signatures != null) {
            message.handwritten_signatures = data.handwritten_signatures;
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
            renamed_services?: {
                [key: string]: string;
            };
            renamed_resources?: {
                [key: string]: string;
            };
            ignored_resources?: string[];
            forced_namespace_aliases?: string[];
            handwritten_signatures?: string[];
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        if (this.renamed_services != null) {
            data.renamed_services = (Object.fromEntries)(this.renamed_services);
        }
        if (this.renamed_resources != null) {
            data.renamed_resources = (Object.fromEntries)(this.renamed_resources);
        }
        if (this.ignored_resources != null) {
            data.ignored_resources = this.ignored_resources;
        }
        if (this.forced_namespace_aliases != null) {
            data.forced_namespace_aliases = this.forced_namespace_aliases;
        }
        if (this.handwritten_signatures != null) {
            data.handwritten_signatures = this.handwritten_signatures;
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        for (const [key, value] of this.renamed_services) {
            writer.writeMessage(2, this.renamed_services, () => {
                writer.writeString(1, key);
                writer.writeString(2, value);
            });
        }
        for (const [key, value] of this.renamed_resources) {
            writer.writeMessage(3, this.renamed_resources, () => {
                writer.writeString(1, key);
                writer.writeString(2, value);
            });
        }
        if (this.ignored_resources.length)
            writer.writeRepeatedString(4, this.ignored_resources);
        if (this.forced_namespace_aliases.length)
            writer.writeRepeatedString(5, this.forced_namespace_aliases);
        if (this.handwritten_signatures.length)
            writer.writeRepeatedString(6, this.handwritten_signatures);
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): DotnetSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new DotnetSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                case 2:
                    reader.readMessage(message, () => pb_1.Map.deserializeBinary(message.renamed_services as any, reader, reader.readString, reader.readString));
                    break;
                case 3:
                    reader.readMessage(message, () => pb_1.Map.deserializeBinary(message.renamed_resources as any, reader, reader.readString, reader.readString));
                    break;
                case 4:
                    pb_1.Message.addToRepeatedField(message, 4, reader.readString());
                    break;
                case 5:
                    pb_1.Message.addToRepeatedField(message, 5, reader.readString());
                    break;
                case 6:
                    pb_1.Message.addToRepeatedField(message, 6, reader.readString());
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): DotnetSettings {
        return DotnetSettings.deserialize(bytes);
    }
}
export class RubySettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
        }
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
    }): RubySettings {
        const message = new RubySettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): RubySettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new RubySettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): RubySettings {
        return RubySettings.deserialize(bytes);
    }
}
export class GoSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        common?: CommonLanguageSettings;
        renamed_services?: Map<string, string>;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("common" in data && data.common != undefined) {
                this.common = data.common;
            }
            if ("renamed_services" in data && data.renamed_services != undefined) {
                this.renamed_services = data.renamed_services;
            }
        }
        if (!this.renamed_services)
            this.renamed_services = new Map();
    }
    get common() {
        return pb_1.Message.getWrapperField(this, CommonLanguageSettings, 1) as CommonLanguageSettings;
    }
    set common(value: CommonLanguageSettings) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_common() {
        return pb_1.Message.getField(this, 1) != null;
    }
    get renamed_services() {
        return pb_1.Message.getField(this, 2) as any as Map<string, string>;
    }
    set renamed_services(value: Map<string, string>) {
        pb_1.Message.setField(this, 2, value as any);
    }
    static fromObject(data: {
        common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
        renamed_services?: {
            [key: string]: string;
        };
    }): GoSettings {
        const message = new GoSettings({});
        if (data.common != null) {
            message.common = CommonLanguageSettings.fromObject(data.common);
        }
        if (typeof data.renamed_services == "object") {
            message.renamed_services = new Map(Object.entries(data.renamed_services));
        }
        return message;
    }
    toObject() {
        const data: {
            common?: ReturnType<typeof CommonLanguageSettings.prototype.toObject>;
            renamed_services?: {
                [key: string]: string;
            };
        } = {};
        if (this.common != null) {
            data.common = this.common.toObject();
        }
        if (this.renamed_services != null) {
            data.renamed_services = (Object.fromEntries)(this.renamed_services);
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_common)
            writer.writeMessage(1, this.common, () => this.common.serialize(writer));
        for (const [key, value] of this.renamed_services) {
            writer.writeMessage(2, this.renamed_services, () => {
                writer.writeString(1, key);
                writer.writeString(2, value);
            });
        }
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): GoSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new GoSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.common, () => message.common = CommonLanguageSettings.deserialize(reader));
                    break;
                case 2:
                    reader.readMessage(message, () => pb_1.Map.deserializeBinary(message.renamed_services as any, reader, reader.readString, reader.readString));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): GoSettings {
        return GoSettings.deserialize(bytes);
    }
}
export class MethodSettings extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        selector?: string;
        long_running?: MethodSettingsLongRunning;
        auto_populated_fields?: string[];
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("selector" in data && data.selector != undefined) {
                this.selector = data.selector;
            }
            if ("long_running" in data && data.long_running != undefined) {
                this.long_running = data.long_running;
            }
            if ("auto_populated_fields" in data && data.auto_populated_fields != undefined) {
                this.auto_populated_fields = data.auto_populated_fields;
            }
        }
    }
    get selector() {
        return pb_1.Message.getFieldWithDefault(this, 1, "") as string;
    }
    set selector(value: string) {
        pb_1.Message.setField(this, 1, value);
    }
    get long_running() {
        return pb_1.Message.getWrapperField(this, MethodSettingsLongRunning, 2) as MethodSettingsLongRunning;
    }
    set long_running(value: MethodSettingsLongRunning) {
        pb_1.Message.setWrapperField(this, 2, value);
    }
    get has_long_running() {
        return pb_1.Message.getField(this, 2) != null;
    }
    get auto_populated_fields() {
        return pb_1.Message.getFieldWithDefault(this, 3, []) as string[];
    }
    set auto_populated_fields(value: string[]) {
        pb_1.Message.setField(this, 3, value);
    }
    static fromObject(data: {
        selector?: string;
        long_running?: ReturnType<typeof MethodSettingsLongRunning.prototype.toObject>;
        auto_populated_fields?: string[];
    }): MethodSettings {
        const message = new MethodSettings({});
        if (data.selector != null) {
            message.selector = data.selector;
        }
        if (data.long_running != null) {
            message.long_running = MethodSettingsLongRunning.fromObject(data.long_running);
        }
        if (data.auto_populated_fields != null) {
            message.auto_populated_fields = data.auto_populated_fields;
        }
        return message;
    }
    toObject() {
        const data: {
            selector?: string;
            long_running?: ReturnType<typeof MethodSettingsLongRunning.prototype.toObject>;
            auto_populated_fields?: string[];
        } = {};
        if (this.selector != null) {
            data.selector = this.selector;
        }
        if (this.long_running != null) {
            data.long_running = this.long_running.toObject();
        }
        if (this.auto_populated_fields != null) {
            data.auto_populated_fields = this.auto_populated_fields;
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.selector.length)
            writer.writeString(1, this.selector);
        if (this.has_long_running)
            writer.writeMessage(2, this.long_running, () => this.long_running.serialize(writer));
        if (this.auto_populated_fields.length)
            writer.writeRepeatedString(3, this.auto_populated_fields);
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MethodSettings {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MethodSettings();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    message.selector = reader.readString();
                    break;
                case 2:
                    reader.readMessage(message.long_running, () => message.long_running = MethodSettingsLongRunning.deserialize(reader));
                    break;
                case 3:
                    pb_1.Message.addToRepeatedField(message, 3, reader.readString());
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): MethodSettings {
        return MethodSettings.deserialize(bytes);
    }
}
export class MethodSettingsLongRunning extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        initial_poll_delay?: dependency_3.Duration;
        poll_delay_multiplier?: number;
        max_poll_delay?: dependency_3.Duration;
        total_poll_timeout?: dependency_3.Duration;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("initial_poll_delay" in data && data.initial_poll_delay != undefined) {
                this.initial_poll_delay = data.initial_poll_delay;
            }
            if ("poll_delay_multiplier" in data && data.poll_delay_multiplier != undefined) {
                this.poll_delay_multiplier = data.poll_delay_multiplier;
            }
            if ("max_poll_delay" in data && data.max_poll_delay != undefined) {
                this.max_poll_delay = data.max_poll_delay;
            }
            if ("total_poll_timeout" in data && data.total_poll_timeout != undefined) {
                this.total_poll_timeout = data.total_poll_timeout;
            }
        }
    }
    get initial_poll_delay() {
        return pb_1.Message.getWrapperField(this, dependency_3.Duration, 1) as dependency_3.Duration;
    }
    set initial_poll_delay(value: dependency_3.Duration) {
        pb_1.Message.setWrapperField(this, 1, value);
    }
    get has_initial_poll_delay() {
        return pb_1.Message.getField(this, 1) != null;
    }
    get poll_delay_multiplier() {
        return pb_1.Message.getFieldWithDefault(this, 2, 0) as number;
    }
    set poll_delay_multiplier(value: number) {
        pb_1.Message.setField(this, 2, value);
    }
    get max_poll_delay() {
        return pb_1.Message.getWrapperField(this, dependency_3.Duration, 3) as dependency_3.Duration;
    }
    set max_poll_delay(value: dependency_3.Duration) {
        pb_1.Message.setWrapperField(this, 3, value);
    }
    get has_max_poll_delay() {
        return pb_1.Message.getField(this, 3) != null;
    }
    get total_poll_timeout() {
        return pb_1.Message.getWrapperField(this, dependency_3.Duration, 4) as dependency_3.Duration;
    }
    set total_poll_timeout(value: dependency_3.Duration) {
        pb_1.Message.setWrapperField(this, 4, value);
    }
    get has_total_poll_timeout() {
        return pb_1.Message.getField(this, 4) != null;
    }
    static fromObject(data: {
        initial_poll_delay?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
        poll_delay_multiplier?: number;
        max_poll_delay?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
        total_poll_timeout?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
    }): MethodSettingsLongRunning {
        const message = new MethodSettingsLongRunning({});
        if (data.initial_poll_delay != null) {
            message.initial_poll_delay = dependency_3.Duration.fromObject(data.initial_poll_delay);
        }
        if (data.poll_delay_multiplier != null) {
            message.poll_delay_multiplier = data.poll_delay_multiplier;
        }
        if (data.max_poll_delay != null) {
            message.max_poll_delay = dependency_3.Duration.fromObject(data.max_poll_delay);
        }
        if (data.total_poll_timeout != null) {
            message.total_poll_timeout = dependency_3.Duration.fromObject(data.total_poll_timeout);
        }
        return message;
    }
    toObject() {
        const data: {
            initial_poll_delay?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
            poll_delay_multiplier?: number;
            max_poll_delay?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
            total_poll_timeout?: ReturnType<typeof dependency_3.Duration.prototype.toObject>;
        } = {};
        if (this.initial_poll_delay != null) {
            data.initial_poll_delay = this.initial_poll_delay.toObject();
        }
        if (this.poll_delay_multiplier != null) {
            data.poll_delay_multiplier = this.poll_delay_multiplier;
        }
        if (this.max_poll_delay != null) {
            data.max_poll_delay = this.max_poll_delay.toObject();
        }
        if (this.total_poll_timeout != null) {
            data.total_poll_timeout = this.total_poll_timeout.toObject();
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.has_initial_poll_delay)
            writer.writeMessage(1, this.initial_poll_delay, () => this.initial_poll_delay.serialize(writer));
        if (this.poll_delay_multiplier != 0)
            writer.writeFloat(2, this.poll_delay_multiplier);
        if (this.has_max_poll_delay)
            writer.writeMessage(3, this.max_poll_delay, () => this.max_poll_delay.serialize(writer));
        if (this.has_total_poll_timeout)
            writer.writeMessage(4, this.total_poll_timeout, () => this.total_poll_timeout.serialize(writer));
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): MethodSettingsLongRunning {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new MethodSettingsLongRunning();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    reader.readMessage(message.initial_poll_delay, () => message.initial_poll_delay = dependency_3.Duration.deserialize(reader));
                    break;
                case 2:
                    message.poll_delay_multiplier = reader.readFloat();
                    break;
                case 3:
                    reader.readMessage(message.max_poll_delay, () => message.max_poll_delay = dependency_3.Duration.deserialize(reader));
                    break;
                case 4:
                    reader.readMessage(message.total_poll_timeout, () => message.total_poll_timeout = dependency_3.Duration.deserialize(reader));
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): MethodSettingsLongRunning {
        return MethodSettingsLongRunning.deserialize(bytes);
    }
}
export class SelectiveGapicGeneration extends pb_1.Message {
    #one_of_decls: number[][] = [];
    constructor(data?: any[] | {
        methods?: string[];
        generate_omitted_as_internal?: boolean;
    }) {
        super();
        pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [1], this.#one_of_decls);
        if (!Array.isArray(data) && typeof data == "object") {
            if ("methods" in data && data.methods != undefined) {
                this.methods = data.methods;
            }
            if ("generate_omitted_as_internal" in data && data.generate_omitted_as_internal != undefined) {
                this.generate_omitted_as_internal = data.generate_omitted_as_internal;
            }
        }
    }
    get methods() {
        return pb_1.Message.getFieldWithDefault(this, 1, []) as string[];
    }
    set methods(value: string[]) {
        pb_1.Message.setField(this, 1, value);
    }
    get generate_omitted_as_internal() {
        return pb_1.Message.getFieldWithDefault(this, 2, false) as boolean;
    }
    set generate_omitted_as_internal(value: boolean) {
        pb_1.Message.setField(this, 2, value);
    }
    static fromObject(data: {
        methods?: string[];
        generate_omitted_as_internal?: boolean;
    }): SelectiveGapicGeneration {
        const message = new SelectiveGapicGeneration({});
        if (data.methods != null) {
            message.methods = data.methods;
        }
        if (data.generate_omitted_as_internal != null) {
            message.generate_omitted_as_internal = data.generate_omitted_as_internal;
        }
        return message;
    }
    toObject() {
        const data: {
            methods?: string[];
            generate_omitted_as_internal?: boolean;
        } = {};
        if (this.methods != null) {
            data.methods = this.methods;
        }
        if (this.generate_omitted_as_internal != null) {
            data.generate_omitted_as_internal = this.generate_omitted_as_internal;
        }
        return data;
    }
    serialize(): Uint8Array;
    serialize(w: pb_1.BinaryWriter): void;
    serialize(w?: pb_1.BinaryWriter): Uint8Array | void {
        const writer = w || new pb_1.BinaryWriter();
        if (this.methods.length)
            writer.writeRepeatedString(1, this.methods);
        if (this.generate_omitted_as_internal != false)
            writer.writeBool(2, this.generate_omitted_as_internal);
        if (!w)
            return writer.getResultBuffer();
    }
    static deserialize(bytes: Uint8Array | pb_1.BinaryReader): SelectiveGapicGeneration {
        const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new SelectiveGapicGeneration();
        while (reader.nextField()) {
            if (reader.isEndGroup())
                break;
            switch (reader.getFieldNumber()) {
                case 1:
                    pb_1.Message.addToRepeatedField(message, 1, reader.readString());
                    break;
                case 2:
                    message.generate_omitted_as_internal = reader.readBool();
                    break;
                default: reader.skipField();
            }
        }
        return message;
    }
    serializeBinary(): Uint8Array {
        return this.serialize();
    }
    static override deserializeBinary(bytes: Uint8Array): SelectiveGapicGeneration {
        return SelectiveGapicGeneration.deserialize(bytes);
    }
}
