// @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
// @generated from file matrix-proxy.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";

/**
 * @generated from message api.CreateRoomRequest
 */
export class CreateRoomRequest extends Message<CreateRoomRequest> {
  /**
   * The name of the room to create. It needs to be unique otherwise the room creation will fail.
   *
   * @generated from field: string Name = 1;
   */
  Name = "";

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

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

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

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

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

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

/**
 * @generated from message api.CreateRoomResponse
 */
export class CreateRoomResponse extends Message<CreateRoomResponse> {
  /**
   * The matrix room ID of the newly created room. 
   *
   * @generated from field: string RoomID = 1;
   */
  RoomID = "";

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

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

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

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

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

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

/**
 * @generated from message api.DeleteRoomRequest
 */
export class DeleteRoomRequest extends Message<DeleteRoomRequest> {
  /**
   * The name of the room to delete.
   *
   * @generated from field: string Name = 1;
   */
  Name = "";

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.InviteUserToRoomRequest
 */
export class InviteUserToRoomRequest extends Message<InviteUserToRoomRequest> {
  /**
   * @generated from oneof api.InviteUserToRoomRequest.User
   */
  User: {
    /**
     * The mail of the user to invite to the room. Mutually exclusive with ID.
     *
     * @generated from field: string Mail = 1;
     */
    value: string;
    case: "Mail";
  } | {
    /**
     * The ID of the user to invite to the room. Mutually exclusive with Mail. The ID is the OIDC sub claim that was used to authenticate the user during the SSO process.
     *
     * @generated from field: string ID = 2;
     */
    value: string;
    case: "ID";
  } | { case: undefined; value?: undefined } = { case: undefined };

  /**
   * The name of the room to invite the given user to.
   *
   * @generated from field: string RoomName = 3;
   */
  RoomName = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.InviteUserToRoomRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "Mail", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "User" },
    { no: 2, name: "ID", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "User" },
    { no: 3, name: "RoomName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.InviteUserToRoomResponse
 */
export class InviteUserToRoomResponse extends Message<InviteUserToRoomResponse> {
  /**
   * The matrix room ID of the room the user has been invited to.
   *
   * @generated from field: string RoomID = 1;
   */
  RoomID = "";

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

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

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

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

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

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

/**
 * @generated from message api.SendNoticeToRoomRequest
 */
export class SendNoticeToRoomRequest extends Message<SendNoticeToRoomRequest> {
  /**
   * The name of the room to send the notice to.
   *
   * @generated from field: string RoomName = 1;
   */
  RoomName = "";

  /**
   * The message to send to the room. Could be a simple text or a markdown message.
   *
   * @generated from field: string Message = 2;
   */
  Message = "";

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.CreateProjectRoomRequest
 */
export class CreateProjectRoomRequest extends Message<CreateProjectRoomRequest> {
  /**
   * The ID of the project the room is related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * The name of the room to create. It needs to be unique otherwise the room creation will fail.
   *
   * @generated from field: string Name = 2;
   */
  Name = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CreateProjectRoomRequest";
  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 */ },
  ]);

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

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

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

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

/**
 * @generated from message api.CreateProjectRoomResponse
 */
export class CreateProjectRoomResponse extends Message<CreateProjectRoomResponse> {
  /**
   * The matrix room ID of the newly created room. 
   *
   * @generated from field: string RoomID = 1;
   */
  RoomID = "";

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

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

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

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

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

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

/**
 * @generated from message api.DeleteProjectRoomRequest
 */
export class DeleteProjectRoomRequest extends Message<DeleteProjectRoomRequest> {
  /**
   * The ID of the project the room is related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * The name of the room to delete.
   *
   * @generated from field: string Name = 2;
   */
  Name = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.DeleteProjectRoomRequest";
  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 */ },
  ]);

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.InviteUserToProjectRoomRequest
 */
export class InviteUserToProjectRoomRequest extends Message<InviteUserToProjectRoomRequest> {
  /**
   * The ID of the project the room is related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * @generated from oneof api.InviteUserToProjectRoomRequest.User
   */
  User: {
    /**
     * The mail of the user to invite to the room. Mutually exclusive with ID.
     *
     * @generated from field: string Mail = 2;
     */
    value: string;
    case: "Mail";
  } | {
    /**
     * The ID of the user to invite to the room. Mutually exclusive with Mail. The ID is the OIDC sub claim that was used to authenticate the user during the SSO process.
     *
     * @generated from field: string ID = 3;
     */
    value: string;
    case: "ID";
  } | { case: undefined; value?: undefined } = { case: undefined };

  /**
   * The name of the room to invite the given user to.
   *
   * @generated from field: string RoomName = 4;
   */
  RoomName = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.InviteUserToProjectRoomRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "Mail", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "User" },
    { no: 3, name: "ID", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "User" },
    { no: 4, name: "RoomName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.InviteUserToProjectRoomResponse
 */
export class InviteUserToProjectRoomResponse extends Message<InviteUserToProjectRoomResponse> {
  /**
   * The matrix room ID of the room the user has been invited to.
   *
   * @generated from field: string RoomID = 1;
   */
  RoomID = "";

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

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

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

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

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

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

/**
 * @generated from message api.SendNoticeToProjectRoomRequest
 */
export class SendNoticeToProjectRoomRequest extends Message<SendNoticeToProjectRoomRequest> {
  /**
   * The ID of the project the room is related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * The name of the room to send the notice to.
   *
   * @generated from field: string RoomName = 2;
   */
  RoomName = "";

  /**
   * The message to send to the room. Could be a simple text or a markdown message.
   *
   * @generated from field: string Message = 3;
   */
  Message = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.SendNoticeToProjectRoomRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "RoomName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.DeleteRoomsForProjectRequest
 */
export class DeleteRoomsForProjectRequest extends Message<DeleteRoomsForProjectRequest> {
  /**
   * The ID of the project the rooms are related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.SendMessageToProjectRoomRequest
 */
export class SendMessageToProjectRoomRequest extends Message<SendMessageToProjectRoomRequest> {
  /**
   * The ID of the project the room is related to.
   *
   * @generated from field: string ProjectID = 1;
   */
  ProjectID = "";

  /**
   * The name of the room to send the message to.
   *
   * @generated from field: string RoomName = 2;
   */
  RoomName = "";

  /**
   * The message to send to the room. A simple text m
   *
   * @generated from field: string Message = 3;
   */
  Message = "";

  /**
   * The JWT of the user sending the message. It is used to authenticate the user in the matrix server. The JWT is the OIDC access token that was used to authenticate the user during the SSO process. The requests will be made on behalf of the user.
   *
   * @generated from field: string UserJWT = 4;
   */
  UserJWT = "";

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.SendMessageToProjectRoomRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "ProjectID", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "RoomName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 3, name: "Message", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 4, name: "UserJWT", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

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

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

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

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

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

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

