13327: Add missing import
[arvados.git] / services / workbench2 / src / models / collection.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import {
6     ResourceKind,
7     TrashableResource,
8     ResourceWithProperties
9 } from "./resource";
10
11 export interface CollectionResource extends TrashableResource, ResourceWithProperties {
12     kind: ResourceKind.COLLECTION;
13     name: string;
14     description: string;
15     portableDataHash: string;
16     manifestText: string;
17     replicationDesired: number;
18     replicationConfirmed: number;
19     replicationConfirmedAt: string;
20     storageClassesDesired: string[];
21     storageClassesConfirmed: string[];
22     storageClassesConfirmedAt: string;
23     currentVersionUuid: string;
24     version: number;
25     preserveVersion: boolean;
26     unsignedManifestText?: string;
27     fileCount: number;
28     fileSizeTotal: number;
29 }
30
31 // We exclude 'manifestText' and 'unsignedManifestText' from the default
32 export const defaultCollectionSelectedFields = [
33     'name',
34     'description',
35     'portableDataHash',
36     'replicationDesired',
37     'replicationConfirmed',
38     'replicationConfirmedAt',
39     'storageClassesDesired',
40     'storageClassesConfirmed',
41     'storageClassesConfirmedAt',
42     'currentVersionUuid',
43     'version',
44     'preserveVersion',
45     'fileCount',
46     'fileSizeTotal',
47     // ResourceWithProperties field
48     'properties',
49     // TrashableResource fields
50     'trashAt',
51     'deleteAt',
52     'isTrashed',
53     // Resource fields
54     'uuid',
55     'ownerUuid',
56     'createdAt',
57     'modifiedByUserUuid',
58     'modifiedAt',
59     'href',
60     'kind',
61     'etag',
62 ];
63
64 export const getCollectionUrl = (uuid: string) => {
65     return `/collections/${uuid}`;
66 };
67
68 export enum CollectionType {
69     GENERAL = 'nil',
70     OUTPUT = 'output',
71     LOG = 'log',
72     INTERMEDIATE = 'intermediate',
73 }