{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/trimble/json-schema/trimble-list-itemsina-folder-response-v21-schema.json",
  "title": "ListItemsinaFolderResponseV21",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/trimble-connect-core-v2-openapi.yml#/components/schemas/ListItemsinaFolderResponseV21",
  "required": [
    "id",
    "name",
    "type",
    "versionId",
    "parentId",
    "parentType",
    "createdBy",
    "modifiedBy",
    "projectId",
    "createdOn",
    "modifiedOn"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": " Folder / File Identifier"
    },
    "name": {
      "type": "string",
      "description": "Name of the Folder / File"
    },
    "type": {
      "type": "string",
      "description": "Valid values are [‘FOLDER’, ‘FILE’]"
    },
    "versionId": {
      "type": "string",
      "description": "revision Id of the Folder"
    },
    "parentId": {
      "type": "string",
      "description": "Identifier of the parent Folder. If not present, represents the root folder for the project"
    },
    "parentType": {
      "type": "string",
      "description": "Type of the parent.Valid Values are [‘FOLDER’, ‘TODO’]"
    },
    "createdBy": {
      "$ref": "#/$defs/CreatedBy"
    },
    "createdOn": {
      "type": "string",
      "description": "(Timestamp) An ISO8601 date when the Folder or File was created"
    },
    "modifiedOn": {
      "type": "string",
      "description": "(Timestamp) An ISO8601 date when the Folder or File was modified"
    },
    "modifiedBy": {
      "$ref": "#/$defs/ModifiedBy"
    },
    "projectId": {
      "type": "string",
      "description": "Project Identifier"
    },
    "hasChildren": {
      "type": "boolean",
      "description": "Flag to determine if the folder has sub-folders"
    },
    "revision": {
      "type": "integer",
      "format": "int32",
      "description": "Revision Number for file"
    },
    "thumbnailUrl": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "array of thumbnail urls"
    },
    "hash": {
      "type": "string",
      "description": "MD5 hash for the file contents"
    },
    "status": {
      "type": "string",
      "description": "Processing status of file.Valid values are [ ‘PENDING’,‘ON HOLD’,‘DONE’, ‘CANCELLED’, ‘ERROR’, ‘PROCESSING’]"
    },
    "size": {
      "type": "integer",
      "format": "int32",
      "description": "size of Folder or File (in bytes)\n**Note:** This field is only included in the response if:\n1. The `fields` parameter includes `size`\n"
    },
    "path": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Path"
      },
      "description": "Path of the specific storage object\n**Note:** This field is only included in the response if:\n1. The `fields` parameter includes `path`\n"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tags for the specific storage object\n**Note:** This field is only included in the response if:\n1. The `fields` parameter includes `tags`\n"
    },
    "_actions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed actions for the specific user on the specific storage object\n**Note:** This field is only included in the response if:\n1. The `fields` parameter includes `_actions`\n",
      "enum": [
        "folder:Create",
        "folder:Delete",
        "folder:EditPermission",
        "folder:Get",
        "folder:GetPermission",
        "folder:List",
        "folder:Restore",
        "folder:Update",
        "file:Create",
        "file:Delete",
        "file:EditPermission",
        "file:Get",
        "file:GetPermission",
        "file:List",
        "file:Restore",
        "file:Update"
      ]
    }
  },
  "$defs": {
    "Company": {
      "title": "Company",
      "required": [
        "name",
        "website",
        "image",
        "role",
        "createdOn",
        "modifiedOn",
        "createdBy",
        "modifiedBy"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "website": {
          "type": "string"
        },
        "image": {
          "type": "string"
        },
        "role": {
          "type": "string"
        },
        "createdOn": {
          "type": "string"
        },
        "modifiedOn": {
          "type": "string"
        },
        "createdBy": {
          "$ref": "#/$defs/CreatedBy"
        },
        "modifiedBy": {
          "$ref": "#/$defs/ModifiedBy"
        }
      }
    },
    "CreatedBy": {
      "title": "CreatedBy",
      "required": [
        "id",
        "firstName",
        "lastName",
        "email",
        "status"
      ],
      "type": "object",
      "description": "User details of who created this object",
      "properties": {
        "id": {
          "type": "string",
          "description": "User identifier"
        },
        "tiduuid": {
          "type": "string",
          "description": "Trimble ID of the user"
        },
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "User status. User's status is PENDING when a new user has been invited to a project and has not access Connect yet. Once the user has accessed Connect, the status becomes ACTIVE. REMOVED is a project specific status that is shown for users that have been removed from a project.",
          "enum": [
            "ACTIVE",
            "PENDING",
            "REMOVED"
          ]
        },
        "company": {
          "$ref": "#/$defs/Company"
        },
        "companies": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Company"
          }
        },
        "companyAdmin": {
          "type": "boolean"
        }
      }
    },
    "ModifiedBy": {
      "title": "ModifiedBy",
      "required": [
        "id",
        "firstName",
        "lastName",
        "email",
        "status"
      ],
      "type": "object",
      "description": "User details of who modified this object recently",
      "properties": {
        "id": {
          "type": "string",
          "description": "User identifier"
        },
        "tiduuid": {
          "type": "string",
          "description": "Trimble ID of the user"
        },
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "description": "User status. User's status is PENDING when a new user has been invited to a project and has not access Connect yet. Once the user has accessed Connect, the status becomes ACTIVE. REMOVED is a project specific status that is shown for users that have been removed from a project.",
          "enum": [
            "ACTIVE",
            "PENDING",
            "REMOVED"
          ]
        }
      }
    },
    "Path": {
      "title": "Path",
      "required": [
        "id",
        "name",
        "versionId"
      ],
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Folder Identifier"
        },
        "name": {
          "type": "string",
          "description": "Name of the Folder"
        },
        "versionId": {
          "type": "string",
          "description": "Version Id of the Folder"
        }
      }
    }
  }
}