{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/trimble/json-schema/trimble-view-details-response-schema.json",
  "title": "ViewDetailsResponse",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/trimble-connect-core-openapi.yml#/components/schemas/ViewDetailsResponse",
  "required": [
    "id",
    "name",
    "description",
    "projectId",
    "models",
    "files",
    "thumbnail",
    "createdOn",
    "modifiedOn",
    "modifiedBy",
    "createdBy",
    "camera"
  ],
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "View  identifier"
    },
    "name": {
      "type": "string",
      "description": "View name"
    },
    "description": {
      "type": "string",
      "description": "Description of the view"
    },
    "projectId": {
      "type": "string",
      "description": "Project Identifier"
    },
    "topicId": {
      "type": "string",
      "description": "Id of the BCF topic if this view is embedded in it."
    },
    "issueId": {
      "type": "string",
      "description": "Id of the Issue if this view is embedded in it."
    },
    "contextId": {
      "type": "string",
      "description": "The unique identifier of the context in TRN format (trn:2:tc:{us|eu|ap|ap-au|eu-gb}:projects:{projectId}:files:{fileId})."
    },
    "models": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Model ids using which the view was created."
    },
    "files": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "File ids appearing in the same order as models."
    },
    "assignees": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/AssigneeResponse"
      },
      "description": ""
    },
    "thumbnail": {
      "type": "string",
      "description": "URL to fetch the thumbnail of the View (if exists)"
    },
    "image": {
      "type": "string",
      "description": "URL to fetch the original size snapshot image of the View (if exists)"
    },
    "createdOn": {
      "type": "string",
      "description": "(timestamp) - An ISO8601 date when the view was created"
    },
    "modifiedOn": {
      "type": "string",
      "description": "(timestamp) - An ISO8601 date when the view was last modified"
    },
    "modifiedBy": {
      "$ref": "#/$defs/ModifiedBy"
    },
    "backgroundColor": {
      "$ref": "#/$defs/BackgroundColor"
    },
    "createdBy": {
      "$ref": "#/$defs/CreatedBy"
    },
    "camera": {
      "$ref": "#/$defs/Camera"
    },
    "sectionPlanes": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/SectionPlane"
      },
      "description": ""
    },
    "sectionBox": {
      "$ref": "#/$defs/SectionBox",
      "description": ""
    },
    "markups": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Markup"
      },
      "description": ""
    },
    "presentation": {
      "$ref": "#/$defs/Presentation"
    }
  },
  "$defs": {
    "AnglePickEnd": {
      "title": "End",
      "required": [
        "type"
      ],
      "type": "object",
      "description": "Angle pick posses the following types for a end object, _point, line, lineSegment, plane_",
      "properties": {
        "type": {
          "type": "string",
          "description": "the type of the end object"
        },
        "type(if type=point)": {
          "$ref": "#/$defs/MarkupPickPointType"
        },
        "type(if type=line)": {
          "$ref": "#/$defs/AnglePickLineType"
        },
        "type(if type=lineSegment)": {
          "$ref": "#/$defs/AnglePickLineType"
        },
        "type(if type=plane)": {
          "$ref": "#/$defs/MarkupPickPlaneType"
        }
      }
    },
    "AnglePickLineType": {
      "title": "AnglePickLineType",
      "description": "This schema applies for the _line and lineSegment_ type",
      "required": [
        "positionX",
        "positionY",
        "positionZ",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "positionX": {
          "type": "number",
          "description": "beginning x coordinate (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "beginning y coordinate (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "beginning z coordinate (mm)"
        },
        "position2X": {
          "type": "number",
          "description": "ending x coordinate (mm)"
        },
        "position2Y": {
          "type": "number",
          "description": "ending y coordinate (mm)"
        },
        "position2Z": {
          "type": "number",
          "description": "ending z coordinate (mm)"
        },
        "directionX": {
          "type": "number",
          "description": "x coordinate of plane normal"
        },
        "directionY": {
          "type": "number",
          "description": "y coordinate of plane normal"
        },
        "directionZ": {
          "type": "number",
          "description": "z coordinate of plane normal"
        },
        "referenceObject": {
          "type": "string",
          "description": "picking reference"
        }
      }
    },
    "AnglePickStart": {
      "title": "Start",
      "required": [
        "type"
      ],
      "type": "object",
      "description": "Angle pick posses the following types for a start object, _point, line, lineSegment, plane_",
      "properties": {
        "type": {
          "type": "string",
          "description": "the type of the start object"
        },
        "type(if type=point)": {
          "$ref": "#/$defs/MarkupPickPointType"
        },
        "type(if type=line)": {
          "$ref": "#/$defs/AnglePickLineType"
        },
        "type(if type=lineSegment)": {
          "$ref": "#/$defs/AnglePickLineType"
        },
        "type(if type=plane)": {
          "$ref": "#/$defs/MarkupPickPlaneType"
        }
      }
    },
    "AssigneeResponse": {
      "title": "AssigneeResponse",
      "required": [
        "id",
        "type",
        "firstName",
        "lastName",
        "name",
        "email"
      ],
      "type": "object",
      "description": "Assignee are the users who got assigned with some task",
      "properties": {
        "id": {
          "type": "string",
          "description": "User identifier"
        },
        "tiduuid": {
          "type": "string",
          "description": "Trimble ID of the user"
        },
        "type": {
          "type": "string",
          "enum": [
            "USER",
            "GROUP"
          ],
          "description": "Type of assignee"
        },
        "firstName": {
          "type": "string"
        },
        "lastName": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "email": {
          "type": "string"
        }
      }
    },
    "BackgroundColor": {
      "title": "BackgroundColor",
      "required": [
        "r",
        "g",
        "b",
        "a"
      ],
      "type": "object",
      "description": "Background colour details",
      "properties": {
        "r": {
          "type": "integer",
          "format": "int32"
        },
        "g": {
          "type": "integer",
          "format": "int32"
        },
        "b": {
          "type": "integer",
          "format": "int32"
        },
        "a": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "Camera": {
      "title": "Camera",
      "required": [
        "cameraId",
        "targetX",
        "targetY",
        "targetZ",
        "distance",
        "pitch",
        "yaw",
        "projectionType"
      ],
      "type": "object",
      "properties": {
        "cameraId": {
          "type": "string",
          "description": "camera’s identifier"
        },
        "targetX": {
          "type": "number",
          "description": "camera target’s x coordinate (mm)"
        },
        "targetY": {
          "type": "number",
          "description": "camera target’s y coordinate (mm)"
        },
        "targetZ": {
          "type": "number",
          "description": "camera target’s z coordinate (mm)"
        },
        "upX": {
          "type": "integer",
          "format": "int32",
          "description": "x coordinate of camera’s up vector"
        },
        "upY": {
          "type": "integer",
          "format": "int32",
          "description": "y coordinate of camera’s up vector"
        },
        "upZ": {
          "type": "integer",
          "format": "int32",
          "description": "z coordinate of camera’s up vector"
        },
        "distance": {
          "type": "number",
          "description": "distance from camera location to camera target (m)"
        },
        "pitch": {
          "type": "number",
          "description": "camera pitch value (radians)"
        },
        "yaw": {
          "type": "number",
          "description": "camera yaw value (radians)"
        },
        "projectionType": {
          "type": "string",
          "description": "camera’s projection type",
          "enum": [
            "ortho",
            "perspective"
          ]
        },
        "viewId": {
          "type": "string",
          "description": "view identifier"
        },
        "viewAngle": {
          "type": "number",
          "description": "camera’s view angle (degrees)"
        },
        "viewScale": {
          "type": "number",
          "description": "camera’s view scale"
        }
      }
    },
    "Color": {
      "title": "Color",
      "required": [
        "r",
        "g",
        "b",
        "a"
      ],
      "type": "object",
      "properties": {
        "r": {
          "type": "integer",
          "format": "int32"
        },
        "g": {
          "type": "integer",
          "format": "int32"
        },
        "b": {
          "type": "integer",
          "format": "int32"
        },
        "a": {
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "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"
        }
      }
    },
    "Element": {
      "title": "Element",
      "required": [
        "sourceId",
        "storageObjectId",
        "state",
        "isRecursive",
        "priority",
        "color"
      ],
      "type": "object",
      "properties": {
        "sourceId": {
          "type": "string",
          "description": "source identifier of an object in the original model file"
        },
        "storageObjectId": {
          "type": "string",
          "description": "storage identifier"
        },
        "state": {
          "type": "number",
          "description": "(short) state of an objects are  1 selected, 4 hide, 6 show, 8 highlight"
        },
        "isRecursive": {
          "type": "boolean",
          "description": "apply state recursively"
        },
        "xrefId": {
          "type": "string",
          "description": "model instance linkage identifier"
        },
        "versionId": {
          "type": "string",
          "description": "The version identifier of the model where the object resides"
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "The order the filter should be applied, in increasing order. Multiple filters could have the same priority"
        },
        "color": {
          "$ref": "#/$defs/Color"
        }
      }
    },
    "ElementType": {
      "title": "ElementType",
      "required": [
        "type",
        "visibility"
      ],
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The object type to filter"
        },
        "visibility": {
          "type": "boolean"
        },
        "priority": {
          "type": "integer",
          "format": "int32",
          "description": "The order the filter should be applied."
        },
        "state": {
          "type": "number",
          "description": "(short) state of an objects are (1)selected, (4) hide, (5) select and hide, (6) show and (7) select and show"
        },
        "color": {
          "$ref": "#/$defs/Color"
        }
      }
    },
    "Line": {
      "title": "Line",
      "required": [
        "positionX",
        "positionY",
        "positionZ",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "positionX": {
          "type": "number",
          "description": "beginning x coordinate (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "beginning y coordinate (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "beginning z coordinate (mm)"
        },
        "position2X": {
          "type": "number",
          "description": "ending x coordinate (mm)"
        },
        "position2Y": {
          "type": "number",
          "description": "ending y coordinate (mm)"
        },
        "position2Z": {
          "type": "number",
          "description": "ending z coordinate (mm)"
        }
      }
    },
    "MarkUpAngleType": {
      "title": "MarkUpAngleType",
      "description": "Angle markup type would cover the following two cases _two pick_ and _three pick_. On _two pick_ case start and end fields can be considered as first pick and second pick respectively with its schema type followed, and fields like positionX, positionY, positionZ of the markup can be omitted. On _three pick_ case in addition to start and end field, fields like positionX, positionY, positionZ of the markup can be considered as an additional pick of type point.",
      "required": [
        "type",
        "start",
        "end"
      ],
      "type": "object",
      "properties": {
        "start": {
          "$ref": "#/$defs/AnglePickStart"
        },
        "end": {
          "$ref": "#/$defs/AnglePickEnd"
        }
      }
    },
    "MarkUpArrowType": {
      "title": "MarkUpArrowType",
      "required": [
        "type",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "position2X": {
          "type": "number",
          "description": "second x coordinate"
        },
        "position2Y": {
          "type": "number",
          "description": "second y coordinate"
        },
        "position2Z": {
          "type": "number",
          "description": "second z coordinate"
        }
      }
    },
    "MarkUpCloudType": {
      "title": "MarkUpCloudType",
      "required": [
        "type",
        "planeA",
        "planeB",
        "planeC",
        "planeD",
        "width",
        "height"
      ],
      "type": "object",
      "properties": {
        "planeA": {
          "type": "number",
          "description": "first projective coordinate"
        },
        "planeB": {
          "type": "number",
          "description": "second projective coordinate"
        },
        "planeC": {
          "type": "number",
          "description": "third projective coordinate"
        },
        "planeD": {
          "type": "number",
          "description": "fourth projective coordinate"
        },
        "width": {
          "type": "number",
          "description": "the width of the cloud"
        },
        "height": {
          "type": "number",
          "description": "the height of the cloud"
        }
      }
    },
    "MarkUpLineType": {
      "title": "MarkUpLineType",
      "required": [
        "type",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "position2X": {
          "type": "number",
          "description": "second x coordinate, the text coordinate"
        },
        "position2Y": {
          "type": "number",
          "description": "second y coordinate"
        },
        "position2Z": {
          "type": "number",
          "description": "second z coordinate"
        }
      }
    },
    "MarkUpMeasureSlopeType": {
      "title": "MarkUpMeasureSlopeType",
      "required": [
        "type",
        "start",
        "end"
      ],
      "type": "object",
      "properties": {
        "start": {
          "$ref": "#/$defs/MeasureWithPickStart"
        },
        "end": {
          "$ref": "#/$defs/MeasureWithPickEnd"
        },
        "unitType": {
          "type": "string",
          "description": "unit type"
        },
        "quantityUnit": {
          "type": "string",
          "description": "quantity unit"
        },
        "quantityUnitFormat": {
          "type": "string",
          "description": "unit format"
        },
        "referenceObject2": {
          "type": "string",
          "description": "second picking reference"
        },
        "slopeDisplayType": {
          "type": "string",
          "description": "Slope display type (percent / ratio)"
        },
        "slopeDisplayMode": {
          "type": "string",
          "description": "Slope display mode (slopeOnly / verticalAndHorizontal)"
        },
        "lineOrthoMode": {
          "type": "string",
          "description": "Ortho line preference option (lineOrthoOff / lineOrthoPreferStart / lineOrthoPreferEnd)"
        },
        "slopePrecision": {
          "type": "integer",
          "description": "Number of decimal places to display"
        }
      }
    },
    "MarkUpMeasureType": {
      "title": "MarkUpMeasureType",
      "required": [
        "type",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "position2X": {
          "type": "number",
          "description": "second x coordinate"
        },
        "position2Y": {
          "type": "number",
          "description": "second y coordinate"
        },
        "position2Z": {
          "type": "number",
          "description": "second z coordinate"
        },
        "referenceObject2": {
          "type": "string",
          "description": "second picking reference"
        }
      }
    },
    "MarkUpMeasureWithPickType": {
      "title": "MarkUpMeasureWithPickType",
      "required": [
        "type",
        "start",
        "end"
      ],
      "type": "object",
      "properties": {
        "start": {
          "$ref": "#/$defs/MeasureWithPickStart"
        },
        "end": {
          "$ref": "#/$defs/MeasureWithPickEnd"
        },
        "unitType": {
          "type": "string",
          "description": "unit type"
        },
        "quantityUnit": {
          "type": "string",
          "description": "quantity unit"
        },
        "quantityUnitFormat": {
          "type": "string",
          "description": "unit format"
        },
        "referenceObject2": {
          "type": "string",
          "description": "second picking reference"
        }
      }
    },
    "MarkUpRedLineType": {
      "title": "MarkUpRedLineType",
      "required": [
        "type"
      ],
      "type": "object",
      "properties": {
        "camera": {
          "$ref": "#/$defs/Camera"
        },
        "lines": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Line"
          }
        }
      }
    },
    "MarkUpTextType": {
      "title": "MarkUpTextType",
      "required": [
        "type",
        "position2X",
        "position2Y",
        "position2Z",
        "text"
      ],
      "type": "object",
      "properties": {
        "position2X": {
          "type": "number",
          "description": "second x coordinate, the text coordinate"
        },
        "position2Y": {
          "type": "number",
          "description": "second y coordinate"
        },
        "position2Z": {
          "type": "number",
          "description": "second z coordinate"
        },
        "screenSpaceDistance": {
          "type": "number",
          "description": "screen space distance"
        },
        "text": {
          "type": "string",
          "description": "the text, maximum length 250"
        },
        "width": {
          "type": "number",
          "description": "width of text box"
        }
      }
    },
    "Markup": {
      "title": "Markup",
      "required": [
        "type",
        "positionX",
        "positionY",
        "positionZ"
      ],
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "cloud",
            "text",
            "line",
            "arrow",
            "redlines",
            "measure",
            "measure_with_pick",
            "angle",
            "measure_slope"
          ],
          "description": "the type of markup"
        },
        "markupId": {
          "type": "string",
          "description": "markup identifier"
        },
        "positionX": {
          "type": "number",
          "description": "first x coordinate (mm), omitted for type = redlines or measure_with_pick or angle two pick case"
        },
        "positionY": {
          "type": "number",
          "description": "first y coordinate (mm), omitted for type = redlines or measure_with_pick or angle two pick case"
        },
        "positionZ": {
          "type": "number",
          "description": "first z coordinate (mm), omitted for type = redlines or measure_with_pick or angle two pick case"
        },
        "projectId": {
          "type": "string",
          "description": "project identifier"
        },
        "mashupId": {
          "type": "string",
          "description": "mashup identifier"
        },
        "referenceObject": {
          "type": "string",
          "description": "picking reference"
        },
        "color": {
          "$ref": "#/$defs/Color"
        },
        "type(if type=cloud)": {
          "$ref": "#/$defs/MarkUpCloudType"
        },
        "type(if type=text)": {
          "$ref": "#/$defs/MarkUpTextType"
        },
        "type(if type=line)": {
          "$ref": "#/$defs/MarkUpLineType"
        },
        "type(if type=arrow)": {
          "$ref": "#/$defs/MarkUpArrowType"
        },
        "type(if type=redlines)": {
          "$ref": "#/$defs/MarkUpRedLineType"
        },
        "type(if type=measure)": {
          "$ref": "#/$defs/MarkUpMeasureType"
        },
        "type(if type=measure_with_pick)": {
          "$ref": "#/$defs/MarkUpMeasureWithPickType"
        },
        "type(if type=angle)": {
          "$ref": "#/$defs/MarkUpAngleType"
        },
        "type(if type=measure_slope)": {
          "$ref": "#/$defs/MarkUpMeasureSlopeType"
        }
      }
    },
    "MarkupPickPlaneType": {
      "title": "Plane",
      "required": [
        "positionX",
        "positionY",
        "positionZ",
        "directionX",
        "directionY",
        "directionZ"
      ],
      "type": "object",
      "properties": {
        "positionX": {
          "type": "number",
          "description": "x coordinate of plane position (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "y coordinate of plane position (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "z coordinate of plane position (mm)"
        },
        "directionX": {
          "type": "number",
          "description": "x coordinate of plane normal"
        },
        "directionY": {
          "type": "number",
          "description": "y coordinate of plane normal"
        },
        "directionZ": {
          "type": "number",
          "description": "z coordinate of plane normal"
        },
        "referenceObject": {
          "type": "string",
          "description": "picking reference"
        }
      }
    },
    "MarkupPickPointType": {
      "title": "Point",
      "required": [
        "positionX",
        "positionY",
        "positionZ"
      ],
      "properties": {
        "positionX": {
          "type": "number",
          "description": "beginning x coordinate (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "beginning y coordinate (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "beginning z coordinate (mm)"
        },
        "referenceObject": {
          "type": "string",
          "description": "the picking reference"
        }
      }
    },
    "MeasurePickLineType": {
      "title": "MeasurePickLineType",
      "description": "This schema applies for the _line and lineSegment_ type",
      "required": [
        "positionX",
        "positionY",
        "positionZ",
        "position2X",
        "position2Y",
        "position2Z"
      ],
      "type": "object",
      "properties": {
        "positionX": {
          "type": "number",
          "description": "beginning x coordinate (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "beginning y coordinate (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "beginning z coordinate (mm)"
        },
        "position2X": {
          "type": "number",
          "description": "ending x coordinate (mm)"
        },
        "position2Y": {
          "type": "number",
          "description": "ending y coordinate (mm)"
        },
        "position2Z": {
          "type": "number",
          "description": "ending z coordinate (mm)"
        },
        "referenceObject": {
          "type": "string",
          "description": "picking reference"
        }
      }
    },
    "MeasureWithPickEnd": {
      "title": "End",
      "required": [
        "type"
      ],
      "type": "object",
      "description": "Measure with pick posses the following types for a end object, _point, line, lineSegment, plane_",
      "properties": {
        "type": {
          "type": "string",
          "description": "the type of the end object"
        },
        "type(if type=point)": {
          "$ref": "#/$defs/MarkupPickPointType"
        },
        "type(if type=line)": {
          "$ref": "#/$defs/MeasurePickLineType"
        },
        "type(if type=lineSegment)": {
          "$ref": "#/$defs/MeasurePickLineType"
        },
        "type(if type=plane)": {
          "$ref": "#/$defs/MarkupPickPlaneType"
        }
      }
    },
    "MeasureWithPickStart": {
      "title": "Start",
      "required": [
        "type"
      ],
      "type": "object",
      "description": "Measure with pick posses the following types for a start object, _point, line, lineSegment, plane_",
      "properties": {
        "type": {
          "type": "string",
          "description": "the type of the start object"
        },
        "type(if type=point)": {
          "$ref": "#/$defs/MarkupPickPointType"
        },
        "type(if type=line)": {
          "$ref": "#/$defs/MeasurePickLineType"
        },
        "type(if type=lineSegment)": {
          "$ref": "#/$defs/MeasurePickLineType"
        },
        "type(if type=plane)": {
          "$ref": "#/$defs/MarkupPickPlaneType"
        }
      }
    },
    "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"
          ]
        }
      }
    },
    "Presentation": {
      "title": "Presentation",
      "type": "object",
      "properties": {
        "ghost": {
          "type": "boolean",
          "description": "ghost mode"
        },
        "transparent": {
          "type": "boolean",
          "description": "transparent mode"
        },
        "wireframe": {
          "type": "boolean",
          "description": "wireframe mode"
        },
        "isNewEnabled": {
          "type": "boolean",
          "description": "isNewEnabled mode"
        },
        "isPendingEnabled": {
          "type": "boolean",
          "description": "isPendingEnabled mode"
        },
        "isCriticalEnabled": {
          "type": "boolean",
          "description": "isCriticalEnabled mode"
        },
        "isResolvedEnabled": {
          "type": "boolean",
          "description": "isResolvedEnabled mode"
        },
        "isIgnoredEnabled": {
          "type": "boolean",
          "description": "isIgnoredEnabled mode"
        },
        "isNotesEnabled": {
          "type": "boolean",
          "description": "isNotesEnabled mode"
        },
        "isDocumentsEnabled": {
          "type": "boolean",
          "description": "isDocumentsEnabled mode"
        },
        "transparencyLevel": {
          "type": "integer",
          "format": "int32",
          "description": "transparency Level"
        },
        "elementTypes": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ElementType"
          },
          "description": ""
        },
        "elements": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Element"
          },
          "description": ""
        }
      }
    },
    "SectionBox": {
      "title": "SectionBox",
      "required": [
        "positionX",
        "positionY",
        "positionZ",
        "sizeX",
        "sizeY",
        "sizeZ",
        "rotationX",
        "rotationY",
        "rotationZ",
        "rotationW"
      ],
      "type": "object",
      "properties": {
        "positionX": {
          "type": "number",
          "description": "x coordinate of section box position (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "y coordinate of section box  position (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "z coordinate of section box  position (mm)"
        },
        "sizeX": {
          "type": "number",
          "description": "section box size in x direction (mm)"
        },
        "sizeY": {
          "type": "number",
          "description": "section box size in y direction (mm)"
        },
        "sizeZ": {
          "type": "number",
          "description": "section box size in z direction (mm)"
        },
        "rotationX": {
          "type": "number",
          "description": "rotation quaternion x component"
        },
        "rotationY": {
          "type": "number",
          "description": "rotation quaternion y component"
        },
        "rotationZ": {
          "type": "number",
          "description": "rotation quaternion z component"
        },
        "rotationW": {
          "type": "number",
          "description": "rotation quaternion w component"
        },
        "excludedVersionIds": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "SectionPlane": {
      "title": "SectionPlane",
      "required": [
        "directionX",
        "directionY",
        "directionZ",
        "positionX",
        "positionY",
        "positionZ"
      ],
      "type": "object",
      "properties": {
        "sectionPlaneId": {
          "type": "string",
          "description": "section plane identifier"
        },
        "directionX": {
          "type": "number",
          "description": "x coordinate of plane normal"
        },
        "directionY": {
          "type": "number",
          "description": "y coordinate of plane normal"
        },
        "directionZ": {
          "type": "number",
          "description": "z coordinate of plane normal"
        },
        "positionX": {
          "type": "number",
          "description": "x coordinate of plane position (mm)"
        },
        "positionY": {
          "type": "number",
          "description": "y coordinate of plane position (mm)"
        },
        "positionZ": {
          "type": "number",
          "description": "z coordinate of plane position (mm)"
        },
        "referenceObject": {
          "type": "string",
          "description": "picking reference"
        }
      }
    }
  }
}