Entity Specifications Resource

An entity specification defines properties for Waterline Data objects such as tags, users, roles, data resources, and so on. Properties of entities are represented by PropertySpec objects. An EntitySpec object associates a set of properties with a specific entity type. Endpoints under /entityspec allow you to create, query, update, and delete properties associated with entities, including setting the access level for properties.
Entities are identified by their "key", which in this context is a name. The built-in entities are audit_event, data_resource, data_source, operation_execution, operation, resource_field, role, tag_association, tag_domain, tag, user_review, and user. Operations and operation_executions are not exposed at this time. To access entities, the authenticated user must have an Administrator role.

GET /v2/entityspec/all

A GET request to /entityspec/all returns all entity type and their properties.

Response Body
media type data type description
application/json array of EntitySpecification (JSON) A list of EntitySpecification objects, in JSON format.

Example

Request
GET /v2/entityspec/all
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
[ {
  "propertySpecifications" : [ {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  }, {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  } ],
  "entitySpecType" : "...",
  "entitySchemaJson" : "...",
  "propertyNames" : [ "...", "..." ],
  "uniqueKeyProps" : [ "...", "..." ],
  "requiredProps" : [ "...", "..." ],
  "propertyGroup" : "...",
  "key" : "...",
  "type" : "...",
  "description" : "...",
  "timeOfLastChange" : 12345,
  "timeOfCreation" : 12345,
  "restricted" : [ "...", "..." ],
  "updateable" : [ "...", "..." ],
  "viewAble" : [ "...", "..." ],
  "customProperties" : [ {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  }, {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  } ]
} ]
                
              

GET /v2/entityspec/{name}

A GET request to /entityspec/{name} returns the properties associated with a given entity type.

Request Parameters
name type description
name path The entity name.
Response Body
media type data type description
application/json EntitySpecification (JSON) A EntitySpecification object in JSON format.

Example

Request
GET /v2/entityspec/{name}
Content-Type: */*
Accept: application/json

                
...
                
              
Response
HTTP/1.1 200 OK
Content-Type: application/json

                
{
  "propertySpecifications" : [ {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  }, {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  } ],
  "entitySpecType" : "...",
  "entitySchemaJson" : "...",
  "propertyNames" : [ "...", "..." ],
  "uniqueKeyProps" : [ "...", "..." ],
  "requiredProps" : [ "...", "..." ],
  "propertyGroup" : "...",
  "key" : "...",
  "type" : "...",
  "description" : "...",
  "timeOfLastChange" : 12345,
  "timeOfCreation" : 12345,
  "restricted" : [ "...", "..." ],
  "updateable" : [ "...", "..." ],
  "viewAble" : [ "...", "..." ],
  "customProperties" : [ {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  }, {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  } ]
}
                
              

POST /v2/entityspec/{name}/propertyspec

A POST request to the /entityspec/{name}/propertyspec endpoint creates a new property definition in an existing entity.

Request Parameters
name type description
name path The entity name.
Request Body
media type data type description
application/json PropertySpecification (JSON) A JSON object that defines the new property.
Response Body
media type data type description
application/json EntitySpecification (JSON) The updated EntitySpecification object containing the new property, in JSON format.

Example

Request
POST /v2/entityspec/{name}/propertyspec
Content-Type: application/json
Accept: application/json

                
{
  "facetable" : true,
  "label" : "...",
  "description" : "...",
  "name" : "...",
  "property_type" : "...",
  "item_type" : "...",
  "permission_group" : "...",
  "is_custom_property" : true,
  "_custom_property" : true,
  "groupKey" : "...",
  "searchable" : true,
  "_case_sensitive" : true,
  "supports_special_chars" : true
}
                
              
Response
HTTP/1.1 201 Created
Content-Type: application/json

                
{
  "propertySpecifications" : [ {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  }, {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  } ],
  "entitySpecType" : "...",
  "entitySchemaJson" : "...",
  "propertyNames" : [ "...", "..." ],
  "uniqueKeyProps" : [ "...", "..." ],
  "requiredProps" : [ "...", "..." ],
  "propertyGroup" : "...",
  "key" : "...",
  "type" : "...",
  "description" : "...",
  "timeOfLastChange" : 12345,
  "timeOfCreation" : 12345,
  "restricted" : [ "...", "..." ],
  "updateable" : [ "...", "..." ],
  "viewAble" : [ "...", "..." ],
  "customProperties" : [ {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  }, {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  } ]
}
                
              

PUT /v2/entityspec/{name}/propertyspec

A PUT request to the /entityspec/{name}/propertygroup endpoint updates an existing property in an existing entity. Typical attributes of a property that you might update includes the property group (which controls what roles can see or set the value of the property) or the label for the property.

Request Parameters
name type description
name path The name of the entity that the property is part of.
Request Body
media type data type description
application/json PropertySpecification (JSON) A JSON object that defines the updated property.
Response Body
media type data type description
application/json EntitySpecification (JSON) The updated EntitySpecification object containing the updated property, in JSON format.

Example

Request
PUT /v2/entityspec/{name}/propertyspec
Content-Type: application/json
Accept: application/json

                
{
  "facetable" : true,
  "label" : "...",
  "description" : "...",
  "name" : "...",
  "property_type" : "...",
  "item_type" : "...",
  "permission_group" : "...",
  "is_custom_property" : true,
  "_custom_property" : true,
  "groupKey" : "...",
  "searchable" : true,
  "_case_sensitive" : true,
  "supports_special_chars" : true
}
                
              
Response
HTTP/1.1 204 No Content
Content-Type: application/json

                
{
  "propertySpecifications" : [ {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  }, {
    "facetable" : true,
    "label" : "...",
    "description" : "...",
    "name" : "...",
    "property_type" : "...",
    "item_type" : "...",
    "permission_group" : "...",
    "is_custom_property" : true,
    "_custom_property" : true,
    "groupKey" : "...",
    "searchable" : true,
    "_case_sensitive" : true,
    "supports_special_chars" : true
  } ],
  "entitySpecType" : "...",
  "entitySchemaJson" : "...",
  "propertyNames" : [ "...", "..." ],
  "uniqueKeyProps" : [ "...", "..." ],
  "requiredProps" : [ "...", "..." ],
  "propertyGroup" : "...",
  "key" : "...",
  "type" : "...",
  "description" : "...",
  "timeOfLastChange" : 12345,
  "timeOfCreation" : 12345,
  "restricted" : [ "...", "..." ],
  "updateable" : [ "...", "..." ],
  "viewAble" : [ "...", "..." ],
  "customProperties" : [ {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  }, {
    "displayName" : "...",
    "value" : { },
    "description" : "...",
    "facetAble" : true,
    "name" : "...",
    "type" : "..."
  } ]
}