1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
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';
10 export enum ContainerRequestState {
11 UNCOMMITTED = 'Uncommitted',
12 COMMITTED = 'Committed',
16 export interface ContainerRequestResource
18 ResourceWithProperties {
20 containerCountMax: number;
21 containerCount: number;
22 containerImage: string;
23 containerUuid: string | null;
24 cumulativeCost: number;
30 kind: ResourceKind.CONTAINER_REQUEST;
31 logUuid: string | null;
32 mounts: { [path: string]: MountType };
37 outputUuid: string | null;
38 priority: number | null;
39 requestingContainerUuid: string | null;
40 runtimeConstraints: RuntimeConstraints;
41 schedulingParameters: SchedulingParameters;
42 state: ContainerRequestState;
46 // Until the api supports unselecting fields, we need a list of all other fields to omit mounts
47 export const containerRequestFieldsNoMounts = [
49 "container_count_max",
64 "modified_by_client_uuid",
65 "modified_by_user_uuid",
70 "output_storage_classes",
76 "requesting_container_uuid",
77 "runtime_constraints",
78 "scheduling_parameters",