{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://api-docs.cognite.com/schemas/asset",
  "title": "Asset",
  "description": "A representation of a physical asset in Cognite Data Fusion, for example a factory or a piece of equipment.",
  "type": "object",
  "required": ["id", "name", "createdTime", "lastUpdatedTime"],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64",
      "description": "A server-generated ID for the object."
    },
    "externalId": {
      "type": "string",
      "maxLength": 255,
      "description": "The external ID provided by the client. Must be unique for the resource type."
    },
    "name": {
      "type": "string",
      "maxLength": 140,
      "description": "The name of the asset."
    },
    "parentId": {
      "type": "integer",
      "format": "int64",
      "description": "The parent node's ID used to specify parent-child relationship."
    },
    "parentExternalId": {
      "type": "string",
      "maxLength": 255,
      "description": "The parent node's external ID used to specify the parent-child relationship."
    },
    "description": {
      "type": "string",
      "maxLength": 500,
      "description": "The description of the asset."
    },
    "dataSetId": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the dataset this asset belongs to."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "description": "Custom, application specific metadata. String key -> String value.",
      "maxProperties": 256
    },
    "source": {
      "type": "string",
      "maxLength": 128,
      "description": "The source of this asset."
    },
    "labels": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["externalId"],
        "properties": {
          "externalId": {
            "type": "string",
            "maxLength": 255
          }
        }
      },
      "description": "A list of the labels associated with this resource item."
    },
    "geoLocation": {
      "type": "object",
      "description": "The geographic metadata of the asset.",
      "properties": {
        "type": {
          "type": "string",
          "enum": ["Feature"]
        },
        "geometry": {
          "type": "object"
        },
        "properties": {
          "type": "object"
        }
      }
    },
    "rootId": {
      "type": "integer",
      "format": "int64",
      "description": "The ID of the root asset."
    },
    "aggregates": {
      "type": "object",
      "description": "Aggregated metrics for the asset.",
      "properties": {
        "childCount": {
          "type": "integer"
        },
        "depth": {
          "type": "integer"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        }
      }
    },
    "createdTime": {
      "type": "integer",
      "format": "int64",
      "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds."
    },
    "lastUpdatedTime": {
      "type": "integer",
      "format": "int64",
      "description": "The number of milliseconds since 00:00:00 Thursday, 1 January 1970, Coordinated Universal Time (UTC), minus leap seconds."
    }
  }
}
