// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file attachmentType.proto (package api, syntax proto3)
/* eslint-disable */
// @ts-nocheck

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3 } from "@bufbuild/protobuf";
import { AttachmentType, EntityType, RequestProjectHeader, SharePolicy } from "./shared_pb.js";

/**
 * Create
 *
 * @generated from message api.CreateAttachmentTypeRequest
 */
export class CreateAttachmentTypeRequest extends Message<CreateAttachmentTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string Code = 2;
   */
  Code = "";

  /**
   * @generated from field: api.EntityType Entity = 3;
   */
  Entity = EntityType.UNKNOWN;

  /**
   * @generated from field: string Label = 4;
   */
  Label = "";

  /**
   * @generated from field: api.SharePolicy SharePolicy = 5;
   */
  SharePolicy = SharePolicy.SHARE_POLICY_UNKNOWN;

  /**
   * @generated from field: repeated string ManagerRoles = 6;
   */
  ManagerRoles: string[] = [];

  /**
   * @generated from field: repeated string ViewerRoles = 7;
   */
  ViewerRoles: string[] = [];

  constructor(data?: PartialMessage<CreateAttachmentTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CreateAttachmentTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "Code", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Entity", kind: "enum", T: proto3.getEnumType(EntityType) },
    { no: 4, name: "Label", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "SharePolicy", kind: "enum", T: proto3.getEnumType(SharePolicy) },
    { no: 6, name: "ManagerRoles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 7, name: "ViewerRoles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAttachmentTypeRequest {
    return new CreateAttachmentTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAttachmentTypeRequest {
    return new CreateAttachmentTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAttachmentTypeRequest {
    return new CreateAttachmentTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: CreateAttachmentTypeRequest | PlainMessage<CreateAttachmentTypeRequest> | undefined, b: CreateAttachmentTypeRequest | PlainMessage<CreateAttachmentTypeRequest> | undefined): boolean {
    return proto3.util.equals(CreateAttachmentTypeRequest, a, b);
  }
}

/**
 * @generated from message api.CreateAttachmentTypeResponse
 */
export class CreateAttachmentTypeResponse extends Message<CreateAttachmentTypeResponse> {
  /**
   * @generated from field: api.AttachmentType AttachmentType = 1;
   */
  AttachmentType?: AttachmentType;

  constructor(data?: PartialMessage<CreateAttachmentTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CreateAttachmentTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "AttachmentType", kind: "message", T: AttachmentType },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateAttachmentTypeResponse {
    return new CreateAttachmentTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateAttachmentTypeResponse {
    return new CreateAttachmentTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateAttachmentTypeResponse {
    return new CreateAttachmentTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: CreateAttachmentTypeResponse | PlainMessage<CreateAttachmentTypeResponse> | undefined, b: CreateAttachmentTypeResponse | PlainMessage<CreateAttachmentTypeResponse> | undefined): boolean {
    return proto3.util.equals(CreateAttachmentTypeResponse, a, b);
  }
}

/**
 * Get
 *
 * @generated from message api.GetAttachmentTypeRequest
 */
export class GetAttachmentTypeRequest extends Message<GetAttachmentTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string Code = 2 [deprecated = true];
   * @deprecated
   */
  Code = "";

  /**
   * @generated from field: api.EntityType Entity = 3 [deprecated = true];
   * @deprecated
   */
  Entity = EntityType.UNKNOWN;

  /**
   * @generated from field: string ID = 4;
   */
  ID = "";

  constructor(data?: PartialMessage<GetAttachmentTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.GetAttachmentTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "Code", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Entity", kind: "enum", T: proto3.getEnumType(EntityType) },
    { no: 4, name: "ID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAttachmentTypeRequest {
    return new GetAttachmentTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAttachmentTypeRequest {
    return new GetAttachmentTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAttachmentTypeRequest {
    return new GetAttachmentTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: GetAttachmentTypeRequest | PlainMessage<GetAttachmentTypeRequest> | undefined, b: GetAttachmentTypeRequest | PlainMessage<GetAttachmentTypeRequest> | undefined): boolean {
    return proto3.util.equals(GetAttachmentTypeRequest, a, b);
  }
}

/**
 * @generated from message api.GetAttachmentTypeResponse
 */
export class GetAttachmentTypeResponse extends Message<GetAttachmentTypeResponse> {
  /**
   * @generated from field: api.AttachmentType AttachmentType = 1;
   */
  AttachmentType?: AttachmentType;

  constructor(data?: PartialMessage<GetAttachmentTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.GetAttachmentTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "AttachmentType", kind: "message", T: AttachmentType },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetAttachmentTypeResponse {
    return new GetAttachmentTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetAttachmentTypeResponse {
    return new GetAttachmentTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetAttachmentTypeResponse {
    return new GetAttachmentTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: GetAttachmentTypeResponse | PlainMessage<GetAttachmentTypeResponse> | undefined, b: GetAttachmentTypeResponse | PlainMessage<GetAttachmentTypeResponse> | undefined): boolean {
    return proto3.util.equals(GetAttachmentTypeResponse, a, b);
  }
}

/**
 * List
 *
 * @generated from message api.ListAttachmentTypeRequest
 */
export class ListAttachmentTypeRequest extends Message<ListAttachmentTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: api.EntityType Entity = 2;
   */
  Entity = EntityType.UNKNOWN;

  constructor(data?: PartialMessage<ListAttachmentTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListAttachmentTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "Entity", kind: "enum", T: proto3.getEnumType(EntityType) },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAttachmentTypeRequest {
    return new ListAttachmentTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAttachmentTypeRequest {
    return new ListAttachmentTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAttachmentTypeRequest {
    return new ListAttachmentTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: ListAttachmentTypeRequest | PlainMessage<ListAttachmentTypeRequest> | undefined, b: ListAttachmentTypeRequest | PlainMessage<ListAttachmentTypeRequest> | undefined): boolean {
    return proto3.util.equals(ListAttachmentTypeRequest, a, b);
  }
}

/**
 * @generated from message api.ListAttachmentTypeResponse
 */
export class ListAttachmentTypeResponse extends Message<ListAttachmentTypeResponse> {
  /**
   * @generated from field: repeated api.AttachmentType AttachmentTypes = 1;
   */
  AttachmentTypes: AttachmentType[] = [];

  constructor(data?: PartialMessage<ListAttachmentTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListAttachmentTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "AttachmentTypes", kind: "message", T: AttachmentType, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListAttachmentTypeResponse {
    return new ListAttachmentTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListAttachmentTypeResponse {
    return new ListAttachmentTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListAttachmentTypeResponse {
    return new ListAttachmentTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: ListAttachmentTypeResponse | PlainMessage<ListAttachmentTypeResponse> | undefined, b: ListAttachmentTypeResponse | PlainMessage<ListAttachmentTypeResponse> | undefined): boolean {
    return proto3.util.equals(ListAttachmentTypeResponse, a, b);
  }
}

/**
 * Update
 *
 * @generated from message api.UpdateAttachmentTypeRequest
 */
export class UpdateAttachmentTypeRequest extends Message<UpdateAttachmentTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string Code = 2 [deprecated = true];
   * @deprecated
   */
  Code = "";

  /**
   * @generated from field: api.EntityType Entity = 3 [deprecated = true];
   * @deprecated
   */
  Entity = EntityType.UNKNOWN;

  /**
   * @generated from field: string Label = 4;
   */
  Label = "";

  /**
   * @generated from field: api.SharePolicy SharePolicy = 5;
   */
  SharePolicy = SharePolicy.SHARE_POLICY_UNKNOWN;

  /**
   * @generated from field: string ID = 6;
   */
  ID = "";

  /**
   * @generated from field: repeated string ManagerRoles = 7;
   */
  ManagerRoles: string[] = [];

  /**
   * @generated from field: repeated string ViewerRoles = 8;
   */
  ViewerRoles: string[] = [];

  constructor(data?: PartialMessage<UpdateAttachmentTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.UpdateAttachmentTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "Code", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Entity", kind: "enum", T: proto3.getEnumType(EntityType) },
    { no: 4, name: "Label", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "SharePolicy", kind: "enum", T: proto3.getEnumType(SharePolicy) },
    { no: 6, name: "ID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 7, name: "ManagerRoles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 8, name: "ViewerRoles", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateAttachmentTypeRequest {
    return new UpdateAttachmentTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateAttachmentTypeRequest {
    return new UpdateAttachmentTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateAttachmentTypeRequest {
    return new UpdateAttachmentTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: UpdateAttachmentTypeRequest | PlainMessage<UpdateAttachmentTypeRequest> | undefined, b: UpdateAttachmentTypeRequest | PlainMessage<UpdateAttachmentTypeRequest> | undefined): boolean {
    return proto3.util.equals(UpdateAttachmentTypeRequest, a, b);
  }
}

/**
 * @generated from message api.UpdateAttachmentTypeResponse
 */
export class UpdateAttachmentTypeResponse extends Message<UpdateAttachmentTypeResponse> {
  /**
   * @generated from field: api.AttachmentType AttachmentType = 1;
   */
  AttachmentType?: AttachmentType;

  constructor(data?: PartialMessage<UpdateAttachmentTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.UpdateAttachmentTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "AttachmentType", kind: "message", T: AttachmentType },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateAttachmentTypeResponse {
    return new UpdateAttachmentTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateAttachmentTypeResponse {
    return new UpdateAttachmentTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateAttachmentTypeResponse {
    return new UpdateAttachmentTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: UpdateAttachmentTypeResponse | PlainMessage<UpdateAttachmentTypeResponse> | undefined, b: UpdateAttachmentTypeResponse | PlainMessage<UpdateAttachmentTypeResponse> | undefined): boolean {
    return proto3.util.equals(UpdateAttachmentTypeResponse, a, b);
  }
}

/**
 * Delete
 *
 * @generated from message api.DeleteAttachmentTypeRequest
 */
export class DeleteAttachmentTypeRequest extends Message<DeleteAttachmentTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  /**
   * @generated from field: string Code = 2 [deprecated = true];
   * @deprecated
   */
  Code = "";

  /**
   * @generated from field: api.EntityType Entity = 3 [deprecated = true];
   * @deprecated
   */
  Entity = EntityType.UNKNOWN;

  /**
   * @generated from field: string ID = 4;
   */
  ID = "";

  constructor(data?: PartialMessage<DeleteAttachmentTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteAttachmentTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
    { no: 2, name: "Code", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Entity", kind: "enum", T: proto3.getEnumType(EntityType) },
    { no: 4, name: "ID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteAttachmentTypeRequest {
    return new DeleteAttachmentTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteAttachmentTypeRequest {
    return new DeleteAttachmentTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteAttachmentTypeRequest {
    return new DeleteAttachmentTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteAttachmentTypeRequest | PlainMessage<DeleteAttachmentTypeRequest> | undefined, b: DeleteAttachmentTypeRequest | PlainMessage<DeleteAttachmentTypeRequest> | undefined): boolean {
    return proto3.util.equals(DeleteAttachmentTypeRequest, a, b);
  }
}

/**
 * @generated from message api.DeleteAttachmentTypeResponse
 */
export class DeleteAttachmentTypeResponse extends Message<DeleteAttachmentTypeResponse> {
  constructor(data?: PartialMessage<DeleteAttachmentTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteAttachmentTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteAttachmentTypeResponse {
    return new DeleteAttachmentTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteAttachmentTypeResponse {
    return new DeleteAttachmentTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteAttachmentTypeResponse {
    return new DeleteAttachmentTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteAttachmentTypeResponse | PlainMessage<DeleteAttachmentTypeResponse> | undefined, b: DeleteAttachmentTypeResponse | PlainMessage<DeleteAttachmentTypeResponse> | undefined): boolean {
    return proto3.util.equals(DeleteAttachmentTypeResponse, a, b);
  }
}

/**
 * @generated from message api.DeleteAllAttachmentsTypeRequest
 */
export class DeleteAllAttachmentsTypeRequest extends Message<DeleteAllAttachmentsTypeRequest> {
  /**
   * @generated from field: api.RequestProjectHeader Header = 1;
   */
  Header?: RequestProjectHeader;

  constructor(data?: PartialMessage<DeleteAllAttachmentsTypeRequest>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteAllAttachmentsTypeRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestProjectHeader },
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteAllAttachmentsTypeRequest {
    return new DeleteAllAttachmentsTypeRequest().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteAllAttachmentsTypeRequest {
    return new DeleteAllAttachmentsTypeRequest().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteAllAttachmentsTypeRequest {
    return new DeleteAllAttachmentsTypeRequest().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteAllAttachmentsTypeRequest | PlainMessage<DeleteAllAttachmentsTypeRequest> | undefined, b: DeleteAllAttachmentsTypeRequest | PlainMessage<DeleteAllAttachmentsTypeRequest> | undefined): boolean {
    return proto3.util.equals(DeleteAllAttachmentsTypeRequest, a, b);
  }
}

/**
 * @generated from message api.DeleteAllAttachmentsTypeResponse
 */
export class DeleteAllAttachmentsTypeResponse extends Message<DeleteAllAttachmentsTypeResponse> {
  constructor(data?: PartialMessage<DeleteAllAttachmentsTypeResponse>) {
    super();
    proto3.util.initPartial(data, this);
  }

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteAllAttachmentsTypeResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
  ]);

  static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteAllAttachmentsTypeResponse {
    return new DeleteAllAttachmentsTypeResponse().fromBinary(bytes, options);
  }

  static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteAllAttachmentsTypeResponse {
    return new DeleteAllAttachmentsTypeResponse().fromJson(jsonValue, options);
  }

  static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteAllAttachmentsTypeResponse {
    return new DeleteAllAttachmentsTypeResponse().fromJsonString(jsonString, options);
  }

  static equals(a: DeleteAllAttachmentsTypeResponse | PlainMessage<DeleteAllAttachmentsTypeResponse> | undefined, b: DeleteAllAttachmentsTypeResponse | PlainMessage<DeleteAllAttachmentsTypeResponse> | undefined): boolean {
    return proto3.util.equals(DeleteAllAttachmentsTypeResponse, a, b);
  }
}

