<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">

  <xs:element name="forwarding-criterion" type="forwardingCriterionREF"/>

  <xs:complexType name="gen_forwarding-criterion-syslog-server">
    <xs:sequence>
      <xs:element name="host-address" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <sortable/>
                     <filterable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element default="514" minOccurs="0" name="port">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <sortable/>
                     <filterable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
            <xs:simpleType>
               <xs:restriction base="xs:int">
                  <xs:maxInclusive value="65535"/>
                  <xs:minInclusive value="0"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
      <xs:element name="protocol" type="syslogProtocol">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <sortable/>
                     <filterable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_forwarding-criterion-filters-filters">
    <xs:sequence>
      <xs:element name="attribute" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element name="operator" type="operator">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element name="value" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="gen_forwarding-criterion-filters">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="filter" type="gen_forwarding-criterion-filters-filters"/>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
    <xs:attribute name="total" type="xs:int"/>
  </xs:complexType>

  <xs:complexType name="forwardingCriterionREF">
    <xs:sequence>
      <xs:element minOccurs="0" name="id" type="xs:int">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <read-only/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element minOccurs="0" name="name" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element minOccurs="0" name="description" type="xs:string">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element name="syslog-server" type="gen_forwarding-criterion-syslog-server"/>
      <xs:element default="false" name="enabled" type="xs:boolean">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <filterable/>
                     <sortable/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
      <xs:element minOccurs="0" name="filters" type="gen_forwarding-criterion-filters">
            <xs:annotation>
               <xs:appinfo>
                  <space-appinfo>
                     <collection/>
                  </space-appinfo>
               </xs:appinfo>
            </xs:annotation>
         </xs:element>
    </xs:sequence>
    <xs:attribute name="uri" type="xs:string"/>
    <xs:attribute name="href" type="xs:string">
         <xs:annotation>
            <xs:appinfo>
               <space-appinfo>
                  <link>/api/space/audit-log-management/audit-log-forwarding/forwarding-criteria/{id}</link>
               </space-appinfo>
            </xs:appinfo>
         </xs:annotation>
      </xs:attribute>
  </xs:complexType>

  <xs:simpleType name="syslogProtocol">
    <xs:restriction base="xs:string">
      <xs:enumeration value="UDP"/>
      <xs:enumeration value="TCP"/>
      <xs:enumeration value="TLSv12"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="operator">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EQUALS"/>
      <xs:enumeration value="NOT_EQUALS"/>
      <xs:enumeration value="LESS_THAN"/>
      <xs:enumeration value="GREATER_THAN"/>
      <xs:enumeration value="LESS_THAN_EQUALS"/>
      <xs:enumeration value="GREATER_THAN_EQUALS"/>
      <xs:enumeration value="STARTS_WITH"/>
      <xs:enumeration value="ENDS_WITH"/>
      <xs:enumeration value="CONTAINS"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
