{
  "openapi": "3.0.2",
  "servers": [],
  "info": {
    "description": "Documentation for Honeybee comparison-report schema",
    "version": "2.2.0",
    "title": "Honeybee Comparison Report Schema",
    "contact": {
      "name": "Ladybug Tools",
      "email": "info@ladybug.tools",
      "url": "https://github.com/ladybug-tools/honeybee-schema"
    },
    "x-logo": {
      "url": "https://www.ladybug.tools/assets/img/honeybee-large.png",
      "altText": "Honeybee logo"
    },
    "license": {
      "name": "BSD",
      "url": "https://github.com/ladybug-tools-in2/honeybee-schema/blob/master/LICENSE"
    }
  },
  "externalDocs": {
    "description": "OpenAPI Specification with Inheritance",
    "url": "./comparison-report_inheritance.json"
  },
  "tags": [
    {
      "name": "addedobject_model",
      "x-displayName": "AddedObject",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/AddedObject\" />\n"
    },
    {
      "name": "changedobject_model",
      "x-displayName": "ChangedObject",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ChangedObject\" />\n"
    },
    {
      "name": "comparisonreport_model",
      "x-displayName": "ComparisonReport",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/ComparisonReport\" />\n"
    },
    {
      "name": "deletedobject_model",
      "x-displayName": "DeletedObject",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/DeletedObject\" />\n"
    },
    {
      "name": "geometryobjecttypes_model",
      "x-displayName": "GeometryObjectTypes",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/GeometryObjectTypes\" />\n"
    },
    {
      "name": "_diffobjectbase_model",
      "x-displayName": "_DiffObjectBase",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/_DiffObjectBase\" />\n"
    },
    {
      "name": "_openapigenbasemodel_model",
      "x-displayName": "_OpenAPIGenBaseModel",
      "description": "<SchemaDefinition schemaRef=\"#/components/schemas/_OpenAPIGenBaseModel\" />\n"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Models",
      "tags": [
        "_diffobjectbase_model",
        "_openapigenbasemodel_model",
        "addedobject_model",
        "changedobject_model",
        "comparisonreport_model",
        "deletedobject_model",
        "geometryobjecttypes_model"
      ]
    }
  ],
  "paths": {},
  "components": {
    "schemas": {
      "AddedObject": {
        "allOf": [
          {
            "$ref": "#/components/schemas/_DiffObjectBase"
          },
          {
            "type": "object",
            "required": [
              "geometry"
            ],
            "properties": {
              "geometry": {
                "description": "A list of DisplayFace3D dictionaries for the added geometry. The schema of DisplayFace3D can be found in the ladybug-display-schema documentation (https://www.ladybug.tools/ladybug-display-schema) and these objects can be used to generate visualizations of individual objects that have been added.",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "title": "Geometry",
                "type": "array"
              },
              "type": {
                "const": "AddedObject",
                "default": "AddedObject",
                "title": "Type",
                "type": "string",
                "readOnly": true
              }
            }
          }
        ],
        "title": "AddedObject",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "ChangedObject": {
        "allOf": [
          {
            "$ref": "#/components/schemas/_DiffObjectBase"
          },
          {
            "type": "object",
            "required": [
              "geometry_changed",
              "geometry"
            ],
            "properties": {
              "geometry_changed": {
                "description": "A boolean to note whether the geometry of the object has changed (True) or not (False). For the case of a Room, any change in the geometry of child Faces, Apertures or Doors will cause this property to be True. Note that this property is only True if the change in geometry produces a visible change greater than the base model tolerance. So converting the model between different unit systems, removing colinear vertices, or doing other transformations that are common for export to simulation engines will not trigger this property to become True.",
                "title": "Geometry Changed",
                "type": "boolean"
              },
              "geometry": {
                "description": "A list of DisplayFace3D dictionaries for the new, changed geometry. The schema of DisplayFace3D can be found in the ladybug-display-schema documentation (https://www.ladybug.tools/ladybug-display-schema) and these objects can be used to generate visualizations of individual objects that have been changed. Note that this attribute is always included in the ChangedObject, even when geometry_changed is False.",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "title": "Geometry",
                "type": "array"
              },
              "type": {
                "const": "ChangedObject",
                "default": "ChangedObject",
                "title": "Type",
                "type": "string",
                "readOnly": true
              },
              "energy_changed": {
                "default": false,
                "description": "A boolean to note whether the energy properties of the object have changed (True) or not (False) such that it is possible for the properties of the changed object to be applied to the base model. For Rooms, this property will only be true if the energy property assigned to the Room has changed and will not be true if a property assigned to an individual child Face or Aperture has changed.",
                "title": "Energy Changed",
                "type": "boolean"
              },
              "radiance_changed": {
                "default": false,
                "description": "A boolean to note whether the radiance properties of the object have changed (True) or not (False) such that it is possible for the properties of the changed object to be applied to the base model. For Rooms, this property will only be true if the radiance property assigned to the Room has changed and will not be true if a property assigned to an individual child Face or Aperture has changed.",
                "title": "Radiance Changed",
                "type": "boolean"
              },
              "existing_geometry": {
                "anyOf": [
                  {
                    "items": {
                      "additionalProperties": true,
                      "type": "object"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "A list of DisplayFace3D dictionaries for the existing (base) geometry. The schema of DisplayFace3D can be found in the ladybug-display-schema documentation (https://www.ladybug.tools/ladybug-display-schema) and these objects can be used to generate visualizations of individual objects that have been changed. This attribute is optional and will NOT be output if geometry_changed is False.",
                "title": "Existing Geometry"
              }
            }
          }
        ],
        "title": "ChangedObject",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "ComparisonReport": {
        "allOf": [
          {
            "$ref": "#/components/schemas/_OpenAPIGenBaseModel"
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "const": "ComparisonReport",
                "default": "ComparisonReport",
                "title": "Type",
                "type": "string",
                "readOnly": true
              },
              "changed_objects": {
                "anyOf": [
                  {
                    "items": {
                      "$ref": "#/components/schemas/ChangedObject"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "A list of ChangedObject definitions for each top-level object that has changed in the model. To be a changed object, the object identifier must be the same in both models but some other property (either geometry or extension attributes) has experienced a meaningful change.",
                "title": "Changed Objects"
              },
              "deleted_objects": {
                "anyOf": [
                  {
                    "items": {
                      "$ref": "#/components/schemas/DeletedObject"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "A list of DeletedObject definitions for each top-level object that has been deleted in the process of going from the base model to the new model.",
                "title": "Deleted Objects"
              },
              "added_objects": {
                "anyOf": [
                  {
                    "items": {
                      "$ref": "#/components/schemas/AddedObject"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "A list of AddedObject definitions for each top-level object that has been added in the process of going from the base model to the new model.",
                "title": "Added Objects"
              }
            }
          }
        ],
        "title": "ComparisonReport",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "DeletedObject": {
        "allOf": [
          {
            "$ref": "#/components/schemas/_DiffObjectBase"
          },
          {
            "type": "object",
            "required": [
              "geometry"
            ],
            "properties": {
              "geometry": {
                "description": "A list of DisplayFace3D dictionaries for the deleted geometry. The schema of DisplayFace3D can be found in the ladybug-display-schema documentation (https://www.ladybug.tools/ladybug-display-schema) and these objects can be used to generate visualizations of individual objects that have been deleted.",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "title": "Geometry",
                "type": "array"
              },
              "type": {
                "const": "DeletedObject",
                "default": "DeletedObject",
                "title": "Type",
                "type": "string",
                "readOnly": true
              }
            }
          }
        ],
        "title": "DeletedObject",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "GeometryObjectTypes": {
        "description": "Types of Honeybee geometry objects.",
        "enum": [
          "Shade",
          "Aperture",
          "Door",
          "Face",
          "Room"
        ],
        "title": "GeometryObjectTypes",
        "type": "string"
      },
      "_DiffObjectBase": {
        "allOf": [
          {
            "$ref": "#/components/schemas/_OpenAPIGenBaseModel"
          },
          {
            "type": "object",
            "properties": {
              "element_type": {
                "$ref": "#/components/schemas/GeometryObjectTypes",
                "description": "Text for the type of object that has been changed."
              },
              "element_id": {
                "description": "Text string for the unique object ID that has changed.",
                "maxLength": 100,
                "minLength": 1,
                "pattern": "^[^,;!\\n\\t]+$",
                "title": "Element Id",
                "type": "string"
              },
              "element_name": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Text string for the display name of the object that has changed.",
                "title": "Element Name"
              },
              "type": {
                "title": "Type",
                "default": "_DiffObjectBase",
                "type": "string",
                "pattern": "^_DiffObjectBase$",
                "readOnly": true
              }
            },
            "required": [
              "element_type",
              "element_id"
            ]
          }
        ],
        "title": "_DiffObjectBase",
        "discriminator": {
          "propertyName": "type"
        }
      },
      "_OpenAPIGenBaseModel": {
        "properties": {
          "type": {
            "default": "InvalidType",
            "description": "A base class to use when there is no baseclass available to fall on.",
            "title": "Type",
            "type": "string",
            "readOnly": true
          }
        },
        "title": "_OpenAPIGenBaseModel",
        "type": "object",
        "discriminator": {
          "propertyName": "type"
        }
      }
    }
  }
}