Resources

There is a WADL document available that describes the resources API.

You may also enjoy the interactive interface provided for this API by Swagger.

Try it out!

name path methods description
DiscoveryREST
  • /v2/search/attribute
  • /v2/search/basic
  • /v2/search/dsl
  • /v2/search/fulltext
  • /v2/search/relationship
  • GET
  • GET POST
  • GET
  • GET
  • GET
REST interface for data discovery using dsl or full text search
EntityREST
  • /v2/entity
  • /v2/entity/bulk
  • /v2/entity/bulk/classification
  • /v2/entity/guid/{guid}
  • /v2/entity/guid/{guid}/classifications
  • /v2/entity/uniqueAttribute/type/{typeName}
  • /v2/entity/guid/{guid}/classification/{classificationName}
  • POST
  • DELETE GET POST
  • POST
  • DELETE GET PUT
  • GET POST PUT
  • DELETE GET PUT
  • DELETE GET
REST for a single entity
LineageREST
  • /v2/lineage/{guid}
  • GET
REST interface for an entity's lineage information
RelationshipREST
  • /v2/relationship
  • /v2/relationship/guid/{guid}
  • POST PUT
  • DELETE GET
REST interface for entity relationships.
TypesREST
  • /v2/types/typedefs
  • /v2/types/typedefs/headers
  • /v2/types/classificationdef/guid/{guid}
  • /v2/types/classificationdef/name/{name}
  • /v2/types/entitydef/guid/{guid}
  • /v2/types/entitydef/name/{name}
  • /v2/types/enumdef/guid/{guid}
  • /v2/types/enumdef/name/{name}
  • /v2/types/relationshipdef/guid/{guid}
  • /v2/types/relationshipdef/name/{name}
  • /v2/types/structdef/guid/{guid}
  • /v2/types/structdef/name/{name}
  • /v2/types/typedef/guid/{guid}
  • /v2/types/typedef/name/{name}
  • DELETE GET POST PUT
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
  • GET
REST interface for CRUD operations on type definitions

Data Types

JSON

type description
AtlasAttributeDef class that captures details of a struct-attribute.
AtlasBaseTypeDef Base class that captures common-attributes for all Atlas types.
AtlasClassification An instance of a classification; it doesn't have an identity, this object exists only when associated with an entity.
AtlasClassificationDef class that captures details of a classification-type.
AtlasClassifications REST serialization friendly list.
AtlasConstraintDef class that captures details of a constraint.
AtlasEntitiesWithExtInfo An instance of an entity along with extended info - like hive_table, hive_database.
AtlasEntity An instance of an entity - like hive_table, hive_database.
AtlasEntityDef class that captures details of a entity-type.
AtlasEntityExtInfo An instance of an entity along with extended info - like hive_table, hive_database.
AtlasEntityHeader An instance of an entity - like hive_table, hive_database.
AtlasEntityWithExtInfo An instance of an entity along with extended info - like hive_table, hive_database.
AtlasEnumDef class that captures details of an enum-type.
AtlasEnumElementDef class that captures details of an enum-element.
AtlasFullTextResult
AtlasLineageInfo
AtlasObjectId Reference to an object-instance of an Atlas type - like entity.
AtlasQueryType
AtlasRelationship Atlas relationship instance.
AtlasRelationshipDef AtlasRelationshipDef is a TypeDef that defines a relationship.

As with other typeDefs the AtlasRelationshipDef has a name. Once created the RelationshipDef has a guid. The name and the guid are the 2 ways that the RelationshipDef is identified.

RelationshipDefs have 2 ends, each of which specify cardinality, an EntityDef type name and name and optionally whether the end is a container.

RelationshipDefs can have AttributeDefs - though only primitive types are allowed.
RelationshipDefs have a relationshipCategory specifying the UML type of relationship required
RelationshipDefs also have a PropogateTag - indicating which way tags could flow over the relationships.

The way EntityDefs and RelationshipDefs are intended to be used is that EntityDefs will define AttributeDefs these AttributeDefs will not specify an EntityDef type name as their types.

RelationshipDefs introduce new atributes to the entity instances. For example

EntityDef A might have attributes attr1,attr2,attr3
EntityDef B might have attributes attr4,attr5,attr6
RelationshipDef AtoB might define 2 ends

   end1:  type A, name attr7
   end2:  type B, name attr8  

When an instance of EntityDef A is created, it will have attributes attr1,attr2,attr3,attr7
When an instance of EntityDef B is created, it will have attributes attr4,attr5,attr6,attr8

In this way relationshipDefs can be authored separately from entityDefs and can inject relationship attributes into the entity instances

AtlasRelationshipEndDef The relationshipEndDef represents an end of the relationship. The end of the relationship is defined by a type, an attribute name, cardinality and whether it is the container end of the relationship.
AtlasSearchResult
AtlasStruct Captures details of struct contents. Not instantiated directly, used only via AtlasEntity, AtlasClassification.
AtlasStructDef class that captures details of a struct-type.
AtlasTypeDefHeader
AtlasTypesDef
AttributeSearchResult
Cardinality single-valued attribute or multi-valued attribute.
ClassificationAssociateRequest
Condition
EntityMutationResponse
EntityOperation
FilterCriteria
LineageDirection
LineageRelation
Operator Supported search operations Logical comparision operators can only be used with numbers or dates IN, LIKE, startsWith, endsWith, CONTAINS can only be used with strings or text
PList Paginated-list, for returning search results.
PropagateTags PropagateTags indicates whether tags should propagate across the relationship instance.

Tags can propagate:

NONE - not at all
ONE_TO_TWO - from end 1 to 2
TWO_TO_ONE - from end 2 to 1
BOTH - both ways

Care needs to be taken when specifying. The use cases we are aware of where this flag is useful:

- propagating confidentiality classifications from a table to columns - ONE_TO_TWO could be used here
- propagating classifications around Glossary synonyms - BOTH could be used here.

There is an expectation that further enhancements will allow more granular control of tag propagation and will address how to resolve conflicts.

RelationshipCategory The Relationship category determines the style of relationship around containment and lifecycle. UML terminology is used for the values.

ASSOCIATION is a relationship with no containment.
COMPOSITION and AGGREGATION are containment relationships.

The difference being in the lifecycles of the container and its children. In the COMPOSITION case, the children cannot exist without the container. For AGGREGATION, the life cycles of the container and children are totally independant.

SearchParameters
SortType to specify whether the result should be sorted? If yes, whether asc or desc.
Status Status of the entity - can be active or deleted. Deleted entities are not removed from Atlas store.
Status
TypeCategory

XML

Default Namespace (schema)
type description
PList Paginated-list, for returning search results.
searchFilter Generic filter, to specify search criteria using name/value pairs.
sortType to specify whether the result should be sorted? If yes, whether asc or desc.
atlasClassification An instance of a classification; it doesn't have an identity, this object exists only when associated with an entity.
atlasStruct Captures details of struct contents. Not instantiated directly, used only via AtlasEntity, AtlasClassification.