UNPKG

@zitadel/node

Version:

Library for API access to ZITADEL. Provides compiled gRPC service clients and helpers for applications and service accounts.

2,467 lines 91.8 kB
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v2.7.5
//   protoc               unknown
// source: zitadel/idp/v2/idp.proto
/* eslint-disable */
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import { Duration } from "../../../google/protobuf/duration.js";
import { Details } from "../../object/v2/object.js";
export const protobufPackage = "zitadel.idp.v2";
export var IDPState;
(function (IDPState) {
    IDPState[IDPState["IDP_STATE_UNSPECIFIED"] = 0] = "IDP_STATE_UNSPECIFIED";
    IDPState[IDPState["IDP_STATE_ACTIVE"] = 1] = "IDP_STATE_ACTIVE";
    IDPState[IDPState["IDP_STATE_INACTIVE"] = 2] = "IDP_STATE_INACTIVE";
    IDPState[IDPState["IDP_STATE_REMOVED"] = 3] = "IDP_STATE_REMOVED";
    IDPState[IDPState["IDP_STATE_MIGRATED"] = 4] = "IDP_STATE_MIGRATED";
    IDPState[IDPState["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(IDPState || (IDPState = {}));
export function iDPStateFromJSON(object) {
    switch (object) {
        case 0:
        case "IDP_STATE_UNSPECIFIED":
            return IDPState.IDP_STATE_UNSPECIFIED;
        case 1:
        case "IDP_STATE_ACTIVE":
            return IDPState.IDP_STATE_ACTIVE;
        case 2:
        case "IDP_STATE_INACTIVE":
            return IDPState.IDP_STATE_INACTIVE;
        case 3:
        case "IDP_STATE_REMOVED":
            return IDPState.IDP_STATE_REMOVED;
        case 4:
        case "IDP_STATE_MIGRATED":
            return IDPState.IDP_STATE_MIGRATED;
        case -1:
        case "UNRECOGNIZED":
        default:
            return IDPState.UNRECOGNIZED;
    }
}
export function iDPStateToJSON(object) {
    switch (object) {
        case IDPState.IDP_STATE_UNSPECIFIED:
            return "IDP_STATE_UNSPECIFIED";
        case IDPState.IDP_STATE_ACTIVE:
            return "IDP_STATE_ACTIVE";
        case IDPState.IDP_STATE_INACTIVE:
            return "IDP_STATE_INACTIVE";
        case IDPState.IDP_STATE_REMOVED:
            return "IDP_STATE_REMOVED";
        case IDPState.IDP_STATE_MIGRATED:
            return "IDP_STATE_MIGRATED";
        case IDPState.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
export var IDPType;
(function (IDPType) {
    IDPType[IDPType["IDP_TYPE_UNSPECIFIED"] = 0] = "IDP_TYPE_UNSPECIFIED";
    IDPType[IDPType["IDP_TYPE_OIDC"] = 1] = "IDP_TYPE_OIDC";
    IDPType[IDPType["IDP_TYPE_JWT"] = 2] = "IDP_TYPE_JWT";
    IDPType[IDPType["IDP_TYPE_LDAP"] = 3] = "IDP_TYPE_LDAP";
    IDPType[IDPType["IDP_TYPE_OAUTH"] = 4] = "IDP_TYPE_OAUTH";
    IDPType[IDPType["IDP_TYPE_AZURE_AD"] = 5] = "IDP_TYPE_AZURE_AD";
    IDPType[IDPType["IDP_TYPE_GITHUB"] = 6] = "IDP_TYPE_GITHUB";
    IDPType[IDPType["IDP_TYPE_GITHUB_ES"] = 7] = "IDP_TYPE_GITHUB_ES";
    IDPType[IDPType["IDP_TYPE_GITLAB"] = 8] = "IDP_TYPE_GITLAB";
    IDPType[IDPType["IDP_TYPE_GITLAB_SELF_HOSTED"] = 9] = "IDP_TYPE_GITLAB_SELF_HOSTED";
    IDPType[IDPType["IDP_TYPE_GOOGLE"] = 10] = "IDP_TYPE_GOOGLE";
    IDPType[IDPType["IDP_TYPE_APPLE"] = 11] = "IDP_TYPE_APPLE";
    IDPType[IDPType["IDP_TYPE_SAML"] = 12] = "IDP_TYPE_SAML";
    IDPType[IDPType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(IDPType || (IDPType = {}));
export function iDPTypeFromJSON(object) {
    switch (object) {
        case 0:
        case "IDP_TYPE_UNSPECIFIED":
            return IDPType.IDP_TYPE_UNSPECIFIED;
        case 1:
        case "IDP_TYPE_OIDC":
            return IDPType.IDP_TYPE_OIDC;
        case 2:
        case "IDP_TYPE_JWT":
            return IDPType.IDP_TYPE_JWT;
        case 3:
        case "IDP_TYPE_LDAP":
            return IDPType.IDP_TYPE_LDAP;
        case 4:
        case "IDP_TYPE_OAUTH":
            return IDPType.IDP_TYPE_OAUTH;
        case 5:
        case "IDP_TYPE_AZURE_AD":
            return IDPType.IDP_TYPE_AZURE_AD;
        case 6:
        case "IDP_TYPE_GITHUB":
            return IDPType.IDP_TYPE_GITHUB;
        case 7:
        case "IDP_TYPE_GITHUB_ES":
            return IDPType.IDP_TYPE_GITHUB_ES;
        case 8:
        case "IDP_TYPE_GITLAB":
            return IDPType.IDP_TYPE_GITLAB;
        case 9:
        case "IDP_TYPE_GITLAB_SELF_HOSTED":
            return IDPType.IDP_TYPE_GITLAB_SELF_HOSTED;
        case 10:
        case "IDP_TYPE_GOOGLE":
            return IDPType.IDP_TYPE_GOOGLE;
        case 11:
        case "IDP_TYPE_APPLE":
            return IDPType.IDP_TYPE_APPLE;
        case 12:
        case "IDP_TYPE_SAML":
            return IDPType.IDP_TYPE_SAML;
        case -1:
        case "UNRECOGNIZED":
        default:
            return IDPType.UNRECOGNIZED;
    }
}
export function iDPTypeToJSON(object) {
    switch (object) {
        case IDPType.IDP_TYPE_UNSPECIFIED:
            return "IDP_TYPE_UNSPECIFIED";
        case IDPType.IDP_TYPE_OIDC:
            return "IDP_TYPE_OIDC";
        case IDPType.IDP_TYPE_JWT:
            return "IDP_TYPE_JWT";
        case IDPType.IDP_TYPE_LDAP:
            return "IDP_TYPE_LDAP";
        case IDPType.IDP_TYPE_OAUTH:
            return "IDP_TYPE_OAUTH";
        case IDPType.IDP_TYPE_AZURE_AD:
            return "IDP_TYPE_AZURE_AD";
        case IDPType.IDP_TYPE_GITHUB:
            return "IDP_TYPE_GITHUB";
        case IDPType.IDP_TYPE_GITHUB_ES:
            return "IDP_TYPE_GITHUB_ES";
        case IDPType.IDP_TYPE_GITLAB:
            return "IDP_TYPE_GITLAB";
        case IDPType.IDP_TYPE_GITLAB_SELF_HOSTED:
            return "IDP_TYPE_GITLAB_SELF_HOSTED";
        case IDPType.IDP_TYPE_GOOGLE:
            return "IDP_TYPE_GOOGLE";
        case IDPType.IDP_TYPE_APPLE:
            return "IDP_TYPE_APPLE";
        case IDPType.IDP_TYPE_SAML:
            return "IDP_TYPE_SAML";
        case IDPType.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
export var SAMLBinding;
(function (SAMLBinding) {
    SAMLBinding[SAMLBinding["SAML_BINDING_UNSPECIFIED"] = 0] = "SAML_BINDING_UNSPECIFIED";
    SAMLBinding[SAMLBinding["SAML_BINDING_POST"] = 1] = "SAML_BINDING_POST";
    SAMLBinding[SAMLBinding["SAML_BINDING_REDIRECT"] = 2] = "SAML_BINDING_REDIRECT";
    SAMLBinding[SAMLBinding["SAML_BINDING_ARTIFACT"] = 3] = "SAML_BINDING_ARTIFACT";
    SAMLBinding[SAMLBinding["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(SAMLBinding || (SAMLBinding = {}));
export function sAMLBindingFromJSON(object) {
    switch (object) {
        case 0:
        case "SAML_BINDING_UNSPECIFIED":
            return SAMLBinding.SAML_BINDING_UNSPECIFIED;
        case 1:
        case "SAML_BINDING_POST":
            return SAMLBinding.SAML_BINDING_POST;
        case 2:
        case "SAML_BINDING_REDIRECT":
            return SAMLBinding.SAML_BINDING_REDIRECT;
        case 3:
        case "SAML_BINDING_ARTIFACT":
            return SAMLBinding.SAML_BINDING_ARTIFACT;
        case -1:
        case "UNRECOGNIZED":
        default:
            return SAMLBinding.UNRECOGNIZED;
    }
}
export function sAMLBindingToJSON(object) {
    switch (object) {
        case SAMLBinding.SAML_BINDING_UNSPECIFIED:
            return "SAML_BINDING_UNSPECIFIED";
        case SAMLBinding.SAML_BINDING_POST:
            return "SAML_BINDING_POST";
        case SAMLBinding.SAML_BINDING_REDIRECT:
            return "SAML_BINDING_REDIRECT";
        case SAMLBinding.SAML_BINDING_ARTIFACT:
            return "SAML_BINDING_ARTIFACT";
        case SAMLBinding.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
export var SAMLNameIDFormat;
(function (SAMLNameIDFormat) {
    SAMLNameIDFormat[SAMLNameIDFormat["SAML_NAME_ID_FORMAT_UNSPECIFIED"] = 0] = "SAML_NAME_ID_FORMAT_UNSPECIFIED";
    SAMLNameIDFormat[SAMLNameIDFormat["SAML_NAME_ID_FORMAT_EMAIL_ADDRESS"] = 1] = "SAML_NAME_ID_FORMAT_EMAIL_ADDRESS";
    SAMLNameIDFormat[SAMLNameIDFormat["SAML_NAME_ID_FORMAT_PERSISTENT"] = 2] = "SAML_NAME_ID_FORMAT_PERSISTENT";
    SAMLNameIDFormat[SAMLNameIDFormat["SAML_NAME_ID_FORMAT_TRANSIENT"] = 3] = "SAML_NAME_ID_FORMAT_TRANSIENT";
    SAMLNameIDFormat[SAMLNameIDFormat["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(SAMLNameIDFormat || (SAMLNameIDFormat = {}));
export function sAMLNameIDFormatFromJSON(object) {
    switch (object) {
        case 0:
        case "SAML_NAME_ID_FORMAT_UNSPECIFIED":
            return SAMLNameIDFormat.SAML_NAME_ID_FORMAT_UNSPECIFIED;
        case 1:
        case "SAML_NAME_ID_FORMAT_EMAIL_ADDRESS":
            return SAMLNameIDFormat.SAML_NAME_ID_FORMAT_EMAIL_ADDRESS;
        case 2:
        case "SAML_NAME_ID_FORMAT_PERSISTENT":
            return SAMLNameIDFormat.SAML_NAME_ID_FORMAT_PERSISTENT;
        case 3:
        case "SAML_NAME_ID_FORMAT_TRANSIENT":
            return SAMLNameIDFormat.SAML_NAME_ID_FORMAT_TRANSIENT;
        case -1:
        case "UNRECOGNIZED":
        default:
            return SAMLNameIDFormat.UNRECOGNIZED;
    }
}
export function sAMLNameIDFormatToJSON(object) {
    switch (object) {
        case SAMLNameIDFormat.SAML_NAME_ID_FORMAT_UNSPECIFIED:
            return "SAML_NAME_ID_FORMAT_UNSPECIFIED";
        case SAMLNameIDFormat.SAML_NAME_ID_FORMAT_EMAIL_ADDRESS:
            return "SAML_NAME_ID_FORMAT_EMAIL_ADDRESS";
        case SAMLNameIDFormat.SAML_NAME_ID_FORMAT_PERSISTENT:
            return "SAML_NAME_ID_FORMAT_PERSISTENT";
        case SAMLNameIDFormat.SAML_NAME_ID_FORMAT_TRANSIENT:
            return "SAML_NAME_ID_FORMAT_TRANSIENT";
        case SAMLNameIDFormat.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
export var AutoLinkingOption;
(function (AutoLinkingOption) {
    /** AUTO_LINKING_OPTION_UNSPECIFIED - AUTO_LINKING_OPTION_UNSPECIFIED disables the auto linking prompt. */
    AutoLinkingOption[AutoLinkingOption["AUTO_LINKING_OPTION_UNSPECIFIED"] = 0] = "AUTO_LINKING_OPTION_UNSPECIFIED";
    /**
     * AUTO_LINKING_OPTION_USERNAME - AUTO_LINKING_OPTION_USERNAME will use the username of the external user to
     * check for a corresponding ZITADEL user.
     */
    AutoLinkingOption[AutoLinkingOption["AUTO_LINKING_OPTION_USERNAME"] = 1] = "AUTO_LINKING_OPTION_USERNAME";
    /**
     * AUTO_LINKING_OPTION_EMAIL - AUTO_LINKING_OPTION_EMAIL  will use the email of the external user to check
     * for a corresponding ZITADEL user with the same verified email Note that in
     * case multiple users match, no prompt will be shown.
     */
    AutoLinkingOption[AutoLinkingOption["AUTO_LINKING_OPTION_EMAIL"] = 2] = "AUTO_LINKING_OPTION_EMAIL";
    AutoLinkingOption[AutoLinkingOption["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(AutoLinkingOption || (AutoLinkingOption = {}));
export function autoLinkingOptionFromJSON(object) {
    switch (object) {
        case 0:
        case "AUTO_LINKING_OPTION_UNSPECIFIED":
            return AutoLinkingOption.AUTO_LINKING_OPTION_UNSPECIFIED;
        case 1:
        case "AUTO_LINKING_OPTION_USERNAME":
            return AutoLinkingOption.AUTO_LINKING_OPTION_USERNAME;
        case 2:
        case "AUTO_LINKING_OPTION_EMAIL":
            return AutoLinkingOption.AUTO_LINKING_OPTION_EMAIL;
        case -1:
        case "UNRECOGNIZED":
        default:
            return AutoLinkingOption.UNRECOGNIZED;
    }
}
export function autoLinkingOptionToJSON(object) {
    switch (object) {
        case AutoLinkingOption.AUTO_LINKING_OPTION_UNSPECIFIED:
            return "AUTO_LINKING_OPTION_UNSPECIFIED";
        case AutoLinkingOption.AUTO_LINKING_OPTION_USERNAME:
            return "AUTO_LINKING_OPTION_USERNAME";
        case AutoLinkingOption.AUTO_LINKING_OPTION_EMAIL:
            return "AUTO_LINKING_OPTION_EMAIL";
        case AutoLinkingOption.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
export var AzureADTenantType;
(function (AzureADTenantType) {
    AzureADTenantType[AzureADTenantType["AZURE_AD_TENANT_TYPE_COMMON"] = 0] = "AZURE_AD_TENANT_TYPE_COMMON";
    AzureADTenantType[AzureADTenantType["AZURE_AD_TENANT_TYPE_ORGANISATIONS"] = 1] = "AZURE_AD_TENANT_TYPE_ORGANISATIONS";
    AzureADTenantType[AzureADTenantType["AZURE_AD_TENANT_TYPE_CONSUMERS"] = 2] = "AZURE_AD_TENANT_TYPE_CONSUMERS";
    AzureADTenantType[AzureADTenantType["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(AzureADTenantType || (AzureADTenantType = {}));
export function azureADTenantTypeFromJSON(object) {
    switch (object) {
        case 0:
        case "AZURE_AD_TENANT_TYPE_COMMON":
            return AzureADTenantType.AZURE_AD_TENANT_TYPE_COMMON;
        case 1:
        case "AZURE_AD_TENANT_TYPE_ORGANISATIONS":
            return AzureADTenantType.AZURE_AD_TENANT_TYPE_ORGANISATIONS;
        case 2:
        case "AZURE_AD_TENANT_TYPE_CONSUMERS":
            return AzureADTenantType.AZURE_AD_TENANT_TYPE_CONSUMERS;
        case -1:
        case "UNRECOGNIZED":
        default:
            return AzureADTenantType.UNRECOGNIZED;
    }
}
export function azureADTenantTypeToJSON(object) {
    switch (object) {
        case AzureADTenantType.AZURE_AD_TENANT_TYPE_COMMON:
            return "AZURE_AD_TENANT_TYPE_COMMON";
        case AzureADTenantType.AZURE_AD_TENANT_TYPE_ORGANISATIONS:
            return "AZURE_AD_TENANT_TYPE_ORGANISATIONS";
        case AzureADTenantType.AZURE_AD_TENANT_TYPE_CONSUMERS:
            return "AZURE_AD_TENANT_TYPE_CONSUMERS";
        case AzureADTenantType.UNRECOGNIZED:
        default:
            return "UNRECOGNIZED";
    }
}
function createBaseIDP() {
    return { id: "", details: undefined, state: 0, name: "", type: 0, config: undefined };
}
export const IDP = {
    encode(message, writer = new BinaryWriter()) {
        if (message.id !== "") {
            writer.uint32(10).string(message.id);
        }
        if (message.details !== undefined) {
            Details.encode(message.details, writer.uint32(18).fork()).join();
        }
        if (message.state !== 0) {
            writer.uint32(24).int32(message.state);
        }
        if (message.name !== "") {
            writer.uint32(34).string(message.name);
        }
        if (message.type !== 0) {
            writer.uint32(40).int32(message.type);
        }
        if (message.config !== undefined) {
            IDPConfig.encode(message.config, writer.uint32(50).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseIDP();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.id = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.details = Details.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.state = reader.int32();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.name = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.type = reader.int32();
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.config = IDPConfig.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            id: isSet(object.id) ? globalThis.String(object.id) : "",
            details: isSet(object.details) ? Details.fromJSON(object.details) : undefined,
            state: isSet(object.state) ? iDPStateFromJSON(object.state) : 0,
            name: isSet(object.name) ? globalThis.String(object.name) : "",
            type: isSet(object.type) ? iDPTypeFromJSON(object.type) : 0,
            config: isSet(object.config) ? IDPConfig.fromJSON(object.config) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.id !== "") {
            obj.id = message.id;
        }
        if (message.details !== undefined) {
            obj.details = Details.toJSON(message.details);
        }
        if (message.state !== 0) {
            obj.state = iDPStateToJSON(message.state);
        }
        if (message.name !== "") {
            obj.name = message.name;
        }
        if (message.type !== 0) {
            obj.type = iDPTypeToJSON(message.type);
        }
        if (message.config !== undefined) {
            obj.config = IDPConfig.toJSON(message.config);
        }
        return obj;
    },
    create(base) {
        return IDP.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseIDP();
        message.id = object.id ?? "";
        message.details = (object.details !== undefined && object.details !== null)
            ? Details.fromPartial(object.details)
            : undefined;
        message.state = object.state ?? 0;
        message.name = object.name ?? "";
        message.type = object.type ?? 0;
        message.config = (object.config !== undefined && object.config !== null)
            ? IDPConfig.fromPartial(object.config)
            : undefined;
        return message;
    },
};
function createBaseIDPConfig() {
    return {
        options: undefined,
        ldap: undefined,
        google: undefined,
        oauth: undefined,
        oidc: undefined,
        jwt: undefined,
        github: undefined,
        githubEs: undefined,
        gitlab: undefined,
        gitlabSelfHosted: undefined,
        azureAd: undefined,
        apple: undefined,
        saml: undefined,
    };
}
export const IDPConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.options !== undefined) {
            Options.encode(message.options, writer.uint32(10).fork()).join();
        }
        if (message.ldap !== undefined) {
            LDAPConfig.encode(message.ldap, writer.uint32(18).fork()).join();
        }
        if (message.google !== undefined) {
            GoogleConfig.encode(message.google, writer.uint32(26).fork()).join();
        }
        if (message.oauth !== undefined) {
            OAuthConfig.encode(message.oauth, writer.uint32(34).fork()).join();
        }
        if (message.oidc !== undefined) {
            GenericOIDCConfig.encode(message.oidc, writer.uint32(42).fork()).join();
        }
        if (message.jwt !== undefined) {
            JWTConfig.encode(message.jwt, writer.uint32(50).fork()).join();
        }
        if (message.github !== undefined) {
            GitHubConfig.encode(message.github, writer.uint32(58).fork()).join();
        }
        if (message.githubEs !== undefined) {
            GitHubEnterpriseServerConfig.encode(message.githubEs, writer.uint32(66).fork()).join();
        }
        if (message.gitlab !== undefined) {
            GitLabConfig.encode(message.gitlab, writer.uint32(74).fork()).join();
        }
        if (message.gitlabSelfHosted !== undefined) {
            GitLabSelfHostedConfig.encode(message.gitlabSelfHosted, writer.uint32(82).fork()).join();
        }
        if (message.azureAd !== undefined) {
            AzureADConfig.encode(message.azureAd, writer.uint32(90).fork()).join();
        }
        if (message.apple !== undefined) {
            AppleConfig.encode(message.apple, writer.uint32(98).fork()).join();
        }
        if (message.saml !== undefined) {
            SAMLConfig.encode(message.saml, writer.uint32(106).fork()).join();
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseIDPConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.options = Options.decode(reader, reader.uint32());
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.ldap = LDAPConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.google = GoogleConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.oauth = OAuthConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.oidc = GenericOIDCConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.jwt = JWTConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.github = GitHubConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.githubEs = GitHubEnterpriseServerConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 9: {
                    if (tag !== 74) {
                        break;
                    }
                    message.gitlab = GitLabConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.gitlabSelfHosted = GitLabSelfHostedConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 11: {
                    if (tag !== 90) {
                        break;
                    }
                    message.azureAd = AzureADConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 12: {
                    if (tag !== 98) {
                        break;
                    }
                    message.apple = AppleConfig.decode(reader, reader.uint32());
                    continue;
                }
                case 13: {
                    if (tag !== 106) {
                        break;
                    }
                    message.saml = SAMLConfig.decode(reader, reader.uint32());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            options: isSet(object.options) ? Options.fromJSON(object.options) : undefined,
            ldap: isSet(object.ldap) ? LDAPConfig.fromJSON(object.ldap) : undefined,
            google: isSet(object.google) ? GoogleConfig.fromJSON(object.google) : undefined,
            oauth: isSet(object.oauth) ? OAuthConfig.fromJSON(object.oauth) : undefined,
            oidc: isSet(object.oidc) ? GenericOIDCConfig.fromJSON(object.oidc) : undefined,
            jwt: isSet(object.jwt) ? JWTConfig.fromJSON(object.jwt) : undefined,
            github: isSet(object.github) ? GitHubConfig.fromJSON(object.github) : undefined,
            githubEs: isSet(object.githubEs) ? GitHubEnterpriseServerConfig.fromJSON(object.githubEs) : undefined,
            gitlab: isSet(object.gitlab) ? GitLabConfig.fromJSON(object.gitlab) : undefined,
            gitlabSelfHosted: isSet(object.gitlabSelfHosted)
                ? GitLabSelfHostedConfig.fromJSON(object.gitlabSelfHosted)
                : undefined,
            azureAd: isSet(object.azureAd) ? AzureADConfig.fromJSON(object.azureAd) : undefined,
            apple: isSet(object.apple) ? AppleConfig.fromJSON(object.apple) : undefined,
            saml: isSet(object.saml) ? SAMLConfig.fromJSON(object.saml) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.options !== undefined) {
            obj.options = Options.toJSON(message.options);
        }
        if (message.ldap !== undefined) {
            obj.ldap = LDAPConfig.toJSON(message.ldap);
        }
        if (message.google !== undefined) {
            obj.google = GoogleConfig.toJSON(message.google);
        }
        if (message.oauth !== undefined) {
            obj.oauth = OAuthConfig.toJSON(message.oauth);
        }
        if (message.oidc !== undefined) {
            obj.oidc = GenericOIDCConfig.toJSON(message.oidc);
        }
        if (message.jwt !== undefined) {
            obj.jwt = JWTConfig.toJSON(message.jwt);
        }
        if (message.github !== undefined) {
            obj.github = GitHubConfig.toJSON(message.github);
        }
        if (message.githubEs !== undefined) {
            obj.githubEs = GitHubEnterpriseServerConfig.toJSON(message.githubEs);
        }
        if (message.gitlab !== undefined) {
            obj.gitlab = GitLabConfig.toJSON(message.gitlab);
        }
        if (message.gitlabSelfHosted !== undefined) {
            obj.gitlabSelfHosted = GitLabSelfHostedConfig.toJSON(message.gitlabSelfHosted);
        }
        if (message.azureAd !== undefined) {
            obj.azureAd = AzureADConfig.toJSON(message.azureAd);
        }
        if (message.apple !== undefined) {
            obj.apple = AppleConfig.toJSON(message.apple);
        }
        if (message.saml !== undefined) {
            obj.saml = SAMLConfig.toJSON(message.saml);
        }
        return obj;
    },
    create(base) {
        return IDPConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseIDPConfig();
        message.options = (object.options !== undefined && object.options !== null)
            ? Options.fromPartial(object.options)
            : undefined;
        message.ldap = (object.ldap !== undefined && object.ldap !== null)
            ? LDAPConfig.fromPartial(object.ldap)
            : undefined;
        message.google = (object.google !== undefined && object.google !== null)
            ? GoogleConfig.fromPartial(object.google)
            : undefined;
        message.oauth = (object.oauth !== undefined && object.oauth !== null)
            ? OAuthConfig.fromPartial(object.oauth)
            : undefined;
        message.oidc = (object.oidc !== undefined && object.oidc !== null)
            ? GenericOIDCConfig.fromPartial(object.oidc)
            : undefined;
        message.jwt = (object.jwt !== undefined && object.jwt !== null) ? JWTConfig.fromPartial(object.jwt) : undefined;
        message.github = (object.github !== undefined && object.github !== null)
            ? GitHubConfig.fromPartial(object.github)
            : undefined;
        message.githubEs = (object.githubEs !== undefined && object.githubEs !== null)
            ? GitHubEnterpriseServerConfig.fromPartial(object.githubEs)
            : undefined;
        message.gitlab = (object.gitlab !== undefined && object.gitlab !== null)
            ? GitLabConfig.fromPartial(object.gitlab)
            : undefined;
        message.gitlabSelfHosted = (object.gitlabSelfHosted !== undefined && object.gitlabSelfHosted !== null)
            ? GitLabSelfHostedConfig.fromPartial(object.gitlabSelfHosted)
            : undefined;
        message.azureAd = (object.azureAd !== undefined && object.azureAd !== null)
            ? AzureADConfig.fromPartial(object.azureAd)
            : undefined;
        message.apple = (object.apple !== undefined && object.apple !== null)
            ? AppleConfig.fromPartial(object.apple)
            : undefined;
        message.saml = (object.saml !== undefined && object.saml !== null)
            ? SAMLConfig.fromPartial(object.saml)
            : undefined;
        return message;
    },
};
function createBaseJWTConfig() {
    return { jwtEndpoint: "", issuer: "", keysEndpoint: "", headerName: "" };
}
export const JWTConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.jwtEndpoint !== "") {
            writer.uint32(10).string(message.jwtEndpoint);
        }
        if (message.issuer !== "") {
            writer.uint32(18).string(message.issuer);
        }
        if (message.keysEndpoint !== "") {
            writer.uint32(26).string(message.keysEndpoint);
        }
        if (message.headerName !== "") {
            writer.uint32(34).string(message.headerName);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseJWTConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.jwtEndpoint = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.issuer = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.keysEndpoint = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.headerName = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            jwtEndpoint: isSet(object.jwtEndpoint) ? globalThis.String(object.jwtEndpoint) : "",
            issuer: isSet(object.issuer) ? globalThis.String(object.issuer) : "",
            keysEndpoint: isSet(object.keysEndpoint) ? globalThis.String(object.keysEndpoint) : "",
            headerName: isSet(object.headerName) ? globalThis.String(object.headerName) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.jwtEndpoint !== "") {
            obj.jwtEndpoint = message.jwtEndpoint;
        }
        if (message.issuer !== "") {
            obj.issuer = message.issuer;
        }
        if (message.keysEndpoint !== "") {
            obj.keysEndpoint = message.keysEndpoint;
        }
        if (message.headerName !== "") {
            obj.headerName = message.headerName;
        }
        return obj;
    },
    create(base) {
        return JWTConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseJWTConfig();
        message.jwtEndpoint = object.jwtEndpoint ?? "";
        message.issuer = object.issuer ?? "";
        message.keysEndpoint = object.keysEndpoint ?? "";
        message.headerName = object.headerName ?? "";
        return message;
    },
};
function createBaseOAuthConfig() {
    return { clientId: "", authorizationEndpoint: "", tokenEndpoint: "", userEndpoint: "", scopes: [], idAttribute: "" };
}
export const OAuthConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        if (message.authorizationEndpoint !== "") {
            writer.uint32(18).string(message.authorizationEndpoint);
        }
        if (message.tokenEndpoint !== "") {
            writer.uint32(26).string(message.tokenEndpoint);
        }
        if (message.userEndpoint !== "") {
            writer.uint32(34).string(message.userEndpoint);
        }
        for (const v of message.scopes) {
            writer.uint32(42).string(v);
        }
        if (message.idAttribute !== "") {
            writer.uint32(50).string(message.idAttribute);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseOAuthConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.authorizationEndpoint = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.tokenEndpoint = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.userEndpoint = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.idAttribute = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            authorizationEndpoint: isSet(object.authorizationEndpoint) ? globalThis.String(object.authorizationEndpoint) : "",
            tokenEndpoint: isSet(object.tokenEndpoint) ? globalThis.String(object.tokenEndpoint) : "",
            userEndpoint: isSet(object.userEndpoint) ? globalThis.String(object.userEndpoint) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
            idAttribute: isSet(object.idAttribute) ? globalThis.String(object.idAttribute) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.authorizationEndpoint !== "") {
            obj.authorizationEndpoint = message.authorizationEndpoint;
        }
        if (message.tokenEndpoint !== "") {
            obj.tokenEndpoint = message.tokenEndpoint;
        }
        if (message.userEndpoint !== "") {
            obj.userEndpoint = message.userEndpoint;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        if (message.idAttribute !== "") {
            obj.idAttribute = message.idAttribute;
        }
        return obj;
    },
    create(base) {
        return OAuthConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseOAuthConfig();
        message.clientId = object.clientId ?? "";
        message.authorizationEndpoint = object.authorizationEndpoint ?? "";
        message.tokenEndpoint = object.tokenEndpoint ?? "";
        message.userEndpoint = object.userEndpoint ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        message.idAttribute = object.idAttribute ?? "";
        return message;
    },
};
function createBaseGenericOIDCConfig() {
    return { issuer: "", clientId: "", scopes: [], isIdTokenMapping: false };
}
export const GenericOIDCConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.issuer !== "") {
            writer.uint32(10).string(message.issuer);
        }
        if (message.clientId !== "") {
            writer.uint32(18).string(message.clientId);
        }
        for (const v of message.scopes) {
            writer.uint32(26).string(v);
        }
        if (message.isIdTokenMapping !== false) {
            writer.uint32(32).bool(message.isIdTokenMapping);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGenericOIDCConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.issuer = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.isIdTokenMapping = reader.bool();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            issuer: isSet(object.issuer) ? globalThis.String(object.issuer) : "",
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
            isIdTokenMapping: isSet(object.isIdTokenMapping) ? globalThis.Boolean(object.isIdTokenMapping) : false,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.issuer !== "") {
            obj.issuer = message.issuer;
        }
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        if (message.isIdTokenMapping !== false) {
            obj.isIdTokenMapping = message.isIdTokenMapping;
        }
        return obj;
    },
    create(base) {
        return GenericOIDCConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGenericOIDCConfig();
        message.issuer = object.issuer ?? "";
        message.clientId = object.clientId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        message.isIdTokenMapping = object.isIdTokenMapping ?? false;
        return message;
    },
};
function createBaseGitHubConfig() {
    return { clientId: "", scopes: [] };
}
export const GitHubConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        for (const v of message.scopes) {
            writer.uint32(18).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGitHubConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return GitHubConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGitHubConfig();
        message.clientId = object.clientId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseGitHubEnterpriseServerConfig() {
    return { clientId: "", authorizationEndpoint: "", tokenEndpoint: "", userEndpoint: "", scopes: [] };
}
export const GitHubEnterpriseServerConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        if (message.authorizationEndpoint !== "") {
            writer.uint32(18).string(message.authorizationEndpoint);
        }
        if (message.tokenEndpoint !== "") {
            writer.uint32(26).string(message.tokenEndpoint);
        }
        if (message.userEndpoint !== "") {
            writer.uint32(34).string(message.userEndpoint);
        }
        for (const v of message.scopes) {
            writer.uint32(42).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGitHubEnterpriseServerConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.authorizationEndpoint = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.tokenEndpoint = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.userEndpoint = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            authorizationEndpoint: isSet(object.authorizationEndpoint) ? globalThis.String(object.authorizationEndpoint) : "",
            tokenEndpoint: isSet(object.tokenEndpoint) ? globalThis.String(object.tokenEndpoint) : "",
            userEndpoint: isSet(object.userEndpoint) ? globalThis.String(object.userEndpoint) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.authorizationEndpoint !== "") {
            obj.authorizationEndpoint = message.authorizationEndpoint;
        }
        if (message.tokenEndpoint !== "") {
            obj.tokenEndpoint = message.tokenEndpoint;
        }
        if (message.userEndpoint !== "") {
            obj.userEndpoint = message.userEndpoint;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return GitHubEnterpriseServerConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGitHubEnterpriseServerConfig();
        message.clientId = object.clientId ?? "";
        message.authorizationEndpoint = object.authorizationEndpoint ?? "";
        message.tokenEndpoint = object.tokenEndpoint ?? "";
        message.userEndpoint = object.userEndpoint ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseGoogleConfig() {
    return { clientId: "", scopes: [] };
}
export const GoogleConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        for (const v of message.scopes) {
            writer.uint32(18).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGoogleConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return GoogleConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGoogleConfig();
        message.clientId = object.clientId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseGitLabConfig() {
    return { clientId: "", scopes: [] };
}
export const GitLabConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        for (const v of message.scopes) {
            writer.uint32(18).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGitLabConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return GitLabConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGitLabConfig();
        message.clientId = object.clientId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseGitLabSelfHostedConfig() {
    return { issuer: "", clientId: "", scopes: [] };
}
export const GitLabSelfHostedConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.issuer !== "") {
            writer.uint32(10).string(message.issuer);
        }
        if (message.clientId !== "") {
            writer.uint32(18).string(message.clientId);
        }
        for (const v of message.scopes) {
            writer.uint32(26).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseGitLabSelfHostedConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.issuer = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            issuer: isSet(object.issuer) ? globalThis.String(object.issuer) : "",
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.issuer !== "") {
            obj.issuer = message.issuer;
        }
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return GitLabSelfHostedConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseGitLabSelfHostedConfig();
        message.issuer = object.issuer ?? "";
        message.clientId = object.clientId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseLDAPConfig() {
    return {
        servers: [],
        startTls: false,
        baseDn: "",
        bindDn: "",
        userBase: "",
        userObjectClasses: [],
        userFilters: [],
        timeout: undefined,
        attributes: undefined,
        rootCa: Buffer.alloc(0),
    };
}
export const LDAPConfig = {
    encode(message, writer = new BinaryWriter()) {
        for (const v of message.servers) {
            writer.uint32(10).string(v);
        }
        if (message.startTls !== false) {
            writer.uint32(16).bool(message.startTls);
        }
        if (message.baseDn !== "") {
            writer.uint32(26).string(message.baseDn);
        }
        if (message.bindDn !== "") {
            writer.uint32(34).string(message.bindDn);
        }
        if (message.userBase !== "") {
            writer.uint32(42).string(message.userBase);
        }
        for (const v of message.userObjectClasses) {
            writer.uint32(50).string(v);
        }
        for (const v of message.userFilters) {
            writer.uint32(58).string(v);
        }
        if (message.timeout !== undefined) {
            Duration.encode(message.timeout, writer.uint32(66).fork()).join();
        }
        if (message.attributes !== undefined) {
            LDAPAttributes.encode(message.attributes, writer.uint32(74).fork()).join();
        }
        if (message.rootCa.length !== 0) {
            writer.uint32(82).bytes(message.rootCa);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLDAPConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.servers.push(reader.string());
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.startTls = reader.bool();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.baseDn = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.bindDn = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.userBase = reader.string();
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.userObjectClasses.push(reader.string());
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.userFilters.push(reader.string());
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.timeout = Duration.decode(reader, reader.uint32());
                    continue;
                }
                case 9: {
                    if (tag !== 74) {
                        break;
                    }
                    message.attributes = LDAPAttributes.decode(reader, reader.uint32());
                    continue;
                }
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.rootCa = Buffer.from(reader.bytes());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            servers: globalThis.Array.isArray(object?.servers) ? object.servers.map((e) => globalThis.String(e)) : [],
            startTls: isSet(object.startTls) ? globalThis.Boolean(object.startTls) : false,
            baseDn: isSet(object.baseDn) ? globalThis.String(object.baseDn) : "",
            bindDn: isSet(object.bindDn) ? globalThis.String(object.bindDn) : "",
            userBase: isSet(object.userBase) ? globalThis.String(object.userBase) : "",
            userObjectClasses: globalThis.Array.isArray(object?.userObjectClasses)
                ? object.userObjectClasses.map((e) => globalThis.String(e))
                : [],
            userFilters: globalThis.Array.isArray(object?.userFilters)
                ? object.userFilters.map((e) => globalThis.String(e))
                : [],
            timeout: isSet(object.timeout) ? Duration.fromJSON(object.timeout) : undefined,
            attributes: isSet(object.attributes) ? LDAPAttributes.fromJSON(object.attributes) : undefined,
            rootCa: isSet(object.rootCa) ? Buffer.from(bytesFromBase64(object.rootCa)) : Buffer.alloc(0),
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.servers?.length) {
            obj.servers = message.servers;
        }
        if (message.startTls !== false) {
            obj.startTls = message.startTls;
        }
        if (message.baseDn !== "") {
            obj.baseDn = message.baseDn;
        }
        if (message.bindDn !== "") {
            obj.bindDn = message.bindDn;
        }
        if (message.userBase !== "") {
            obj.userBase = message.userBase;
        }
        if (message.userObjectClasses?.length) {
            obj.userObjectClasses = message.userObjectClasses;
        }
        if (message.userFilters?.length) {
            obj.userFilters = message.userFilters;
        }
        if (message.timeout !== undefined) {
            obj.timeout = Duration.toJSON(message.timeout);
        }
        if (message.attributes !== undefined) {
            obj.attributes = LDAPAttributes.toJSON(message.attributes);
        }
        if (message.rootCa.length !== 0) {
            obj.rootCa = base64FromBytes(message.rootCa);
        }
        return obj;
    },
    create(base) {
        return LDAPConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseLDAPConfig();
        message.servers = object.servers?.map((e) => e) || [];
        message.startTls = object.startTls ?? false;
        message.baseDn = object.baseDn ?? "";
        message.bindDn = object.bindDn ?? "";
        message.userBase = object.userBase ?? "";
        message.userObjectClasses = object.userObjectClasses?.map((e) => e) || [];
        message.userFilters = object.userFilters?.map((e) => e) || [];
        message.timeout = (object.timeout !== undefined && object.timeout !== null)
            ? Duration.fromPartial(object.timeout)
            : undefined;
        message.attributes = (object.attributes !== undefined && object.attributes !== null)
            ? LDAPAttributes.fromPartial(object.attributes)
            : undefined;
        message.rootCa = object.rootCa ?? Buffer.alloc(0);
        return message;
    },
};
function createBaseSAMLConfig() {
    return {
        metadataXml: Buffer.alloc(0),
        binding: 0,
        withSignedRequest: false,
        nameIdFormat: 0,
        transientMappingAttributeName: undefined,
        federatedLogoutEnabled: undefined,
    };
}
export const SAMLConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.metadataXml.length !== 0) {
            writer.uint32(10).bytes(message.metadataXml);
        }
        if (message.binding !== 0) {
            writer.uint32(16).int32(message.binding);
        }
        if (message.withSignedRequest !== false) {
            writer.uint32(24).bool(message.withSignedRequest);
        }
        if (message.nameIdFormat !== 0) {
            writer.uint32(32).int32(message.nameIdFormat);
        }
        if (message.transientMappingAttributeName !== undefined) {
            writer.uint32(42).string(message.transientMappingAttributeName);
        }
        if (message.federatedLogoutEnabled !== undefined) {
            writer.uint32(48).bool(message.federatedLogoutEnabled);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseSAMLConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.metadataXml = Buffer.from(reader.bytes());
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.binding = reader.int32();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.withSignedRequest = reader.bool();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.nameIdFormat = reader.int32();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.transientMappingAttributeName = reader.string();
                    continue;
                }
                case 6: {
                    if (tag !== 48) {
                        break;
                    }
                    message.federatedLogoutEnabled = reader.bool();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            metadataXml: isSet(object.metadataXml) ? Buffer.from(bytesFromBase64(object.metadataXml)) : Buffer.alloc(0),
            binding: isSet(object.binding) ? sAMLBindingFromJSON(object.binding) : 0,
            withSignedRequest: isSet(object.withSignedRequest) ? globalThis.Boolean(object.withSignedRequest) : false,
            nameIdFormat: isSet(object.nameIdFormat) ? sAMLNameIDFormatFromJSON(object.nameIdFormat) : 0,
            transientMappingAttributeName: isSet(object.transientMappingAttributeName)
                ? globalThis.String(object.transientMappingAttributeName)
                : undefined,
            federatedLogoutEnabled: isSet(object.federatedLogoutEnabled)
                ? globalThis.Boolean(object.federatedLogoutEnabled)
                : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.metadataXml.length !== 0) {
            obj.metadataXml = base64FromBytes(message.metadataXml);
        }
        if (message.binding !== 0) {
            obj.binding = sAMLBindingToJSON(message.binding);
        }
        if (message.withSignedRequest !== false) {
            obj.withSignedRequest = message.withSignedRequest;
        }
        if (message.nameIdFormat !== 0) {
            obj.nameIdFormat = sAMLNameIDFormatToJSON(message.nameIdFormat);
        }
        if (message.transientMappingAttributeName !== undefined) {
            obj.transientMappingAttributeName = message.transientMappingAttributeName;
        }
        if (message.federatedLogoutEnabled !== undefined) {
            obj.federatedLogoutEnabled = message.federatedLogoutEnabled;
        }
        return obj;
    },
    create(base) {
        return SAMLConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseSAMLConfig();
        message.metadataXml = object.metadataXml ?? Buffer.alloc(0);
        message.binding = object.binding ?? 0;
        message.withSignedRequest = object.withSignedRequest ?? false;
        message.nameIdFormat = object.nameIdFormat ?? 0;
        message.transientMappingAttributeName = object.transientMappingAttributeName ?? undefined;
        message.federatedLogoutEnabled = object.federatedLogoutEnabled ?? undefined;
        return message;
    },
};
function createBaseAzureADConfig() {
    return { clientId: "", tenant: undefined, emailVerified: false, scopes: [] };
}
export const AzureADConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        if (message.tenant !== undefined) {
            AzureADTenant.encode(message.tenant, writer.uint32(18).fork()).join();
        }
        if (message.emailVerified !== false) {
            writer.uint32(24).bool(message.emailVerified);
        }
        for (const v of message.scopes) {
            writer.uint32(34).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAzureADConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.tenant = AzureADTenant.decode(reader, reader.uint32());
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.emailVerified = reader.bool();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            tenant: isSet(object.tenant) ? AzureADTenant.fromJSON(object.tenant) : undefined,
            emailVerified: isSet(object.emailVerified) ? globalThis.Boolean(object.emailVerified) : false,
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.tenant !== undefined) {
            obj.tenant = AzureADTenant.toJSON(message.tenant);
        }
        if (message.emailVerified !== false) {
            obj.emailVerified = message.emailVerified;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return AzureADConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseAzureADConfig();
        message.clientId = object.clientId ?? "";
        message.tenant = (object.tenant !== undefined && object.tenant !== null)
            ? AzureADTenant.fromPartial(object.tenant)
            : undefined;
        message.emailVerified = object.emailVerified ?? false;
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function createBaseOptions() {
    return {
        isLinkingAllowed: false,
        isCreationAllowed: false,
        isAutoCreation: false,
        isAutoUpdate: false,
        autoLinking: 0,
    };
}
export const Options = {
    encode(message, writer = new BinaryWriter()) {
        if (message.isLinkingAllowed !== false) {
            writer.uint32(8).bool(message.isLinkingAllowed);
        }
        if (message.isCreationAllowed !== false) {
            writer.uint32(16).bool(message.isCreationAllowed);
        }
        if (message.isAutoCreation !== false) {
            writer.uint32(24).bool(message.isAutoCreation);
        }
        if (message.isAutoUpdate !== false) {
            writer.uint32(32).bool(message.isAutoUpdate);
        }
        if (message.autoLinking !== 0) {
            writer.uint32(40).int32(message.autoLinking);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseOptions();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.isLinkingAllowed = reader.bool();
                    continue;
                }
                case 2: {
                    if (tag !== 16) {
                        break;
                    }
                    message.isCreationAllowed = reader.bool();
                    continue;
                }
                case 3: {
                    if (tag !== 24) {
                        break;
                    }
                    message.isAutoCreation = reader.bool();
                    continue;
                }
                case 4: {
                    if (tag !== 32) {
                        break;
                    }
                    message.isAutoUpdate = reader.bool();
                    continue;
                }
                case 5: {
                    if (tag !== 40) {
                        break;
                    }
                    message.autoLinking = reader.int32();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            isLinkingAllowed: isSet(object.isLinkingAllowed) ? globalThis.Boolean(object.isLinkingAllowed) : false,
            isCreationAllowed: isSet(object.isCreationAllowed) ? globalThis.Boolean(object.isCreationAllowed) : false,
            isAutoCreation: isSet(object.isAutoCreation) ? globalThis.Boolean(object.isAutoCreation) : false,
            isAutoUpdate: isSet(object.isAutoUpdate) ? globalThis.Boolean(object.isAutoUpdate) : false,
            autoLinking: isSet(object.autoLinking) ? autoLinkingOptionFromJSON(object.autoLinking) : 0,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.isLinkingAllowed !== false) {
            obj.isLinkingAllowed = message.isLinkingAllowed;
        }
        if (message.isCreationAllowed !== false) {
            obj.isCreationAllowed = message.isCreationAllowed;
        }
        if (message.isAutoCreation !== false) {
            obj.isAutoCreation = message.isAutoCreation;
        }
        if (message.isAutoUpdate !== false) {
            obj.isAutoUpdate = message.isAutoUpdate;
        }
        if (message.autoLinking !== 0) {
            obj.autoLinking = autoLinkingOptionToJSON(message.autoLinking);
        }
        return obj;
    },
    create(base) {
        return Options.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseOptions();
        message.isLinkingAllowed = object.isLinkingAllowed ?? false;
        message.isCreationAllowed = object.isCreationAllowed ?? false;
        message.isAutoCreation = object.isAutoCreation ?? false;
        message.isAutoUpdate = object.isAutoUpdate ?? false;
        message.autoLinking = object.autoLinking ?? 0;
        return message;
    },
};
function createBaseLDAPAttributes() {
    return {
        idAttribute: "",
        firstNameAttribute: "",
        lastNameAttribute: "",
        displayNameAttribute: "",
        nickNameAttribute: "",
        preferredUsernameAttribute: "",
        emailAttribute: "",
        emailVerifiedAttribute: "",
        phoneAttribute: "",
        phoneVerifiedAttribute: "",
        preferredLanguageAttribute: "",
        avatarUrlAttribute: "",
        profileAttribute: "",
        rootCa: "",
    };
}
export const LDAPAttributes = {
    encode(message, writer = new BinaryWriter()) {
        if (message.idAttribute !== "") {
            writer.uint32(10).string(message.idAttribute);
        }
        if (message.firstNameAttribute !== "") {
            writer.uint32(18).string(message.firstNameAttribute);
        }
        if (message.lastNameAttribute !== "") {
            writer.uint32(26).string(message.lastNameAttribute);
        }
        if (message.displayNameAttribute !== "") {
            writer.uint32(34).string(message.displayNameAttribute);
        }
        if (message.nickNameAttribute !== "") {
            writer.uint32(42).string(message.nickNameAttribute);
        }
        if (message.preferredUsernameAttribute !== "") {
            writer.uint32(50).string(message.preferredUsernameAttribute);
        }
        if (message.emailAttribute !== "") {
            writer.uint32(58).string(message.emailAttribute);
        }
        if (message.emailVerifiedAttribute !== "") {
            writer.uint32(66).string(message.emailVerifiedAttribute);
        }
        if (message.phoneAttribute !== "") {
            writer.uint32(74).string(message.phoneAttribute);
        }
        if (message.phoneVerifiedAttribute !== "") {
            writer.uint32(82).string(message.phoneVerifiedAttribute);
        }
        if (message.preferredLanguageAttribute !== "") {
            writer.uint32(90).string(message.preferredLanguageAttribute);
        }
        if (message.avatarUrlAttribute !== "") {
            writer.uint32(98).string(message.avatarUrlAttribute);
        }
        if (message.profileAttribute !== "") {
            writer.uint32(106).string(message.profileAttribute);
        }
        if (message.rootCa !== "") {
            writer.uint32(114).string(message.rootCa);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseLDAPAttributes();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.idAttribute = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.firstNameAttribute = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.lastNameAttribute = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.displayNameAttribute = reader.string();
                    continue;
                }
                case 5: {
                    if (tag !== 42) {
                        break;
                    }
                    message.nickNameAttribute = reader.string();
                    continue;
                }
                case 6: {
                    if (tag !== 50) {
                        break;
                    }
                    message.preferredUsernameAttribute = reader.string();
                    continue;
                }
                case 7: {
                    if (tag !== 58) {
                        break;
                    }
                    message.emailAttribute = reader.string();
                    continue;
                }
                case 8: {
                    if (tag !== 66) {
                        break;
                    }
                    message.emailVerifiedAttribute = reader.string();
                    continue;
                }
                case 9: {
                    if (tag !== 74) {
                        break;
                    }
                    message.phoneAttribute = reader.string();
                    continue;
                }
                case 10: {
                    if (tag !== 82) {
                        break;
                    }
                    message.phoneVerifiedAttribute = reader.string();
                    continue;
                }
                case 11: {
                    if (tag !== 90) {
                        break;
                    }
                    message.preferredLanguageAttribute = reader.string();
                    continue;
                }
                case 12: {
                    if (tag !== 98) {
                        break;
                    }
                    message.avatarUrlAttribute = reader.string();
                    continue;
                }
                case 13: {
                    if (tag !== 106) {
                        break;
                    }
                    message.profileAttribute = reader.string();
                    continue;
                }
                case 14: {
                    if (tag !== 114) {
                        break;
                    }
                    message.rootCa = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            idAttribute: isSet(object.idAttribute) ? globalThis.String(object.idAttribute) : "",
            firstNameAttribute: isSet(object.firstNameAttribute) ? globalThis.String(object.firstNameAttribute) : "",
            lastNameAttribute: isSet(object.lastNameAttribute) ? globalThis.String(object.lastNameAttribute) : "",
            displayNameAttribute: isSet(object.displayNameAttribute) ? globalThis.String(object.displayNameAttribute) : "",
            nickNameAttribute: isSet(object.nickNameAttribute) ? globalThis.String(object.nickNameAttribute) : "",
            preferredUsernameAttribute: isSet(object.preferredUsernameAttribute)
                ? globalThis.String(object.preferredUsernameAttribute)
                : "",
            emailAttribute: isSet(object.emailAttribute) ? globalThis.String(object.emailAttribute) : "",
            emailVerifiedAttribute: isSet(object.emailVerifiedAttribute)
                ? globalThis.String(object.emailVerifiedAttribute)
                : "",
            phoneAttribute: isSet(object.phoneAttribute) ? globalThis.String(object.phoneAttribute) : "",
            phoneVerifiedAttribute: isSet(object.phoneVerifiedAttribute)
                ? globalThis.String(object.phoneVerifiedAttribute)
                : "",
            preferredLanguageAttribute: isSet(object.preferredLanguageAttribute)
                ? globalThis.String(object.preferredLanguageAttribute)
                : "",
            avatarUrlAttribute: isSet(object.avatarUrlAttribute) ? globalThis.String(object.avatarUrlAttribute) : "",
            profileAttribute: isSet(object.profileAttribute) ? globalThis.String(object.profileAttribute) : "",
            rootCa: isSet(object.rootCa) ? globalThis.String(object.rootCa) : "",
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.idAttribute !== "") {
            obj.idAttribute = message.idAttribute;
        }
        if (message.firstNameAttribute !== "") {
            obj.firstNameAttribute = message.firstNameAttribute;
        }
        if (message.lastNameAttribute !== "") {
            obj.lastNameAttribute = message.lastNameAttribute;
        }
        if (message.displayNameAttribute !== "") {
            obj.displayNameAttribute = message.displayNameAttribute;
        }
        if (message.nickNameAttribute !== "") {
            obj.nickNameAttribute = message.nickNameAttribute;
        }
        if (message.preferredUsernameAttribute !== "") {
            obj.preferredUsernameAttribute = message.preferredUsernameAttribute;
        }
        if (message.emailAttribute !== "") {
            obj.emailAttribute = message.emailAttribute;
        }
        if (message.emailVerifiedAttribute !== "") {
            obj.emailVerifiedAttribute = message.emailVerifiedAttribute;
        }
        if (message.phoneAttribute !== "") {
            obj.phoneAttribute = message.phoneAttribute;
        }
        if (message.phoneVerifiedAttribute !== "") {
            obj.phoneVerifiedAttribute = message.phoneVerifiedAttribute;
        }
        if (message.preferredLanguageAttribute !== "") {
            obj.preferredLanguageAttribute = message.preferredLanguageAttribute;
        }
        if (message.avatarUrlAttribute !== "") {
            obj.avatarUrlAttribute = message.avatarUrlAttribute;
        }
        if (message.profileAttribute !== "") {
            obj.profileAttribute = message.profileAttribute;
        }
        if (message.rootCa !== "") {
            obj.rootCa = message.rootCa;
        }
        return obj;
    },
    create(base) {
        return LDAPAttributes.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseLDAPAttributes();
        message.idAttribute = object.idAttribute ?? "";
        message.firstNameAttribute = object.firstNameAttribute ?? "";
        message.lastNameAttribute = object.lastNameAttribute ?? "";
        message.displayNameAttribute = object.displayNameAttribute ?? "";
        message.nickNameAttribute = object.nickNameAttribute ?? "";
        message.preferredUsernameAttribute = object.preferredUsernameAttribute ?? "";
        message.emailAttribute = object.emailAttribute ?? "";
        message.emailVerifiedAttribute = object.emailVerifiedAttribute ?? "";
        message.phoneAttribute = object.phoneAttribute ?? "";
        message.phoneVerifiedAttribute = object.phoneVerifiedAttribute ?? "";
        message.preferredLanguageAttribute = object.preferredLanguageAttribute ?? "";
        message.avatarUrlAttribute = object.avatarUrlAttribute ?? "";
        message.profileAttribute = object.profileAttribute ?? "";
        message.rootCa = object.rootCa ?? "";
        return message;
    },
};
function createBaseAzureADTenant() {
    return { tenantType: undefined, tenantId: undefined };
}
export const AzureADTenant = {
    encode(message, writer = new BinaryWriter()) {
        if (message.tenantType !== undefined) {
            writer.uint32(8).int32(message.tenantType);
        }
        if (message.tenantId !== undefined) {
            writer.uint32(18).string(message.tenantId);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAzureADTenant();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 8) {
                        break;
                    }
                    message.tenantType = reader.int32();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.tenantId = reader.string();
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            tenantType: isSet(object.tenantType) ? azureADTenantTypeFromJSON(object.tenantType) : undefined,
            tenantId: isSet(object.tenantId) ? globalThis.String(object.tenantId) : undefined,
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.tenantType !== undefined) {
            obj.tenantType = azureADTenantTypeToJSON(message.tenantType);
        }
        if (message.tenantId !== undefined) {
            obj.tenantId = message.tenantId;
        }
        return obj;
    },
    create(base) {
        return AzureADTenant.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseAzureADTenant();
        message.tenantType = object.tenantType ?? undefined;
        message.tenantId = object.tenantId ?? undefined;
        return message;
    },
};
function createBaseAppleConfig() {
    return { clientId: "", teamId: "", keyId: "", scopes: [] };
}
export const AppleConfig = {
    encode(message, writer = new BinaryWriter()) {
        if (message.clientId !== "") {
            writer.uint32(10).string(message.clientId);
        }
        if (message.teamId !== "") {
            writer.uint32(18).string(message.teamId);
        }
        if (message.keyId !== "") {
            writer.uint32(26).string(message.keyId);
        }
        for (const v of message.scopes) {
            writer.uint32(34).string(v);
        }
        return writer;
    },
    decode(input, length) {
        const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
        const end = length === undefined ? reader.len : reader.pos + length;
        const message = createBaseAppleConfig();
        while (reader.pos < end) {
            const tag = reader.uint32();
            switch (tag >>> 3) {
                case 1: {
                    if (tag !== 10) {
                        break;
                    }
                    message.clientId = reader.string();
                    continue;
                }
                case 2: {
                    if (tag !== 18) {
                        break;
                    }
                    message.teamId = reader.string();
                    continue;
                }
                case 3: {
                    if (tag !== 26) {
                        break;
                    }
                    message.keyId = reader.string();
                    continue;
                }
                case 4: {
                    if (tag !== 34) {
                        break;
                    }
                    message.scopes.push(reader.string());
                    continue;
                }
            }
            if ((tag & 7) === 4 || tag === 0) {
                break;
            }
            reader.skip(tag & 7);
        }
        return message;
    },
    fromJSON(object) {
        return {
            clientId: isSet(object.clientId) ? globalThis.String(object.clientId) : "",
            teamId: isSet(object.teamId) ? globalThis.String(object.teamId) : "",
            keyId: isSet(object.keyId) ? globalThis.String(object.keyId) : "",
            scopes: globalThis.Array.isArray(object?.scopes) ? object.scopes.map((e) => globalThis.String(e)) : [],
        };
    },
    toJSON(message) {
        const obj = {};
        if (message.clientId !== "") {
            obj.clientId = message.clientId;
        }
        if (message.teamId !== "") {
            obj.teamId = message.teamId;
        }
        if (message.keyId !== "") {
            obj.keyId = message.keyId;
        }
        if (message.scopes?.length) {
            obj.scopes = message.scopes;
        }
        return obj;
    },
    create(base) {
        return AppleConfig.fromPartial(base ?? {});
    },
    fromPartial(object) {
        const message = createBaseAppleConfig();
        message.clientId = object.clientId ?? "";
        message.teamId = object.teamId ?? "";
        message.keyId = object.keyId ?? "";
        message.scopes = object.scopes?.map((e) => e) || [];
        return message;
    },
};
function bytesFromBase64(b64) {
    return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
}
function base64FromBytes(arr) {
    return globalThis.Buffer.from(arr).toString("base64");
}
function isSet(value) {
    return value !== null && value !== undefined;
}