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 };
36 outputProperties: any;
37 outputStorageClasses: string[];
39 outputUuid: string | null;
40 priority: number | null;
41 requestingContainerUuid: string | null;
42 runtimeConstraints: RuntimeConstraints;
43 schedulingParameters: SchedulingParameters;
44 state: ContainerRequestState;
48 // Until the api supports unselecting fields, we need a list of all other fields to omit mounts
49 export const containerRequestFieldsNoMounts = [
51 "container_count_max",
67 "modified_by_client_uuid",
68 "modified_by_user_uuid",
73 "output_storage_classes",
79 "requesting_container_uuid",
80 "runtime_constraints",
81 "scheduling_parameters",