// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file attachmentV2.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, AttachmentTypeResponseHeader, EntityType, RequestAttachmentTypeHeader, RequestProjectHeader, ResponseHeader } from "./shared_pb.js";

/**
 * @generated from enum api.AttachmentKind
 */
export enum AttachmentKind {
  /**
   * @generated from enum value: ATTACHMENT_KIND_UNKNOWN = 0;
   */
  UNKNOWN = 0,

  /**
   * @generated from enum value: ATTACHMENT_KIND_FILE = 1;
   */
  FILE = 1,

  /**
   * @generated from enum value: ATTACHMENT_KIND_LINK = 2;
   */
  LINK = 2,
}
// Retrieve enum metadata with: proto3.getEnumType(AttachmentKind)
proto3.util.setEnumType(AttachmentKind, "api.AttachmentKind", [
  { no: 0, name: "ATTACHMENT_KIND_UNKNOWN" },
  { no: 1, name: "ATTACHMENT_KIND_FILE" },
  { no: 2, name: "ATTACHMENT_KIND_LINK" },
]);

/**
 * @generated from message api.Attachment
 */
export class Attachment extends Message<Attachment> {
  /**
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

  /**
   * @generated from field: api.AttachmentType AttachmentType = 4;
   */
  AttachmentType?: AttachmentType;

  /**
   * @generated from field: string URI = 5;
   */
  URI = "";

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

  /**
   * @generated from field: string UploadedAt = 11;
   */
  UploadedAt = "";

  /**
   * @generated from field: api.AttachmentKind Kind = 12;
   */
  Kind = AttachmentKind.UNKNOWN;

  /**
   * @generated from field: string WebURI = 13;
   */
  WebURI = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.Attachment";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "AttachmentType", kind: "message", T: AttachmentType },
    { no: 5, name: "URI", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 6, name: "MIMEType", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 11, name: "UploadedAt", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 12, name: "Kind", kind: "enum", T: proto3.getEnumType(AttachmentKind) },
    { no: 13, name: "WebURI", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.FileDataRequest
 */
export class FileDataRequest extends Message<FileDataRequest> {
  /**
   * @generated from field: string Name = 1;
   */
  Name = "";

  /**
   * @generated from field: bytes Content = 2;
   */
  Content = new Uint8Array(0);

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.FileDataRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "Content", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
  ]);

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

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

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

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

/**
 * @generated from message api.FileDataResponse
 */
export class FileDataResponse extends Message<FileDataResponse> {
  /**
   * @generated from field: string Name = 1;
   */
  Name = "";

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

  /**
   * @generated from field: bytes Content = 3;
   */
  Content = new Uint8Array(0);

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.FileDataResponse";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "ContentType", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Content", kind: "scalar", T: 12 /* ScalarType.BYTES */ },
  ]);

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DownloadAttachmentV2Request";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestAttachmentTypeHeader },
    { no: 2, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.DownloadAttachmentV2Response
 */
export class DownloadAttachmentV2Response extends Message<DownloadAttachmentV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.AttachmentTypeResponseHeader Header = 2;
   */
  Header?: AttachmentTypeResponseHeader;

  /**
   * @generated from field: api.FileDataResponse File = 1;
   */
  File?: FileDataResponse;

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

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

  /**
   * @generated from field: api.FileDataRequest Attachment = 4;
   */
  Attachment?: FileDataRequest;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.UploadAttachmentV2Request";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestAttachmentTypeHeader },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "Attachment", kind: "message", T: FileDataRequest },
  ]);

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

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

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

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

/**
 * @generated from message api.UploadAttachmentV2Response
 */
export class UploadAttachmentV2Response extends Message<UploadAttachmentV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.AttachmentTypeResponseHeader Header = 2;
   */
  Header?: AttachmentTypeResponseHeader;

  /**
   * @generated from field: api.Attachment Attachment = 1;
   */
  Attachment?: Attachment;

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

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

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

  /**
   * @generated from field: string URI = 5;
   */
  URI = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.AddLinkV2Request";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestAttachmentTypeHeader },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 5, name: "URI", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.AddLinkV2Response
 */
export class AddLinkV2Response extends Message<AddLinkV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.AttachmentTypeResponseHeader Header = 2;
   */
  Header?: AttachmentTypeResponseHeader;

  /**
   * @generated from field: api.Attachment Attachment = 1;
   */
  Attachment?: Attachment;

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

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

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteAttachmentV2Request";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestAttachmentTypeHeader },
    { no: 2, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.DeleteAttachmentV2Response
 */
export class DeleteAttachmentV2Response extends Message<DeleteAttachmentV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.AttachmentTypeResponseHeader Header = 1;
   */
  Header?: AttachmentTypeResponseHeader;

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

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

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

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

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

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

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

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

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

/**
 * @generated from message api.ListAttachmentsV2Response
 */
export class ListAttachmentsV2Response extends Message<ListAttachmentsV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.ResponseHeader Header = 2;
   */
  Header?: ResponseHeader;

  /**
   * @generated from field: repeated api.Attachment Attachments = 1;
   */
  Attachments: Attachment[] = [];

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ListAttachmentsV2Response";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 2, name: "Header", kind: "message", T: ResponseHeader },
    { no: 1, name: "Attachments", kind: "message", T: Attachment, repeated: true },
  ]);

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

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

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

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

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

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

  /**
   * @generated from field: string EntityRefID = 3;
   */
  EntityRefID = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ShareAttachmentV2Request";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Header", kind: "message", T: RequestAttachmentTypeHeader },
    { no: 2, name: "Name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "EntityRefID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.ShareAttachmentV2Response
 */
export class ShareAttachmentV2Response extends Message<ShareAttachmentV2Response> {
  /**
   * Header of the response
   *
   * @generated from field: api.AttachmentTypeResponseHeader Header = 2;
   */
  Header?: AttachmentTypeResponseHeader;

  /**
   * @generated from field: string ShareLink = 1;
   */
  ShareLink = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.ShareAttachmentV2Response";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 2, name: "Header", kind: "message", T: AttachmentTypeResponseHeader },
    { no: 1, name: "ShareLink", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

