{
  "$id": "shelf_schema.json",
  "type": "object",
  "schema": "http://json-schema.org/draft-07/schema#",
  "translate": true,
  "dynamicfields": true,
  "properties": {
    "ph_request_type": {
      "type": "string",
      "description": "type of request (internal to adapter)",
      "default": "getShelves",
      "enum": [
        "getShelves",
        "createShelf",
        "updateShelf",
        "deleteShelf"
      ],
      "external_name": "ph_request_type"
    },
    "id": {
      "type": "integer",
      "description": "the shelf unique identifier",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "id"
    },
    "name": {
      "type": "string",
      "description": "the name of shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "name"
    },
    "type": {
      "type": "string",
      "description": "the entity",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "type"
    },
    "shelftype": {
      "type": "string",
      "description": "the type of shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "_type"
    },
    "vendor": {
      "type": "string",
      "description": "the vendor for the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "vendor"
    },
    "model": {
      "type": "string",
      "description": "the model for the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "model"
    },
    "serialNumber": {
      "type": "string",
      "description": "the serial number of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "serialNumber"
    },
    "status": {
      "type": "string",
      "description": "the status of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "status"
    },
    "inServiceDate": {
      "type": "string",
      "description": "the date the shelf was placed in service",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "inServiceDate"
    },
    "dimensionUnits": {
      "type": "string",
      "description": "the units of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "dimensionUnits"
    },
    "depth": {
      "type": "number",
      "description": "the depth of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "dimDepth"
    },
    "height": {
      "type": "number",
      "description": "the height of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "dimHeight"
    },
    "width": {
      "type": "number",
      "description": "the width of the shelf",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "dimWidth"
    },
    "parentSite": {
      "type": "array",
      "items": {
        "translate": false,
        "type": "object"
      },
      "description": "",
      "parse": false,
      "encode": false,
      "encrypt": {
        "type": "AES",
        "key": ""
      },
      "external_name": "parentSite"
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "createShelf"
            ]
          }
        }
      },
      "then": {
        "required": [
          "name",
          "type",
          "shelftype",
          "status",
          "vendor",
          "parentSite"
        ]
      }
    },
    {
      "if": {
        "properties": {
          "ph_request_type": {
            "enum": [
              "updateShelf"
            ]
          }
        }
      },
      "then": {
        "required": [
          "type"
        ]
      }
    }
  ],
  "definitions": {}
}