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

import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
import { Message, proto3, protoInt64 } from "@bufbuild/protobuf";
import { NamedNscCredentials, NscPermission } from "./nsc-base_pb.js";
import { NatsCredentials } from "./shared_pb.js";

/**
 * Entity creation messages 
 *
 * @generated from message api.CreateAccountRequest
 */
export class CreateAccountRequest extends Message<CreateAccountRequest> {
  /**
   * @generated from field: string name = 1;
   */
  name = "";

  /**
   * @generated from field: api.NscPermission permission = 2;
   */
  permission?: NscPermission;

  /**
   * @generated from field: bool jetStream = 3;
   */
  jetStream = false;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.CreateAccountRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "permission", kind: "message", T: NscPermission },
    { no: 3, name: "jetStream", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
  ]);

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

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

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

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

/**
 * @generated from message api.CreateAccountResult
 */
export class CreateAccountResult extends Message<CreateAccountResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

/**
 * Account Imports / Exports 
 *
 * @generated from message api.AddExportRequest
 */
export class AddExportRequest extends Message<AddExportRequest> {
  /**
   * @generated from field: string accountName = 1;
   */
  accountName = "";

  /**
   * @generated from field: bool public = 2;
   */
  public = false;

  /**
   * @generated from field: bool stream = 3;
   */
  stream = false;

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

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.AddExportRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "accountName", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "public", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 3, name: "stream", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 4, name: "subject", kind: "scalar", T: 9 /* ScalarType.STRING */ },
  ]);

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

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

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

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

/**
 * @generated from message api.AddExportResult
 */
export class AddExportResult extends Message<AddExportResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.AddImportResult
 */
export class AddImportResult extends Message<AddImportResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.DeleteExportResult
 */
export class DeleteExportResult extends Message<DeleteExportResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.DeleteImportResult
 */
export class DeleteImportResult extends Message<DeleteImportResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

/**
 * Entity read messages 
 *
 * @generated from message api.GetAccountRequest
 */
export class GetAccountRequest extends Message<GetAccountRequest> {
  /**
   * @generated from field: string name = 1;
   */
  name = "";

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

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

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

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

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

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

/**
 * @generated from message api.GetAccountResult
 */
export class GetAccountResult extends Message<GetAccountResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

/**
 * Entity edition messages 
 *
 * @generated from message api.EditAccountRequest
 */
export class EditAccountRequest extends Message<EditAccountRequest> {
  /**
   * @generated from field: string name = 1;
   */
  name = "";

  /**
   * @generated from field: api.NscPermission permission = 2;
   */
  permission?: NscPermission;

  /**
   * @generated from field: repeated string rmPerms = 3;
   */
  rmPerms: string[] = [];

  /**
   * @generated from field: bool jetStream = 4;
   */
  jetStream = false;

  /**
   * @generated from field: int64 diskStorage = 5;
   */
  diskStorage = protoInt64.zero;

  /**
   * @generated from field: int64 streams = 6;
   */
  streams = protoInt64.zero;

  /**
   * @generated from field: int64 consumers = 7;
   */
  consumers = protoInt64.zero;

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.EditAccountRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
    { no: 2, name: "permission", kind: "message", T: NscPermission },
    { no: 3, name: "rmPerms", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
    { no: 4, name: "jetStream", kind: "scalar", T: 8 /* ScalarType.BOOL */ },
    { no: 5, name: "diskStorage", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
    { no: 6, name: "streams", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
    { no: 7, name: "consumers", kind: "scalar", T: 3 /* ScalarType.INT64 */ },
  ]);

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

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

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

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

/**
 * @generated from message api.EditAccountResult
 */
export class EditAccountResult extends Message<EditAccountResult> {
  /**
   * NatsCredentials holds the configuration for interacting with Platform's NATS
   *
   * @generated from field: api.NatsCredentials Credentials = 1;
   */
  Credentials?: NatsCredentials;

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

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

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

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

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

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

/**
 * Entity deletion messages 
 *
 * @generated from message api.DeleteAccountRequest
 */
export class DeleteAccountRequest extends Message<DeleteAccountRequest> {
  /**
   * @generated from field: string accountName = 1;
   */
  accountName = "";

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * Communication with NATS Server Account Messages 
 *
 * @generated from message api.PushAccountsRequest
 */
export class PushAccountsRequest extends Message<PushAccountsRequest> {
  /**
   * @generated from oneof api.PushAccountsRequest.Params
   */
  Params: {
    /**
     * @generated from field: string addAcc = 1;
     */
    value: string;
    case: "addAcc";
  } | {
    /**
     * @generated from field: string removeAcc = 2;
     */
    value: string;
    case: "removeAcc";
  } | {
    /**
     * @generated from field: bool pushAll = 3;
     */
    value: boolean;
    case: "pushAll";
  } | { case: undefined; value?: undefined } = { case: undefined };

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

  static readonly runtime: typeof proto3 = proto3;
  static readonly typeName = "api.PushAccountsRequest";
  static readonly fields: FieldList = proto3.util.newFieldList(() => [
    { no: 1, name: "addAcc", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "Params" },
    { no: 2, name: "removeAcc", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "Params" },
    { no: 3, name: "pushAll", kind: "scalar", T: 8 /* ScalarType.BOOL */, oneof: "Params" },
  ]);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/**
 * @generated from message api.ListAccountsResult
 */
export class ListAccountsResult extends Message<ListAccountsResult> {
  /**
   * @generated from field: repeated api.NamedNscCredentials entities = 1;
   */
  entities: NamedNscCredentials[] = [];

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

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

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

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

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

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

