OpenLattice edm API
API endpoints to the entity data model.
API endpoints to the entity data model.
openapi: 3.0.0
info:
description: OpenLattice API
version: 0.0.1
title: OpenLattice authorizations edm API
termsOfService: http://api.openlattice.com/terms/
contact:
email: support@openlattice.com
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.openlattice.com
description: Production OpenLattice API
- url: https://api.staging.openlattice.com
description: Staging OpenLattice API
- url: http://localhost:8080
description: Local OpenLattice API
tags:
- name: edm
description: API endpoints to the entity data model.
paths:
/datastore/edm/:
get:
summary: Gets the entity data model, including namespaces, schemas, entity types, association types, and property types.
operationId: getEntityDataModel
responses:
'200':
description: An Entity Data Model
content:
application/json:
schema:
$ref: '#/components/EDM'
tags:
- edm
patch:
summary: Updates the entity data model, including schemas, entity types, association types, and property types.
operationId: updateEntityDataModel
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/EDM'
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/diff/:
post:
summary: Gets the changes between the existing entity data model and the entity data model passed in, including schemas, association types, entity types, and property types.
operationId: getEntityDataModelDiff
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/EDMdiff'
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/EDMdiff'
/datastore/edm/version/:
get:
summary: Returns the current entity data model version.
operationId: getEntityDataModelVersion
tags:
- edm
responses:
'200':
description: Success
/datastore/edm/entity/set/{entitySetId}:
get:
summary: Get the EntitySet definition for the given EntitySet UUID.
operationId: getEntitySet
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: An Entity Set definition
content:
application/json:
schema:
$ref: '#/components/entitySet'
delete:
summary: Deletes the EntitySet definition for the given EntitySet UUID.
operationId: deleteEntitySet
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
patch:
summary: Updates the EntityType definition for the given EntitySet UUID with the given metadata.
operationId: updateEntitySetMetaData
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/metaDataUpdate'
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/ids/entity/set/{entitySetName}:
get:
summary: Gets the EntitySet UUID for the given EntitySet name.
operationId: getEntitySetId
parameters:
- name: entitySetName
in: path
required: true
schema:
type: string
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
format: uuid
/datastore/edm/entity/set:
get:
summary: Get all EntitySet definitions.
operationId: getAllEntitySets
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/entitySet'
post:
summary: Create new EntitySet definitions if they don"t exist.
operationId: createEntitySets
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/entitySet'
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/entity/set/{entitySetId}/property/type:
get:
summary: Get all property type metadata for an entity set.
operationId: getAllEntitySetPropertyMetadata
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/propertyType'
/datastore/edm/entity/set/{entitySetId}/property/type/{propertyTypeId}/:
get:
summary: Get specified property type metadata for an entity set.
operationId: getEntitySetPropertyMetadata
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/propertyType'
post:
summary: Updates the property type metadata for the given entity set.
operationId: updateEntitySetPropertyMetadata
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: entitySetId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/propertyType'
responses:
200:
description: Success
/datastore/edm/entity/type/{entityTypeId}:
get:
summary: Gets the EntityType definition for the given EntityType UUID.
operationId: getEntityType
tags:
- edm
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/entityType'
delete:
summary: Deletes the EntityType definition for the given EntityType UUID.
operationId: deleteEntityType
tags:
- edm
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
patch:
summary: Updates the EntityType definition for the given EntityType UUID with the given metadata.
operationId: updateEntityTypeMetaData
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/metaDataUpdate'
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/ids/entity/type/{namespace}/{name}:
get:
summary: Gets the EntityType UUID for the given EntityType FQN.
operationId: getEntityTypeId
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: namespace
in: path
required: true
schema:
type: string
example: openlattice
- name: name
in: path
required: true
schema:
type: string
example: myentitytype
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
format: uuid
/datastore/edm/entity/type/{entityTypeId}/{propertyTypeId}:
put:
summary: Updates the EntityType definition for the given EntityType UUID by adding the given PropertyType UUID.
operationId: addPropertyTypeToEntityType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
delete:
summary: Updates the EntityType definition for the given EntityType UUID by removing the given PropertyType UUID.
operationId: removePropertyTypeFromEntityType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/entity/type/{entityTypeId}/{propertyTypeId}/force:
delete:
summary: Updates the EntityType definition for the given EntityType UUID by removing the given PropertyType UUID, regardless of whether or not there is data associated with the entity type.
operationId: forceRemovePropertyTypeFromEntityType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/entity/type/:
get:
summary: Gets all EntityType definitions.
operationId: getAllEntityTypes
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/entityType'
post:
summary: Creates a new EntityType definition, if it doesn't exist.
operationId: createEntityType
tags:
- edm
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/entityType'
responses:
'200':
description: Success
/datastore/edm/association/type/:
get:
summary: Gets all association EntityType definitions.
operationId: getAllAssociationEntityTypes
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/associationType'
post:
summary: Creates a new AssociationType definition, if it doesn"t exist.
operationId: createAssociationType
tags:
- edm
requestBody:
required: true
content:
application/json:
schema:
type: array
items:
$ref: '#/components/associationType'
responses:
'200':
description: Success
/datastore/edm/entity/type/{entityTypeId}/property/type:
patch:
summary: Updates the EntityType definition for the given EntityType UUID by reordering its properties as specified by the provided list.
operationId: reorderPropertyTypesInEntityType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: propertyTypeIds
in: path
required: true
schema:
type: array
items:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/entity/type/{entityTypeId}/hierarchy:
patch:
summary: Get the EntityType hierarchy for the given EntityType UUID.
operationId: getEntityTypeHierarchy
parameters:
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/property/type/{propertyTypeId}:
get:
summary: Gets the PropertyType definition for the given PropertyType UUID.
operationId: getPropertyType
tags:
- edm
parameters:
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/propertyType'
delete:
summary: Deletes the PropertyType definition for the given PropertyType UUID.
operationId: deletePropertyType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
patch:
summary: Updates the PropertyType definition for the given PropertyType UUID with the given metadata.
operationId: updatePropertyTypeMetaData
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/metaDataUpdate'
responses:
'200':
description: Success
/datastore/edm/property/type/{propertyTypeId}/force:
delete:
summary: Deletes the PropertyType definition for the given PropertyType UUID regardless of whether or not there is data associated with it.
operationId: forceDeletePropertyType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/ids/property/type/{namespace}/{name}:
get:
summary: Gets the PropertyType UUID for the given PropertyType FQN.
operationId: getPropertyTypeId
tags:
- edm
parameters:
- name: namespace
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: string
format: uuid
/datastore/edm/property/type/:
get:
summary: Gets all PropertyType definitions.
operationId: getAllPropertyTypes
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/propertyType'
post:
summary: Creates a new PropertyType definition, if it doesn"t exist.
operationId: createPropertyType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/propertyType'
responses:
'200':
description: Success
/datastore/edm/property/type/namespace/{namespace}:
get:
summary: Gets all PropertyType definitions under the given namespace.
operationId: getAllPropertyTypesInNamespace
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: namespace
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/propertyType'
/datastore/edm/association/type/{associationTypeId}:
get:
summary: Get the AssociationType definition for the given AssociationType UUID.
operationId: getAssociationType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/associationType'
delete:
summary: Delete the AssociationType definition for the given AssociationType UUID.
operationId: deleteAssociationType
tags:
- edm
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/association/type/{associationTypeId}/detailed:
get:
summary: Get details about the AssociationType for the given AssociationType UUID.
operationId: getAssociationTypeDetails
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/associationType'
/datastore/edm/association/type/{associationTypeId}/available:
get:
summary: Get all available associations for the given AssociationType UUID.
operationId: getAllAvailableAssociationTypes
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/associationType'
/datastore/edm/association/type/{associationTypeId}/dst/{entityTypeId}:
put:
summary: Update the AssociationType dst entity types for the given AssociationType UUID by adding the given EntityType UUID.
operationId: addDstEntityTypeToAssociationType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
delete:
summary: Updates the AssociationType dst entity types for the given AssociationType UUID by removing the given EntityType UUID.
operationId: removeDstEntityTypeFromAssociationType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/association/type/{associationTypeId}/src/{entityTypeId}:
put:
summary: Update the AssociationType src entity types for the given AssociationType UUID by adding the given EntityType UUID.
operationId: addSrcEntityTypeToAssociationType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
delete:
summary: Updates the AssociationType src entity types for the given AssociationType UUID by removing the given EntityType UUID.
operationId: removeSrcEntityTypeFromAssociationType
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: associationTypeId
in: path
required: true
schema:
type: string
format: uuid
- name: entityTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
/datastore/edm/summary:
get:
summary: Get Property Usage Summary for all properties.
operationId: getAllPropertyUsageSummaries
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/propertyUsageSummary'
/datastore/edm/summary/{propertyTypeId}:
get:
summary: Get Property Usage Summary for property with given ID.
operationId: getPropertyUsageSummary
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
parameters:
- name: propertyTypeId
in: path
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/propertyUsageSummary'
/datastore/edm/schema/{namespace}/{name}:
get:
summary: Gets the schema contents for a corresponding namespace and name.
operationId: getSchemaContents
tags:
- edm
parameters:
- name: namespace
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
- name: fileType
in: query
schema:
type: string
enum:
- csv
- json
- yaml
default: yaml
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schema'
put:
summary: Creates an empty schema, if it doesn't exist. If schema exists then no action is taken.
operationId: createEmptySchema
tags:
- edm
parameters:
- name: namespace
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
patch:
summary: Edits the schema contents for a corresponding namespace and name.
operationId: updateSchema
tags:
- edm
parameters:
- name: namespace
in: path
required: true
schema:
type: string
- name: name
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/EdmRequest'
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/schema:
get:
summary: Gets all schemas.
operationId: getSchemas
tags:
- edm
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schema'
post:
summary: Creates an empty schema, if it doesn't exist. If schema exists then no action is taken.
operationId: createSchemaIfNotExists
tags:
- edm
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schema'
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
/datastore/edm/schema/{namespace}:
get:
summary: Gets all schemas associated with a given namespace and accessible by the caller.
operationId: getSchemasInNamespace
tags:
- edm
parameters:
- name: namespace
in: path
required: true
schema:
type: string
security:
- openlattice_auth: []
- http_auth: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schema'
components:
securitySchemes:
http_auth:
type: http
scheme: bearer
bearerFormat: JWT
name: HttpAuthorization
openlattice_auth:
type: apiKey
in: header
name: Authorization
externalDocs:
description: Find out more about OpenLattice
url: https://openlattice.com/