{
  "id": "File",
  "type": "object",
  "additionalProperties": false,
  "required": ["id", "attributes"],
  "properties": {
    "type": {
      "type": "string",
      "constant": "file"
    },
    "id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
    },
    "attributes": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "alias": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "website": {
          "type": "string"
        },
        "owner": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [ "pending", "uploaded", "processed", "processing", "failed" ]
        },
        "startedAt": {
          "type": "integer"
        },
        "uploadedAt": {
          "type": "integer"
        },
        "public": {
          "type": "boolean"
        },
        "parts": {
          "type": "integer"
        },
        "model": {
          "type": "string"
        },
        "obj": {
          "type": "string"
        },
        "stl": {
          "type": "string"
        },
        "wrl": {
          "type": "string"
        },
        "preview": {
          "type": "string"
        },
        "direct": {
          "type": "string"
        },
        "files": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/file"
          }
        },
        "embed": {
          "type": "object"
        },
        "temporary": {
          "type": "boolean"
        },
        "bucket": {
          "type": "string"
        },
        "unlisted": {
          "type": "boolean"
        },
        "packed": {
          "type": "string"
        },
        "controlsData": {
          "type": "array",
          "minLength": 29,
          "maxLength": 29,
          "items": {
            "type": "number"
          }
        }
      },
      "patternProperties": {
        "^texture_\\d+$": {
          "type": "string"
        }
      }
    }
  },
  "definitions": {
    "file": {
      "type": "object",
      "properties": {
        "filename": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": ["c-bin", "c-texture", "c-preview", "c-archive", "c-simple", "c-pack", "wrl", "obj", "stl"]
        },
        "contentLength": {
          "type": "integer"
        },
        "contentType": {
          "type": "string"
        },
        "contentEncoding": {
          "type": "string"
        },
        "md5Hash": {
          "type": "string"
        }
      }
    }
  }
}
