Type - Bulk Create

Create all atlas type definitions in bulk. Please avoid recreating existing types.

POST {endpoint}/datamap/api/atlas/v2/types/typedefs

URI Parameters

Name In Required Type Description
endpoint
path True

string

Request Body

Name Type Description
businessMetadataDefs

AtlasBusinessMetadataDef[]

businessMetadataDefs

classificationDefs

AtlasClassificationDef[]

An array of classification definitions.

entityDefs

AtlasEntityDef[]

An array of entity definitions.

enumDefs

AtlasEnumDef[]

An array of enum definitions.

relationshipDefs

AtlasRelationshipDef[]

An array of relationship definitions.

structDefs

AtlasStructDef[]

An array of struct definitions.

termTemplateDefs

TermTemplateDef[]

An array of term template definitions.

Responses

Name Type Description
200 OK

AtlasTypesDef

The request has succeeded.

Other Status Codes

AtlasErrorResponse

An unexpected error response.

Security

OAuth2Auth

Type: oauth2
Flow: implicit
Authorization URL: https://login.microsoftonline.com/common/oauth2/authorize

Scopes

Name Description
https://purview.azure.net/.default

Examples

Type_BulkCreate
Type_BulkCreateBusinessMetadataDefs

Type_BulkCreate

Sample request

POST {endpoint}/datamap/api/atlas/v2/types/typedefs

{
  "enumDefs": [],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "name": "azure_sql_server_example",
      "superTypes": [
        "azure_resource"
      ],
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "databases",
          "typeName": "array<azure_sql_db>",
          "cardinality": "SET",
          "isIndexable": false,
          "isOptional": true,
          "isUnique": false
        }
      ]
    }
  ],
  "relationshipDefs": []
}

Sample response

{
  "enumDefs": [],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "category": "ENTITY",
      "guid": "a47fd902-a564-45f1-aa51-ce9224955881",
      "createdBy": "ExampleCreator",
      "updatedBy": "ExampleUpdator",
      "createTime": 1553672211954,
      "updateTime": 1553672211954,
      "version": 1,
      "name": "azure_sql_server_example",
      "description": "azure_sql_server_example",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name": "databases",
          "typeName": "array<azure_sql_db>",
          "isOptional": true,
          "cardinality": "SET",
          "valuesMinCount": 0,
          "valuesMaxCount": 2147483647,
          "isUnique": false,
          "isIndexable": false,
          "includeInNotification": false
        }
      ],
      "superTypes": [
        "azure_resource"
      ],
      "subTypes": []
    }
  ],
  "relationshipDefs": []
}

Type_BulkCreateBusinessMetadataDefs

Sample request

POST {endpoint}/datamap/api/atlas/v2/types/typedefs

{
  "enumDefs": [],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [],
  "relationshipDefs": [],
  "businessMetadataDefs": [
    {
      "name": "myBizMetadata1",
      "description": "",
      "attributeDefs": [
        {
          "name": "bizAttr1",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "isUnique": false,
          "isIndexable": true,
          "options": {
            "maxStrLength": "50",
            "applicableEntityTypes": "[\"Path\"]"
          }
        }
      ]
    }
  ]
}

Sample response

{
  "enumDefs": [],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [],
  "relationshipDefs": [],
  "businessMetadataDefs": [
    {
      "category": "BUSINESS_METADATA",
      "guid": "f26dc6d1-be9c-a0ce-a274-b6388ff6e2eb",
      "createdBy": "ServiceAdmin",
      "updatedBy": "ServiceAdmin",
      "createTime": 1646994112241,
      "updateTime": 1646994112241,
      "version": 1,
      "name": "myBizMetadata1",
      "description": "This is my businessMetadata1",
      "typeVersion": "1.0",
      "lastModifiedTS": "1",
      "attributeDefs": [
        {
          "name": "bizAttr1",
          "typeName": "string",
          "isOptional": true,
          "cardinality": "SINGLE",
          "valuesMinCount": 0,
          "valuesMaxCount": 1,
          "isUnique": false,
          "isIndexable": true,
          "includeInNotification": false,
          "options": {
            "applicableEntityTypes": "[\"Path\"]",
            "maxStrLength": "50"
          }
        }
      ]
    }
  ]
}

Definitions

Name Description
AtlasAttributeDef

class that captures details of a struct-attribute.

AtlasBusinessMetadataDef

class that captures details of a struct-type.

AtlasClassificationDef

class that captures details of a classification-type.

AtlasConstraintDef

class that captures details of a constraint.

AtlasEntityDef

class that captures details of a entity-type.

AtlasEnumDef

class that captures details of an enum-type.

AtlasEnumElementDef

class that captures details of an enum-element.

AtlasErrorResponse

An error response from the service

AtlasRelationshipAttributeDef

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.

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 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 attributes 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.

AtlasStructDef

class that captures details of a struct-type.

AtlasTypesDef

The definitions of types.

CardinalityValue

Cardinality

DateFormat

The date format.

NumberFormat

The number format.

RelationshipCategory

Relationship Category

RoundingMode

Rounding Mode

TermTemplateDef

Term template definition for glossary term.

TimeZone

The timezone information.

TypeCategory

Type Category

AtlasAttributeDef

class that captures details of a struct-attribute.

Name Type Description
cardinality

CardinalityValue

single-valued attribute or multi-valued attribute.

constraints

AtlasConstraintDef[]

An array of constraints.

defaultValue

string

The default value of the attribute.

description

string

The description of the attribute.

includeInNotification

boolean

Determines if it is included in notification.

isIndexable

boolean

Determines if it is indexable.

isOptional

boolean

Determines if it is optional.

isUnique

boolean

Determines if it unique.

name

string

The name of the attribute.

options

object

The options for the attribute.

typeName

string

The name of the type.

valuesMaxCount

integer

The maximum count of the values.

valuesMinCount

integer

The minimum count of the values.

AtlasBusinessMetadataDef

class that captures details of a struct-type.

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

serviceType

string

The service type.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

AtlasClassificationDef

class that captures details of a classification-type.

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

entityTypes

string[]

Specifying a list of entityType names in the classificationDef, ensures that classifications can only be applied to those entityTypes.

Any subtypes of the entity types inherit the restriction.

Any classificationDef subtypes inherit the parents entityTypes restrictions.

Any classificationDef subtypes can further restrict the parents entityTypes restrictions by specifying a subset of the entityTypes.

An empty entityTypes list when there are no parent restrictions means there are no restrictions.

An empty entityTypes list when there are parent restrictions means that the subtype picks up the parents restrictions.

If a list of entityTypes are supplied, where one inherits from another, this will be rejected. This should encourage cleaner classificationsDefs.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

serviceType

string

The service type.

subTypes

string[]

An array of sub types.

superTypes

string[]

An array of super types.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

AtlasConstraintDef

class that captures details of a constraint.

Name Type Description
params

The parameters of the constraint definition.

type

string

The type of the constraint.

AtlasEntityDef

class that captures details of a entity-type.

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

relationshipAttributeDefs

AtlasRelationshipAttributeDef[]

An array of relationship attributes.

serviceType

string

The service type.

subTypes

string[]

An array of sub types.

superTypes

string[]

An array of super types.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

AtlasEnumDef

class that captures details of an enum-type.

Name Type Description
category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

defaultValue

string

The default value.

description

string

The description of the type definition.

elementDefs

AtlasEnumElementDef[]

An array of enum element definitions.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

serviceType

string

The service type.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

AtlasEnumElementDef

class that captures details of an enum-element.

Name Type Description
description

string

The description of the enum element definition.

ordinal

integer

The ordinal of the enum element definition.

value

string

The value of the enum element definition.

AtlasErrorResponse

An error response from the service

Name Type Description
errorCode

string

The error code.

errorMessage

string

The error message.

requestId

string

The request ID.

AtlasRelationshipAttributeDef

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.

Name Type Description
cardinality

CardinalityValue

single-valued attribute or multi-valued attribute.

constraints

AtlasConstraintDef[]

An array of constraints.

defaultValue

string

The default value of the attribute.

description

string

The description of the attribute.

includeInNotification

boolean

Determines if it is included in notification.

isIndexable

boolean

Determines if it is indexable.

isLegacyAttribute

boolean

Determines if it is a legacy attribute.

isOptional

boolean

Determines if it is optional.

isUnique

boolean

Determines if it unique.

name

string

The name of the attribute.

options

object

The options for the attribute.

relationshipTypeName

string

The name of the relationship type.

typeName

string

The name of the type.

valuesMaxCount

integer

The maximum count of the values.

valuesMinCount

integer

The minimum count of the values.

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 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 attributes 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

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

endDef1

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.

endDef2

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.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

relationshipCategory

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 independent.

relationshipLabel

string

The label of the relationship.

serviceType

string

The service type.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

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.

Name Type Description
cardinality

CardinalityValue

single-valued attribute or multi-valued attribute.

description

string

The description of the relationship end definition.

isContainer

boolean

Determines if it is container.

isLegacyAttribute

boolean

Determines if it is a legacy attribute.

name

string

The name of the relationship end definition.

type

string

The type of the relationship end.

AtlasStructDef

class that captures details of a struct-type.

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

serviceType

string

The service type.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

AtlasTypesDef

The definitions of types.

Name Type Description
businessMetadataDefs

AtlasBusinessMetadataDef[]

businessMetadataDefs

classificationDefs

AtlasClassificationDef[]

An array of classification definitions.

entityDefs

AtlasEntityDef[]

An array of entity definitions.

enumDefs

AtlasEnumDef[]

An array of enum definitions.

relationshipDefs

AtlasRelationshipDef[]

An array of relationship definitions.

structDefs

AtlasStructDef[]

An array of struct definitions.

termTemplateDefs

TermTemplateDef[]

An array of term template definitions.

CardinalityValue

Cardinality

Name Type Description
LIST

string

list

SET

string

set

SINGLE

string

single

DateFormat

The date format.

Name Type Description
availableLocales

string[]

An array of available locales.

calendar

number

Calendar

dateInstance

DateFormat

The date format.

dateTimeInstance

DateFormat

The date format.

instance

DateFormat

The date format.

lenient

boolean

Determines the leniency of the date format.

numberFormat

NumberFormat

The number format.

timeInstance

DateFormat

The date format.

timeZone

TimeZone

The timezone information.

NumberFormat

The number format.

Name Type Description
availableLocales

string[]

The number format.

currency

string

The currency.

currencyInstance

NumberFormat

The number format.

groupingUsed

boolean

Determines if grouping is used.

instance

NumberFormat

The number format.

integerInstance

NumberFormat

The number format.

maximumFractionDigits

integer

The maximum of fraction digits.

maximumIntegerDigits

integer

The maximum of integer digits.

minimumFractionDigits

integer

The minimum of fraction digits.

minimumIntegerDigits

integer

The minimum of integer digits.

numberInstance

NumberFormat

The number format.

parseIntegerOnly

boolean

Determines if only integer is parsed.

percentInstance

NumberFormat

The number format.

roundingMode

RoundingMode

The enum of rounding mode.

RelationshipCategory

Relationship Category

Name Type Description
AGGREGATION

string

aggregation

ASSOCIATION

string

association

COMPOSITION

string

composition

RoundingMode

Rounding Mode

Name Type Description
CEILING

string

ceiling

DOWN

string

down

FLOOR

string

floor

HALF_DOWN

string

half down

HALF_EVEN

string

half even

HALF_UP

string

half up

UNNECESSARY

string

unnecessary

UP

string

up

TermTemplateDef

Term template definition for glossary term.

Name Type Description
attributeDefs

AtlasAttributeDef[]

An array of attribute definitions.

category

TypeCategory

The enum of type category.

createTime

integer

The created time of the record.

createdBy

string

The user who created the record.

dateFormatter

DateFormat

The date format.

description

string

The description of the type definition.

guid

string

The GUID of the type definition.

lastModifiedTS

string

ETag for concurrency control.

name

string

The name of the type definition.

options

object

The options for the type definition.

serviceType

string

The service type.

typeVersion

string

The version of the type.

updateTime

integer

The update time of the record.

updatedBy

string

The user who updated the record.

version

integer

The version of the record.

TimeZone

The timezone information.

Name Type Description
availableIds

string[]

An array of available IDs.

default

TimeZone

The timezone information.

displayName

string

The display name of the timezone.

dstSavings

integer

The value of the daylight saving time.

id

string

The ID of the timezone.

rawOffset

integer

The raw offset of the timezone.

TypeCategory

Type Category

Name Type Description
ARRAY

string

array

CLASSIFICATION

string

classification

ENTITY

string

entity

ENUM

string

enum

MAP

string

map

OBJECT_ID_TYPE

string

object id type

PRIMITIVE

string

primitive

RELATIONSHIP

string

relationship

STRUCT

string

struct

TERM_TEMPLATE

string

term template