//
// SPDX-License-Identifier: AGPL-3.0
-import { Resource, ResourceKind, ResourceWithProperties } from "./resource";
-import { MountType } from "models/mount-types";
+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, ResourceWithProperties {
- kind: ResourceKind.CONTAINER_REQUEST;
- name: string;
- description: string;
- state: ContainerRequestState;
- requestingContainerUuid: string | null;
- cumulativeCost: number;
- containerUuid: string | null;
+export interface ContainerRequestResource
+ extends Resource,
+ ResourceWithProperties {
+ command: string[];
containerCountMax: number;
- mounts: {[path: string]: MountType};
- runtimeConstraints: RuntimeConstraints;
- schedulingParameters: SchedulingParameters;
+ 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;
+ outputUuid: string | null;
priority: number | null;
- expiresAt: string;
+ requestingContainerUuid: string | null;
+ runtimeConstraints: RuntimeConstraints;
+ schedulingParameters: SchedulingParameters;
+ state: ContainerRequestState;
useExisting: boolean;
- logUuid: string | null;
- outputUuid: string | null;
- filters: string;
- containerCount: number;
}
+
+// 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",
+];