{
  "enumDefs": [
    {
      "name":        "adls_gen2_performance",
      "description": "Performance",
      "typeVersion": "1.0",
      "serviceType": "azure",
      "elementDefs": [
        {
          "ordinal": 0,
          "value":   "Standard"
        },
        {
          "ordinal": 1,
          "value":   "Premium"
        }
      ]
    },
    {
      "name":        "adls_gen2_access_tier",
      "description": "Access Tier",
      "typeVersion": "1.0",
      "serviceType": "azure",
      "elementDefs": [
        {
          "ordinal": 0,
          "value":   "Cool"
        },
        {
          "ordinal": 1,
          "value":   "Hot"
        }
      ]
    },
    {
      "name":        "adls_gen2_replication",
      "description": "Replication",
      "typeVersion": "1.0",
      "serviceType": "azure",
      "elementDefs": [
        {
          "ordinal":     0,
          "value":       "LRS",
          "description": "Locally-redundant storage"
        },
        {
          "ordinal":     1,
          "value":       "ZRS",
          "description": "Zone-redundant storage"
        },
        {
          "ordinal":     2,
          "value":       "GRS",
          "description": "Geo-redundant storage"
        },
        {
          "ordinal":     3,
          "value":       "GZRS",
          "description": "Geo-zone-redundant storage"
        },
        {
          "ordinal":     4,
          "value":       "RA-GRS",
          "description": "Read-access geo-redundant storage"
        }
      ]
    },
    {
      "name":        "adls_gen2_authentication_method",
      "description": "Authentication Method",
      "typeVersion": "1.0",
      "serviceType": "azure",
      "elementDefs": [
        {
          "ordinal": 0,
          "value":   "Access Key"
        },
        {
          "ordinal": 1,
          "value":   "Azure AD User Account"
        }
      ]
    }
  ],
  "structDefs": [],
  "classificationDefs": [],
  "entityDefs": [
    {
      "name":        "adls_gen2_parent",
      "description": "Atlas entity-type representing parent types (container, directory) that can hold other objects in Azure Data Lake Storage Gen2",
      "superTypes":  [
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
      ]
    },
    {
      "name":        "adls_gen2_child",
      "description": "Atlas entity-type representing child types (directory, blob) in Azure Data Lake Storage Gen2",
      "superTypes":  [
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
      ]
    },
    {
      "name":        "adls_gen2_account",
      "description": "Atlas entity-type representing a storage account in Azure Data Lake Storage Gen2",
      "superTypes":  [
        "Asset"
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name":        "resourceGroup",
          "description": "Resource group",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "status",
          "description": "Status",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "location",
          "description": "Location",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "subscription",
          "description": "Subscription",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "tags",
          "description": "Tags",
          "typeName":    "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false,
          "searchWeight" : 6
        },
        {
          "name":        "performance",
          "description": "Performance",
          "typeName":    "adls_gen2_performance",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "accessTier",
          "description": "Access tier",
          "typeName":    "adls_gen2_access_tier",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "replication",
          "description": "Replication",
          "typeName":    "adls_gen2_replication",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "accountKind",
          "description": "Account kind",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "isSecureTransferRequired",
          "description": "Secure transfer required?",
          "typeName":    "boolean",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "isLargeFileSharesEnabled",
          "description": "Large File Shares enabled?",
          "typeName":    "boolean",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "isIdentityBasedAccessForFileSharesEnabled",
          "description": "Identity-based access for file shares?",
          "typeName":    "boolean",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "isHierarchicalNamespaceEnabled",
          "description": "Hierarchical namespace?",
          "typeName":    "boolean",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "isNfsV3",
          "description": "NFS v3?",
          "typeName":    "boolean",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        }
      ]
    },
    {
      "name":        "adls_gen2_container",
      "description": "Atlas entity-type representing a storage container/filesystem in Azure Data Lake Storage Gen2",
      "superTypes":  [
        "DataSet",
        "adls_gen2_parent"
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name":        "url",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "eTag",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "authenticationMethod",
          "typeName":    "adls_gen2_authentication_method",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "additionalProperties",
          "typeName":    "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        }
      ]
    },
    {
      "name":        "adls_gen2_directory",
      "description": "Atlas entity-type representing a directory in an Azure Data Lake Storage Gen2",
      "superTypes":  [
        "DataSet",
        "adls_gen2_parent",
        "adls_gen2_child"
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name":        "eTag",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "contentType",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    true
        },
        {
          "name":        "contentEncoding",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "contentDisposition",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "cacheControl",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        }
      ]
    },
    {
      "name":        "adls_gen2_blob",
      "description": "Atlas entity-type representing a blob in an Azure Data Lake Storage Gen2",
      "superTypes":  [
        "DataSet",
        "adls_gen2_child"
      ],
      "serviceType": "azure",
      "typeVersion": "1.0",
      "attributeDefs": [
        {
          "name":        "url",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "type",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "eTag",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  true,
          "isUnique":    false
        },
        {
          "name":        "contentType",
          "typeName":    "string",
          "cardinality": "SINGLE",
          "isIndexable": true,
          "isOptional":  false,
          "isUnique":    true
        },
        {
          "name":        "additionalProperties",
          "typeName":    "map<string,string>",
          "cardinality": "SINGLE",
          "isIndexable": false,
          "isOptional":  true,
          "isUnique":    false
        }
      ]
    }
  ],
  "relationshipDefs": [
    {
      "name":                 "adls_gen2_account_containers",
      "serviceType":          "azure",
      "typeVersion":          "1.0",
      "relationshipCategory": "COMPOSITION",
      "endDef1": {
        "type":               "adls_gen2_account",
        "name":               "containers",
        "isContainer":        true,
        "cardinality":        "SET"
      },
      "endDef2": {
        "type":               "adls_gen2_container",
        "name":               "account",
        "isContainer":        false,
        "cardinality":        "SINGLE"
      },
      "propagateTags": "ONE_TO_TWO"
    },
    {
      "name":                 "adls_gen2_parent_children",
      "serviceType":          "azure",
      "typeVersion":          "1.0",
      "relationshipCategory": "COMPOSITION",
      "endDef1": {
        "type":               "adls_gen2_parent",
        "name":               "children",
        "isContainer":        true,
        "cardinality":        "SET"
      },
      "endDef2": {
        "type":               "adls_gen2_child",
        "name":               "parent",
        "isContainer":        false,
        "cardinality":        "SINGLE"
      },
      "propagateTags": "ONE_TO_TWO"
    }
  ]
}
