import { CreateCRUD } from './CreateCRUD'; import { DeleteCRUD } from './DeleteCRUD'; import { DescribeCRUD } from './DescribeCRUD'; import { GetCRUD } from './GetCRUD'; import { ResourceType } from './ResourceType'; import { StartCRUD } from './StartCRUD'; import { StopCRUD } from './StopCRUD'; import { BaseResource, BaseResourceOptions } from './types'; export interface CRUDOptions { readonly resourceType: ResourceType; readonly start?: StartCRUD | undefined; readonly stop?: StopCRUD | undefined; readonly delete?: DeleteCRUD; readonly create?: CreateCRUD; readonly get?: GetCRUD; readonly describe?: DescribeCRUD; } export class CRUD { public readonly resourceType: ResourceType; public readonly start: StartCRUD | undefined; public readonly stop: StopCRUD | undefined; public readonly delete: DeleteCRUD; public readonly create: CreateCRUD; public readonly get: GetCRUD; public readonly describe: DescribeCRUD; public constructor({ resourceType, start = new StartCRUD({ resourceType, hidden: true }), stop = new StopCRUD({ resourceType, hidden: true }), delete: del = new DeleteCRUD({ resourceType, hidden: true }), create = new CreateCRUD({ resourceType, hidden: true }), get = new GetCRUD({ resourceType, hidden: true }), describe = new DescribeCRUD({ resourceType, hidden: true }), }: CRUDOptions) { this.resourceType = resourceType; this.start = start; this.stop = stop; this.delete = del; this.create = create; this.get = get; this.describe = describe; } }