Merge branch '19504-breadcrumbs' into main. Closes #19504
[arvados-workbench2.git] / src / models / container-request.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { Resource, ResourceKind, ResourceWithProperties } from './resource';
6 import { MountType } from 'models/mount-types';
7 import { RuntimeConstraints } from './runtime-constraints';
8 import { SchedulingParameters } from './scheduling-parameters';
9
10 export enum ContainerRequestState {
11   UNCOMMITTED = 'Uncommitted',
12   COMMITTED = 'Committed',
13   FINAL = 'Final',
14 }
15
16 export interface ContainerRequestResource
17   extends Resource,
18     ResourceWithProperties {
19   command: string[];
20   containerCountMax: number;
21   containerCount: number;
22   containerImage: string;
23   containerUuid: string | null;
24   cumulativeCost: number;
25   cwd: string;
26   description: string;
27   environment: any;
28   expiresAt: string;
29   filters: string;
30   kind: ResourceKind.CONTAINER_REQUEST;
31   logUuid: string | null;
32   mounts: { [path: string]: MountType };
33   name: string;
34   outputName: string;
35   outputPath: string;
36   outputTtl: number;
37   outputUuid: string | null;
38   priority: number | null;
39   requestingContainerUuid: string | null;
40   runtimeConstraints: RuntimeConstraints;
41   schedulingParameters: SchedulingParameters;
42   state: ContainerRequestState;
43   useExisting: boolean;
44 }
45
46 // Until the api supports unselecting fields, we need a list of all other fields to omit mounts
47 export const containerRequestFieldsNoMounts = [
48     "command",
49     "container_count_max",
50     "container_count",
51     "container_image",
52     "container_uuid",
53     "created_at",
54     "cwd",
55     "description",
56     "environment",
57     "etag",
58     "expires_at",
59     "filters",
60     "href",
61     "kind",
62     "log_uuid",
63     "modified_at",
64     "modified_by_client_uuid",
65     "modified_by_user_uuid",
66     "name",
67     "output_name",
68     "output_path",
69     "output_properties",
70     "output_storage_classes",
71     "output_ttl",
72     "output_uuid",
73     "owner_uuid",
74     "priority",
75     "properties",
76     "requesting_container_uuid",
77     "runtime_constraints",
78     "scheduling_parameters",
79     "state",
80     "use_existing",
81     "uuid",
82 ];