Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / models / container-request.ts
index 4a10414dcd25aa98eabc0f83193bac9d3857ea4f..d3adb03a92a435019f3a368cd36f0a822773f999 100644 (file)
@@ -2,39 +2,84 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Resource } from "../common/api/common-resource-service";
-import { ResourceKind } from "./kinds";
+import { Resource, ResourceKind, ResourceWithProperties } from './resource';
+import { MountType } from 'models/mount-types';
+import { RuntimeConstraints } from './runtime-constraints';
+import { SchedulingParameters } from './scheduling-parameters';
 
 export enum ContainerRequestState {
-    Uncommitted = "Uncommitted",
-    Committed = "Committed",
-    Final = "Final"
+    UNCOMMITTED = 'Uncommitted',
+    COMMITTED = 'Committed',
+    FINAL = 'Final',
 }
 
-export interface ContainerRequestResource extends Resource {
-    kind: ResourceKind.ContainerRequest;
-    name: string;
-    description: string;
-    properties: any;
-    state: ContainerRequestState;
-    requestingContainerUuid: string;
-    containerUuid: string;
+export interface ContainerRequestResource
+    extends Resource,
+    ResourceWithProperties {
+    command: string[];
     containerCountMax: number;
-    mounts: any;
-    runtimeConstraints: any;
-    schedulingParameters: any;
+    containerCount: number;
     containerImage: string;
-    environment: any;
+    containerUuid: string | null;
+    cumulativeCost: number;
     cwd: string;
-    command: string[];
-    outputPath: string;
+    description: string;
+    environment: any;
+    expiresAt: string;
+    filters: string;
+    kind: ResourceKind.CONTAINER_REQUEST;
+    logUuid: string | null;
+    mounts: { [path: string]: MountType };
+    name: string;
     outputName: string;
+    outputPath: string;
+    outputProperties: any;
+    outputStorageClasses: string[];
     outputTtl: number;
-    priority: number;
-    expiresAt: string;
+    outputUuid: string | null;
+    priority: number | null;
+    requestingContainerUuid: string | null;
+    runtimeConstraints: RuntimeConstraints;
+    schedulingParameters: SchedulingParameters;
+    state: ContainerRequestState;
     useExisting: boolean;
-    logUuid: string;
-    outputUuid: string;
-    filters: string;
+}
 
-}
\ No newline at end of file
+// Until the api supports unselecting fields, we need a list of all other fields to omit mounts
+export const containerRequestFieldsNoMounts = [
+    "command",
+    "container_count_max",
+    "container_count",
+    "container_image",
+    "container_uuid",
+    "created_at",
+    "cumulative_cost",
+    "cwd",
+    "description",
+    "environment",
+    "etag",
+    "expires_at",
+    "filters",
+    "href",
+    "kind",
+    "log_uuid",
+    "modified_at",
+    "modified_by_client_uuid",
+    "modified_by_user_uuid",
+    "name",
+    "output_name",
+    "output_path",
+    "output_properties",
+    "output_storage_classes",
+    "output_ttl",
+    "output_uuid",
+    "owner_uuid",
+    "priority",
+    "properties",
+    "requesting_container_uuid",
+    "runtime_constraints",
+    "scheduling_parameters",
+    "state",
+    "use_existing",
+    "uuid",
+];