//
// 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 interface ContainerRequestResource extends Resource {
- kind: ResourceKind.ContainerRequest;
- name: string;
- description: string;
- properties: any;
- state: string;
- requestingContainerUuid: string;
- containerUuid: string;
- containerCountMax: number;
- mounts: any;
- runtimeConstraints: any;
- schedulingParameters: any;
- containerImage: string;
- environment: any;
- cwd: string;
- command: string[];
- outputPath: string;
- outputName: string;
- outputTtl: number;
- priority: number;
- expiresAt: string;
- useExisting: boolean;
- logUuid: string;
- outputUuid: string;
- filters: string;
+export enum ContainerRequestState {
+ UNCOMMITTED = 'Uncommitted',
+ COMMITTED = 'Committed',
+ FINAL = 'Final',
+}
-}
\ No newline at end of file
+export interface ContainerRequestResource
+ extends Resource,
+ ResourceWithProperties {
+ command: string[];
+ containerCountMax: number;
+ containerCount: number;
+ containerImage: string;
+ containerUuid: string | null;
+ cumulativeCost: number;
+ cwd: 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;
+ outputTtl: number;
+ outputUuid: string | null;
+ priority: number | null;
+ requestingContainerUuid: string | null;
+ runtimeConstraints: RuntimeConstraints;
+ schedulingParameters: SchedulingParameters;
+ state: ContainerRequestState;
+ useExisting: boolean;
+}
+
+// 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",
+ "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",
+];