Unit Hierarchy Link

Palantir Defense Ontology

[Palantir Defense Ontology] Serves as an intermediary link object type to traverse different hierarchies for the same unit. This flexibility is required as there is not a single hierarchy within the DoD. For example, the Army has one hierarchy when at rest, but when deployed that hierarchy can be modified. Units won't necessarily be deployed together or have the same parent/child units when deployed.

Properties

Unit Hierarchy Link Id
string

[Palantir Defense Ontology] Uniquely identifies links between hierarchies of the same unit.

Child Unit Id
string

[Palantir Defense Ontology] Identifies the child unit within a unit hierarchy link.

Parent Unit Id
string

[Palantir Defense Ontology] Identifies the parent unit in a unit hierarchy link.

Unit Hierarchy Id
string

[Palantir Defense Ontology] Uniquely identifies a unit hierarchy, which is a structured representation of the relationships between a set of units.

Unit Hierarchy Link Type Id
string

[Palantir Defense Ontology] Uniquely identifies codified unit relationship types, such as Command, Support, or Attached.

Unit Hierarchy Valid From
date

[Palantir Defense Ontology] Used to capture the start date of when a unit link or unit hierarchy is valid.

Unit Hierarchy Valid To
date

[Palantir Defense Ontology] Used to capture the end date of when a unit link or unit hierarchy is valid.

One To Many
optional

[Palantir Defense Ontology] Units have a many-to-many relationship to other units, represented by a link to a unitHierarchyLink object.

One To One
optional

[Palantir Defense Ontology] A unit hierarchy link can link to one unit hierarchy link type.

Code snippets

TypeScript

Load pages of Unit Hierarchy Link

Copied!
1 2 3 4 5 6 7 8 9 10 11 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; import { type Osdk, type PageResult, type Result } from "@osdk/client"; const response: Result<PageResult<Osdk<com.palantir.defense.ontology.UnitHierarchyLink>>> = await client(com.palantir.defense.ontology.UnitHierarchyLink).fetchPageWithErrors({ $pageSize: 30 }); // To fetch a page without a result wrapper, use fetchPage instead const responseNoErrorWrapper: PageResult<Osdk<com.palantir.defense.ontology.UnitHierarchyLink>> = await client(com.palantir.defense.ontology.UnitHierarchyLink).fetchPage({ $pageSize: 30 });

Filtering

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; import { isOk, type Osdk, type PageResult, type Result } from "@osdk/client"; const page: Result<PageResult<Osdk<com.palantir.defense.ontology.UnitHierarchyLink>>> = await client(com.palantir.defense.ontology.UnitHierarchyLink) .where({ $and:[ { $not: { someProperty: { $isNull: true }}}, { someProperty: { $eq: "foo" }} ] }) .fetchPageWithErrors({ $pageSize: 30 }); if (isOk(page)) { const interfaces = page.value.data; const interface1 = interfaces[0]; }

Load all Unit Hierarchy Link

Copied!
1 2 3 4 5 6 7 8 9 10 11 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; import type { Osdk } from "@osdk/client"; const interfaces: Osdk<com.palantir.defense.ontology.UnitHierarchyLink>[] = []; for await(const int of client(com.palantir.defense.ontology.UnitHierarchyLink).asyncIter()) { interfaces.push(int); } const interface1 = interfaces[0];

Load ordered Unit Hierarchy Link

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; import { isOk, type Osdk, type PageResult, type Result } from "@osdk/client"; const page: Result<PageResult<Osdk<com.palantir.defense.ontology.UnitHierarchyLink>>> = await client(com.palantir.defense.ontology.UnitHierarchyLink) .fetchPageWithErrors({ $orderBy: {"someProperty": "asc"}, $pageSize: 30 }); if (isOk(page)) { const interfaces = page.value.data; const interface1 = interfaces[0]; }

Subscribe to object sets

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; // A map of primary keys to objects loaded through the SDK const objects: { [key: string]: com.palantir.defense.ontology.UnitHierarchyLink.OsdkInstance } = ... const subscription = client(com.palantir.defense.ontology.UnitHierarchyLink).subscribe( { onChange(update) { if (update.state === "ADDED_OR_UPDATED") { // An object has received an update or an object was added to the object set const currentObject = objects[update.object.$primaryKey]; if (currentObject !== undefined) { currentObject["<propertyName>"] = update.object["<propertyName>"] ?? currentObject["<propertyName>"]; } } else if (update.state === "REMOVED") { // The object was removed from the object set, which could mean it was deleted or no longer meets the filter criteria delete objects[update.object.$primaryKey]; } }, onSuccessfulSubscription() { // The subscription was successful and you can expect to receive updates }, onError(err) { // There was an error with the subscription and you will not receive any more updates console.error(err); }, onOutOfDate() { // We could not keep track of all changes. Please reload the objects in your set. }, }, { properties: [ "com.palantir.defense.ontology.unitHierarchyLinkId", "com.palantir.defense.ontology.childUnitId", "com.palantir.defense.ontology.parentUnitId", "com.palantir.defense.ontology.unitHierarchyId", "com.palantir.defense.ontology.unitHierarchyLinkTypeId", "com.palantir.defense.ontology.unitHierarchyValidFrom", "com.palantir.defense.ontology.unitHierarchyValidTo", ]} ); subscription.unsubscribe();

Load Unit Hierarchy Link metadata

Copied!
1 2 3 4 5 6 7 8 import { com.palantir.defense.ontology.UnitHierarchyLink } from "@osdk/defense-ontology"; // Edit this import if your client location differs import { client } from "./client"; const interfaceTypeMetadata = await client.fetchMetadata(com.palantir.defense.ontology.UnitHierarchyLink); const implementingObjectTypes = interfaceTypeMetadata.implementedBy; const interfaceRid = interfaceTypeMetadata.rid;