// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "user.proto" (package "api", syntax proto3)
// tslint:disable
import { ServiceType } from "@protobuf-ts/runtime-rpc";
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
import type { IBinaryWriter } from "@protobuf-ts/runtime";
import { WireType } from "@protobuf-ts/runtime";
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { reflectionMergePartial } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { RequestProjectHeader } from "./shared";
import { RequestOrganisationHeader } from "./shared";
/**
 * @generated from protobuf message api.User
 */
export interface User {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string FirstName = 2 [json_name = "FirstName"];
     */
    firstName: string;
    /**
     * @generated from protobuf field: string LastName = 3 [json_name = "LastName"];
     */
    lastName: string;
    /**
     * @generated from protobuf field: string Mail = 4 [json_name = "Mail"];
     */
    mail: string;
    /**
     * bool Active = 5;
     *
     * @generated from protobuf field: string LanguageCode = 6 [json_name = "LanguageCode"];
     */
    languageCode: string;
    /**
     * @generated from protobuf field: string TimezoneCode = 7 [json_name = "TimezoneCode"];
     */
    timezoneCode: string;
    /**
     * repeated string Roles = 8;
     * repeated string InheritedRoles = 9;
     *
     * @generated from protobuf field: api.UserStatus Status = 10 [json_name = "Status"];
     */
    status: UserStatus;
    /**
     * UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format
     *
     * @generated from protobuf field: string CreatedAt = 11 [json_name = "CreatedAt"];
     */
    createdAt: string;
    /**
     * @generated from protobuf field: api.UserType Type = 12 [json_name = "Type"];
     */
    type: UserType;
    /**
     * @generated from protobuf field: string PartnerAppID = 13 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * Only for SA
     *
     * @generated from protobuf field: string ExpiresAt = 14 [json_name = "ExpiresAt"];
     */
    expiresAt: string;
    /**
     * @generated from protobuf field: string PartnerID = 15 [json_name = "PartnerID"];
     */
    partnerID: string;
    /**
     * @generated from protobuf field: api.TwoFAValue TwoFA = 16 [json_name = "TwoFA"];
     */
    twoFA: TwoFAValue;
    /**
     * @generated from protobuf field: bool TemporarilyLocked = 17 [json_name = "TemporarilyLocked"];
     */
    temporarilyLocked: boolean;
}
/**
 * @generated from protobuf message api.RemoveUserRequest
 */
export interface RemoveUserRequest {
    /**
     * @generated from protobuf field: string UserID = 1 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.EnrollUserRequest
 */
export interface EnrollUserRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
    /**
     * The locale the user will be enrolled with following the specification defined at
     * http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
     * Examples are: "en-US", "fr-CH", "es-MX"
     *
     * @generated from protobuf field: string locale = 3;
     */
    locale: string;
    /**
     * @generated from protobuf field: bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];
     */
    forceTwoFA: boolean;
}
/**
 * @generated from protobuf message api.SendVerificationMailRequest
 */
export interface SendVerificationMailRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.SendVerificationMailAsRequest
 */
export interface SendVerificationMailAsRequest {
    /**
     * @generated from protobuf field: string SenderMail = 1 [json_name = "SenderMail"];
     */
    senderMail: string; // The mail address of the user who is inviting the other user.
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string; // The user ID of the user who is invited and will receive the mail.
    /**
     * @generated from protobuf field: string OrganisationID = 3 [json_name = "OrganisationID"];
     */
    organisationID: string; // The organisation ID the user is invited to, if any. If ProjectID is set, this field is ignored and the organisation ID is taken from the project.
    /**
     * @generated from protobuf field: string ProjectID = 4 [json_name = "ProjectID"];
     */
    projectID: string; // The project ID the user is invited to, if any.
}
/**
 * @generated from protobuf message api.EnrollUserProjectRequest
 */
export interface EnrollUserProjectRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
    /**
     * The locale the user will be enrolled with following the specification defined at
     * http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
     * Examples are: "en-US", "fr-CH", "es-MX"
     *
     * @generated from protobuf field: string locale = 3;
     */
    locale: string;
    /**
     * @generated from protobuf field: bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];
     */
    forceTwoFA: boolean;
}
/**
 * @generated from protobuf message api.SendVerificationMailProjectRequest
 */
export interface SendVerificationMailProjectRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.CreateSARequest
 */
export interface CreateSARequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
}
/**
 * @generated from protobuf message api.RenewSARequest
 */
export interface RenewSARequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
}
/**
 * @generated from protobuf message api.RemoveSARequest
 */
export interface RemoveSARequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
}
/**
 * @generated from protobuf message api.SuggestSANameRequest
 */
export interface SuggestSANameRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
}
/**
 * @generated from protobuf message api.ListPlatformUsersRequest
 */
export interface ListPlatformUsersRequest {
}
/**
 * @generated from protobuf message api.ListOrganisationUsersRequest
 */
export interface ListOrganisationUsersRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
}
/**
 * @generated from protobuf message api.ListProjectUsersRequest
 */
export interface ListProjectUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
}
/**
 * @generated from protobuf message api.ListPartnerAppUsersRequest
 */
export interface ListPartnerAppUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string PartnerAppID = 2 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
}
/**
 * @generated from protobuf message api.ListConnectionUsersRequest
 */
export interface ListConnectionUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ConnectionID = 2 [json_name = "ConnectionID"];
     */
    connectionID: string;
}
/**
 * @generated from protobuf message api.GetPlatformUserRequest
 */
export interface GetPlatformUserRequest {
    /**
     * @generated from protobuf field: string UserID = 1 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.GetOrganisationUserRequest
 */
export interface GetOrganisationUserRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.GetProjectUserRequest
 */
export interface GetProjectUserRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserPlatformRolesRequest
 */
export interface ListUserPlatformRolesRequest {
    /**
     * @generated from protobuf field: string UserID = 1 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserOrganisationRolesRequest
 */
export interface ListUserOrganisationRolesRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserProjectRolesRequest
 */
export interface ListUserProjectRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserPartnerAppRolesRequest
 */
export interface ListUserPartnerAppRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string PartnerAppID = 2 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserConnectionRolesRequest
 */
export interface ListUserConnectionRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ConnectionID = 2 [json_name = "ConnectionID"];
     */
    connectionID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ListUserAttachmentTypeRolesRequest
 */
export interface ListUserAttachmentTypeRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"];
     */
    attachmentTypeID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.SetUserPlatformRolesRequest
 */
export interface SetUserPlatformRolesRequest {
    /**
     * @generated from protobuf field: string UserID = 1 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 2 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.SetUserOrganisationRolesRequest
 */
export interface SetUserOrganisationRolesRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 3 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.SetUserProjectRolesRequest
 */
export interface SetUserProjectRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 3 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.SetUserPartnerAppRolesRequest
 */
export interface SetUserPartnerAppRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string PartnerAppID = 2 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 4 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.SetUserConnectionRolesRequest
 */
export interface SetUserConnectionRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ConnectionID = 2 [json_name = "ConnectionID"];
     */
    connectionID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 4 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.SetUserAttachmentTypeRolesRequest
 */
export interface SetUserAttachmentTypeRolesRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"];
     */
    attachmentTypeID: string;
    /**
     * @generated from protobuf field: string UserID = 3 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 4 [json_name = "Roles"];
     */
    roles: string[];
}
/**
 * @generated from protobuf message api.RemoveUserResult
 */
export interface RemoveUserResult {
}
/**
 * @generated from protobuf message api.EnrollUserResult
 */
export interface EnrollUserResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.SendVerificationMailResult
 */
export interface SendVerificationMailResult {
}
/**
 * @generated from protobuf message api.CreateSAResult
 */
export interface CreateSAResult {
    /**
     * @generated from protobuf field: api.User SA = 1 [json_name = "SA"];
     */
    sA?: User;
    /**
     * @generated from protobuf field: string PEM = 2 [json_name = "PEM"];
     */
    pEM: string;
}
/**
 * @generated from protobuf message api.RenewSAResult
 */
export interface RenewSAResult {
    /**
     * @generated from protobuf field: api.User SA = 1 [json_name = "SA"];
     */
    sA?: User;
    /**
     * @generated from protobuf field: string PEM = 2 [json_name = "PEM"];
     */
    pEM: string;
}
/**
 * @generated from protobuf message api.RemoveSAResult
 */
export interface RemoveSAResult {
}
/**
 * @generated from protobuf message api.SuggestSANameResult
 */
export interface SuggestSANameResult {
    /**
     * @generated from protobuf field: string Name = 1 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
}
/**
 * @generated from protobuf message api.ListPlatformUsersResult
 */
export interface ListPlatformUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.ListOrganisationUsersResult
 */
export interface ListOrganisationUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.ListProjectUsersResult
 */
export interface ListProjectUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.ListPartnerAppUsersResult
 */
export interface ListPartnerAppUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.ListConnectionUsersResult
 */
export interface ListConnectionUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.GetPlatformUserResult
 */
export interface GetPlatformUserResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.GetOrganisationUserResult
 */
export interface GetOrganisationUserResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.GetProjectUserResult
 */
export interface GetProjectUserResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.ListUserPlatformRolesResult
 */
export interface ListUserPlatformRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.ListUserOrganisationRolesResult
 */
export interface ListUserOrganisationRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.ListUserProjectRolesResult
 */
export interface ListUserProjectRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.ListUserPartnerAppRolesResult
 */
export interface ListUserPartnerAppRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.ListUserConnectionRolesResult
 */
export interface ListUserConnectionRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.ListUserAttachmentTypeRolesResult
 */
export interface ListUserAttachmentTypeRolesResult {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[];
    /**
     * @generated from protobuf field: repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];
     */
    inheritedRoles: string[];
}
/**
 * @generated from protobuf message api.SetUserPlatformRolesResult
 */
export interface SetUserPlatformRolesResult {
}
/**
 * @generated from protobuf message api.SetUserOrganisationRolesResult
 */
export interface SetUserOrganisationRolesResult {
}
/**
 * @generated from protobuf message api.SetUserProjectRolesResult
 */
export interface SetUserProjectRolesResult {
}
/**
 * @generated from protobuf message api.SetUserPartnerAppRolesResult
 */
export interface SetUserPartnerAppRolesResult {
}
/**
 * @generated from protobuf message api.SetUserConnectionRolesResult
 */
export interface SetUserConnectionRolesResult {
}
/**
 * @generated from protobuf message api.SetUserAttachmentTypeRolesResult
 */
export interface SetUserAttachmentTypeRolesResult {
}
/**
 * @generated from protobuf message api.EnrollUserWithoutMailRequest
 */
export interface EnrollUserWithoutMailRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
    /**
     * The locale the user will be enrolled with following the specification defined at
     * http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
     * Examples are: "en-US", "fr-CH", "es-MX"
     *
     * @generated from protobuf field: string locale = 3;
     */
    locale: string;
    /**
     * @generated from protobuf field: bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];
     */
    forceTwoFA: boolean;
}
/**
 * @generated from protobuf message api.EnrollUserWithoutMailResult
 */
export interface EnrollUserWithoutMailResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.EnrollUserProjectWithoutMailRequest
 */
export interface EnrollUserProjectWithoutMailRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string Mail = 2 [json_name = "Mail"];
     */
    mail: string;
    /**
     * The locale the user will be enrolled with following the specification defined at
     * http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
     * Examples are: "en-US", "fr-CH", "es-MX"
     *
     * @generated from protobuf field: string locale = 3;
     */
    locale: string;
    /**
     * @generated from protobuf field: bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];
     */
    forceTwoFA: boolean;
}
/**
 * @generated from protobuf message api.UpdateTwoFAPlatformRequest
 */
export interface UpdateTwoFAPlatformRequest {
    /**
     * @generated from protobuf field: string UserID = 1 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: api.TwoFAValue Value = 2 [json_name = "Value"];
     */
    value: TwoFAValue;
}
/**
 * @generated from protobuf message api.UpdateTwoFAPlatformResult
 */
export interface UpdateTwoFAPlatformResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.ForceTwoFAOrganisationRequest
 */
export interface ForceTwoFAOrganisationRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
    /**
     * @generated from protobuf field: bool ForceTwoFA = 3 [json_name = "ForceTwoFA"];
     */
    forceTwoFA: boolean;
}
/**
 * @generated from protobuf message api.ForceProjectUserTwoFARequest
 */
export interface ForceProjectUserTwoFARequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string UserID = 2 [json_name = "UserID"];
     */
    userID: string;
}
/**
 * @generated from protobuf message api.ForceTwoFAResult
 */
export interface ForceTwoFAResult {
    /**
     * @generated from protobuf field: api.User User = 1 [json_name = "User"];
     */
    user?: User;
}
/**
 * @generated from protobuf message api.FindUsersFilters
 */
export interface FindUsersFilters {
    /**
     * @generated from protobuf field: string Mail = 1 [json_name = "Mail"];
     */
    mail: string;
    /**
     * @generated from protobuf field: api.UserStatus Status = 2 [json_name = "Status"];
     */
    status: UserStatus;
    /**
     * @generated from protobuf field: string FirstName = 3 [json_name = "FirstName"];
     */
    firstName: string;
    /**
     * @generated from protobuf field: string LastName = 4 [json_name = "LastName"];
     */
    lastName: string;
    /**
     * @generated from protobuf field: string LanguageCode = 5 [json_name = "LanguageCode"];
     */
    languageCode: string;
    /**
     * @generated from protobuf field: api.UserType Type = 6 [json_name = "Type"];
     */
    type: UserType;
    /**
     * @generated from protobuf field: int32 Limit = 7 [json_name = "Limit"];
     */
    limit: number;
}
/**
 * @generated from protobuf message api.FindPlatformUsersRequest
 */
export interface FindPlatformUsersRequest {
    /**
     * @generated from protobuf field: api.FindUsersFilters Filter = 1 [json_name = "Filter"];
     */
    filter?: FindUsersFilters;
}
/**
 * @generated from protobuf message api.FindOrganisationUsersRequest
 */
export interface FindOrganisationUsersRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: api.FindUsersFilters Filter = 2 [json_name = "Filter"];
     */
    filter?: FindUsersFilters;
}
/**
 * @generated from protobuf message api.FindProjectUsersRequest
 */
export interface FindProjectUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: api.FindUsersFilters Filter = 2 [json_name = "Filter"];
     */
    filter?: FindUsersFilters;
}
/**
 * @generated from protobuf message api.FindPartnerAppUsersRequest
 */
export interface FindPartnerAppUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string PartnerAppID = 2 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * @generated from protobuf field: api.FindUsersFilters Filter = 3 [json_name = "Filter"];
     */
    filter?: FindUsersFilters;
}
/**
 * @generated from protobuf message api.FindConnectionUsersRequest
 */
export interface FindConnectionUsersRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ConnectionID = 2 [json_name = "ConnectionID"];
     */
    connectionID: string;
    /**
     * @generated from protobuf field: api.FindUsersFilters Filter = 3 [json_name = "Filter"];
     */
    filter?: FindUsersFilters;
}
/**
 * @generated from protobuf message api.FindUsersResult
 */
export interface FindUsersResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf message api.ListUsersInPlatformRoleRequest
 */
export interface ListUsersInPlatformRoleRequest {
    /**
     * @generated from protobuf field: repeated string Roles = 1 [json_name = "Roles"];
     */
    roles: string[]; // The roles to filter on (at least one)
}
/**
 * @generated from protobuf message api.ListUsersInOrganisationRoleRequest
 */
export interface ListUsersInOrganisationRoleRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: repeated string Roles = 2 [json_name = "Roles"];
     */
    roles: string[]; // The roles to filter on (at least one)
}
/**
 * @generated from protobuf message api.ListUsersInProjectRoleRequest
 */
export interface ListUsersInProjectRoleRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: repeated string Roles = 3 [json_name = "Roles"];
     */
    roles: string[]; // The roles to filter on (at least one)
}
/**
 * @generated from protobuf message api.ListUsersInPartnerAppRoleRequest
 */
export interface ListUsersInPartnerAppRoleRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string PartnerAppID = 2 [json_name = "PartnerAppID"];
     */
    partnerAppID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 3 [json_name = "Roles"];
     */
    roles: string[]; // The roles to filter on (at least one)
}
/**
 * @generated from protobuf message api.ListUsersInConnectionRoleRequest
 */
export interface ListUsersInConnectionRoleRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ConnectionID = 2 [json_name = "ConnectionID"];
     */
    connectionID: string;
    /**
     * @generated from protobuf field: repeated string Roles = 3 [json_name = "Roles"];
     */
    roles: string[]; // The roles to filter on (at least one)
}
/**
 * @generated from protobuf message api.ListUsersInRoleResult
 */
export interface ListUsersInRoleResult {
    /**
     * @generated from protobuf field: repeated api.User Users = 1 [json_name = "Users"];
     */
    users: User[];
}
/**
 * @generated from protobuf enum api.TwoFAValue
 */
export enum TwoFAValue {
    /**
     * @generated from protobuf enum value: TWOFA_VALUE_UNKNOWN = 0;
     */
    TWOFA_VALUE_UNKNOWN = 0,
    /**
     * 2FA is optional (default)
     *
     * @generated from protobuf enum value: TWOFA_VALUE_OPTIONAL = 10;
     */
    TWOFA_VALUE_OPTIONAL = 10,
    /**
     * 2FA is mandatory
     *
     * @generated from protobuf enum value: TWOFA_VALUE_FORCE = 20;
     */
    TWOFA_VALUE_FORCE = 20,
    /**
     * 2FA will be skipped
     *
     * @generated from protobuf enum value: TWOFA_VALUE_SKIP = 30;
     */
    TWOFA_VALUE_SKIP = 30
}
/**
 * @generated from protobuf enum api.UserStatus
 */
export enum UserStatus {
    /**
     * @generated from protobuf enum value: USER_STATUS_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * Email not yet verified
     *
     * @generated from protobuf enum value: USER_STATUS_PENDING = 10;
     */
    PENDING = 10,
    /**
     * Email invitation expired
     *
     * @generated from protobuf enum value: USER_STATUS_EXPIRED = 11;
     */
    EXPIRED = 11,
    /**
     * Email verified, user active
     *
     * @generated from protobuf enum value: USER_STATUS_ACTIVE = 20;
     */
    ACTIVE = 20,
    /**
     * @generated from protobuf enum value: USER_STATUS_DISABLED = 30;
     */
    DISABLED = 30
}
/**
 * @generated from protobuf enum api.UserType
 */
export enum UserType {
    /**
     * @generated from protobuf enum value: USER_TYPE_UNKNOWN = 0;
     */
    UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: USER_TYPE_USER = 10;
     */
    USER = 10,
    /**
     * @generated from protobuf enum value: USER_TYPE_SERVICE_ACCOUNT = 20;
     */
    SERVICE_ACCOUNT = 20
}
// @generated message type with reflection information, may provide speed optimized methods
class User$Type extends MessageType<User> {
    constructor() {
        super("api.User", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "FirstName", kind: "scalar", jsonName: "FirstName", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "LastName", kind: "scalar", jsonName: "LastName", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "LanguageCode", kind: "scalar", jsonName: "LanguageCode", T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "TimezoneCode", kind: "scalar", jsonName: "TimezoneCode", T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "Status", kind: "enum", jsonName: "Status", T: () => ["api.UserStatus", UserStatus, "USER_STATUS_"] },
            { no: 11, name: "CreatedAt", kind: "scalar", jsonName: "CreatedAt", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format" } } },
            { no: 12, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.UserType", UserType, "USER_TYPE_"], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "Type of the user, could be a Service Account or a normal User" } } },
            { no: 13, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "If the user is a Service Account, the PartnerAppID is the ID of the partner app it belongs to, empty otherwise" } } },
            { no: 14, name: "ExpiresAt", kind: "scalar", jsonName: "ExpiresAt", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { dateIso8601: true } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "UTC date/time in <a href='https://en.wikipedia.org/wiki/ISO_8601'>ISO 8601</a> format ; only for Service Accounts, empty otherwise" } } },
            { no: 15, name: "PartnerID", kind: "scalar", jsonName: "PartnerID", T: 9 /*ScalarType.STRING*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "The Partner ID the user belongs to. If empty, the user is not affiliated to a partner" } } },
            { no: 16, name: "TwoFA", kind: "enum", jsonName: "TwoFA", T: () => ["api.TwoFAValue", TwoFAValue], options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "The 2FA value for the user" } } },
            { no: 17, name: "TemporarilyLocked", kind: "scalar", jsonName: "TemporarilyLocked", T: 8 /*ScalarType.BOOL*/, options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { description: "If the user has been temporarily locked due to too many failed login attempts" } } }
        ]);
    }
    create(value?: PartialMessage<User>): User {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.firstName = "";
        message.lastName = "";
        message.mail = "";
        message.languageCode = "";
        message.timezoneCode = "";
        message.status = 0;
        message.createdAt = "";
        message.type = 0;
        message.partnerAppID = "";
        message.expiresAt = "";
        message.partnerID = "";
        message.twoFA = 0;
        message.temporarilyLocked = false;
        if (value !== undefined)
            reflectionMergePartial<User>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: User): User {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = reader.string();
                    break;
                case /* string FirstName = 2 [json_name = "FirstName"];*/ 2:
                    message.firstName = reader.string();
                    break;
                case /* string LastName = 3 [json_name = "LastName"];*/ 3:
                    message.lastName = reader.string();
                    break;
                case /* string Mail = 4 [json_name = "Mail"];*/ 4:
                    message.mail = reader.string();
                    break;
                case /* string LanguageCode = 6 [json_name = "LanguageCode"];*/ 6:
                    message.languageCode = reader.string();
                    break;
                case /* string TimezoneCode = 7 [json_name = "TimezoneCode"];*/ 7:
                    message.timezoneCode = reader.string();
                    break;
                case /* api.UserStatus Status = 10 [json_name = "Status"];*/ 10:
                    message.status = reader.int32();
                    break;
                case /* string CreatedAt = 11 [json_name = "CreatedAt"];*/ 11:
                    message.createdAt = reader.string();
                    break;
                case /* api.UserType Type = 12 [json_name = "Type"];*/ 12:
                    message.type = reader.int32();
                    break;
                case /* string PartnerAppID = 13 [json_name = "PartnerAppID"];*/ 13:
                    message.partnerAppID = reader.string();
                    break;
                case /* string ExpiresAt = 14 [json_name = "ExpiresAt"];*/ 14:
                    message.expiresAt = reader.string();
                    break;
                case /* string PartnerID = 15 [json_name = "PartnerID"];*/ 15:
                    message.partnerID = reader.string();
                    break;
                case /* api.TwoFAValue TwoFA = 16 [json_name = "TwoFA"];*/ 16:
                    message.twoFA = reader.int32();
                    break;
                case /* bool TemporarilyLocked = 17 [json_name = "TemporarilyLocked"];*/ 17:
                    message.temporarilyLocked = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: User, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string FirstName = 2 [json_name = "FirstName"]; */
        if (message.firstName !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.firstName);
        /* string LastName = 3 [json_name = "LastName"]; */
        if (message.lastName !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.lastName);
        /* string Mail = 4 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.mail);
        /* string LanguageCode = 6 [json_name = "LanguageCode"]; */
        if (message.languageCode !== "")
            writer.tag(6, WireType.LengthDelimited).string(message.languageCode);
        /* string TimezoneCode = 7 [json_name = "TimezoneCode"]; */
        if (message.timezoneCode !== "")
            writer.tag(7, WireType.LengthDelimited).string(message.timezoneCode);
        /* api.UserStatus Status = 10 [json_name = "Status"]; */
        if (message.status !== 0)
            writer.tag(10, WireType.Varint).int32(message.status);
        /* string CreatedAt = 11 [json_name = "CreatedAt"]; */
        if (message.createdAt !== "")
            writer.tag(11, WireType.LengthDelimited).string(message.createdAt);
        /* api.UserType Type = 12 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(12, WireType.Varint).int32(message.type);
        /* string PartnerAppID = 13 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(13, WireType.LengthDelimited).string(message.partnerAppID);
        /* string ExpiresAt = 14 [json_name = "ExpiresAt"]; */
        if (message.expiresAt !== "")
            writer.tag(14, WireType.LengthDelimited).string(message.expiresAt);
        /* string PartnerID = 15 [json_name = "PartnerID"]; */
        if (message.partnerID !== "")
            writer.tag(15, WireType.LengthDelimited).string(message.partnerID);
        /* api.TwoFAValue TwoFA = 16 [json_name = "TwoFA"]; */
        if (message.twoFA !== 0)
            writer.tag(16, WireType.Varint).int32(message.twoFA);
        /* bool TemporarilyLocked = 17 [json_name = "TemporarilyLocked"]; */
        if (message.temporarilyLocked !== false)
            writer.tag(17, WireType.Varint).bool(message.temporarilyLocked);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.User
 */
export const User = new User$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RemoveUserRequest$Type extends MessageType<RemoveUserRequest> {
    constructor() {
        super("api.RemoveUserRequest", [
            { no: 1, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["UserID"] } } });
    }
    create(value?: PartialMessage<RemoveUserRequest>): RemoveUserRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<RemoveUserRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveUserRequest): RemoveUserRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string UserID = 1 [json_name = "UserID"];*/ 1:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RemoveUserRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string UserID = 1 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RemoveUserRequest
 */
export const RemoveUserRequest = new RemoveUserRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserRequest$Type extends MessageType<EnrollUserRequest> {
    constructor() {
        super("api.EnrollUserRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "locale", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ForceTwoFA", kind: "scalar", jsonName: "ForceTwoFA", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<EnrollUserRequest>): EnrollUserRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        message.locale = "";
        message.forceTwoFA = false;
        if (value !== undefined)
            reflectionMergePartial<EnrollUserRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserRequest): EnrollUserRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                case /* string locale */ 3:
                    message.locale = reader.string();
                    break;
                case /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];*/ 4:
                    message.forceTwoFA = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        /* string locale = 3; */
        if (message.locale !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.locale);
        /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"]; */
        if (message.forceTwoFA !== false)
            writer.tag(4, WireType.Varint).bool(message.forceTwoFA);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserRequest
 */
export const EnrollUserRequest = new EnrollUserRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SendVerificationMailRequest$Type extends MessageType<SendVerificationMailRequest> {
    constructor() {
        super("api.SendVerificationMailRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<SendVerificationMailRequest>): SendVerificationMailRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<SendVerificationMailRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendVerificationMailRequest): SendVerificationMailRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SendVerificationMailRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SendVerificationMailRequest
 */
export const SendVerificationMailRequest = new SendVerificationMailRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SendVerificationMailAsRequest$Type extends MessageType<SendVerificationMailAsRequest> {
    constructor() {
        super("api.SendVerificationMailAsRequest", [
            { no: 1, name: "SenderMail", kind: "scalar", jsonName: "SenderMail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "OrganisationID", kind: "scalar", jsonName: "OrganisationID", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["SenderMail", "UserID"] } } });
    }
    create(value?: PartialMessage<SendVerificationMailAsRequest>): SendVerificationMailAsRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.senderMail = "";
        message.userID = "";
        message.organisationID = "";
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<SendVerificationMailAsRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendVerificationMailAsRequest): SendVerificationMailAsRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string SenderMail = 1 [json_name = "SenderMail"];*/ 1:
                    message.senderMail = reader.string();
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                case /* string OrganisationID = 3 [json_name = "OrganisationID"];*/ 3:
                    message.organisationID = reader.string();
                    break;
                case /* string ProjectID = 4 [json_name = "ProjectID"];*/ 4:
                    message.projectID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SendVerificationMailAsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string SenderMail = 1 [json_name = "SenderMail"]; */
        if (message.senderMail !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.senderMail);
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        /* string OrganisationID = 3 [json_name = "OrganisationID"]; */
        if (message.organisationID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.organisationID);
        /* string ProjectID = 4 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.projectID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SendVerificationMailAsRequest
 */
export const SendVerificationMailAsRequest = new SendVerificationMailAsRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserProjectRequest$Type extends MessageType<EnrollUserProjectRequest> {
    constructor() {
        super("api.EnrollUserProjectRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "locale", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ForceTwoFA", kind: "scalar", jsonName: "ForceTwoFA", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<EnrollUserProjectRequest>): EnrollUserProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        message.locale = "";
        message.forceTwoFA = false;
        if (value !== undefined)
            reflectionMergePartial<EnrollUserProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserProjectRequest): EnrollUserProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                case /* string locale */ 3:
                    message.locale = reader.string();
                    break;
                case /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];*/ 4:
                    message.forceTwoFA = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        /* string locale = 3; */
        if (message.locale !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.locale);
        /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"]; */
        if (message.forceTwoFA !== false)
            writer.tag(4, WireType.Varint).bool(message.forceTwoFA);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserProjectRequest
 */
export const EnrollUserProjectRequest = new EnrollUserProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SendVerificationMailProjectRequest$Type extends MessageType<SendVerificationMailProjectRequest> {
    constructor() {
        super("api.SendVerificationMailProjectRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<SendVerificationMailProjectRequest>): SendVerificationMailProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<SendVerificationMailProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendVerificationMailProjectRequest): SendVerificationMailProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SendVerificationMailProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SendVerificationMailProjectRequest
 */
export const SendVerificationMailProjectRequest = new SendVerificationMailProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateSARequest$Type extends MessageType<CreateSARequest> {
    constructor() {
        super("api.CreateSARequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", pattern: "^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { pattern: "^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Name"] } } });
    }
    create(value?: PartialMessage<CreateSARequest>): CreateSARequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        if (value !== undefined)
            reflectionMergePartial<CreateSARequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateSARequest): CreateSARequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Name = 2 [json_name = "Name"];*/ 2:
                    message.name = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: CreateSARequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Name = 2 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.name);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CreateSARequest
 */
export const CreateSARequest = new CreateSARequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RenewSARequest$Type extends MessageType<RenewSARequest> {
    constructor() {
        super("api.RenewSARequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<RenewSARequest>): RenewSARequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        if (value !== undefined)
            reflectionMergePartial<RenewSARequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RenewSARequest): RenewSARequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RenewSARequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RenewSARequest
 */
export const RenewSARequest = new RenewSARequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RemoveSARequest$Type extends MessageType<RemoveSARequest> {
    constructor() {
        super("api.RemoveSARequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<RemoveSARequest>): RemoveSARequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        if (value !== undefined)
            reflectionMergePartial<RemoveSARequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveSARequest): RemoveSARequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RemoveSARequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RemoveSARequest
 */
export const RemoveSARequest = new RemoveSARequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SuggestSANameRequest$Type extends MessageType<SuggestSANameRequest> {
    constructor() {
        super("api.SuggestSANameRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", pattern: "^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { pattern: "^[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*$" } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Name"] } } });
    }
    create(value?: PartialMessage<SuggestSANameRequest>): SuggestSANameRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        if (value !== undefined)
            reflectionMergePartial<SuggestSANameRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSANameRequest): SuggestSANameRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Name = 2 [json_name = "Name"];*/ 2:
                    message.name = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SuggestSANameRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Name = 2 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.name);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SuggestSANameRequest
 */
export const SuggestSANameRequest = new SuggestSANameRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListPlatformUsersRequest$Type extends MessageType<ListPlatformUsersRequest> {
    constructor() {
        super("api.ListPlatformUsersRequest", []);
    }
    create(value?: PartialMessage<ListPlatformUsersRequest>): ListPlatformUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ListPlatformUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPlatformUsersRequest): ListPlatformUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListPlatformUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListPlatformUsersRequest
 */
export const ListPlatformUsersRequest = new ListPlatformUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListOrganisationUsersRequest$Type extends MessageType<ListOrganisationUsersRequest> {
    constructor() {
        super("api.ListOrganisationUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<ListOrganisationUsersRequest>): ListOrganisationUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ListOrganisationUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListOrganisationUsersRequest): ListOrganisationUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListOrganisationUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListOrganisationUsersRequest
 */
export const ListOrganisationUsersRequest = new ListOrganisationUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListProjectUsersRequest$Type extends MessageType<ListProjectUsersRequest> {
    constructor() {
        super("api.ListProjectUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<ListProjectUsersRequest>): ListProjectUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ListProjectUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListProjectUsersRequest): ListProjectUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListProjectUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListProjectUsersRequest
 */
export const ListProjectUsersRequest = new ListProjectUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListPartnerAppUsersRequest$Type extends MessageType<ListPartnerAppUsersRequest> {
    constructor() {
        super("api.ListPartnerAppUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "PartnerAppID"] } } });
    }
    create(value?: PartialMessage<ListPartnerAppUsersRequest>): ListPartnerAppUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        if (value !== undefined)
            reflectionMergePartial<ListPartnerAppUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPartnerAppUsersRequest): ListPartnerAppUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string PartnerAppID = 2 [json_name = "PartnerAppID"];*/ 2:
                    message.partnerAppID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListPartnerAppUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerAppID = 2 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.partnerAppID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListPartnerAppUsersRequest
 */
export const ListPartnerAppUsersRequest = new ListPartnerAppUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListConnectionUsersRequest$Type extends MessageType<ListConnectionUsersRequest> {
    constructor() {
        super("api.ListConnectionUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ConnectionID"] } } });
    }
    create(value?: PartialMessage<ListConnectionUsersRequest>): ListConnectionUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        if (value !== undefined)
            reflectionMergePartial<ListConnectionUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListConnectionUsersRequest): ListConnectionUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ConnectionID = 2 [json_name = "ConnectionID"];*/ 2:
                    message.connectionID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListConnectionUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ConnectionID = 2 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.connectionID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListConnectionUsersRequest
 */
export const ListConnectionUsersRequest = new ListConnectionUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetPlatformUserRequest$Type extends MessageType<GetPlatformUserRequest> {
    constructor() {
        super("api.GetPlatformUserRequest", [
            { no: 1, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["UserID"] } } });
    }
    create(value?: PartialMessage<GetPlatformUserRequest>): GetPlatformUserRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<GetPlatformUserRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetPlatformUserRequest): GetPlatformUserRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string UserID = 1 [json_name = "UserID"];*/ 1:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetPlatformUserRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string UserID = 1 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetPlatformUserRequest
 */
export const GetPlatformUserRequest = new GetPlatformUserRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetOrganisationUserRequest$Type extends MessageType<GetOrganisationUserRequest> {
    constructor() {
        super("api.GetOrganisationUserRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<GetOrganisationUserRequest>): GetOrganisationUserRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<GetOrganisationUserRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetOrganisationUserRequest): GetOrganisationUserRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetOrganisationUserRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetOrganisationUserRequest
 */
export const GetOrganisationUserRequest = new GetOrganisationUserRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetProjectUserRequest$Type extends MessageType<GetProjectUserRequest> {
    constructor() {
        super("api.GetProjectUserRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<GetProjectUserRequest>): GetProjectUserRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<GetProjectUserRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetProjectUserRequest): GetProjectUserRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetProjectUserRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetProjectUserRequest
 */
export const GetProjectUserRequest = new GetProjectUserRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserPlatformRolesRequest$Type extends MessageType<ListUserPlatformRolesRequest> {
    constructor() {
        super("api.ListUserPlatformRolesRequest", [
            { no: 1, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["UserID"] } } });
    }
    create(value?: PartialMessage<ListUserPlatformRolesRequest>): ListUserPlatformRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserPlatformRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserPlatformRolesRequest): ListUserPlatformRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string UserID = 1 [json_name = "UserID"];*/ 1:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserPlatformRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string UserID = 1 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserPlatformRolesRequest
 */
export const ListUserPlatformRolesRequest = new ListUserPlatformRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserOrganisationRolesRequest$Type extends MessageType<ListUserOrganisationRolesRequest> {
    constructor() {
        super("api.ListUserOrganisationRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<ListUserOrganisationRolesRequest>): ListUserOrganisationRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserOrganisationRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserOrganisationRolesRequest): ListUserOrganisationRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserOrganisationRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserOrganisationRolesRequest
 */
export const ListUserOrganisationRolesRequest = new ListUserOrganisationRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserProjectRolesRequest$Type extends MessageType<ListUserProjectRolesRequest> {
    constructor() {
        super("api.ListUserProjectRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<ListUserProjectRolesRequest>): ListUserProjectRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserProjectRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserProjectRolesRequest): ListUserProjectRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserProjectRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserProjectRolesRequest
 */
export const ListUserProjectRolesRequest = new ListUserProjectRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserPartnerAppRolesRequest$Type extends MessageType<ListUserPartnerAppRolesRequest> {
    constructor() {
        super("api.ListUserPartnerAppRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "PartnerAppID", "UserID"] } } });
    }
    create(value?: PartialMessage<ListUserPartnerAppRolesRequest>): ListUserPartnerAppRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserPartnerAppRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserPartnerAppRolesRequest): ListUserPartnerAppRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string PartnerAppID = 2 [json_name = "PartnerAppID"];*/ 2:
                    message.partnerAppID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserPartnerAppRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerAppID = 2 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.partnerAppID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserPartnerAppRolesRequest
 */
export const ListUserPartnerAppRolesRequest = new ListUserPartnerAppRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserConnectionRolesRequest$Type extends MessageType<ListUserConnectionRolesRequest> {
    constructor() {
        super("api.ListUserConnectionRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ConnectionID", "UserID"] } } });
    }
    create(value?: PartialMessage<ListUserConnectionRolesRequest>): ListUserConnectionRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserConnectionRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserConnectionRolesRequest): ListUserConnectionRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ConnectionID = 2 [json_name = "ConnectionID"];*/ 2:
                    message.connectionID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserConnectionRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ConnectionID = 2 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.connectionID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserConnectionRolesRequest
 */
export const ListUserConnectionRolesRequest = new ListUserConnectionRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserAttachmentTypeRolesRequest$Type extends MessageType<ListUserAttachmentTypeRolesRequest> {
    constructor() {
        super("api.ListUserAttachmentTypeRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "AttachmentTypeID", kind: "scalar", jsonName: "AttachmentTypeID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "AttachmentTypeID", "UserID"] } } });
    }
    create(value?: PartialMessage<ListUserAttachmentTypeRolesRequest>): ListUserAttachmentTypeRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attachmentTypeID = "";
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ListUserAttachmentTypeRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserAttachmentTypeRolesRequest): ListUserAttachmentTypeRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"];*/ 2:
                    message.attachmentTypeID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserAttachmentTypeRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"]; */
        if (message.attachmentTypeID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.attachmentTypeID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserAttachmentTypeRolesRequest
 */
export const ListUserAttachmentTypeRolesRequest = new ListUserAttachmentTypeRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserPlatformRolesRequest$Type extends MessageType<SetUserPlatformRolesRequest> {
    constructor() {
        super("api.SetUserPlatformRolesRequest", [
            { no: 1, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["UserID"] } } });
    }
    create(value?: PartialMessage<SetUserPlatformRolesRequest>): SetUserPlatformRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserPlatformRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserPlatformRolesRequest): SetUserPlatformRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string UserID = 1 [json_name = "UserID"];*/ 1:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 2 [json_name = "Roles"];*/ 2:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserPlatformRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string UserID = 1 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 2 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserPlatformRolesRequest
 */
export const SetUserPlatformRolesRequest = new SetUserPlatformRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserOrganisationRolesRequest$Type extends MessageType<SetUserOrganisationRolesRequest> {
    constructor() {
        super("api.SetUserOrganisationRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<SetUserOrganisationRolesRequest>): SetUserOrganisationRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserOrganisationRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserOrganisationRolesRequest): SetUserOrganisationRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserOrganisationRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 3 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserOrganisationRolesRequest
 */
export const SetUserOrganisationRolesRequest = new SetUserOrganisationRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserProjectRolesRequest$Type extends MessageType<SetUserProjectRolesRequest> {
    constructor() {
        super("api.SetUserProjectRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<SetUserProjectRolesRequest>): SetUserProjectRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserProjectRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserProjectRolesRequest): SetUserProjectRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserProjectRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 3 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserProjectRolesRequest
 */
export const SetUserProjectRolesRequest = new SetUserProjectRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserPartnerAppRolesRequest$Type extends MessageType<SetUserPartnerAppRolesRequest> {
    constructor() {
        super("api.SetUserPartnerAppRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "PartnerAppID", "UserID"] } } });
    }
    create(value?: PartialMessage<SetUserPartnerAppRolesRequest>): SetUserPartnerAppRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserPartnerAppRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserPartnerAppRolesRequest): SetUserPartnerAppRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string PartnerAppID = 2 [json_name = "PartnerAppID"];*/ 2:
                    message.partnerAppID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 4 [json_name = "Roles"];*/ 4:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserPartnerAppRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerAppID = 2 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.partnerAppID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 4 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(4, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserPartnerAppRolesRequest
 */
export const SetUserPartnerAppRolesRequest = new SetUserPartnerAppRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserConnectionRolesRequest$Type extends MessageType<SetUserConnectionRolesRequest> {
    constructor() {
        super("api.SetUserConnectionRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ConnectionID", "UserID"] } } });
    }
    create(value?: PartialMessage<SetUserConnectionRolesRequest>): SetUserConnectionRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserConnectionRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserConnectionRolesRequest): SetUserConnectionRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ConnectionID = 2 [json_name = "ConnectionID"];*/ 2:
                    message.connectionID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 4 [json_name = "Roles"];*/ 4:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserConnectionRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ConnectionID = 2 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.connectionID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 4 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(4, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserConnectionRolesRequest
 */
export const SetUserConnectionRolesRequest = new SetUserConnectionRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserAttachmentTypeRolesRequest$Type extends MessageType<SetUserAttachmentTypeRolesRequest> {
    constructor() {
        super("api.SetUserAttachmentTypeRolesRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "AttachmentTypeID", kind: "scalar", jsonName: "AttachmentTypeID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "AttachmentTypeID", "UserID"] } } });
    }
    create(value?: PartialMessage<SetUserAttachmentTypeRolesRequest>): SetUserAttachmentTypeRolesRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.attachmentTypeID = "";
        message.userID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<SetUserAttachmentTypeRolesRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserAttachmentTypeRolesRequest): SetUserAttachmentTypeRolesRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"];*/ 2:
                    message.attachmentTypeID = reader.string();
                    break;
                case /* string UserID = 3 [json_name = "UserID"];*/ 3:
                    message.userID = reader.string();
                    break;
                case /* repeated string Roles = 4 [json_name = "Roles"];*/ 4:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserAttachmentTypeRolesRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string AttachmentTypeID = 2 [json_name = "AttachmentTypeID"]; */
        if (message.attachmentTypeID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.attachmentTypeID);
        /* string UserID = 3 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.userID);
        /* repeated string Roles = 4 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(4, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserAttachmentTypeRolesRequest
 */
export const SetUserAttachmentTypeRolesRequest = new SetUserAttachmentTypeRolesRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RemoveUserResult$Type extends MessageType<RemoveUserResult> {
    constructor() {
        super("api.RemoveUserResult", []);
    }
    create(value?: PartialMessage<RemoveUserResult>): RemoveUserResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<RemoveUserResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveUserResult): RemoveUserResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RemoveUserResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RemoveUserResult
 */
export const RemoveUserResult = new RemoveUserResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserResult$Type extends MessageType<EnrollUserResult> {
    constructor() {
        super("api.EnrollUserResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<EnrollUserResult>): EnrollUserResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<EnrollUserResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserResult): EnrollUserResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserResult
 */
export const EnrollUserResult = new EnrollUserResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SendVerificationMailResult$Type extends MessageType<SendVerificationMailResult> {
    constructor() {
        super("api.SendVerificationMailResult", []);
    }
    create(value?: PartialMessage<SendVerificationMailResult>): SendVerificationMailResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SendVerificationMailResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SendVerificationMailResult): SendVerificationMailResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SendVerificationMailResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SendVerificationMailResult
 */
export const SendVerificationMailResult = new SendVerificationMailResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateSAResult$Type extends MessageType<CreateSAResult> {
    constructor() {
        super("api.CreateSAResult", [
            { no: 1, name: "SA", kind: "message", jsonName: "SA", T: () => User },
            { no: 2, name: "PEM", kind: "scalar", jsonName: "PEM", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<CreateSAResult>): CreateSAResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.pEM = "";
        if (value !== undefined)
            reflectionMergePartial<CreateSAResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateSAResult): CreateSAResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User SA = 1 [json_name = "SA"];*/ 1:
                    message.sA = User.internalBinaryRead(reader, reader.uint32(), options, message.sA);
                    break;
                case /* string PEM = 2 [json_name = "PEM"];*/ 2:
                    message.pEM = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: CreateSAResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User SA = 1 [json_name = "SA"]; */
        if (message.sA)
            User.internalBinaryWrite(message.sA, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PEM = 2 [json_name = "PEM"]; */
        if (message.pEM !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.pEM);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CreateSAResult
 */
export const CreateSAResult = new CreateSAResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RenewSAResult$Type extends MessageType<RenewSAResult> {
    constructor() {
        super("api.RenewSAResult", [
            { no: 1, name: "SA", kind: "message", jsonName: "SA", T: () => User },
            { no: 2, name: "PEM", kind: "scalar", jsonName: "PEM", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<RenewSAResult>): RenewSAResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.pEM = "";
        if (value !== undefined)
            reflectionMergePartial<RenewSAResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RenewSAResult): RenewSAResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User SA = 1 [json_name = "SA"];*/ 1:
                    message.sA = User.internalBinaryRead(reader, reader.uint32(), options, message.sA);
                    break;
                case /* string PEM = 2 [json_name = "PEM"];*/ 2:
                    message.pEM = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RenewSAResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User SA = 1 [json_name = "SA"]; */
        if (message.sA)
            User.internalBinaryWrite(message.sA, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PEM = 2 [json_name = "PEM"]; */
        if (message.pEM !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.pEM);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RenewSAResult
 */
export const RenewSAResult = new RenewSAResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class RemoveSAResult$Type extends MessageType<RemoveSAResult> {
    constructor() {
        super("api.RemoveSAResult", []);
    }
    create(value?: PartialMessage<RemoveSAResult>): RemoveSAResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<RemoveSAResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: RemoveSAResult): RemoveSAResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: RemoveSAResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.RemoveSAResult
 */
export const RemoveSAResult = new RemoveSAResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SuggestSANameResult$Type extends MessageType<SuggestSANameResult> {
    constructor() {
        super("api.SuggestSANameResult", [
            { no: 1, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<SuggestSANameResult>): SuggestSANameResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        message.mail = "";
        if (value !== undefined)
            reflectionMergePartial<SuggestSANameResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestSANameResult): SuggestSANameResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Name = 1 [json_name = "Name"];*/ 1:
                    message.name = reader.string();
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SuggestSANameResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Name = 1 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.name);
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SuggestSANameResult
 */
export const SuggestSANameResult = new SuggestSANameResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListPlatformUsersResult$Type extends MessageType<ListPlatformUsersResult> {
    constructor() {
        super("api.ListPlatformUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListPlatformUsersResult>): ListPlatformUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListPlatformUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPlatformUsersResult): ListPlatformUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListPlatformUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListPlatformUsersResult
 */
export const ListPlatformUsersResult = new ListPlatformUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListOrganisationUsersResult$Type extends MessageType<ListOrganisationUsersResult> {
    constructor() {
        super("api.ListOrganisationUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListOrganisationUsersResult>): ListOrganisationUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListOrganisationUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListOrganisationUsersResult): ListOrganisationUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListOrganisationUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListOrganisationUsersResult
 */
export const ListOrganisationUsersResult = new ListOrganisationUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListProjectUsersResult$Type extends MessageType<ListProjectUsersResult> {
    constructor() {
        super("api.ListProjectUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListProjectUsersResult>): ListProjectUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListProjectUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListProjectUsersResult): ListProjectUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListProjectUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListProjectUsersResult
 */
export const ListProjectUsersResult = new ListProjectUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListPartnerAppUsersResult$Type extends MessageType<ListPartnerAppUsersResult> {
    constructor() {
        super("api.ListPartnerAppUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListPartnerAppUsersResult>): ListPartnerAppUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListPartnerAppUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListPartnerAppUsersResult): ListPartnerAppUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListPartnerAppUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListPartnerAppUsersResult
 */
export const ListPartnerAppUsersResult = new ListPartnerAppUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListConnectionUsersResult$Type extends MessageType<ListConnectionUsersResult> {
    constructor() {
        super("api.ListConnectionUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListConnectionUsersResult>): ListConnectionUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListConnectionUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListConnectionUsersResult): ListConnectionUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListConnectionUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListConnectionUsersResult
 */
export const ListConnectionUsersResult = new ListConnectionUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetPlatformUserResult$Type extends MessageType<GetPlatformUserResult> {
    constructor() {
        super("api.GetPlatformUserResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<GetPlatformUserResult>): GetPlatformUserResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetPlatformUserResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetPlatformUserResult): GetPlatformUserResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetPlatformUserResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetPlatformUserResult
 */
export const GetPlatformUserResult = new GetPlatformUserResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetOrganisationUserResult$Type extends MessageType<GetOrganisationUserResult> {
    constructor() {
        super("api.GetOrganisationUserResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<GetOrganisationUserResult>): GetOrganisationUserResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetOrganisationUserResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetOrganisationUserResult): GetOrganisationUserResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetOrganisationUserResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetOrganisationUserResult
 */
export const GetOrganisationUserResult = new GetOrganisationUserResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetProjectUserResult$Type extends MessageType<GetProjectUserResult> {
    constructor() {
        super("api.GetProjectUserResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<GetProjectUserResult>): GetProjectUserResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetProjectUserResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetProjectUserResult): GetProjectUserResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: GetProjectUserResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.GetProjectUserResult
 */
export const GetProjectUserResult = new GetProjectUserResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserPlatformRolesResult$Type extends MessageType<ListUserPlatformRolesResult> {
    constructor() {
        super("api.ListUserPlatformRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserPlatformRolesResult>): ListUserPlatformRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserPlatformRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserPlatformRolesResult): ListUserPlatformRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserPlatformRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserPlatformRolesResult
 */
export const ListUserPlatformRolesResult = new ListUserPlatformRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserOrganisationRolesResult$Type extends MessageType<ListUserOrganisationRolesResult> {
    constructor() {
        super("api.ListUserOrganisationRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserOrganisationRolesResult>): ListUserOrganisationRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserOrganisationRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserOrganisationRolesResult): ListUserOrganisationRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserOrganisationRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserOrganisationRolesResult
 */
export const ListUserOrganisationRolesResult = new ListUserOrganisationRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserProjectRolesResult$Type extends MessageType<ListUserProjectRolesResult> {
    constructor() {
        super("api.ListUserProjectRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserProjectRolesResult>): ListUserProjectRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserProjectRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserProjectRolesResult): ListUserProjectRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserProjectRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserProjectRolesResult
 */
export const ListUserProjectRolesResult = new ListUserProjectRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserPartnerAppRolesResult$Type extends MessageType<ListUserPartnerAppRolesResult> {
    constructor() {
        super("api.ListUserPartnerAppRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserPartnerAppRolesResult>): ListUserPartnerAppRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserPartnerAppRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserPartnerAppRolesResult): ListUserPartnerAppRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserPartnerAppRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserPartnerAppRolesResult
 */
export const ListUserPartnerAppRolesResult = new ListUserPartnerAppRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserConnectionRolesResult$Type extends MessageType<ListUserConnectionRolesResult> {
    constructor() {
        super("api.ListUserConnectionRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserConnectionRolesResult>): ListUserConnectionRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserConnectionRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserConnectionRolesResult): ListUserConnectionRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserConnectionRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserConnectionRolesResult
 */
export const ListUserConnectionRolesResult = new ListUserConnectionRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUserAttachmentTypeRolesResult$Type extends MessageType<ListUserAttachmentTypeRolesResult> {
    constructor() {
        super("api.ListUserAttachmentTypeRolesResult", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "InheritedRoles", kind: "scalar", jsonName: "InheritedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<ListUserAttachmentTypeRolesResult>): ListUserAttachmentTypeRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        message.inheritedRoles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUserAttachmentTypeRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUserAttachmentTypeRolesResult): ListUserAttachmentTypeRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                case /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"];*/ 2:
                    message.inheritedRoles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUserAttachmentTypeRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        /* repeated string InheritedRoles = 2 [json_name = "InheritedRoles"]; */
        for (let i = 0; i < message.inheritedRoles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.inheritedRoles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUserAttachmentTypeRolesResult
 */
export const ListUserAttachmentTypeRolesResult = new ListUserAttachmentTypeRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserPlatformRolesResult$Type extends MessageType<SetUserPlatformRolesResult> {
    constructor() {
        super("api.SetUserPlatformRolesResult", []);
    }
    create(value?: PartialMessage<SetUserPlatformRolesResult>): SetUserPlatformRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserPlatformRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserPlatformRolesResult): SetUserPlatformRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserPlatformRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserPlatformRolesResult
 */
export const SetUserPlatformRolesResult = new SetUserPlatformRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserOrganisationRolesResult$Type extends MessageType<SetUserOrganisationRolesResult> {
    constructor() {
        super("api.SetUserOrganisationRolesResult", []);
    }
    create(value?: PartialMessage<SetUserOrganisationRolesResult>): SetUserOrganisationRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserOrganisationRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserOrganisationRolesResult): SetUserOrganisationRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserOrganisationRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserOrganisationRolesResult
 */
export const SetUserOrganisationRolesResult = new SetUserOrganisationRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserProjectRolesResult$Type extends MessageType<SetUserProjectRolesResult> {
    constructor() {
        super("api.SetUserProjectRolesResult", []);
    }
    create(value?: PartialMessage<SetUserProjectRolesResult>): SetUserProjectRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserProjectRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserProjectRolesResult): SetUserProjectRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserProjectRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserProjectRolesResult
 */
export const SetUserProjectRolesResult = new SetUserProjectRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserPartnerAppRolesResult$Type extends MessageType<SetUserPartnerAppRolesResult> {
    constructor() {
        super("api.SetUserPartnerAppRolesResult", []);
    }
    create(value?: PartialMessage<SetUserPartnerAppRolesResult>): SetUserPartnerAppRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserPartnerAppRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserPartnerAppRolesResult): SetUserPartnerAppRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserPartnerAppRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserPartnerAppRolesResult
 */
export const SetUserPartnerAppRolesResult = new SetUserPartnerAppRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserConnectionRolesResult$Type extends MessageType<SetUserConnectionRolesResult> {
    constructor() {
        super("api.SetUserConnectionRolesResult", []);
    }
    create(value?: PartialMessage<SetUserConnectionRolesResult>): SetUserConnectionRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserConnectionRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserConnectionRolesResult): SetUserConnectionRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserConnectionRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserConnectionRolesResult
 */
export const SetUserConnectionRolesResult = new SetUserConnectionRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetUserAttachmentTypeRolesResult$Type extends MessageType<SetUserAttachmentTypeRolesResult> {
    constructor() {
        super("api.SetUserAttachmentTypeRolesResult", []);
    }
    create(value?: PartialMessage<SetUserAttachmentTypeRolesResult>): SetUserAttachmentTypeRolesResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetUserAttachmentTypeRolesResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetUserAttachmentTypeRolesResult): SetUserAttachmentTypeRolesResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: SetUserAttachmentTypeRolesResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SetUserAttachmentTypeRolesResult
 */
export const SetUserAttachmentTypeRolesResult = new SetUserAttachmentTypeRolesResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserWithoutMailRequest$Type extends MessageType<EnrollUserWithoutMailRequest> {
    constructor() {
        super("api.EnrollUserWithoutMailRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "locale", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ForceTwoFA", kind: "scalar", jsonName: "ForceTwoFA", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<EnrollUserWithoutMailRequest>): EnrollUserWithoutMailRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        message.locale = "";
        message.forceTwoFA = false;
        if (value !== undefined)
            reflectionMergePartial<EnrollUserWithoutMailRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserWithoutMailRequest): EnrollUserWithoutMailRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                case /* string locale */ 3:
                    message.locale = reader.string();
                    break;
                case /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];*/ 4:
                    message.forceTwoFA = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserWithoutMailRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        /* string locale = 3; */
        if (message.locale !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.locale);
        /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"]; */
        if (message.forceTwoFA !== false)
            writer.tag(4, WireType.Varint).bool(message.forceTwoFA);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserWithoutMailRequest
 */
export const EnrollUserWithoutMailRequest = new EnrollUserWithoutMailRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserWithoutMailResult$Type extends MessageType<EnrollUserWithoutMailResult> {
    constructor() {
        super("api.EnrollUserWithoutMailResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<EnrollUserWithoutMailResult>): EnrollUserWithoutMailResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<EnrollUserWithoutMailResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserWithoutMailResult): EnrollUserWithoutMailResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserWithoutMailResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserWithoutMailResult
 */
export const EnrollUserWithoutMailResult = new EnrollUserWithoutMailResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class EnrollUserProjectWithoutMailRequest$Type extends MessageType<EnrollUserProjectWithoutMailRequest> {
    constructor() {
        super("api.EnrollUserProjectWithoutMailRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "locale", kind: "scalar", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "ForceTwoFA", kind: "scalar", jsonName: "ForceTwoFA", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Mail"] } } });
    }
    create(value?: PartialMessage<EnrollUserProjectWithoutMailRequest>): EnrollUserProjectWithoutMailRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        message.locale = "";
        message.forceTwoFA = false;
        if (value !== undefined)
            reflectionMergePartial<EnrollUserProjectWithoutMailRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: EnrollUserProjectWithoutMailRequest): EnrollUserProjectWithoutMailRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Mail = 2 [json_name = "Mail"];*/ 2:
                    message.mail = reader.string();
                    break;
                case /* string locale */ 3:
                    message.locale = reader.string();
                    break;
                case /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"];*/ 4:
                    message.forceTwoFA = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: EnrollUserProjectWithoutMailRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Mail = 2 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.mail);
        /* string locale = 3; */
        if (message.locale !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.locale);
        /* bool ForceTwoFA = 4 [json_name = "ForceTwoFA"]; */
        if (message.forceTwoFA !== false)
            writer.tag(4, WireType.Varint).bool(message.forceTwoFA);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.EnrollUserProjectWithoutMailRequest
 */
export const EnrollUserProjectWithoutMailRequest = new EnrollUserProjectWithoutMailRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateTwoFAPlatformRequest$Type extends MessageType<UpdateTwoFAPlatformRequest> {
    constructor() {
        super("api.UpdateTwoFAPlatformRequest", [
            { no: 1, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Value", kind: "enum", jsonName: "Value", T: () => ["api.TwoFAValue", TwoFAValue] }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["UserID", "Value"] } } });
    }
    create(value?: PartialMessage<UpdateTwoFAPlatformRequest>): UpdateTwoFAPlatformRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        message.value = 0;
        if (value !== undefined)
            reflectionMergePartial<UpdateTwoFAPlatformRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateTwoFAPlatformRequest): UpdateTwoFAPlatformRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string UserID = 1 [json_name = "UserID"];*/ 1:
                    message.userID = reader.string();
                    break;
                case /* api.TwoFAValue Value = 2 [json_name = "Value"];*/ 2:
                    message.value = reader.int32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: UpdateTwoFAPlatformRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string UserID = 1 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.userID);
        /* api.TwoFAValue Value = 2 [json_name = "Value"]; */
        if (message.value !== 0)
            writer.tag(2, WireType.Varint).int32(message.value);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.UpdateTwoFAPlatformRequest
 */
export const UpdateTwoFAPlatformRequest = new UpdateTwoFAPlatformRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateTwoFAPlatformResult$Type extends MessageType<UpdateTwoFAPlatformResult> {
    constructor() {
        super("api.UpdateTwoFAPlatformResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<UpdateTwoFAPlatformResult>): UpdateTwoFAPlatformResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<UpdateTwoFAPlatformResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateTwoFAPlatformResult): UpdateTwoFAPlatformResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: UpdateTwoFAPlatformResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.UpdateTwoFAPlatformResult
 */
export const UpdateTwoFAPlatformResult = new UpdateTwoFAPlatformResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ForceTwoFAOrganisationRequest$Type extends MessageType<ForceTwoFAOrganisationRequest> {
    constructor() {
        super("api.ForceTwoFAOrganisationRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "ForceTwoFA", kind: "scalar", jsonName: "ForceTwoFA", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID", "ForceTwoFA"] } } });
    }
    create(value?: PartialMessage<ForceTwoFAOrganisationRequest>): ForceTwoFAOrganisationRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        message.forceTwoFA = false;
        if (value !== undefined)
            reflectionMergePartial<ForceTwoFAOrganisationRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForceTwoFAOrganisationRequest): ForceTwoFAOrganisationRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                case /* bool ForceTwoFA = 3 [json_name = "ForceTwoFA"];*/ 3:
                    message.forceTwoFA = reader.bool();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ForceTwoFAOrganisationRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        /* bool ForceTwoFA = 3 [json_name = "ForceTwoFA"]; */
        if (message.forceTwoFA !== false)
            writer.tag(3, WireType.Varint).bool(message.forceTwoFA);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ForceTwoFAOrganisationRequest
 */
export const ForceTwoFAOrganisationRequest = new ForceTwoFAOrganisationRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ForceProjectUserTwoFARequest$Type extends MessageType<ForceProjectUserTwoFARequest> {
    constructor() {
        super("api.ForceProjectUserTwoFARequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "UserID", kind: "scalar", jsonName: "UserID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "UserID"] } } });
    }
    create(value?: PartialMessage<ForceProjectUserTwoFARequest>): ForceProjectUserTwoFARequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.userID = "";
        if (value !== undefined)
            reflectionMergePartial<ForceProjectUserTwoFARequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForceProjectUserTwoFARequest): ForceProjectUserTwoFARequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string UserID = 2 [json_name = "UserID"];*/ 2:
                    message.userID = reader.string();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ForceProjectUserTwoFARequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string UserID = 2 [json_name = "UserID"]; */
        if (message.userID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.userID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ForceProjectUserTwoFARequest
 */
export const ForceProjectUserTwoFARequest = new ForceProjectUserTwoFARequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ForceTwoFAResult$Type extends MessageType<ForceTwoFAResult> {
    constructor() {
        super("api.ForceTwoFAResult", [
            { no: 1, name: "User", kind: "message", jsonName: "User", T: () => User }
        ]);
    }
    create(value?: PartialMessage<ForceTwoFAResult>): ForceTwoFAResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ForceTwoFAResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ForceTwoFAResult): ForceTwoFAResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.User User = 1 [json_name = "User"];*/ 1:
                    message.user = User.internalBinaryRead(reader, reader.uint32(), options, message.user);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ForceTwoFAResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.User User = 1 [json_name = "User"]; */
        if (message.user)
            User.internalBinaryWrite(message.user, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ForceTwoFAResult
 */
export const ForceTwoFAResult = new ForceTwoFAResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindUsersFilters$Type extends MessageType<FindUsersFilters> {
    constructor() {
        super("api.FindUsersFilters", [
            { no: 1, name: "Mail", kind: "scalar", jsonName: "Mail", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Status", kind: "enum", jsonName: "Status", T: () => ["api.UserStatus", UserStatus, "USER_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 3, name: "FirstName", kind: "scalar", jsonName: "FirstName", T: 9 /*ScalarType.STRING*/ },
            { no: 4, name: "LastName", kind: "scalar", jsonName: "LastName", T: 9 /*ScalarType.STRING*/ },
            { no: 5, name: "LanguageCode", kind: "scalar", jsonName: "LanguageCode", T: 9 /*ScalarType.STRING*/ },
            { no: 6, name: "Type", kind: "enum", jsonName: "Type", T: () => ["api.UserType", UserType, "USER_TYPE_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 7, name: "Limit", kind: "scalar", jsonName: "Limit", T: 5 /*ScalarType.INT32*/ }
        ]);
    }
    create(value?: PartialMessage<FindUsersFilters>): FindUsersFilters {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.mail = "";
        message.status = 0;
        message.firstName = "";
        message.lastName = "";
        message.languageCode = "";
        message.type = 0;
        message.limit = 0;
        if (value !== undefined)
            reflectionMergePartial<FindUsersFilters>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindUsersFilters): FindUsersFilters {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string Mail = 1 [json_name = "Mail"];*/ 1:
                    message.mail = reader.string();
                    break;
                case /* api.UserStatus Status = 2 [json_name = "Status"];*/ 2:
                    message.status = reader.int32();
                    break;
                case /* string FirstName = 3 [json_name = "FirstName"];*/ 3:
                    message.firstName = reader.string();
                    break;
                case /* string LastName = 4 [json_name = "LastName"];*/ 4:
                    message.lastName = reader.string();
                    break;
                case /* string LanguageCode = 5 [json_name = "LanguageCode"];*/ 5:
                    message.languageCode = reader.string();
                    break;
                case /* api.UserType Type = 6 [json_name = "Type"];*/ 6:
                    message.type = reader.int32();
                    break;
                case /* int32 Limit = 7 [json_name = "Limit"];*/ 7:
                    message.limit = reader.int32();
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindUsersFilters, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string Mail = 1 [json_name = "Mail"]; */
        if (message.mail !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.mail);
        /* api.UserStatus Status = 2 [json_name = "Status"]; */
        if (message.status !== 0)
            writer.tag(2, WireType.Varint).int32(message.status);
        /* string FirstName = 3 [json_name = "FirstName"]; */
        if (message.firstName !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.firstName);
        /* string LastName = 4 [json_name = "LastName"]; */
        if (message.lastName !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.lastName);
        /* string LanguageCode = 5 [json_name = "LanguageCode"]; */
        if (message.languageCode !== "")
            writer.tag(5, WireType.LengthDelimited).string(message.languageCode);
        /* api.UserType Type = 6 [json_name = "Type"]; */
        if (message.type !== 0)
            writer.tag(6, WireType.Varint).int32(message.type);
        /* int32 Limit = 7 [json_name = "Limit"]; */
        if (message.limit !== 0)
            writer.tag(7, WireType.Varint).int32(message.limit);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindUsersFilters
 */
export const FindUsersFilters = new FindUsersFilters$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindPlatformUsersRequest$Type extends MessageType<FindPlatformUsersRequest> {
    constructor() {
        super("api.FindPlatformUsersRequest", [
            { no: 1, name: "Filter", kind: "message", jsonName: "Filter", T: () => FindUsersFilters, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Filter"] } } });
    }
    create(value?: PartialMessage<FindPlatformUsersRequest>): FindPlatformUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<FindPlatformUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindPlatformUsersRequest): FindPlatformUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.FindUsersFilters Filter = 1 [json_name = "Filter"];*/ 1:
                    message.filter = FindUsersFilters.internalBinaryRead(reader, reader.uint32(), options, message.filter);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindPlatformUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.FindUsersFilters Filter = 1 [json_name = "Filter"]; */
        if (message.filter)
            FindUsersFilters.internalBinaryWrite(message.filter, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindPlatformUsersRequest
 */
export const FindPlatformUsersRequest = new FindPlatformUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindOrganisationUsersRequest$Type extends MessageType<FindOrganisationUsersRequest> {
    constructor() {
        super("api.FindOrganisationUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Filter", kind: "message", jsonName: "Filter", T: () => FindUsersFilters, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Filter"] } } });
    }
    create(value?: PartialMessage<FindOrganisationUsersRequest>): FindOrganisationUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<FindOrganisationUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindOrganisationUsersRequest): FindOrganisationUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.FindUsersFilters Filter = 2 [json_name = "Filter"];*/ 2:
                    message.filter = FindUsersFilters.internalBinaryRead(reader, reader.uint32(), options, message.filter);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindOrganisationUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.FindUsersFilters Filter = 2 [json_name = "Filter"]; */
        if (message.filter)
            FindUsersFilters.internalBinaryWrite(message.filter, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindOrganisationUsersRequest
 */
export const FindOrganisationUsersRequest = new FindOrganisationUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindProjectUsersRequest$Type extends MessageType<FindProjectUsersRequest> {
    constructor() {
        super("api.FindProjectUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Filter", kind: "message", jsonName: "Filter", T: () => FindUsersFilters, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Filter"] } } });
    }
    create(value?: PartialMessage<FindProjectUsersRequest>): FindProjectUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<FindProjectUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindProjectUsersRequest): FindProjectUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.FindUsersFilters Filter = 2 [json_name = "Filter"];*/ 2:
                    message.filter = FindUsersFilters.internalBinaryRead(reader, reader.uint32(), options, message.filter);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindProjectUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.FindUsersFilters Filter = 2 [json_name = "Filter"]; */
        if (message.filter)
            FindUsersFilters.internalBinaryWrite(message.filter, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindProjectUsersRequest
 */
export const FindProjectUsersRequest = new FindProjectUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindPartnerAppUsersRequest$Type extends MessageType<FindPartnerAppUsersRequest> {
    constructor() {
        super("api.FindPartnerAppUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Filter", kind: "message", jsonName: "Filter", T: () => FindUsersFilters, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "PartnerAppID", "Filter"] } } });
    }
    create(value?: PartialMessage<FindPartnerAppUsersRequest>): FindPartnerAppUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        if (value !== undefined)
            reflectionMergePartial<FindPartnerAppUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindPartnerAppUsersRequest): FindPartnerAppUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string PartnerAppID = 2 [json_name = "PartnerAppID"];*/ 2:
                    message.partnerAppID = reader.string();
                    break;
                case /* api.FindUsersFilters Filter = 3 [json_name = "Filter"];*/ 3:
                    message.filter = FindUsersFilters.internalBinaryRead(reader, reader.uint32(), options, message.filter);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindPartnerAppUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerAppID = 2 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.partnerAppID);
        /* api.FindUsersFilters Filter = 3 [json_name = "Filter"]; */
        if (message.filter)
            FindUsersFilters.internalBinaryWrite(message.filter, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindPartnerAppUsersRequest
 */
export const FindPartnerAppUsersRequest = new FindPartnerAppUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindConnectionUsersRequest$Type extends MessageType<FindConnectionUsersRequest> {
    constructor() {
        super("api.FindConnectionUsersRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Filter", kind: "message", jsonName: "Filter", T: () => FindUsersFilters, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ConnectionID", "Filter"] } } });
    }
    create(value?: PartialMessage<FindConnectionUsersRequest>): FindConnectionUsersRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        if (value !== undefined)
            reflectionMergePartial<FindConnectionUsersRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindConnectionUsersRequest): FindConnectionUsersRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ConnectionID = 2 [json_name = "ConnectionID"];*/ 2:
                    message.connectionID = reader.string();
                    break;
                case /* api.FindUsersFilters Filter = 3 [json_name = "Filter"];*/ 3:
                    message.filter = FindUsersFilters.internalBinaryRead(reader, reader.uint32(), options, message.filter);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindConnectionUsersRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ConnectionID = 2 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.connectionID);
        /* api.FindUsersFilters Filter = 3 [json_name = "Filter"]; */
        if (message.filter)
            FindUsersFilters.internalBinaryWrite(message.filter, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindConnectionUsersRequest
 */
export const FindConnectionUsersRequest = new FindConnectionUsersRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class FindUsersResult$Type extends MessageType<FindUsersResult> {
    constructor() {
        super("api.FindUsersResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<FindUsersResult>): FindUsersResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<FindUsersResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FindUsersResult): FindUsersResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: FindUsersResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.FindUsersResult
 */
export const FindUsersResult = new FindUsersResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInPlatformRoleRequest$Type extends MessageType<ListUsersInPlatformRoleRequest> {
    constructor() {
        super("api.ListUsersInPlatformRoleRequest", [
            { no: 1, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Roles"] } } });
    }
    create(value?: PartialMessage<ListUsersInPlatformRoleRequest>): ListUsersInPlatformRoleRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInPlatformRoleRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInPlatformRoleRequest): ListUsersInPlatformRoleRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated string Roles = 1 [json_name = "Roles"];*/ 1:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInPlatformRoleRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated string Roles = 1 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(1, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInPlatformRoleRequest
 */
export const ListUsersInPlatformRoleRequest = new ListUsersInPlatformRoleRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInOrganisationRoleRequest$Type extends MessageType<ListUsersInOrganisationRoleRequest> {
    constructor() {
        super("api.ListUsersInOrganisationRoleRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Role"] } } });
    }
    create(value?: PartialMessage<ListUsersInOrganisationRoleRequest>): ListUsersInOrganisationRoleRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInOrganisationRoleRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInOrganisationRoleRequest): ListUsersInOrganisationRoleRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* repeated string Roles = 2 [json_name = "Roles"];*/ 2:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInOrganisationRoleRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated string Roles = 2 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(2, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInOrganisationRoleRequest
 */
export const ListUsersInOrganisationRoleRequest = new ListUsersInOrganisationRoleRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInProjectRoleRequest$Type extends MessageType<ListUsersInProjectRoleRequest> {
    constructor() {
        super("api.ListUsersInProjectRoleRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Role"] } } });
    }
    create(value?: PartialMessage<ListUsersInProjectRoleRequest>): ListUsersInProjectRoleRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInProjectRoleRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInProjectRoleRequest): ListUsersInProjectRoleRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* repeated string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInProjectRoleRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated string Roles = 3 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInProjectRoleRequest
 */
export const ListUsersInProjectRoleRequest = new ListUsersInProjectRoleRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInPartnerAppRoleRequest$Type extends MessageType<ListUsersInPartnerAppRoleRequest> {
    constructor() {
        super("api.ListUsersInPartnerAppRoleRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "PartnerAppID", kind: "scalar", jsonName: "PartnerAppID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "PartnerAppID", "Role"] } } });
    }
    create(value?: PartialMessage<ListUsersInPartnerAppRoleRequest>): ListUsersInPartnerAppRoleRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.partnerAppID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInPartnerAppRoleRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInPartnerAppRoleRequest): ListUsersInPartnerAppRoleRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string PartnerAppID = 2 [json_name = "PartnerAppID"];*/ 2:
                    message.partnerAppID = reader.string();
                    break;
                case /* repeated string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInPartnerAppRoleRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string PartnerAppID = 2 [json_name = "PartnerAppID"]; */
        if (message.partnerAppID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.partnerAppID);
        /* repeated string Roles = 3 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInPartnerAppRoleRequest
 */
export const ListUsersInPartnerAppRoleRequest = new ListUsersInPartnerAppRoleRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInConnectionRoleRequest$Type extends MessageType<ListUsersInConnectionRoleRequest> {
    constructor() {
        super("api.ListUsersInConnectionRoleRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ConnectionID", kind: "scalar", jsonName: "ConnectionID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Roles", kind: "scalar", jsonName: "Roles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { repeated: { minItems: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ConnectionID", "Role"] } } });
    }
    create(value?: PartialMessage<ListUsersInConnectionRoleRequest>): ListUsersInConnectionRoleRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.connectionID = "";
        message.roles = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInConnectionRoleRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInConnectionRoleRequest): ListUsersInConnectionRoleRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ConnectionID = 2 [json_name = "ConnectionID"];*/ 2:
                    message.connectionID = reader.string();
                    break;
                case /* repeated string Roles = 3 [json_name = "Roles"];*/ 3:
                    message.roles.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInConnectionRoleRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ConnectionID = 2 [json_name = "ConnectionID"]; */
        if (message.connectionID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.connectionID);
        /* repeated string Roles = 3 [json_name = "Roles"]; */
        for (let i = 0; i < message.roles.length; i++)
            writer.tag(3, WireType.LengthDelimited).string(message.roles[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInConnectionRoleRequest
 */
export const ListUsersInConnectionRoleRequest = new ListUsersInConnectionRoleRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListUsersInRoleResult$Type extends MessageType<ListUsersInRoleResult> {
    constructor() {
        super("api.ListUsersInRoleResult", [
            { no: 1, name: "Users", kind: "message", jsonName: "Users", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListUsersInRoleResult>): ListUsersInRoleResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.users = [];
        if (value !== undefined)
            reflectionMergePartial<ListUsersInRoleResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListUsersInRoleResult): ListUsersInRoleResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.User Users = 1 [json_name = "Users"];*/ 1:
                    message.users.push(User.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListUsersInRoleResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.User Users = 1 [json_name = "Users"]; */
        for (let i = 0; i < message.users.length; i++)
            User.internalBinaryWrite(message.users[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListUsersInRoleResult
 */
export const ListUsersInRoleResult = new ListUsersInRoleResult$Type();
/**
 * @generated ServiceType for protobuf service api.UserService
 */
export const UserService = new ServiceType("api.UserService", [
    { name: "EnrollUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enroll user on the platform" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: EnrollUserRequest, O: EnrollUserResult },
    { name: "EnrollUserWithoutMail", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enroll user on the platform but do not send invitation email" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: EnrollUserWithoutMailRequest, O: EnrollUserResult },
    { name: "SendVerificationMail", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Sends a verification mail to a user on the platform" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: SendVerificationMailRequest, O: SendVerificationMailResult },
    { name: "SendVerificationMailAs", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Sends a verification mail to a user on the platform as another user" }, "api.rscType": "Platform", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: SendVerificationMailAsRequest, O: SendVerificationMailResult },
    { name: "EnrollProjectUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enroll user on the platform" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: EnrollUserProjectRequest, O: EnrollUserResult },
    { name: "EnrollProjectUserWithoutMail", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enroll user on the platform but do not send invitation email" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: EnrollUserProjectWithoutMailRequest, O: EnrollUserResult },
    { name: "SendVerificationMailProject", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Sends a verification mail to a user on the platform" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SendVerificationMailProjectRequest, O: SendVerificationMailResult },
    { name: "RemoveUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Remove user from the platform" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: RemoveUserRequest, O: RemoveUserResult },
    { name: "CreateSA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Create Service Account on the platform" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: CreateSARequest, O: CreateSAResult },
    { name: "RenewSA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Renew Service Account certificate" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: RenewSARequest, O: RenewSAResult },
    { name: "RemoveSA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Remove Service Account" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: RemoveSARequest, O: RemoveSAResult },
    { name: "SuggestSAName", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Suggest Service Account name" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: SuggestSANameRequest, O: SuggestSANameResult },
    { name: "ListPlatformUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with at least a platform role" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListPlatformUsersRequest, O: ListPlatformUsersResult },
    { name: "ListOrganisationUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with at least an organisation role" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListOrganisationUsersRequest, O: ListOrganisationUsersResult },
    { name: "ListProjectUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with at least a project role" }, "api.rscType": "Project", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: ListProjectUsersRequest, O: ListProjectUsersResult },
    { name: "ListPartnerAppUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with at least a partner app role" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListPartnerAppUsersRequest, O: ListPartnerAppUsersResult },
    { name: "ListConnectionUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with at least a connection role" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListConnectionUsersRequest, O: ListConnectionUsersResult },
    { name: "FindPlatformUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Find users with at least a platform role. Limited to 15 users." }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: FindPlatformUsersRequest, O: FindUsersResult },
    { name: "FindOrganisationUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Find users with at least an organisation role. Limited to 15 users." }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: FindOrganisationUsersRequest, O: FindUsersResult },
    { name: "FindProjectUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Find users with at least a project role. Limited to 15 users." }, "api.rscType": "Project", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: FindProjectUsersRequest, O: FindUsersResult },
    { name: "FindPartnerAppUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Find users with at least a partner app role" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: FindPartnerAppUsersRequest, O: FindUsersResult },
    { name: "FindConnectionUsers", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Find users with at least a connection role. Limited to 15 users." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: FindConnectionUsersRequest, O: FindUsersResult },
    { name: "ListUsersInPlatformRole", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with a specific platform role. If the user has one of the provided roles, it will be returned." }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUsersInPlatformRoleRequest, O: ListUsersInRoleResult },
    { name: "ListUsersInOrganisationRole", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with a specific organisation role. If the user has one of the provided roles, it will be returned." }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUsersInOrganisationRoleRequest, O: ListUsersInRoleResult },
    { name: "ListUsersInProjectRole", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with a specific project role. If the user has one of the provided roles, it will be returned." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUsersInProjectRoleRequest, O: ListUsersInRoleResult },
    { name: "ListUsersInPartnerAppRole", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with a specific partner app role. If the user has one of the provided roles, it will be returned." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUsersInPartnerAppRoleRequest, O: ListUsersInRoleResult },
    { name: "ListUsersInConnectionRole", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List users with a specific connection role. If the user has one of the provided roles, it will be returned." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUsersInConnectionRoleRequest, O: ListUsersInRoleResult },
    { name: "GetPlatformUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Get user details. The user must have at least a platform role." }, "api.rscType": "Platform", "api.roles": "Platform.User", "google.api.method_visibility": { restriction: "SDK" } }, I: GetPlatformUserRequest, O: GetPlatformUserResult },
    { name: "GetOrganisationUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Get user details. The user must have at least an organisation role." }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: GetOrganisationUserRequest, O: GetOrganisationUserResult },
    { name: "GetProjectUser", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Get user details. The user must have at least a project role." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: GetProjectUserRequest, O: GetProjectUserResult },
    { name: "ListPlatformRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List Platform Roles of a user" }, "api.rscType": "Platform", "api.roles": "Platform.Platform-User", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserPlatformRolesRequest, O: ListUserPlatformRolesResult },
    { name: "ListOrganisationRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List Organisation Roles of a user" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserOrganisationRolesRequest, O: ListUserOrganisationRolesResult },
    { name: "ListProjectRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List Project Roles of a user" }, "api.rscType": "Project", "api.roles": "Platform.Project-Role", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserProjectRolesRequest, O: ListUserProjectRolesResult },
    { name: "ListPartnerAppRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List PartnerAPp Roles of a user" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserPartnerAppRolesRequest, O: ListUserPartnerAppRolesResult },
    { name: "ListConnectionRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List Connection Roles of a user" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserConnectionRolesRequest, O: ListUserConnectionRolesResult },
    { name: "ListAttachmentTypeRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "List AttachmentType Roles of a user" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ListUserAttachmentTypeRolesRequest, O: ListUserAttachmentTypeRolesResult },
    { name: "SetPlatformRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set Platform Roles of a user" }, "api.rscType": "Platform", "api.roles": "Platform.Platform-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserPlatformRolesRequest, O: SetUserPlatformRolesResult },
    { name: "SetOrganisationRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set Organisation Roles of a user" }, "api.rscType": "Organisation", "api.roles": "Platform.Organisation-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserOrganisationRolesRequest, O: SetUserOrganisationRolesResult },
    { name: "SetProjectRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set Project Roles of a user" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserProjectRolesRequest, O: SetUserProjectRolesResult },
    { name: "SetPartnerAppRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set PartnerApp Roles of a user" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserPartnerAppRolesRequest, O: SetUserPartnerAppRolesResult },
    { name: "SetConnectionRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set Connection Roles of a user" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserConnectionRolesRequest, O: SetUserConnectionRolesResult },
    { name: "SetAttachmentTypeRoles", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Set AttachmentType Roles of a user" }, "api.rscType": "Project", "api.roles": "Platform.Project-User", "google.api.method_visibility": { restriction: "SDK" } }, I: SetUserAttachmentTypeRolesRequest, O: SetUserAttachmentTypeRolesResult },
    { name: "ForceTwoFA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enable or disable forced 2FA for a user" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ForceTwoFAOrganisationRequest, O: ForceTwoFAResult },
    { name: "ForceProjectUserTwoFA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Enables forced 2FA for a user on a project. Cannot disable forced 2FA." }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: ForceProjectUserTwoFARequest, O: ForceTwoFAResult },
    { name: "UpdatePlatformTwoFA", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin User"], description: "Update 2FA value for a user" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: UpdateTwoFAPlatformRequest, O: UpdateTwoFAPlatformResult }
], { "api.k8sService": "organisation-server" });
