<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="openDoveChange" type="openDoveChange"/>
  <xs:element name="openDoveDomain" type="openDoveDomain"/>
  <xs:element name="openDoveNetwork" type="openDoveNetwork"/>
  <xs:element name="openDovePolicy" type="openDovePolicy"/>
  <xs:element name="openDoveServiceAppliance" type="openDoveServiceAppliance"/>
  <xs:element name="openDoveSubnet" type="openDoveSubnet"/>
  <xs:element name="openDoveSwitch" type="openDoveSwitch"/>
  <xs:element name="openDoveDomainRequest" type="openDoveDomainRequest"/>
  <xs:element name="openDoveNetworkRequest" type="openDoveNetworkRequest"/>
  <xs:element name="openDovePolicyRequest" type="openDovePolicyRequest"/>
  <xs:element name="openDoveSubnetRequest" type="openDoveSubnetRequest"/>
  <xs:complexType name="openDoveChange">
    <xs:sequence>
      <xs:element name="method" type="xs:string" minOccurs="0"/>
      <xs:element name="uri" type="xs:string" minOccurs="0"/>
      <xs:element name="next_change" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveDomain">
    <xs:sequence>
      <xs:element name="change_version" type="xs:int" minOccurs="0"/>
      <xs:element name="create_version" type="xs:int" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="is_tombstone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="replication_factor" type="xs:int" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveNetwork">
    <xs:sequence>
      <xs:element name="type" type="xs:int" minOccurs="0"/>
      <xs:element name="is_tombstone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="change_version" type="xs:int" minOccurs="0"/>
      <xs:element name="domain_uuid" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="create_version" type="xs:int" minOccurs="0"/>
      <xs:element name="network_id" type="xs:int" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDovePolicy">
    <xs:sequence>
      <xs:element name="change_version" type="xs:int" minOccurs="0"/>
      <xs:element name="create_version" type="xs:int" minOccurs="0"/>
      <xs:element name="is_tombstone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="type" type="xs:int" minOccurs="0"/>
      <xs:element name="action" type="xs:int" minOccurs="0"/>
      <xs:element name="traffic_type" type="xs:int" minOccurs="0"/>
      <xs:element name="src_network" type="xs:int" minOccurs="0"/>
      <xs:element name="ttl" type="xs:int" minOccurs="0"/>
      <xs:element name="dst_network" type="xs:int" minOccurs="0"/>
      <xs:element name="domain_uuid" type="xs:string" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveServiceAppliance">
    <xs:sequence>
      <xs:element name="dcs_rest_service_port" type="xs:int" minOccurs="0"/>
      <xs:element name="dcs_config_version" type="xs:int" minOccurs="0"/>
      <xs:element name="isDGW" type="xs:boolean" minOccurs="0"/>
      <xs:element name="build_version" type="xs:string" minOccurs="0"/>
      <xs:element name="ip_family" type="xs:int" minOccurs="0"/>
      <xs:element name="canBeDCS" type="xs:boolean" minOccurs="0"/>
      <xs:element name="canBeDGW" type="xs:boolean" minOccurs="0"/>
      <xs:element name="isDCS" type="xs:boolean" minOccurs="0"/>
      <xs:element name="dgw_config_version" type="xs:int" minOccurs="0"/>
      <xs:element name="ip" type="xs:string" minOccurs="0"/>
      <xs:element name="dcs_raw_service_port" type="xs:int" minOccurs="0"/>
      <xs:element name="uuid" type="xs:string" minOccurs="0"/>
      <xs:element name="dgw_rest_service_port" type="xs:int" minOccurs="0"/>
      <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveSubnet">
    <xs:sequence>
      <xs:element name="domain_id" type="xs:string" minOccurs="0"/>
      <xs:element name="subnet" type="xs:string" minOccurs="0"/>
      <xs:element name="change_version" type="xs:int" minOccurs="0"/>
      <xs:element name="type" type="xs:string" minOccurs="0"/>
      <xs:element name="network_ids" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="create_version" type="xs:int" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="nexthop" type="xs:string" minOccurs="0"/>
      <xs:element name="is_tombstone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="mask" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveSwitch">
    <xs:sequence>
      <xs:element name="managementip" type="xs:string" minOccurs="0"/>
      <xs:element name="is_tombstone" type="xs:boolean" minOccurs="0"/>
      <xs:element name="id" type="xs:string" minOccurs="0"/>
      <xs:element name="name" type="xs:string" minOccurs="0"/>
      <xs:element name="create_version" type="xs:int" minOccurs="0"/>
      <xs:element name="change_version" type="xs:int" minOccurs="0"/>
      <xs:element name="timestamp" type="xs:string" minOccurs="0"/>
      <xs:element name="tunnelip" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveDomainRequest">
    <xs:sequence>
      <xs:element name="domain" type="openDoveDomain" minOccurs="0"/>
      <xs:element name="domains" type="openDoveDomain" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveNetworkRequest">
    <xs:sequence>
      <xs:element name="network" type="openDoveNetwork" minOccurs="0"/>
      <xs:element name="networks" type="openDoveNetwork" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDovePolicyRequest">
    <xs:sequence>
      <xs:element name="policies" type="openDovePolicy" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="policy" type="openDovePolicy" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="openDoveSubnetRequest">
    <xs:sequence>
      <xs:element name="subnets" type="openDoveSubnet" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="subnet" type="openDoveSubnet" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
