OpenLattice edm API

API endpoints to the entity data model.

OpenAPI Specification

openlattice-edm-api-openapi.yml Raw ↑
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/