// @generated by protobuf-ts 2.9.6
// @generated from protobuf file "claim-type.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 type { BinaryReadOptions } from "@protobuf-ts/runtime";
import type { IBinaryReader } from "@protobuf-ts/runtime";
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
import { WireType } from "@protobuf-ts/runtime";
import type { PartialMessage } from "@protobuf-ts/runtime";
import { reflectionMergePartial } from "@protobuf-ts/runtime";
import { MessageType } from "@protobuf-ts/runtime";
import { ClaimType } from "./shared";
import { ClaimSector } from "./shared";
import { ClaimStatus } from "./shared";
import { ClaimTypeClosure } from "./shared";
import { ClaimTransition } from "./shared";
import { ClaimCriticality } from "./shared";
import { ClaimEntityType } from "./shared";
import { RequestProjectHeader } from "./shared";
// ========== REQUESTS & RESPONSE MESSAGES ==========

/**
 * Create
 *
 * @generated from protobuf message api.CreateClaimTypeRequest
 */
export interface CreateClaimTypeRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string Reason = 2 [json_name = "Reason"];
     */
    reason: string; // Reason or description for the claim.
    /**
     * @generated from protobuf field: string ReasonCode = 3 [json_name = "ReasonCode"];
     */
    reasonCode: string; // Code for the reason of the claim. It should be unique for the project.
    /**
     * @generated from protobuf field: api.ClaimEntityType EntityType = 4 [json_name = "EntityType"];
     */
    entityType: ClaimEntityType; // Type of entity associated with the claim.
    /**
     * @generated from protobuf field: api.ClaimCriticality DefaultCriticality = 5 [json_name = "DefaultCriticality"];
     */
    defaultCriticality: ClaimCriticality; // Default criticality level for the claim which is set upon its creation.
    /**
     * @generated from protobuf field: repeated api.ClaimTransition Transitions = 6 [json_name = "Transitions"];
     */
    transitions: ClaimTransition[]; // List of possible transitions between claim statuses.
    /**
     * @generated from protobuf field: repeated api.ClaimTypeClosure PossibleClosures = 7 [json_name = "PossibleClosures"];
     */
    possibleClosures: ClaimTypeClosure[]; // List of possible closures for the claim.
    /**
     * @generated from protobuf field: repeated string CriticalityAllowedRoles = 8 [json_name = "CriticalityAllowedRoles"];
     */
    criticalityAllowedRoles: string[]; // Roles allowed to set criticality.
    /**
     * @generated from protobuf field: repeated string ReadAllowedRoles = 9 [json_name = "ReadAllowedRoles"];
     */
    readAllowedRoles: string[]; // Roles allowed to read/view the claim.
    /**
     * @generated from protobuf field: repeated string WriteAllowedRoles = 10 [json_name = "WriteAllowedRoles"];
     */
    writeAllowedRoles: string[]; // Roles allowed to write/edit the claim.
    /**
     * @generated from protobuf field: repeated string AssignAllowedRoles = 11 [json_name = "AssignAllowedRoles"];
     */
    assignAllowedRoles: string[]; // Roles allowed to assign the claim.
    /**
     * @generated from protobuf field: repeated api.ClaimStatus AllowedStatuses = 12 [json_name = "AllowedStatuses"];
     */
    allowedStatuses: ClaimStatus[]; // List of allowed statuses for the claim.
    /**
     * @generated from protobuf field: api.ClaimStatus DefaultStatus = 13 [json_name = "DefaultStatus"];
     */
    defaultStatus: ClaimStatus; // Default status for the claim which is set upon its creation.
    /**
     * @generated from protobuf field: api.ClaimSector Sector = 14 [json_name = "Sector"];
     */
    sector: ClaimSector; // Sector of the claim.
    /**
     * @generated from protobuf field: repeated string DefaultAssignees = 15 [json_name = "DefaultAssignees"];
     */
    defaultAssignees: string[]; // List of default assignees for the claim.
}
/**
 * @generated from protobuf message api.CreateClaimTypeResponse
 */
export interface CreateClaimTypeResponse {
    /**
     * @generated from protobuf field: api.ClaimType ClaimType = 1 [json_name = "ClaimType"];
     */
    claimType?: ClaimType;
}
/**
 * Get
 *
 * @generated from protobuf message api.GetClaimTypeRequest
 */
export interface GetClaimTypeRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ID = 2 [json_name = "ID"];
     */
    iD: string;
}
/**
 * @generated from protobuf message api.GetClaimTypeResponse
 */
export interface GetClaimTypeResponse {
    /**
     * @generated from protobuf field: api.ClaimType ClaimType = 1 [json_name = "ClaimType"];
     */
    claimType?: ClaimType;
}
/**
 * List
 *
 * @generated from protobuf message api.ListClaimTypeRequest
 */
export interface ListClaimTypeRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
}
/**
 * @generated from protobuf message api.ListClaimTypeResponse
 */
export interface ListClaimTypeResponse {
    /**
     * @generated from protobuf field: repeated api.ClaimType ClaimTypes = 1 [json_name = "ClaimTypes"];
     */
    claimTypes: ClaimType[];
}
/**
 * Update
 *
 * @generated from protobuf message api.UpdateClaimTypeRequest
 */
export interface UpdateClaimTypeRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ID = 2 [json_name = "ID"];
     */
    iD: string;
    /**
     * @generated from protobuf field: api.ClaimCriticality DefaultCriticality = 3 [json_name = "DefaultCriticality"];
     */
    defaultCriticality: ClaimCriticality;
    /**
     * @generated from protobuf field: repeated api.ClaimTransition Transitions = 4 [json_name = "Transitions"];
     */
    transitions: ClaimTransition[];
    /**
     * @generated from protobuf field: repeated api.ClaimTypeClosure PossibleClosures = 5 [json_name = "PossibleClosures"];
     */
    possibleClosures: ClaimTypeClosure[];
    /**
     * @generated from protobuf field: repeated string CriticalityAllowedRoles = 6 [json_name = "CriticalityAllowedRoles"];
     */
    criticalityAllowedRoles: string[]; // If not provided, it will be set to empty
    /**
     * @generated from protobuf field: repeated string ReadAllowedRoles = 7 [json_name = "ReadAllowedRoles"];
     */
    readAllowedRoles: string[]; // If not provided, it will be set to empty
    /**
     * @generated from protobuf field: repeated string WriteAllowedRoles = 8 [json_name = "WriteAllowedRoles"];
     */
    writeAllowedRoles: string[]; // If not provided, it will be set to empty
    /**
     * @generated from protobuf field: repeated string AssignAllowedRoles = 9 [json_name = "AssignAllowedRoles"];
     */
    assignAllowedRoles: string[]; // If not provided, it will be set to empty
    /**
     * @generated from protobuf field: repeated api.ClaimStatus AllowedStatuses = 10 [json_name = "AllowedStatuses"];
     */
    allowedStatuses: ClaimStatus[];
    /**
     * @generated from protobuf field: api.ClaimStatus DefaultStatus = 11 [json_name = "DefaultStatus"];
     */
    defaultStatus: ClaimStatus;
    /**
     * @generated from protobuf field: api.ClaimSector Sector = 12 [json_name = "Sector"];
     */
    sector: ClaimSector;
    /**
     * @generated from protobuf field: repeated string DefaultAssignees = 13 [json_name = "DefaultAssignees"];
     */
    defaultAssignees: string[]; // List of default assignees for the claim.
}
/**
 * @generated from protobuf message api.UpdateClaimTypeResponse
 */
export interface UpdateClaimTypeResponse {
    /**
     * @generated from protobuf field: api.ClaimType ClaimType = 1 [json_name = "ClaimType"];
     */
    claimType?: ClaimType;
}
/**
 * Delete
 *
 * @generated from protobuf message api.DeleteClaimTypeRequest
 */
export interface DeleteClaimTypeRequest {
    /**
     * @generated from protobuf field: api.RequestProjectHeader Header = 1 [json_name = "Header"];
     */
    header?: RequestProjectHeader;
    /**
     * @generated from protobuf field: string ID = 2 [json_name = "ID"];
     */
    iD: string;
}
/**
 * @generated from protobuf message api.DeleteClaimTypeResponse
 */
export interface DeleteClaimTypeResponse {
}
/**
 * Delete
 *
 * @generated from protobuf message api.DeleteClaimTypesForProjectRequest
 */
export interface DeleteClaimTypesForProjectRequest {
    /**
     * @generated from protobuf field: string ProjectID = 1 [json_name = "ProjectID"];
     */
    projectID: string;
}
/**
 * @generated from protobuf message api.DeleteClaimTypesForProjectResponse
 */
export interface DeleteClaimTypesForProjectResponse {
}
// @generated message type with reflection information, may provide speed optimized methods
class CreateClaimTypeRequest$Type extends MessageType<CreateClaimTypeRequest> {
    constructor() {
        super("api.CreateClaimTypeRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "Reason", kind: "scalar", jsonName: "Reason", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", maxLen: "255" } } } },
            { no: 3, name: "ReasonCode", kind: "scalar", jsonName: "ReasonCode", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1", pattern: "^[a-zA-Z0-9]+$" } }, "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_field": { pattern: "^[a-zA-Z0-9]+$" } } },
            { no: 4, name: "EntityType", kind: "enum", jsonName: "EntityType", T: () => ["api.ClaimEntityType", ClaimEntityType, "CLAIM_ENTITY_TYPE_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 5, name: "DefaultCriticality", kind: "enum", jsonName: "DefaultCriticality", T: () => ["api.ClaimCriticality", ClaimCriticality, "CLAIM_CRITICALITY_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 6, name: "Transitions", kind: "message", jsonName: "Transitions", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTransition },
            { no: 7, name: "PossibleClosures", kind: "message", jsonName: "PossibleClosures", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTypeClosure },
            { no: 8, name: "CriticalityAllowedRoles", kind: "scalar", jsonName: "CriticalityAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 9, name: "ReadAllowedRoles", kind: "scalar", jsonName: "ReadAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "WriteAllowedRoles", kind: "scalar", jsonName: "WriteAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 11, name: "AssignAllowedRoles", kind: "scalar", jsonName: "AssignAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 12, name: "AllowedStatuses", kind: "enum", jsonName: "AllowedStatuses", repeat: 1 /*RepeatType.PACKED*/, T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"] },
            { no: 13, name: "DefaultStatus", kind: "enum", jsonName: "DefaultStatus", T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 14, name: "Sector", kind: "enum", jsonName: "Sector", T: () => ["api.ClaimSector", ClaimSector, "CLAIM_SECTOR_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 15, name: "DefaultAssignees", kind: "scalar", jsonName: "DefaultAssignees", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "Reason", "EntityType", "DefaultCriticality"] } } });
    }
    create(value?: PartialMessage<CreateClaimTypeRequest>): CreateClaimTypeRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.reason = "";
        message.reasonCode = "";
        message.entityType = 0;
        message.defaultCriticality = 0;
        message.transitions = [];
        message.possibleClosures = [];
        message.criticalityAllowedRoles = [];
        message.readAllowedRoles = [];
        message.writeAllowedRoles = [];
        message.assignAllowedRoles = [];
        message.allowedStatuses = [];
        message.defaultStatus = 0;
        message.sector = 0;
        message.defaultAssignees = [];
        if (value !== undefined)
            reflectionMergePartial<CreateClaimTypeRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateClaimTypeRequest): CreateClaimTypeRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string Reason = 2 [json_name = "Reason"];*/ 2:
                    message.reason = reader.string();
                    break;
                case /* string ReasonCode = 3 [json_name = "ReasonCode"];*/ 3:
                    message.reasonCode = reader.string();
                    break;
                case /* api.ClaimEntityType EntityType = 4 [json_name = "EntityType"];*/ 4:
                    message.entityType = reader.int32();
                    break;
                case /* api.ClaimCriticality DefaultCriticality = 5 [json_name = "DefaultCriticality"];*/ 5:
                    message.defaultCriticality = reader.int32();
                    break;
                case /* repeated api.ClaimTransition Transitions = 6 [json_name = "Transitions"];*/ 6:
                    message.transitions.push(ClaimTransition.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.ClaimTypeClosure PossibleClosures = 7 [json_name = "PossibleClosures"];*/ 7:
                    message.possibleClosures.push(ClaimTypeClosure.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated string CriticalityAllowedRoles = 8 [json_name = "CriticalityAllowedRoles"];*/ 8:
                    message.criticalityAllowedRoles.push(reader.string());
                    break;
                case /* repeated string ReadAllowedRoles = 9 [json_name = "ReadAllowedRoles"];*/ 9:
                    message.readAllowedRoles.push(reader.string());
                    break;
                case /* repeated string WriteAllowedRoles = 10 [json_name = "WriteAllowedRoles"];*/ 10:
                    message.writeAllowedRoles.push(reader.string());
                    break;
                case /* repeated string AssignAllowedRoles = 11 [json_name = "AssignAllowedRoles"];*/ 11:
                    message.assignAllowedRoles.push(reader.string());
                    break;
                case /* repeated api.ClaimStatus AllowedStatuses = 12 [json_name = "AllowedStatuses"];*/ 12:
                    if (wireType === WireType.LengthDelimited)
                        for (let e = reader.int32() + reader.pos; reader.pos < e;)
                            message.allowedStatuses.push(reader.int32());
                    else
                        message.allowedStatuses.push(reader.int32());
                    break;
                case /* api.ClaimStatus DefaultStatus = 13 [json_name = "DefaultStatus"];*/ 13:
                    message.defaultStatus = reader.int32();
                    break;
                case /* api.ClaimSector Sector = 14 [json_name = "Sector"];*/ 14:
                    message.sector = reader.int32();
                    break;
                case /* repeated string DefaultAssignees = 15 [json_name = "DefaultAssignees"];*/ 15:
                    message.defaultAssignees.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: CreateClaimTypeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string Reason = 2 [json_name = "Reason"]; */
        if (message.reason !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.reason);
        /* string ReasonCode = 3 [json_name = "ReasonCode"]; */
        if (message.reasonCode !== "")
            writer.tag(3, WireType.LengthDelimited).string(message.reasonCode);
        /* api.ClaimEntityType EntityType = 4 [json_name = "EntityType"]; */
        if (message.entityType !== 0)
            writer.tag(4, WireType.Varint).int32(message.entityType);
        /* api.ClaimCriticality DefaultCriticality = 5 [json_name = "DefaultCriticality"]; */
        if (message.defaultCriticality !== 0)
            writer.tag(5, WireType.Varint).int32(message.defaultCriticality);
        /* repeated api.ClaimTransition Transitions = 6 [json_name = "Transitions"]; */
        for (let i = 0; i < message.transitions.length; i++)
            ClaimTransition.internalBinaryWrite(message.transitions[i], writer.tag(6, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ClaimTypeClosure PossibleClosures = 7 [json_name = "PossibleClosures"]; */
        for (let i = 0; i < message.possibleClosures.length; i++)
            ClaimTypeClosure.internalBinaryWrite(message.possibleClosures[i], writer.tag(7, WireType.LengthDelimited).fork(), options).join();
        /* repeated string CriticalityAllowedRoles = 8 [json_name = "CriticalityAllowedRoles"]; */
        for (let i = 0; i < message.criticalityAllowedRoles.length; i++)
            writer.tag(8, WireType.LengthDelimited).string(message.criticalityAllowedRoles[i]);
        /* repeated string ReadAllowedRoles = 9 [json_name = "ReadAllowedRoles"]; */
        for (let i = 0; i < message.readAllowedRoles.length; i++)
            writer.tag(9, WireType.LengthDelimited).string(message.readAllowedRoles[i]);
        /* repeated string WriteAllowedRoles = 10 [json_name = "WriteAllowedRoles"]; */
        for (let i = 0; i < message.writeAllowedRoles.length; i++)
            writer.tag(10, WireType.LengthDelimited).string(message.writeAllowedRoles[i]);
        /* repeated string AssignAllowedRoles = 11 [json_name = "AssignAllowedRoles"]; */
        for (let i = 0; i < message.assignAllowedRoles.length; i++)
            writer.tag(11, WireType.LengthDelimited).string(message.assignAllowedRoles[i]);
        /* repeated api.ClaimStatus AllowedStatuses = 12 [json_name = "AllowedStatuses"]; */
        if (message.allowedStatuses.length) {
            writer.tag(12, WireType.LengthDelimited).fork();
            for (let i = 0; i < message.allowedStatuses.length; i++)
                writer.int32(message.allowedStatuses[i]);
            writer.join();
        }
        /* api.ClaimStatus DefaultStatus = 13 [json_name = "DefaultStatus"]; */
        if (message.defaultStatus !== 0)
            writer.tag(13, WireType.Varint).int32(message.defaultStatus);
        /* api.ClaimSector Sector = 14 [json_name = "Sector"]; */
        if (message.sector !== 0)
            writer.tag(14, WireType.Varint).int32(message.sector);
        /* repeated string DefaultAssignees = 15 [json_name = "DefaultAssignees"]; */
        for (let i = 0; i < message.defaultAssignees.length; i++)
            writer.tag(15, WireType.LengthDelimited).string(message.defaultAssignees[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.CreateClaimTypeRequest
 */
export const CreateClaimTypeRequest = new CreateClaimTypeRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class CreateClaimTypeResponse$Type extends MessageType<CreateClaimTypeResponse> {
    constructor() {
        super("api.CreateClaimTypeResponse", [
            { no: 1, name: "ClaimType", kind: "message", jsonName: "ClaimType", T: () => ClaimType, options: { "validate.rules": { message: { required: true } } } }
        ]);
    }
    create(value?: PartialMessage<CreateClaimTypeResponse>): CreateClaimTypeResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<CreateClaimTypeResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateClaimTypeResponse): CreateClaimTypeResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"];*/ 1:
                    message.claimType = ClaimType.internalBinaryRead(reader, reader.uint32(), options, message.claimType);
                    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: CreateClaimTypeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"]; */
        if (message.claimType)
            ClaimType.internalBinaryWrite(message.claimType, 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.CreateClaimTypeResponse
 */
export const CreateClaimTypeResponse = new CreateClaimTypeResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetClaimTypeRequest$Type extends MessageType<GetClaimTypeRequest> {
    constructor() {
        super("api.GetClaimTypeRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, 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<GetClaimTypeRequest>): GetClaimTypeRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        if (value !== undefined)
            reflectionMergePartial<GetClaimTypeRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetClaimTypeRequest): GetClaimTypeRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ID = 2 [json_name = "ID"];*/ 2:
                    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: GetClaimTypeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ID = 2 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(2, 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.GetClaimTypeRequest
 */
export const GetClaimTypeRequest = new GetClaimTypeRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class GetClaimTypeResponse$Type extends MessageType<GetClaimTypeResponse> {
    constructor() {
        super("api.GetClaimTypeResponse", [
            { no: 1, name: "ClaimType", kind: "message", jsonName: "ClaimType", T: () => ClaimType, options: { "validate.rules": { message: { required: true } } } }
        ]);
    }
    create(value?: PartialMessage<GetClaimTypeResponse>): GetClaimTypeResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<GetClaimTypeResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetClaimTypeResponse): GetClaimTypeResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"];*/ 1:
                    message.claimType = ClaimType.internalBinaryRead(reader, reader.uint32(), options, message.claimType);
                    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: GetClaimTypeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"]; */
        if (message.claimType)
            ClaimType.internalBinaryWrite(message.claimType, 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.GetClaimTypeResponse
 */
export const GetClaimTypeResponse = new GetClaimTypeResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListClaimTypeRequest$Type extends MessageType<ListClaimTypeRequest> {
    constructor() {
        super("api.ListClaimTypeRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header"] } } });
    }
    create(value?: PartialMessage<ListClaimTypeRequest>): ListClaimTypeRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<ListClaimTypeRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListClaimTypeRequest): ListClaimTypeRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: ListClaimTypeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.ListClaimTypeRequest
 */
export const ListClaimTypeRequest = new ListClaimTypeRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class ListClaimTypeResponse$Type extends MessageType<ListClaimTypeResponse> {
    constructor() {
        super("api.ListClaimTypeResponse", [
            { no: 1, name: "ClaimTypes", kind: "message", jsonName: "ClaimTypes", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimType }
        ]);
    }
    create(value?: PartialMessage<ListClaimTypeResponse>): ListClaimTypeResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.claimTypes = [];
        if (value !== undefined)
            reflectionMergePartial<ListClaimTypeResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListClaimTypeResponse): ListClaimTypeResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* repeated api.ClaimType ClaimTypes = 1 [json_name = "ClaimTypes"];*/ 1:
                    message.claimTypes.push(ClaimType.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: ListClaimTypeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* repeated api.ClaimType ClaimTypes = 1 [json_name = "ClaimTypes"]; */
        for (let i = 0; i < message.claimTypes.length; i++)
            ClaimType.internalBinaryWrite(message.claimTypes[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.ListClaimTypeResponse
 */
export const ListClaimTypeResponse = new ListClaimTypeResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateClaimTypeRequest$Type extends MessageType<UpdateClaimTypeRequest> {
    constructor() {
        super("api.UpdateClaimTypeRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, name: "ID", kind: "scalar", jsonName: "ID", T: 9 /*ScalarType.STRING*/, options: { "validate.rules": { string: { minLen: "1" } } } },
            { no: 3, name: "DefaultCriticality", kind: "enum", jsonName: "DefaultCriticality", T: () => ["api.ClaimCriticality", ClaimCriticality, "CLAIM_CRITICALITY_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 4, name: "Transitions", kind: "message", jsonName: "Transitions", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTransition },
            { no: 5, name: "PossibleClosures", kind: "message", jsonName: "PossibleClosures", repeat: 1 /*RepeatType.PACKED*/, T: () => ClaimTypeClosure },
            { no: 6, name: "CriticalityAllowedRoles", kind: "scalar", jsonName: "CriticalityAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 7, name: "ReadAllowedRoles", kind: "scalar", jsonName: "ReadAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 8, name: "WriteAllowedRoles", kind: "scalar", jsonName: "WriteAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 9, name: "AssignAllowedRoles", kind: "scalar", jsonName: "AssignAllowedRoles", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
            { no: 10, name: "AllowedStatuses", kind: "enum", jsonName: "AllowedStatuses", repeat: 1 /*RepeatType.PACKED*/, T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"] },
            { no: 11, name: "DefaultStatus", kind: "enum", jsonName: "DefaultStatus", T: () => ["api.ClaimStatus", ClaimStatus, "CLAIM_STATUS_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 12, name: "Sector", kind: "enum", jsonName: "Sector", T: () => ["api.ClaimSector", ClaimSector, "CLAIM_SECTOR_"], options: { "validate.rules": { enum: { definedOnly: true } } } },
            { no: 13, name: "DefaultAssignees", kind: "scalar", jsonName: "DefaultAssignees", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }
        ], { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema": { jsonSchema: { required: ["Header", "ID", "Reason"] } } });
    }
    create(value?: PartialMessage<UpdateClaimTypeRequest>): UpdateClaimTypeRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        message.defaultCriticality = 0;
        message.transitions = [];
        message.possibleClosures = [];
        message.criticalityAllowedRoles = [];
        message.readAllowedRoles = [];
        message.writeAllowedRoles = [];
        message.assignAllowedRoles = [];
        message.allowedStatuses = [];
        message.defaultStatus = 0;
        message.sector = 0;
        message.defaultAssignees = [];
        if (value !== undefined)
            reflectionMergePartial<UpdateClaimTypeRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateClaimTypeRequest): UpdateClaimTypeRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ID = 2 [json_name = "ID"];*/ 2:
                    message.iD = reader.string();
                    break;
                case /* api.ClaimCriticality DefaultCriticality = 3 [json_name = "DefaultCriticality"];*/ 3:
                    message.defaultCriticality = reader.int32();
                    break;
                case /* repeated api.ClaimTransition Transitions = 4 [json_name = "Transitions"];*/ 4:
                    message.transitions.push(ClaimTransition.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated api.ClaimTypeClosure PossibleClosures = 5 [json_name = "PossibleClosures"];*/ 5:
                    message.possibleClosures.push(ClaimTypeClosure.internalBinaryRead(reader, reader.uint32(), options));
                    break;
                case /* repeated string CriticalityAllowedRoles = 6 [json_name = "CriticalityAllowedRoles"];*/ 6:
                    message.criticalityAllowedRoles.push(reader.string());
                    break;
                case /* repeated string ReadAllowedRoles = 7 [json_name = "ReadAllowedRoles"];*/ 7:
                    message.readAllowedRoles.push(reader.string());
                    break;
                case /* repeated string WriteAllowedRoles = 8 [json_name = "WriteAllowedRoles"];*/ 8:
                    message.writeAllowedRoles.push(reader.string());
                    break;
                case /* repeated string AssignAllowedRoles = 9 [json_name = "AssignAllowedRoles"];*/ 9:
                    message.assignAllowedRoles.push(reader.string());
                    break;
                case /* repeated api.ClaimStatus AllowedStatuses = 10 [json_name = "AllowedStatuses"];*/ 10:
                    if (wireType === WireType.LengthDelimited)
                        for (let e = reader.int32() + reader.pos; reader.pos < e;)
                            message.allowedStatuses.push(reader.int32());
                    else
                        message.allowedStatuses.push(reader.int32());
                    break;
                case /* api.ClaimStatus DefaultStatus = 11 [json_name = "DefaultStatus"];*/ 11:
                    message.defaultStatus = reader.int32();
                    break;
                case /* api.ClaimSector Sector = 12 [json_name = "Sector"];*/ 12:
                    message.sector = reader.int32();
                    break;
                case /* repeated string DefaultAssignees = 13 [json_name = "DefaultAssignees"];*/ 13:
                    message.defaultAssignees.push(reader.string());
                    break;
                default:
                    let u = options.readUnknownField;
                    if (u === "throw")
                        throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
                    let d = reader.skip(wireType);
                    if (u !== false)
                        (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
            }
        }
        return message;
    }
    internalBinaryWrite(message: UpdateClaimTypeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ID = 2 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(2, WireType.LengthDelimited).string(message.iD);
        /* api.ClaimCriticality DefaultCriticality = 3 [json_name = "DefaultCriticality"]; */
        if (message.defaultCriticality !== 0)
            writer.tag(3, WireType.Varint).int32(message.defaultCriticality);
        /* repeated api.ClaimTransition Transitions = 4 [json_name = "Transitions"]; */
        for (let i = 0; i < message.transitions.length; i++)
            ClaimTransition.internalBinaryWrite(message.transitions[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join();
        /* repeated api.ClaimTypeClosure PossibleClosures = 5 [json_name = "PossibleClosures"]; */
        for (let i = 0; i < message.possibleClosures.length; i++)
            ClaimTypeClosure.internalBinaryWrite(message.possibleClosures[i], writer.tag(5, WireType.LengthDelimited).fork(), options).join();
        /* repeated string CriticalityAllowedRoles = 6 [json_name = "CriticalityAllowedRoles"]; */
        for (let i = 0; i < message.criticalityAllowedRoles.length; i++)
            writer.tag(6, WireType.LengthDelimited).string(message.criticalityAllowedRoles[i]);
        /* repeated string ReadAllowedRoles = 7 [json_name = "ReadAllowedRoles"]; */
        for (let i = 0; i < message.readAllowedRoles.length; i++)
            writer.tag(7, WireType.LengthDelimited).string(message.readAllowedRoles[i]);
        /* repeated string WriteAllowedRoles = 8 [json_name = "WriteAllowedRoles"]; */
        for (let i = 0; i < message.writeAllowedRoles.length; i++)
            writer.tag(8, WireType.LengthDelimited).string(message.writeAllowedRoles[i]);
        /* repeated string AssignAllowedRoles = 9 [json_name = "AssignAllowedRoles"]; */
        for (let i = 0; i < message.assignAllowedRoles.length; i++)
            writer.tag(9, WireType.LengthDelimited).string(message.assignAllowedRoles[i]);
        /* repeated api.ClaimStatus AllowedStatuses = 10 [json_name = "AllowedStatuses"]; */
        if (message.allowedStatuses.length) {
            writer.tag(10, WireType.LengthDelimited).fork();
            for (let i = 0; i < message.allowedStatuses.length; i++)
                writer.int32(message.allowedStatuses[i]);
            writer.join();
        }
        /* api.ClaimStatus DefaultStatus = 11 [json_name = "DefaultStatus"]; */
        if (message.defaultStatus !== 0)
            writer.tag(11, WireType.Varint).int32(message.defaultStatus);
        /* api.ClaimSector Sector = 12 [json_name = "Sector"]; */
        if (message.sector !== 0)
            writer.tag(12, WireType.Varint).int32(message.sector);
        /* repeated string DefaultAssignees = 13 [json_name = "DefaultAssignees"]; */
        for (let i = 0; i < message.defaultAssignees.length; i++)
            writer.tag(13, WireType.LengthDelimited).string(message.defaultAssignees[i]);
        let u = options.writeUnknownFields;
        if (u !== false)
            (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
        return writer;
    }
}
/**
 * @generated MessageType for protobuf message api.UpdateClaimTypeRequest
 */
export const UpdateClaimTypeRequest = new UpdateClaimTypeRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class UpdateClaimTypeResponse$Type extends MessageType<UpdateClaimTypeResponse> {
    constructor() {
        super("api.UpdateClaimTypeResponse", [
            { no: 1, name: "ClaimType", kind: "message", jsonName: "ClaimType", T: () => ClaimType, options: { "validate.rules": { message: { required: true } } } }
        ]);
    }
    create(value?: PartialMessage<UpdateClaimTypeResponse>): UpdateClaimTypeResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<UpdateClaimTypeResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateClaimTypeResponse): UpdateClaimTypeResponse {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"];*/ 1:
                    message.claimType = ClaimType.internalBinaryRead(reader, reader.uint32(), options, message.claimType);
                    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: UpdateClaimTypeResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.ClaimType ClaimType = 1 [json_name = "ClaimType"]; */
        if (message.claimType)
            ClaimType.internalBinaryWrite(message.claimType, 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.UpdateClaimTypeResponse
 */
export const UpdateClaimTypeResponse = new UpdateClaimTypeResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClaimTypeRequest$Type extends MessageType<DeleteClaimTypeRequest> {
    constructor() {
        super("api.DeleteClaimTypeRequest", [
            { no: 1, name: "Header", kind: "message", jsonName: "Header", T: () => RequestProjectHeader, options: { "validate.rules": { message: { required: true } } } },
            { no: 2, 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<DeleteClaimTypeRequest>): DeleteClaimTypeRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.iD = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteClaimTypeRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClaimTypeRequest): DeleteClaimTypeRequest {
        let message = target ?? this.create(), end = reader.pos + length;
        while (reader.pos < end) {
            let [fieldNo, wireType] = reader.tag();
            switch (fieldNo) {
                case /* api.RequestProjectHeader Header = 1 [json_name = "Header"];*/ 1:
                    message.header = RequestProjectHeader.internalBinaryRead(reader, reader.uint32(), options, message.header);
                    break;
                case /* string ID = 2 [json_name = "ID"];*/ 2:
                    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: DeleteClaimTypeRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
        /* api.RequestProjectHeader Header = 1 [json_name = "Header"]; */
        if (message.header)
            RequestProjectHeader.internalBinaryWrite(message.header, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
        /* string ID = 2 [json_name = "ID"]; */
        if (message.iD !== "")
            writer.tag(2, 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.DeleteClaimTypeRequest
 */
export const DeleteClaimTypeRequest = new DeleteClaimTypeRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClaimTypeResponse$Type extends MessageType<DeleteClaimTypeResponse> {
    constructor() {
        super("api.DeleteClaimTypeResponse", []);
    }
    create(value?: PartialMessage<DeleteClaimTypeResponse>): DeleteClaimTypeResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteClaimTypeResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClaimTypeResponse): DeleteClaimTypeResponse {
        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: DeleteClaimTypeResponse, 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.DeleteClaimTypeResponse
 */
export const DeleteClaimTypeResponse = new DeleteClaimTypeResponse$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClaimTypesForProjectRequest$Type extends MessageType<DeleteClaimTypesForProjectRequest> {
    constructor() {
        super("api.DeleteClaimTypesForProjectRequest", [
            { 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<DeleteClaimTypesForProjectRequest>): DeleteClaimTypesForProjectRequest {
        const message = globalThis.Object.create((this.messagePrototype!));
        message.projectID = "";
        if (value !== undefined)
            reflectionMergePartial<DeleteClaimTypesForProjectRequest>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClaimTypesForProjectRequest): DeleteClaimTypesForProjectRequest {
        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: DeleteClaimTypesForProjectRequest, 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.DeleteClaimTypesForProjectRequest
 */
export const DeleteClaimTypesForProjectRequest = new DeleteClaimTypesForProjectRequest$Type();
// @generated message type with reflection information, may provide speed optimized methods
class DeleteClaimTypesForProjectResponse$Type extends MessageType<DeleteClaimTypesForProjectResponse> {
    constructor() {
        super("api.DeleteClaimTypesForProjectResponse", []);
    }
    create(value?: PartialMessage<DeleteClaimTypesForProjectResponse>): DeleteClaimTypesForProjectResponse {
        const message = globalThis.Object.create((this.messagePrototype!));
        if (value !== undefined)
            reflectionMergePartial<DeleteClaimTypesForProjectResponse>(this, message, value);
        return message;
    }
    internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteClaimTypesForProjectResponse): DeleteClaimTypesForProjectResponse {
        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: DeleteClaimTypesForProjectResponse, 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.DeleteClaimTypesForProjectResponse
 */
export const DeleteClaimTypesForProjectResponse = new DeleteClaimTypesForProjectResponse$Type();
/**
 * @generated ServiceType for protobuf service api.ClaimTypeService
 */
export const ClaimTypeService = new ServiceType("api.ClaimTypeService", [
    { name: "Create", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "Create a claim type for an entity" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "claim", "google.api.method_visibility": { restriction: "SDK" } }, I: CreateClaimTypeRequest, O: CreateClaimTypeResponse },
    { name: "Get", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "Get a claim type for an entity" }, "api.rscType": "Project", "api.roles": "Platform.ClaimType", "api.moduleID": "claim", "google.api.method_visibility": { restriction: "SDK" } }, I: GetClaimTypeRequest, O: GetClaimTypeResponse },
    { name: "List", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "List claim types on a project" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "claim", "google.api.method_visibility": { restriction: "SDK" } }, I: ListClaimTypeRequest, O: ListClaimTypeResponse },
    { name: "Update", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "Update a claim type for an entity" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "claim", "google.api.method_visibility": { restriction: "SDK" } }, I: UpdateClaimTypeRequest, O: UpdateClaimTypeResponse },
    { name: "Delete", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "Delete a claim type for an entity" }, "api.rscType": "Project", "api.roles": "", "api.moduleID": "claim", "google.api.method_visibility": { restriction: "SDK" } }, I: DeleteClaimTypeRequest, O: DeleteClaimTypeResponse },
    { name: "DeleteClaimTypesForProject", options: { "grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation": { tags: ["ClaimType"], description: "Delete all claim types for a project" }, "api.rscType": "Platform", "api.roles": "Platform.ClaimType", "google.api.method_visibility": { restriction: "SDK" } }, I: DeleteClaimTypesForProjectRequest, O: DeleteClaimTypesForProjectResponse }
], { "api.k8sService": "claimtype-server" });
