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

import * as jspb from 'google-protobuf';

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

  hasParent(): boolean;
  clearParent(): void;
  getParent(): Resource | undefined;
  setParent(value?: 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): Resource.AsObject;
  static toObject(includeInstance: boolean, msg: Resource): Resource.AsObject;
  static extensions: { [key: number]: jspb.ExtensionFieldInfo<jspb.Message> };
  static extensionsBinary: {
    [key: number]: jspb.ExtensionFieldBinaryInfo<jspb.Message>;
  };
  static serializeBinaryToWriter(
    message: Resource,
    writer: jspb.BinaryWriter
  ): void;
  static deserializeBinary(bytes: Uint8Array): Resource;
  static deserializeBinaryFromReader(
    message: Resource,
    reader: jspb.BinaryReader
  ): Resource;
}

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