// package: bet.beteran.rbac
// file: models/rbac/resource_action.proto

import * as jspb from 'google-protobuf';
import * as models_rbac_resource_pb from '../../models/rbac/resource_pb';

export class ResourceAction extends jspb.Message {
  getId(): string;
  setId(value: string): void;

  hasResource(): boolean;
  clearResource(): void;
  getResource(): models_rbac_resource_pb.Resource | undefined;
  setResource(value?: models_rbac_resource_pb.Resource): void;

  getName(): string;
  setName(value: string): void;

  getKey(): string;
  setKey(value: string): void;

  getDescription(): string;
  setDescription(value: string): void;

  getCanUse(): boolean;
  setCanUse(value: boolean): void;

  getCreatedAt(): number;
  setCreatedAt(value: number): void;

  getUpdatedAt(): number;
  setUpdatedAt(value: number): void;

  serializeBinary(): Uint8Array;
  toObject(includeInstance?: boolean): ResourceAction.AsObject;
  static toObject(
    includeInstance: boolean,
    msg: ResourceAction
  ): ResourceAction.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: ResourceAction,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): ResourceAction;
  static deserializeBinaryFromReader(
    message: ResourceAction,
    reader: jspb.BinaryReader
  ): ResourceAction;
}

export namespace ResourceAction {
  export type AsObject = {
    id: string;
    resource?: models_rbac_resource_pb.Resource.AsObject;
    name: string;
    key: string;
    description: string;
    canUse: boolean;
    createdAt: number;
    updatedAt: number;
  };
}
