{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/thingsboard/refs/heads/main/json-schema/thingsboard-asset-schema.json",
  "title": "ThingsBoard Asset",
  "description": "JSON Schema for ThingsBoard Asset entity, derived from the public ThingsBoard OpenAPI 4.3.",
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/AssetId",
      "description": "JSON object with the asset Id. Specify this field to update the asset. Referencing non-existing asset Id will cause error. Omit this field to create new asset."
    },
    "createdTime": {
      "type": "integer",
      "format": "int64",
      "description": "Timestamp of the asset creation, in milliseconds",
      "example": 1609459200000,
      "readOnly": true
    },
    "tenantId": {
      "$ref": "#/components/schemas/TenantId",
      "description": "JSON object with Tenant Id.",
      "readOnly": true
    },
    "customerId": {
      "$ref": "#/components/schemas/CustomerId",
      "description": "JSON object with Customer Id. Use 'assignAssetToCustomer' to change the Customer Id.",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "Unique Asset Name in scope of Tenant",
      "example": "Empire State Building"
    },
    "type": {
      "type": "string",
      "description": "Asset type",
      "example": "Building"
    },
    "label": {
      "type": "string",
      "description": "Label that may be used in widgets",
      "example": "NY Building"
    },
    "assetProfileId": {
      "$ref": "#/components/schemas/AssetProfileId",
      "description": "JSON object with Asset Profile Id."
    },
    "version": {
      "type": "integer",
      "format": "int64"
    },
    "additionalInfo": {
      "$ref": "#/components/schemas/JsonNode",
      "description": "Additional parameters of the asset"
    }
  },
  "required": [
    "name"
  ]
}