18219: Extracts 'properties' into a separate interface for typing reasons.
authorLucas Di Pentima <lucas.dipentima@curii.com>
Tue, 14 Dec 2021 21:27:49 +0000 (18:27 -0300)
committerLucas Di Pentima <lucas.dipentima@curii.com>
Fri, 17 Dec 2021 22:36:00 +0000 (19:36 -0300)
We'll be treating Collections, Projects, etc as "ResourcesWithProperties".

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas.dipentima@curii.com>

src/models/collection.ts
src/models/container-request.ts
src/models/group.ts
src/models/link.ts
src/models/log.ts
src/models/resource.ts
src/models/tag.ts

index baa25c7af11f145b533e26c5d3d054dda4f751dc..3effe6724847485185fb6d15c8043fe90baac69c 100644 (file)
@@ -2,13 +2,16 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind, TrashableResource } from "./resource";
+import {
+    ResourceKind,
+    TrashableResource,
+    ResourceWithProperties
+} from "./resource";
 
-export interface CollectionResource extends TrashableResource {
+export interface CollectionResource extends TrashableResource, ResourceWithProperties {
     kind: ResourceKind.COLLECTION;
     name: string;
     description: string;
-    properties: any;
     portableDataHash: string;
     manifestText: string;
     replicationDesired: number;
index 9a57a41dbecb7ca1b5c99fd2d28998937da49fe9..99ec4cf086ad6acfd3102f5e3dfd77b6c7f14867 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Resource, ResourceKind } from "./resource";
+import { Resource, ResourceKind, ResourceWithProperties } from "./resource";
 import { MountType } from "models/mount-types";
 import { RuntimeConstraints } from './runtime-constraints';
 import { SchedulingParameters } from './scheduling-parameters';
@@ -13,11 +13,10 @@ export enum ContainerRequestState {
     FINAL = "Final"
 }
 
-export interface ContainerRequestResource extends Resource {
+export interface ContainerRequestResource extends Resource, ResourceWithProperties {
     kind: ResourceKind.CONTAINER_REQUEST;
     name: string;
     description: string;
-    properties: any;
     state: ContainerRequestState;
     requestingContainerUuid: string | null;
     containerUuid: string | null;
index a0c22212b794e72c6c2ce02e17c06f1c59ebacb9..3f3656ccd5fba90bcfb6a037c73ce0420c4c343c 100644 (file)
@@ -2,14 +2,19 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { ResourceKind, TrashableResource, ResourceObjectType, RESOURCE_UUID_REGEX } from "./resource";
+import {
+    ResourceKind,
+    ResourceWithProperties,
+    RESOURCE_UUID_REGEX,
+    ResourceObjectType,
+    TrashableResource
+} from "./resource";
 
-export interface GroupResource extends TrashableResource {
+export interface GroupResource extends TrashableResource, ResourceWithProperties {
     kind: ResourceKind.GROUP;
     name: string;
     groupClass: GroupClass | null;
     description: string;
-    properties: any;
     writableBy: string[];
     ensure_unique_name: boolean;
 }
index 828dced232d61651a5ed337aec1708542a08d92b..f55c5ccfeaa8045d52ccf25aa90403c3eab50ddc 100644 (file)
@@ -2,16 +2,15 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Resource, ResourceKind } from 'models/resource';
+import { Resource, ResourceKind, ResourceWithProperties } from 'models/resource';
 
-export interface LinkResource extends Resource {
+export interface LinkResource extends Resource, ResourceWithProperties {
     headUuid: string;
     headKind: ResourceKind;
     tailUuid: string;
     tailKind: string;
     linkClass: string;
     name: string;
-    properties: any;
     kind: ResourceKind.LINK;
 }
 
index 55967f88c9840751e086393cc8788cf813af982e..3397993bae4c74f2b3e7d89c825618e27fa38a22 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { Resource } from "./resource";
+import { Resource, ResourceWithProperties } from "./resource";
 import { ResourceKind } from 'models/resource';
 
 export enum LogEventType {
@@ -18,11 +18,10 @@ export enum LogEventType {
     STDERR = 'stderr',
 }
 
-export interface LogResource extends Resource {
+export interface LogResource extends Resource, ResourceWithProperties {
     kind: ResourceKind.LOG;
     objectUuid: string;
     eventAt: string;
     eventType: string;
     summary: string;
-    properties: any;
 }
index c94c4b2507d282b2e02a54e5ce298603af180172..fd86727782c2960b15ee78d4237da4dcc53363b4 100644 (file)
@@ -14,6 +14,10 @@ export interface Resource {
     etag: string;
 }
 
+export interface ResourceWithProperties extends Resource {
+    properties: any;
+}
+
 export interface EditableResource extends Resource {
     isEditable: boolean;
 }
index f4e5854ad109a26fd2b46908484e2b0ad6c6ba0c..fa36486d0bf965fd2be57baf9c5360733778c9a6 100644 (file)
@@ -10,6 +10,7 @@ export interface TagResource extends LinkResource {
 }
 
 export interface TagProperty {
+    uuid: string;
     key: string;
     keyID?: string;
     value: string;