{
  "$id": "vport-schema_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": "getVports",
      "enum": [
        "getVports", "getZoneVports", "getSubnetVports", "getVport", "createVport", "updateVport", "deleteVport"
      ],
      "external_name": "ph_request_type"
    },
    "name": {
      "type": "string",
      "description": "the name of the vport",
      "external_name": "name"
    },
    "addressSpoofing": {
      "type": "string",
      "description": "whether the address of the vport can be spoofed",
      "external_name": "addressSpoofing"
    },
    "type": {
      "type": "string",
      "description": "the type of the device on the vport",
      "external_name": "type"
    }
  },
  "allOf": [
    {
      "if" : { "properties" : { "ph_request_type": { "enum": ["createVport"] } } },
      "then" : { "required" : ["name", "addressSpoofing", "type"] }
    },
    {
      "if" : { "properties" : { "ph_request_type": { "enum": ["updateVport"] } } },
      "then" : { "required" : ["name", "addressSpoofing", "type"] }
    }
  ],
  "definitions": {}
}