// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "proj.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 { WorkflowExecutionResult } from "./shared";
import { User } from "./user";
import { Organisation } from "./org";
import { Paging } from "./base";
import { RequestProjectHeader } from "./shared";
import { RequestOrganisationHeader } from "./shared";
import { Module } from "./module";
/**
 * Project creation should not have status in request
 *
 * @generated from protobuf message api.ProjectCreation
 */
export interface ProjectCreation {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: repeated api.Module Modules = 3 [json_name = "Modules"];
     */
    modules: Module[];
}
/**
 * @generated from protobuf message api.Project
 */
export interface Project {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: string OrganisationID = 3 [json_name = "OrganisationID"];
     */
    organisationID: string;
    /**
     * @generated from protobuf field: api.ProjectStatusEnum status = 4;
     */
    status: ProjectStatusEnum;
    /**
     * @generated from protobuf field: repeated api.Module Modules = 5 [json_name = "Modules"];
     */
    modules: Module[];
}
/**
 * @generated from protobuf message api.DeleteProjectRequest
 */
export interface DeleteProjectRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 3 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
}
/**
 * @generated from protobuf message api.GetProjectRequest
 */
export interface GetProjectRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 4 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
}
/**
 * @generated from protobuf message api.ListProjectRequest
 */
export interface ListProjectRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 4 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: api.Paging Paging = 3 [json_name = "Paging"];
     */
    paging?: Paging;
    /**
     * @generated from protobuf field: bool ShowInactiveProjects = 5 [json_name = "ShowInactiveProjects"];
     */
    showInactiveProjects: boolean;
}
/**
 * @generated from protobuf message api.ListAllProjectRequest
 */
export interface ListAllProjectRequest {
    /**
     * @generated from protobuf field: bool ShowInactiveProjects = 1 [json_name = "ShowInactiveProjects"];
     */
    showInactiveProjects: boolean;
}
/**
 * @generated from protobuf message api.ListAllProjectResultElement
 */
export interface ListAllProjectResultElement {
    /**
     * @generated from protobuf field: api.Organisation Organisation = 1 [json_name = "Organisation"];
     */
    organisation?: Organisation;
    /**
     * @generated from protobuf field: repeated api.Project Projects = 2 [json_name = "Projects"];
     */
    projects: Project[];
    /**
     * @generated from protobuf field: repeated api.User Managers = 3 [json_name = "Managers"];
     */
    managers: User[];
}
/**
 * @generated from protobuf message api.ListAllProjectResult
 */
export interface ListAllProjectResult {
    /**
     * @generated from protobuf field: repeated api.ListAllProjectResultElement Organisations = 1 [json_name = "Organisations"];
     */
    organisations: ListAllProjectResultElement[];
}
/**
 * @generated from protobuf message api.CreateProjectRequest
 */
export interface CreateProjectRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 2 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: api.ProjectCreation Project = 1 [json_name = "Project"];
     */
    project?: ProjectCreation;
    /**
     * @generated from protobuf field: string ManagerMail = 3 [json_name = "ManagerMail"];
     */
    managerMail: string;
}
/**
 * @generated from protobuf message api.UpdateProjectRequest
 */
export interface UpdateProjectRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 2 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    // Project Project = 1 
    //    [
    //        (validate.rules).message.required = true
    //    ];

    /**
     * @generated from protobuf field: string Name = 3 [json_name = "Name"];
     */
    name: string;
}
/**
 * @generated from protobuf message api.SetModulesProjectRequest
 */
export interface SetModulesProjectRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string ProjectID = 2 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: repeated api.Module Modules = 3 [json_name = "Modules"];
     */
    modules: Module[];
}
/**
 * @generated from protobuf message api.CreateProjectResult
 */
export interface CreateProjectResult {
    /**
     * @generated from protobuf field: api.Project Result = 1 [json_name = "Result"];
     */
    result?: Project;
    /**
     * @generated from protobuf field: api.WorkflowExecutionResult WorkflowExecution = 2 [json_name = "WorkflowExecution"];
     */
    workflowExecution?: WorkflowExecutionResult;
}
/**
 * @generated from protobuf message api.UpdateProjectResult
 */
export interface UpdateProjectResult {
    /**
     * @generated from protobuf field: api.Project Result = 1 [json_name = "Result"];
     */
    result?: Project;
}
/**
 * @generated from protobuf message api.DeleteProjectResult
 */
export interface DeleteProjectResult {
    /**
     * @generated from protobuf field: api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"];
     */
    workflowExecution?: WorkflowExecutionResult;
}
/**
 * @generated from protobuf message api.GetProjectResult
 */
export interface GetProjectResult {
    /**
     * @generated from protobuf field: api.Project Result = 1 [json_name = "Result"];
     */
    result?: Project;
}
/**
 * @generated from protobuf message api.ListProjectResult
 */
export interface ListProjectResult {
    /**
     * @generated from protobuf field: repeated api.Project Result = 1 [json_name = "Result"];
     */
    result: Project[];
}
/**
 * @generated from protobuf message api.SetModulesProjectResult
 */
export interface SetModulesProjectResult {
    /**
     * @generated from protobuf field: api.Project Result = 1 [json_name = "Result"];
     */
    result?: Project;
}
/**
 * @generated from protobuf message api.CreateClickhouseRequest
 */
export interface CreateClickhouseRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
}
/**
 * @generated from protobuf message api.CreateClickhouseResult
 */
export interface CreateClickhouseResult {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
}
/**
 * @generated from protobuf message api.OptimizeClickhouseRequest
 */
export interface OptimizeClickhouseRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: bool Final = 2 [json_name = "Final"];
     */
    final: boolean;
}
/**
 * @generated from protobuf message api.OptimizeClickhouseResult
 */
export interface OptimizeClickhouseResult {
}
/**
 * @generated from protobuf message api.DeleteCassandraRequest
 */
export interface DeleteCassandraRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
}
/**
 * @generated from protobuf message api.DeleteClickhouseRequest
 */
export interface DeleteClickhouseRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
}
/**
 * @generated from protobuf message api.DeleteCassandraResult
 */
export interface DeleteCassandraResult {
}
/**
 * @generated from protobuf message api.DeleteClickhouseResult
 */
export interface DeleteClickhouseResult {
}
/**
 * @generated from protobuf message api.SuggestProjectIDRequest
 */
export interface SuggestProjectIDRequest {
    /**
     * @generated from protobuf field: api.RequestOrganisationHeader Header = 3 [json_name = "Header"];
     */
    header?: RequestOrganisationHeader;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
}
/**
 * @generated from protobuf message api.SuggestProjectIDResult
 */
export interface SuggestProjectIDResult {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
}
/**
 * @generated from protobuf message api.DeleteProjectInDBRequest
 */
export interface DeleteProjectInDBRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
}
/**
 * @generated from protobuf message api.DeleteProjectInDBResult
 */
export interface DeleteProjectInDBResult {
}
/**
 * @generated from protobuf message api.IDName
 */
export interface IDName {
    /**
     * @generated from protobuf field: string ID = 1 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: string Name = 2 [json_name = "Name"];
     */
    name: string;
    /**
     * @generated from protobuf field: bool IsDisplayed = 3 [json_name = "IsDisplayed"];
     */
    isDisplayed: boolean;
    /**
     * @generated from protobuf field: string PartnerID = 4 [json_name = "PartnerID"];
     */
    partnerID: string;
}
/**
 * @generated from protobuf message api.MyContext
 */
export interface MyContext {
    /**
     * @generated from protobuf field: api.IDName Organisation = 1 [json_name = "Organisation"];
     */
    organisation?: IDName;
    /**
     * @generated from protobuf field: repeated api.IDName Projects = 2 [json_name = "Projects"];
     */
    projects: IDName[];
}
/**
 * @generated from protobuf message api.GetMyUIContextRequest
 */
export interface GetMyUIContextRequest {
}
/**
 * @generated from protobuf message api.GetMyUIContextResult
 */
export interface GetMyUIContextResult {
    /**
     * @generated from protobuf field: repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"];
     */
    myContexts: MyContext[];
}
/**
 * @generated from protobuf message api.GetMyContextRequest
 */
export interface GetMyContextRequest {
}
/**
 * @generated from protobuf message api.GetMyContextResult
 */
export interface GetMyContextResult {
    /**
     * @generated from protobuf field: repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"];
     */
    myContexts: MyContext[];
}
/**
 * @generated from protobuf message api.UpdateProjectStatusRequest
 */
export interface UpdateProjectStatusRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
    /**
     * @generated from protobuf field: api.ProjectStatusEnum status = 2;
     */
    status: ProjectStatusEnum;
}
/**
 * @generated from protobuf message api.UpdateProjectStatusResult
 */
export interface UpdateProjectStatusResult {
    /**
     * @generated from protobuf field: api.ProjectStatusEnum status = 1;
     */
    status: ProjectStatusEnum;
}
/**
 * @generated from protobuf message api.CleanDeletedProjectsRequest
 */
export interface CleanDeletedProjectsRequest {
}
/**
 * @generated from protobuf message api.CleanDeletedProjectsResult
 */
export interface CleanDeletedProjectsResult {
}
/**
 * @generated from protobuf enum api.ProjectStatusEnum
 */
export enum ProjectStatusEnum {
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_UNKNOWN = 0;
     */
    PROJECT_STATUS_UNKNOWN = 0,
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_PROVISIONNING = 1;
     */
    PROJECT_STATUS_PROVISIONNING = 1,
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_READY = 2;
     */
    PROJECT_STATUS_READY = 2,
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_DEPROVISIONNING = 3;
     */
    PROJECT_STATUS_DEPROVISIONNING = 3,
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_DEPROVISIONNED = 4;
     */
    PROJECT_STATUS_DEPROVISIONNED = 4,
    /**
     * @generated from protobuf enum value: PROJECT_STATUS_ERROR = 5;
     */
    PROJECT_STATUS_ERROR = 5
}
// @generated message type with reflection information, may provide speed optimized methods
class ProjectCreation$Type extends MessageType<ProjectCreation> {
    constructor() {
        super("api.ProjectCreation", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", 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]+)*$" } } },
            { 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]+)*$" } } },
            { no: 3, name: "Modules", kind: "message", jsonName: "Modules", repeat: 1 /*RepeatType.PACKED*/, T: () => Module }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Name"] } } });
    }
    create(value?: PartialMessage<ProjectCreation>): ProjectCreation {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.name = "";
        message.modules = [];
        if (value !== undefined)
            reflectionMergePartial<ProjectCreation>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ProjectCreation): ProjectCreation {
        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 Name = 2 [json_name = "Name"];*/ 2:
                    message.name = reader.string();
                    break;
                case /* repeated api.Module Modules = 3 [json_name = "Modules"];*/ 3:
                    message.modules.push(Module.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: ProjectCreation, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string Name = 2 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.name);
        /* repeated api.Module Modules = 3 [json_name = "Modules"]; */
        for (let i = 0; i < message.modules.length; i++)
            Module.internalBinaryWrite(message.modules[i], 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.ProjectCreation
 */
export const ProjectCreation = new ProjectCreation$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Project$Type extends MessageType<Project> {
    constructor() {
        super("api.Project", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", pattern: "^([a-z0-9-])+$" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { pattern: "^([a-z0-9-])+$" } } },
            { no: 2, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "OrganisationID", kind: "scalar", jsonName: "OrganisationID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 4, name: "status", kind: "enum", T: () => ["api.ProjectStatusEnum", ProjectStatusEnum], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 5, name: "Modules", kind: "message", jsonName: "Modules", repeat: 1 /*RepeatType.PACKED*/, T: () => Module }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ID", "Name", "OrganisationID"] } } });
    }
    create(value?: PartialMessage<Project>): Project {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.name = "";
        message.organisationID = "";
        message.status = 0;
        message.modules = [];
        if (value !== undefined)
            reflectionMergePartial<Project>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Project): Project {
        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 Name = 2 [json_name = "Name"];*/ 2:
                    message.name = reader.string();
                    break;
                case /* string OrganisationID = 3 [json_name = "OrganisationID"];*/ 3:
                    message.organisationID = reader.string();
                    break;
                case /* api.ProjectStatusEnum status */ 4:
                    message.status = reader.int32();
                    break;
                case /* repeated api.Module Modules = 5 [json_name = "Modules"];*/ 5:
                    message.modules.push(Module.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: Project, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string Name = 2 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.name);
        /* string OrganisationID = 3 [json_name = "OrganisationID"]; */
        if (message.organisationID !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.organisationID);
        /* api.ProjectStatusEnum status = 4; */
        if (message.status !== 0)
            writer.tag(4, WireType.Varint).int32(message.status);
        /* repeated api.Module Modules = 5 [json_name = "Modules"]; */
        for (let i = 0; i < message.modules.length; i++)
            Module.internalBinaryWrite(message.modules[i], writer.tag(5, 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.Project
 */
export const Project = new Project$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteProjectRequest$Type extends MessageType<DeleteProjectRequest> {
    constructor() {
        super("api.DeleteProjectRequest", [
            { no: 3, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ID"] } } });
    }
    create(value?: PartialMessage<DeleteProjectRequest>): DeleteProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteProjectRequest): DeleteProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 3 [json_name = "Header"];*/ 3:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ID = 1 [json_name = "ID"];*/ 1:
                    message.iD = 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: DeleteProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 3 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.DeleteProjectRequest
 */
export const DeleteProjectRequest = new DeleteProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetProjectRequest$Type extends MessageType<GetProjectRequest> {
    constructor() {
        super("api.GetProjectRequest", [
            { no: 4, 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<GetProjectRequest>): GetProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetProjectRequest): GetProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 4 [json_name = "Header"];*/ 4:
                    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: GetProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 4 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(4, 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.GetProjectRequest
 */
export const GetProjectRequest = new GetProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListProjectRequest$Type extends MessageType<ListProjectRequest> {
    constructor() {
        super("api.ListProjectRequest", [
            { no: 4, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 3, name: "Paging", kind: "message", jsonName: "Paging", T: () => Paging },
            { no: 5, name: "ShowInactiveProjects", kind: "scalar", jsonName: "ShowInactiveProjects", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<ListProjectRequest>): ListProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.showInactiveProjects = false;
        if (value !== undefined)
            reflectionMergePartial<ListProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListProjectRequest): ListProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 4 [json_name = "Header"];*/ 4:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.Paging Paging = 3 [json_name = "Paging"];*/ 3:
                    message.paging = Paging.internalBinaryRead(reader, reader.uint32(), options, message.paging);
                    break;
                case /* bool ShowInactiveProjects = 5 [json_name = "ShowInactiveProjects"];*/ 5:
                    message.showInactiveProjects = 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: ListProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 4 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* api.Paging Paging = 3 [json_name = "Paging"]; */
        if (message.paging)
            Paging.internalBinaryWrite(message.paging, writer.tag(3, WireType.LengthDelimited).fork(), options).join();
        /* bool ShowInactiveProjects = 5 [json_name = "ShowInactiveProjects"]; */
        if (message.showInactiveProjects !== false)
            writer.tag(5, WireType.Varint).bool(message.showInactiveProjects);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListProjectRequest
 */
export const ListProjectRequest = new ListProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListAllProjectRequest$Type extends MessageType<ListAllProjectRequest> {
    constructor() {
        super("api.ListAllProjectRequest", [
            { no: 1, name: "ShowInactiveProjects", kind: "scalar", jsonName: "ShowInactiveProjects", T: 8 /*ScalarType.BOOL*/ }
        ]);
    }
    create(value?: PartialMessage<ListAllProjectRequest>): ListAllProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.showInactiveProjects = false;
        if (value !== undefined)
            reflectionMergePartial<ListAllProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAllProjectRequest): ListAllProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* bool ShowInactiveProjects = 1 [json_name = "ShowInactiveProjects"];*/ 1:
                    message.showInactiveProjects = 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: ListAllProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* bool ShowInactiveProjects = 1 [json_name = "ShowInactiveProjects"]; */
        if (message.showInactiveProjects !== false)
            writer.tag(1, WireType.Varint).bool(message.showInactiveProjects);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListAllProjectRequest
 */
export const ListAllProjectRequest = new ListAllProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListAllProjectResultElement$Type extends MessageType<ListAllProjectResultElement> {
    constructor() {
        super("api.ListAllProjectResultElement", [
            { no: 1, name: "Organisation", kind: "message", jsonName: "Organisation", T: () => Organisation },
            { no: 2, name: "Projects", kind: "message", jsonName: "Projects", repeat: 1 /*RepeatType.PACKED*/, T: () => Project },
            { no: 3, name: "Managers", kind: "message", jsonName: "Managers", repeat: 1 /*RepeatType.PACKED*/, T: () => User }
        ]);
    }
    create(value?: PartialMessage<ListAllProjectResultElement>): ListAllProjectResultElement {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projects = [];
        message.managers = [];
        if (value !== undefined)
            reflectionMergePartial<ListAllProjectResultElement>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAllProjectResultElement): ListAllProjectResultElement {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Organisation Organisation = 1 [json_name = "Organisation"];*/ 1:
                    message.organisation = Organisation.internalBinaryRead(reader, reader.uint32(), options, message.organisation);
                    break;
                case /* repeated api.Project Projects = 2 [json_name = "Projects"];*/ 2:
                    message.projects.push(Project.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.User Managers = 3 [json_name = "Managers"];*/ 3:
                    message.managers.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: ListAllProjectResultElement, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Organisation Organisation = 1 [json_name = "Organisation"]; */
        if (message.organisation)
            Organisation.internalBinaryWrite(message.organisation, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.Project Projects = 2 [json_name = "Projects"]; */
        for (let i = 0; i < message.projects.length; i++)
            Project.internalBinaryWrite(message.projects[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.User Managers = 3 [json_name = "Managers"]; */
        for (let i = 0; i < message.managers.length; i++)
            User.internalBinaryWrite(message.managers[i], 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.ListAllProjectResultElement
 */
export const ListAllProjectResultElement = new ListAllProjectResultElement$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListAllProjectResult$Type extends MessageType<ListAllProjectResult> {
    constructor() {
        super("api.ListAllProjectResult", [
            { no: 1, name: "Organisations", kind: "message", jsonName: "Organisations", repeat: 1 /*RepeatType.PACKED*/, T: () => ListAllProjectResultElement }
        ]);
    }
    create(value?: PartialMessage<ListAllProjectResult>): ListAllProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.organisations = [];
        if (value !== undefined)
            reflectionMergePartial<ListAllProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListAllProjectResult): ListAllProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.ListAllProjectResultElement Organisations = 1 [json_name = "Organisations"];*/ 1:
                    message.organisations.push(ListAllProjectResultElement.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: ListAllProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.ListAllProjectResultElement Organisations = 1 [json_name = "Organisations"]; */
        for (let i = 0; i < message.organisations.length; i++)
            ListAllProjectResultElement.internalBinaryWrite(message.organisations[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.ListAllProjectResult
 */
export const ListAllProjectResult = new ListAllProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateProjectRequest$Type extends MessageType<CreateProjectRequest> {
    constructor() {
        super("api.CreateProjectRequest", [
            { no: 2, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 1, name: "Project", kind: "message", jsonName: "Project", T: () => ProjectCreation, options: { "validate.rules": { message: { required: true } } } },
            { no: 3, name: "ManagerMail", kind: "scalar", jsonName: "ManagerMail", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { email: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Project"] } } });
    }
    create(value?: PartialMessage<CreateProjectRequest>): CreateProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.managerMail = "";
        if (value !== undefined)
            reflectionMergePartial<CreateProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateProjectRequest): CreateProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 2 [json_name = "Header"];*/ 2:
                    message.header = RequestOrganisationHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* api.ProjectCreation Project = 1 [json_name = "Project"];*/ 1:
                    message.project = ProjectCreation.internalBinaryRead(reader, reader.uint32(), options, message.project);
                    break;
                case /* string ManagerMail = 3 [json_name = "ManagerMail"];*/ 3:
                    message.managerMail = 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: CreateProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 2 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* api.ProjectCreation Project = 1 [json_name = "Project"]; */
        if (message.project)
            ProjectCreation.internalBinaryWrite(message.project, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ManagerMail = 3 [json_name = "ManagerMail"]; */
        if (message.managerMail !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.managerMail);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CreateProjectRequest
 */
export const CreateProjectRequest = new CreateProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateProjectRequest$Type extends MessageType<UpdateProjectRequest> {
    constructor() {
        super("api.UpdateProjectRequest", [
            { no: 2, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 3, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<UpdateProjectRequest>): UpdateProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        if (value !== undefined)
            reflectionMergePartial<UpdateProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateProjectRequest): UpdateProjectRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 2 [json_name = "Header"];*/ 2:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Name = 3 [json_name = "Name"];*/ 3:
                    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: UpdateProjectRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 2 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
        /* string Name = 3 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(3, 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.UpdateProjectRequest
 */
export const UpdateProjectRequest = new UpdateProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetModulesProjectRequest$Type extends MessageType<SetModulesProjectRequest> {
    constructor() {
        super("api.SetModulesProjectRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestOrganisationHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "Modules", kind: "message", jsonName: "Modules", repeat: 1 /*RepeatType.PACKED*/, T: () => Module }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ProjectID"] } } });
    }
    create(value?: PartialMessage<SetModulesProjectRequest>): SetModulesProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.modules = [];
        if (value !== undefined)
            reflectionMergePartial<SetModulesProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetModulesProjectRequest): SetModulesProjectRequest {
        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 ProjectID = 2 [json_name = "ProjectID"];*/ 2:
                    message.projectID = reader.string();
                    break;
                case /* repeated api.Module Modules = 3 [json_name = "Modules"];*/ 3:
                    message.modules.push(Module.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: SetModulesProjectRequest, 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 ProjectID = 2 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.projectID);
        /* repeated api.Module Modules = 3 [json_name = "Modules"]; */
        for (let i = 0; i < message.modules.length; i++)
            Module.internalBinaryWrite(message.modules[i], 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.SetModulesProjectRequest
 */
export const SetModulesProjectRequest = new SetModulesProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateProjectResult$Type extends MessageType<CreateProjectResult> {
    constructor() {
        super("api.CreateProjectResult", [
            { no: 1, name: "Result", kind: "message", jsonName: "Result", T: () => Project },
            { no: 2, name: "WorkflowExecution", kind: "message", jsonName: "WorkflowExecution", T: () => WorkflowExecutionResult }
        ]);
    }
    create(value?: PartialMessage<CreateProjectResult>): CreateProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<CreateProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateProjectResult): CreateProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Project Result = 1 [json_name = "Result"];*/ 1:
                    message.result = Project.internalBinaryRead(reader, reader.uint32(), options, message.result);
                    break;
                case /* api.WorkflowExecutionResult WorkflowExecution = 2 [json_name = "WorkflowExecution"];*/ 2:
                    message.workflowExecution = WorkflowExecutionResult.internalBinaryRead(reader, reader.uint32(), options, message.workflowExecution);
                    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: CreateProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Project Result = 1 [json_name = "Result"]; */
        if (message.result)
            Project.internalBinaryWrite(message.result, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* api.WorkflowExecutionResult WorkflowExecution = 2 [json_name = "WorkflowExecution"]; */
        if (message.workflowExecution)
            WorkflowExecutionResult.internalBinaryWrite(message.workflowExecution, 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.CreateProjectResult
 */
export const CreateProjectResult = new CreateProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateProjectResult$Type extends MessageType<UpdateProjectResult> {
    constructor() {
        super("api.UpdateProjectResult", [
            { no: 1, name: "Result", kind: "message", jsonName: "Result", T: () => Project }
        ]);
    }
    create(value?: PartialMessage<UpdateProjectResult>): UpdateProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<UpdateProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateProjectResult): UpdateProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Project Result = 1 [json_name = "Result"];*/ 1:
                    message.result = Project.internalBinaryRead(reader, reader.uint32(), options, message.result);
                    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: UpdateProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Project Result = 1 [json_name = "Result"]; */
        if (message.result)
            Project.internalBinaryWrite(message.result, 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.UpdateProjectResult
 */
export const UpdateProjectResult = new UpdateProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteProjectResult$Type extends MessageType<DeleteProjectResult> {
    constructor() {
        super("api.DeleteProjectResult", [
            { no: 1, name: "WorkflowExecution", kind: "message", jsonName: "WorkflowExecution", T: () => WorkflowExecutionResult }
        ]);
    }
    create(value?: PartialMessage<DeleteProjectResult>): DeleteProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteProjectResult): DeleteProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"];*/ 1:
                    message.workflowExecution = WorkflowExecutionResult.internalBinaryRead(reader, reader.uint32(), options, message.workflowExecution);
                    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: DeleteProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.WorkflowExecutionResult WorkflowExecution = 1 [json_name = "WorkflowExecution"]; */
        if (message.workflowExecution)
            WorkflowExecutionResult.internalBinaryWrite(message.workflowExecution, 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.DeleteProjectResult
 */
export const DeleteProjectResult = new DeleteProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetProjectResult$Type extends MessageType<GetProjectResult> {
    constructor() {
        super("api.GetProjectResult", [
            { no: 1, name: "Result", kind: "message", jsonName: "Result", T: () => Project }
        ]);
    }
    create(value?: PartialMessage<GetProjectResult>): GetProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetProjectResult): GetProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Project Result = 1 [json_name = "Result"];*/ 1:
                    message.result = Project.internalBinaryRead(reader, reader.uint32(), options, message.result);
                    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: GetProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Project Result = 1 [json_name = "Result"]; */
        if (message.result)
            Project.internalBinaryWrite(message.result, 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.GetProjectResult
 */
export const GetProjectResult = new GetProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListProjectResult$Type extends MessageType<ListProjectResult> {
    constructor() {
        super("api.ListProjectResult", [
            { no: 1, name: "Result", kind: "message", jsonName: "Result", repeat: 1 /*RepeatType.PACKED*/, T: () => Project }
        ]);
    }
    create(value?: PartialMessage<ListProjectResult>): ListProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.result = [];
        if (value !== undefined)
            reflectionMergePartial<ListProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListProjectResult): ListProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.Project Result = 1 [json_name = "Result"];*/ 1:
                    message.result.push(Project.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: ListProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.Project Result = 1 [json_name = "Result"]; */
        for (let i = 0; i < message.result.length; i++)
            Project.internalBinaryWrite(message.result[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.ListProjectResult
 */
export const ListProjectResult = new ListProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SetModulesProjectResult$Type extends MessageType<SetModulesProjectResult> {
    constructor() {
        super("api.SetModulesProjectResult", [
            { no: 1, name: "Result", kind: "message", jsonName: "Result", T: () => Project }
        ]);
    }
    create(value?: PartialMessage<SetModulesProjectResult>): SetModulesProjectResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<SetModulesProjectResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SetModulesProjectResult): SetModulesProjectResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.Project Result = 1 [json_name = "Result"];*/ 1:
                    message.result = Project.internalBinaryRead(reader, reader.uint32(), options, message.result);
                    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: SetModulesProjectResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.Project Result = 1 [json_name = "Result"]; */
        if (message.result)
            Project.internalBinaryWrite(message.result, 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.SetModulesProjectResult
 */
export const SetModulesProjectResult = new SetModulesProjectResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateClickhouseRequest$Type extends MessageType<CreateClickhouseRequest> {
    constructor() {
        super("api.CreateClickhouseRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<CreateClickhouseRequest>): CreateClickhouseRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<CreateClickhouseRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateClickhouseRequest): CreateClickhouseRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    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: CreateClickhouseRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, 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.CreateClickhouseRequest
 */
export const CreateClickhouseRequest = new CreateClickhouseRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateClickhouseResult$Type extends MessageType<CreateClickhouseResult> {
    constructor() {
        super("api.CreateClickhouseResult", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<CreateClickhouseResult>): CreateClickhouseResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        if (value !== undefined)
            reflectionMergePartial<CreateClickhouseResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateClickhouseResult): CreateClickhouseResult {
        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;
                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: CreateClickhouseResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CreateClickhouseResult
 */
export const CreateClickhouseResult = new CreateClickhouseResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class OptimizeClickhouseRequest$Type extends MessageType<OptimizeClickhouseRequest> {
    constructor() {
        super("api.OptimizeClickhouseRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "Final", kind: "scalar", jsonName: "Final", T: 8 /*ScalarType.BOOL*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<OptimizeClickhouseRequest>): OptimizeClickhouseRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.final = false;
        if (value !== undefined)
            reflectionMergePartial<OptimizeClickhouseRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OptimizeClickhouseRequest): OptimizeClickhouseRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* bool Final = 2 [json_name = "Final"];*/ 2:
                    message.final = 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: OptimizeClickhouseRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* bool Final = 2 [json_name = "Final"]; */
        if (message.final !== false)
            writer.tag(2, WireType.Varint).bool(message.final);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.OptimizeClickhouseRequest
 */
export const OptimizeClickhouseRequest = new OptimizeClickhouseRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class OptimizeClickhouseResult$Type extends MessageType<OptimizeClickhouseResult> {
    constructor() {
        super("api.OptimizeClickhouseResult", []);
    }
    create(value?: PartialMessage<OptimizeClickhouseResult>): OptimizeClickhouseResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<OptimizeClickhouseResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: OptimizeClickhouseResult): OptimizeClickhouseResult {
        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: OptimizeClickhouseResult, 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.OptimizeClickhouseResult
 */
export const OptimizeClickhouseResult = new OptimizeClickhouseResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteCassandraRequest$Type extends MessageType<DeleteCassandraRequest> {
    constructor() {
        super("api.DeleteCassandraRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ]);
    }
    create(value?: PartialMessage<DeleteCassandraRequest>): DeleteCassandraRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteCassandraRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteCassandraRequest): DeleteCassandraRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    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: DeleteCassandraRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, 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.DeleteCassandraRequest
 */
export const DeleteCassandraRequest = new DeleteCassandraRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClickhouseRequest$Type extends MessageType<DeleteClickhouseRequest> {
    constructor() {
        super("api.DeleteClickhouseRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<DeleteClickhouseRequest>): DeleteClickhouseRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteClickhouseRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClickhouseRequest): DeleteClickhouseRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    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: DeleteClickhouseRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, 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.DeleteClickhouseRequest
 */
export const DeleteClickhouseRequest = new DeleteClickhouseRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteCassandraResult$Type extends MessageType<DeleteCassandraResult> {
    constructor() {
        super("api.DeleteCassandraResult", []);
    }
    create(value?: PartialMessage<DeleteCassandraResult>): DeleteCassandraResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteCassandraResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteCassandraResult): DeleteCassandraResult {
        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: DeleteCassandraResult, 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.DeleteCassandraResult
 */
export const DeleteCassandraResult = new DeleteCassandraResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClickhouseResult$Type extends MessageType<DeleteClickhouseResult> {
    constructor() {
        super("api.DeleteClickhouseResult", []);
    }
    create(value?: PartialMessage<DeleteClickhouseResult>): DeleteClickhouseResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteClickhouseResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClickhouseResult): DeleteClickhouseResult {
        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: DeleteClickhouseResult, 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.DeleteClickhouseResult
 */
export const DeleteClickhouseResult = new DeleteClickhouseResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SuggestProjectIDRequest$Type extends MessageType<SuggestProjectIDRequest> {
    constructor() {
        super("api.SuggestProjectIDRequest", [
            { no: 3, 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" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Name"] } } });
    }
    create(value?: PartialMessage<SuggestProjectIDRequest>): SuggestProjectIDRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.name = "";
        if (value !== undefined)
            reflectionMergePartial<SuggestProjectIDRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestProjectIDRequest): SuggestProjectIDRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestOrganisationHeader Header = 3 [json_name = "Header"];*/ 3:
                    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: SuggestProjectIDRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestOrganisationHeader Header = 3 [json_name = "Header"]; */
        if (message.header)
            RequestOrganisationHeader.internalBinaryWrite(message.header, writer.tag(3, 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.SuggestProjectIDRequest
 */
export const SuggestProjectIDRequest = new SuggestProjectIDRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class SuggestProjectIDResult$Type extends MessageType<SuggestProjectIDResult> {
    constructor() {
        super("api.SuggestProjectIDResult", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<SuggestProjectIDResult>): SuggestProjectIDResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        if (value !== undefined)
            reflectionMergePartial<SuggestProjectIDResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: SuggestProjectIDResult): SuggestProjectIDResult {
        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;
                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: SuggestProjectIDResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.SuggestProjectIDResult
 */
export const SuggestProjectIDResult = new SuggestProjectIDResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteProjectInDBRequest$Type extends MessageType<DeleteProjectInDBRequest> {
    constructor() {
        super("api.DeleteProjectInDBRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<DeleteProjectInDBRequest>): DeleteProjectInDBRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteProjectInDBRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteProjectInDBRequest): DeleteProjectInDBRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    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: DeleteProjectInDBRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, 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.DeleteProjectInDBRequest
 */
export const DeleteProjectInDBRequest = new DeleteProjectInDBRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteProjectInDBResult$Type extends MessageType<DeleteProjectInDBResult> {
    constructor() {
        super("api.DeleteProjectInDBResult", []);
    }
    create(value?: PartialMessage<DeleteProjectInDBResult>): DeleteProjectInDBResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteProjectInDBResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteProjectInDBResult): DeleteProjectInDBResult {
        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: DeleteProjectInDBResult, 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.DeleteProjectInDBResult
 */
export const DeleteProjectInDBResult = new DeleteProjectInDBResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class IDName$Type extends MessageType<IDName> {
    constructor() {
        super("api.IDName", [
            { no: 1, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/ },
            { no: 2, name: "Name", kind: "scalar", jsonName: "Name", T: 9 /*ScalarType.STRING*/ },
            { no: 3, name: "IsDisplayed", kind: "scalar", jsonName: "IsDisplayed", T: 8 /*ScalarType.BOOL*/ },
            { no: 4, name: "PartnerID", kind: "scalar", jsonName: "PartnerID", T: 9 /*ScalarType.STRING*/ }
        ]);
    }
    create(value?: PartialMessage<IDName>): IDName {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.name = "";
        message.isDisplayed = false;
        message.partnerID = "";
        if (value !== undefined)
            reflectionMergePartial<IDName>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: IDName): IDName {
        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 Name = 2 [json_name = "Name"];*/ 2:
                    message.name = reader.string();
                    break;
                case /* bool IsDisplayed = 3 [json_name = "IsDisplayed"];*/ 3:
                    message.isDisplayed = reader.bool();
                    break;
                case /* string PartnerID = 4 [json_name = "PartnerID"];*/ 4:
                    message.partnerID = 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: IDName, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ID = 1 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.iD);
        /* string Name = 2 [json_name = "Name"]; */
        if (message.name !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.name);
        /* bool IsDisplayed = 3 [json_name = "IsDisplayed"]; */
        if (message.isDisplayed !== false)
            writer.tag(3, WireType.Varint).bool(message.isDisplayed);
        /* string PartnerID = 4 [json_name = "PartnerID"]; */
        if (message.partnerID !== "")
            writer.tag(4, WireType.LengthDelimited).string(message.partnerID);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.IDName
 */
export const IDName = new IDName$Type();
// @generated message type with reflection information, may provide speed optimized methods
class MyContext$Type extends MessageType<MyContext> {
    constructor() {
        super("api.MyContext", [
            { no: 1, name: "Organisation", kind: "message", jsonName: "Organisation", T: () => IDName },
            { no: 2, name: "Projects", kind: "message", jsonName: "Projects", repeat: 1 /*RepeatType.PACKED*/, T: () => IDName }
        ]);
    }
    create(value?: PartialMessage<MyContext>): MyContext {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projects = [];
        if (value !== undefined)
            reflectionMergePartial<MyContext>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: MyContext): MyContext {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.IDName Organisation = 1 [json_name = "Organisation"];*/ 1:
                    message.organisation = IDName.internalBinaryRead(reader, reader.uint32(), options, message.organisation);
                    break;
                case /* repeated api.IDName Projects = 2 [json_name = "Projects"];*/ 2:
                    message.projects.push(IDName.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: MyContext, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.IDName Organisation = 1 [json_name = "Organisation"]; */
        if (message.organisation)
            IDName.internalBinaryWrite(message.organisation, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.IDName Projects = 2 [json_name = "Projects"]; */
        for (let i = 0; i < message.projects.length; i++)
            IDName.internalBinaryWrite(message.projects[i], 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.MyContext
 */
export const MyContext = new MyContext$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetMyUIContextRequest$Type extends MessageType<GetMyUIContextRequest> {
    constructor() {
        super("api.GetMyUIContextRequest", []);
    }
    create(value?: PartialMessage<GetMyUIContextRequest>): GetMyUIContextRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetMyUIContextRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMyUIContextRequest): GetMyUIContextRequest {
        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: GetMyUIContextRequest, 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.GetMyUIContextRequest
 */
export const GetMyUIContextRequest = new GetMyUIContextRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetMyUIContextResult$Type extends MessageType<GetMyUIContextResult> {
    constructor() {
        super("api.GetMyUIContextResult", [
            { no: 1, name: "MyContexts", kind: "message", jsonName: "MyContexts", repeat: 1 /*RepeatType.PACKED*/, T: () => MyContext }
        ]);
    }
    create(value?: PartialMessage<GetMyUIContextResult>): GetMyUIContextResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.myContexts = [];
        if (value !== undefined)
            reflectionMergePartial<GetMyUIContextResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMyUIContextResult): GetMyUIContextResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"];*/ 1:
                    message.myContexts.push(MyContext.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: GetMyUIContextResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"]; */
        for (let i = 0; i < message.myContexts.length; i++)
            MyContext.internalBinaryWrite(message.myContexts[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.GetMyUIContextResult
 */
export const GetMyUIContextResult = new GetMyUIContextResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetMyContextRequest$Type extends MessageType<GetMyContextRequest> {
    constructor() {
        super("api.GetMyContextRequest", []);
    }
    create(value?: PartialMessage<GetMyContextRequest>): GetMyContextRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetMyContextRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMyContextRequest): GetMyContextRequest {
        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: GetMyContextRequest, 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.GetMyContextRequest
 */
export const GetMyContextRequest = new GetMyContextRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetMyContextResult$Type extends MessageType<GetMyContextResult> {
    constructor() {
        super("api.GetMyContextResult", [
            { no: 1, name: "MyContexts", kind: "message", jsonName: "MyContexts", repeat: 1 /*RepeatType.PACKED*/, T: () => MyContext }
        ]);
    }
    create(value?: PartialMessage<GetMyContextResult>): GetMyContextResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.myContexts = [];
        if (value !== undefined)
            reflectionMergePartial<GetMyContextResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetMyContextResult): GetMyContextResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"];*/ 1:
                    message.myContexts.push(MyContext.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: GetMyContextResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.MyContext MyContexts = 1 [json_name = "MyContexts"]; */
        for (let i = 0; i < message.myContexts.length; i++)
            MyContext.internalBinaryWrite(message.myContexts[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.GetMyContextResult
 */
export const GetMyContextResult = new GetMyContextResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateProjectStatusRequest$Type extends MessageType<UpdateProjectStatusRequest> {
    constructor() {
        super("api.UpdateProjectStatusRequest", [
            { no: 1, name: "ProjectID", kind: "scalar", jsonName: "ProjectID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 2, name: "status", kind: "enum", T: () => ["api.ProjectStatusEnum", ProjectStatusEnum], options: { "validate.rules": { enum: { definedOnly: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["ProjectID"] } } });
    }
    create(value?: PartialMessage<UpdateProjectStatusRequest>): UpdateProjectStatusRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        message.status = 0;
        if (value !== undefined)
            reflectionMergePartial<UpdateProjectStatusRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateProjectStatusRequest): UpdateProjectStatusRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* string ProjectID = 1 [json_name = "ProjectID"];*/ 1:
                    message.projectID = reader.string();
                    break;
                case /* api.ProjectStatusEnum status */ 2:
                    message.status = 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: UpdateProjectStatusRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* string ProjectID = 1 [json_name = "ProjectID"]; */
        if (message.projectID !== "")
            writer.tag(1, WireType.LengthDelimited).string(message.projectID);
        /* api.ProjectStatusEnum status = 2; */
        if (message.status !== 0)
            writer.tag(2, WireType.Varint).int32(message.status);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.UpdateProjectStatusRequest
 */
export const UpdateProjectStatusRequest = new UpdateProjectStatusRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateProjectStatusResult$Type extends MessageType<UpdateProjectStatusResult> {
    constructor() {
        super("api.UpdateProjectStatusResult", [
            { no: 1, name: "status", kind: "enum", T: () => ["api.ProjectStatusEnum", ProjectStatusEnum] }
        ]);
    }
    create(value?: PartialMessage<UpdateProjectStatusResult>): UpdateProjectStatusResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.status = 0;
        if (value !== undefined)
            reflectionMergePartial<UpdateProjectStatusResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateProjectStatusResult): UpdateProjectStatusResult {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ProjectStatusEnum status */ 1:
                    message.status = 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: UpdateProjectStatusResult, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ProjectStatusEnum status = 1; */
        if (message.status !== 0)
            writer.tag(1, WireType.Varint).int32(message.status);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.UpdateProjectStatusResult
 */
export const UpdateProjectStatusResult = new UpdateProjectStatusResult$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CleanDeletedProjectsRequest$Type extends MessageType<CleanDeletedProjectsRequest> {
    constructor() {
        super("api.CleanDeletedProjectsRequest", [], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: {} } });
    }
    create(value?: PartialMessage<CleanDeletedProjectsRequest>): CleanDeletedProjectsRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<CleanDeletedProjectsRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CleanDeletedProjectsRequest): CleanDeletedProjectsRequest {
        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: CleanDeletedProjectsRequest, 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.CleanDeletedProjectsRequest
 */
export const CleanDeletedProjectsRequest = new CleanDeletedProjectsRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CleanDeletedProjectsResult$Type extends MessageType<CleanDeletedProjectsResult> {
    constructor() {
        super("api.CleanDeletedProjectsResult", []);
    }
    create(value?: PartialMessage<CleanDeletedProjectsResult>): CleanDeletedProjectsResult {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<CleanDeletedProjectsResult>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CleanDeletedProjectsResult): CleanDeletedProjectsResult {
        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: CleanDeletedProjectsResult, 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.CleanDeletedProjectsResult
 */
export const CleanDeletedProjectsResult = new CleanDeletedProjectsResult$Type();
/**
 * @generated ServiceType for protobuf service api.ProjectService
 */
export const ProjectService = new ServiceType("api.ProjectService", [
    { name: "Get", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Get" }, "api.rscType": "Project", "api.roles": "Platform.Project", "google.api.method_visibility": { restriction: "SDK" } }, I: GetProjectRequest, O: GetProjectResult },
    { name: "List", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "List the projects of an organization" }, "api.rscType": "Organisation", "api.roles": "Platform.Project", "google.api.method_visibility": { restriction: "SDK" } }, I: ListProjectRequest, O: ListProjectResult },
    { name: "ListAll", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "List all projects of the platform" }, "api.rscType": "Platform", "api.roles": "Platform.Project", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: ListAllProjectRequest, O: ListAllProjectResult },
    { name: "Create", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Create a project" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: CreateProjectRequest, O: CreateProjectResult },
    { name: "SetModules", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Set the modules of a project" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: SetModulesProjectRequest, O: SetModulesProjectResult },
    { name: "Update", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Update project" }, "api.rscType": "Project", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: UpdateProjectRequest, O: UpdateProjectResult },
    { name: "UpdateStatus", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Update project status" }, "api.rscType": "Platform", "api.roles": "Platform.Project", "google.api.method_visibility": { restriction: "SDK" } }, I: UpdateProjectStatusRequest, O: UpdateProjectStatusResult },
    { name: "Delete", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Delete resources in connection with the project" }, "api.rscType": "Organisation", "api.roles": "Platform.Project-Deletion", "google.api.method_visibility": { restriction: "SDK" } }, I: DeleteProjectRequest, O: DeleteProjectResult },
    { name: "CreateClickhouse", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Create Clickhouse resources in connection with the project" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: CreateClickhouseRequest, O: CreateClickhouseResult },
    { name: "DeleteClickhouse", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Delete Clickhouse resources in connection with the project" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: DeleteClickhouseRequest, O: DeleteClickhouseResult },
    { name: "SuggestID", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Suggest a project ID" }, "api.rscType": "Organisation", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: SuggestProjectIDRequest, O: SuggestProjectIDResult },
    { name: "GetMyUIContext", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "List all user accessible projects for non-SA users" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: GetMyContextRequest, O: GetMyContextResult },
    { name: "GetMyContext", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "List all user accessible projects" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "SDK" } }, I: GetMyContextRequest, O: GetMyContextResult },
    { name: "DeleteProjectInDB", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Delete the project in database" }, "api.rscType": "Platform", "api.roles": "Platform.Project-Deletion", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: DeleteProjectInDBRequest, O: DeleteProjectInDBResult },
    { name: "DeleteCassandra", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Delete Cassandra resources in connection with the project" }, "api.rscType": "Platform", "api.roles": "", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: DeleteCassandraRequest, O: DeleteCassandraResult },
    { name: "OptimizeClickhouse", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Initiate an unscheduled merge of data parts for Clickhouse tables in connection with the project" }, "api.rscType": "Platform", "api.roles": "Platform.Project-Admin", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: OptimizeClickhouseRequest, O: OptimizeClickhouseResult },
    { name: "CleanDeletedProjects", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["Admin Project"], description: "Clear deleted projects in database" }, "api.rscType": "Platform", "api.roles": "Platform.Project", "google.api.method_visibility": { restriction: "INTERNAL" } }, I: CleanDeletedProjectsRequest, O: CleanDeletedProjectsResult }
], { "api.k8sService": "organisation-server", "api.roleManager": true, "api.resourceManager": true });
