import { PersistedObject, PersistedGraphObjectProperties, PersistedSearchDocumentProperties, PersistedObjectFromIntegrationProperties, PersistedObjectFromPowerupProperties } from './persisted-object'; /** * This type is used to describe the properties that can be assigned * by integrations to relationships and not already found in * `PersistedObjectAssignable`. */ export declare type RelationshipAssignable = { /** * `_class` is same as `_class` from `PersistedObject` except * array is not allowed. */ _class?: string; }; export declare type RelationshipFromIntegrationProperties = Omit & { /** * `_integrationClass` is same as `_integrationClass` from `PersistedObject` except * array is not allowed. */ _integrationClass: string; }; export declare type RelationshipFromPowerupProperties = PersistedObjectFromPowerupProperties; /** * The to/from entity properties are declared in their own * interface so that the `@jupiterone/jupiter-managed-integration-sdk` * can declare its own `RelationshipFromIntegration` type using the * intersection of multiple types and exclude `RelationshipToFromEntityProperties`. * The managed integration SDK specifically flips the required/optional * constraints of the properties in this interface. */ export declare type RelationshipToFromEntityProperties = { /** * The ID of the entity that the edge is directed from. */ _fromEntityId: string; /** * The ID of the entity that the edge is directed toward. */ _toEntityId: string; /** * The key of the entity that the edge is directed from. * The `_fromEntityKey` is optional. */ _fromEntityKey: string; /** * The key of the entity that the edge is directed toward. * The `_toEntityKey` is optional. */ _toEntityKey: string; }; export declare type RelationshipPropertyValue = string | number | boolean | null | undefined; export interface RelationshipAdditionalProperties { [key: string]: RelationshipPropertyValue; } export declare type RelationshipCoreProperties = Omit & RelationshipToFromEntityProperties & RelationshipAssignable; /** * A `Relationship` represents an edge in graph database. * * The properties that begin with "_" are built-in properties * and have special meaning and usually managed internally * by the system. * * The properties that do not begin with "_" are properties whose * values were provided by the integration. */ export declare type Relationship = RelationshipCoreProperties & RelationshipAdditionalProperties & Partial; /** * `PersistedRelationship` is a `Relationship` with additional * `_graphObjectId` property. */ export declare type PersistedRelationship = Relationship & PersistedGraphObjectProperties & { _fromVertexId: string; _toVertexId: string; }; /** * `RelationshipSearchDocument` is a `Relationship` with additional * `_graphObjectId` and `_graphObjectType` properties. */ export declare type RelationshipSearchDocument = PersistedRelationship & PersistedSearchDocumentProperties;