<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:mule="http://www.mulesoft.org/schema/mule/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://www.mulesoft.org/schema/mule/hbase">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace"></xs:import>
  <xs:import schemaLocation="http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" namespace="http://www.springframework.org/schema/beans"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/core/current/mule.xsd" namespace="http://www.mulesoft.org/schema/mule/core"></xs:import>
  <xs:import schemaLocation="http://www.mulesoft.org/schema/mule/devkit/current/mule-devkit.xsd" namespace="http://www.mulesoft.org/schema/mule/devkit"></xs:import>
  <xs:simpleType name="integerType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:integer"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="decimalType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:decimal"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="floatType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:float"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="doubleType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:double"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="dateTimeType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:dateTime"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="longType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:long"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="byteType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:byte"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="booleanType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:boolean"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="anyUriType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:anyURI"></xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="charType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:minLength value="1"></xs:minLength>
          <xs:maxLength value="1"></xs:maxLength>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="(\#\[[^\]]+\]|\$\{[^\}]+\})"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:complexType name="XmlType">
    <xs:sequence>
      <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
    </xs:sequence>
    <xs:attribute name="ref" use="optional" type="xs:string">
      <xs:annotation>
        <xs:documentation>The reference object for this parameter</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:element xmlns:devkit="http://www.mulesoft.org/schema/mule/devkit" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="config" substitutionGroup="mule:abstract-extension" devkit:javaClass="org.mule.module.hbase.adapters.HbaseCloudConnectorLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>&lt;p&gt;
HBase connector
&lt;/p&gt;
&lt;p&gt;
It delegates each Processor on a  and it accepts custom
configuration in a Key-Value fashion
&lt;/p&gt;</xs:documentation>
          </xs:annotation>
          <xs:sequence>
            <xs:element name="properties" maxOccurs="1" minOccurs="0">
              <xs:annotation>
                <xs:documentation></xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:choice>
                  <xs:sequence>
                    <xs:element name="property" maxOccurs="unbounded" minOccurs="0">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                            <xs:attribute name="key" type="xs:string"></xs:attribute>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:sequence>
                    <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                  </xs:sequence>
                </xs:choice>
                <xs:attribute name="ref" use="optional" type="xs:string">
                  <xs:annotation>
                    <xs:documentation>The reference object for this parameter</xs:documentation>
                  </xs:annotation>
                </xs:attribute>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="name" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>Give a name to this configuration so it can be later referenced by config-ref.</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="facade-ref" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The HBaseService You may change it for mocking purposes</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="is-alive-server" substitutionGroup="mule:abstract-message-processor" type="IsAliveServerType">
    <xs:annotation>
      <xs:documentation>Answers if the HBase server is reachable</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IsAliveServerType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-table" substitutionGroup="mule:abstract-message-processor" type="CreateTableType">
    <xs:annotation>
      <xs:documentation>Creates a new table given its name. The descriptor must be unique and not
reserved.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the descriptor for the new table.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="exists-table" substitutionGroup="mule:abstract-message-processor" type="ExistsTableType">
    <xs:annotation>
      <xs:documentation>Answers if a given table exists, regardless it is enabled or not</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ExistsTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the table name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-table" substitutionGroup="mule:abstract-message-processor" type="DeleteTableType">
    <xs:annotation>
      <xs:documentation>Disables and deletes an existent table.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>name of table to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="is-enabled-table" substitutionGroup="mule:abstract-message-processor" type="IsEnabledTableType">
    <xs:annotation>
      <xs:documentation>Answers if the given existent table is enabled.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IsEnabledTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>name of the table to query for its enabling state</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="enable-table" substitutionGroup="mule:abstract-message-processor" type="EnableTableType">
    <xs:annotation>
      <xs:documentation>Enables an existent table.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="EnableTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>name of the table to enable</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="disable-table" substitutionGroup="mule:abstract-message-processor" type="DisableTableType">
    <xs:annotation>
      <xs:documentation>Disables an existent table</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DisableTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the table name to disable</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="add-column-family" substitutionGroup="mule:abstract-message-processor" type="AddColumnFamilyType">
    <xs:annotation>
      <xs:documentation>Adds a column family to a table given a table and column name. This
Processor gracefully handles necessary table disabling and enabled.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AddColumnFamilyType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the column</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="maxVersions" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the optional maximum number of versions the column family supports</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="inMemory" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>if all the column values will be stored in the region's cache</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="scope" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>replication scope: 0 for locally scoped data (data for this column family will not be replicated) and 1 for globally scoped data (data will be replicated to all peers.))</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="exists-column-family" substitutionGroup="mule:abstract-message-processor" type="ExistsColumnFamilyType">
    <xs:annotation>
      <xs:documentation>Answers if column family exists.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ExistsColumnFamilyType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target table name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target column family name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="modify-column-family" substitutionGroup="mule:abstract-message-processor" type="ModifyColumnFamilyType">
    <xs:annotation>
      <xs:documentation>Changes one or more properties of a column family in a table. This
Processor gracefully handles necessary table disabling and enabled.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ModifyColumnFamilyType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="values" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>other custom parameters values</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="value" maxOccurs="unbounded" minOccurs="0">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="xs:string">
                          <xs:attribute name="value-ref" use="optional" type="xs:string"></xs:attribute>
                          <xs:attribute name="key" type="xs:string"></xs:attribute>
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:sequence>
                  <xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"></xs:any>
                </xs:sequence>
              </xs:choice>
              <xs:attribute name="ref" use="optional" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The reference object for this parameter</xs:documentation>
                </xs:annotation>
              </xs:attribute>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target column family</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="maxVersions" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the new max amount of versions</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="blocksize" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the the new block size</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="compressionType" use="optional" type="CompressionTypeEnumType">
          <xs:annotation>
            <xs:documentation>the new compression type</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="compactionCompressionType" use="optional" type="CompressionTypeEnumType">
          <xs:annotation>
            <xs:documentation>the new compaction compression type</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="inMemory" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>new value for if values are stored in Region's cache</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="timeToLive" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>new ttl</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="blockCacheEnabled" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>new value of enabling block cache</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="bloomFilterType" use="optional" type="BloomFilterTypeEnumType">
          <xs:annotation>
            <xs:documentation>new value of bloom filter type</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="replicationScope" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>new value for replication scope</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-column-family" substitutionGroup="mule:abstract-message-processor" type="DeleteColumnFamilyType">
    <xs:annotation>
      <xs:documentation>Delete a column family</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteColumnFamilyType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target column family</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-values" substitutionGroup="mule:abstract-message-processor" type="GetValuesType">
    <xs:annotation>
      <xs:documentation>Answers the values at the given row - (table, row) combination</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetValuesType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the key of the row to update</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="maxVersions" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the maximum number of versions to retrieved</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="timestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the timestamp</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="put-value" substitutionGroup="mule:abstract-message-processor" type="PutValueType">
    <xs:annotation>
      <xs:documentation>Saves a value at the specified (table, row, familyName, familyQualifier,
timestamp) combination</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PutValueType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>required the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the key of the row to update</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column family dimension</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column qualifier dimension</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="timestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the version dimension</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="value-ref" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the value to put. It must be either a byte array or a serializable object. As a special case, strings are saved always in standard utf-8 format.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="writeToWAL" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>set it to false means that in a fail scenario, you will lose any increments that have not been flushed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lock-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>a optional</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-values" substitutionGroup="mule:abstract-message-processor" type="DeleteValuesType">
    <xs:annotation>
      <xs:documentation>Deletes the values at a given row</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteValuesType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the target table</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the key of the row to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>set null to delete all column families in the specified row</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnQualifier" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the qualifier of the column values to delete. If no qualifier is specified, the Processor will affect all the qulifiers for the given column family name to delete. Thus it has only sense if deleteColumnFamilyName is specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="timestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the timestamp of the values to delete. If no timestamp is specified, the most recent timestamp for the deleted value is used. Only has sense if deleteColumnFamilyName is specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="deleteAllVersions" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>if all versions should be deleted,or only those more recent than the deleteTimestamp. Only has sense if deleteColumnFamilyName and deleteColumnQualifier are specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lock-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>an optional</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="scan-table" substitutionGroup="mule:abstract-message-processor" type="ScanTableType">
    <xs:annotation>
      <xs:documentation>Scans across all rows in a table, returning a scanner over it</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ScanTableType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>limits the scan to a specific table. This is the only required argument.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>limits the scan to a specific column family or null</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnQualifier" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>limits the scan to a specific column or null. Requires a columnFamilyName to be defined.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="timestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>limits the scan to a specific timestamp</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="maxTimestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>get versions of columns only within the specified timestamp range: [timestamp, maxTimestamp)</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="caching" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the number of rows for caching</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="cacheBlocks" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>the number of rows for caching that will be passed to scanners</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="maxVersions" default="1" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>limits the number of versions on each column</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="startRowKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>limits the beginning of the scan to the specified row inclusive</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="stopRowKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>limits the end of the scan to the specified row exclusive</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="fetchSize" default="50" use="optional" type="integerType">
          <xs:annotation>
            <xs:documentation>the number of results internally fetched by request to the HBase server. Increase it for improving network efficiency, or decrease it for reducing memory usage</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="increment-value" substitutionGroup="mule:abstract-message-processor" type="IncrementValueType">
    <xs:annotation>
      <xs:documentation>Atomically increments the value of at a (table, row, familyName,
familyQualifier) combination. If the cell value does not yet exist it is
initialized to amount.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="IncrementValueType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the table that contains the cell to increment.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the row key that contains the cell to increment.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column family of the cell to increment.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="columnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column qualifier of the cell to increment.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="amount" use="required" type="longType">
          <xs:annotation>
            <xs:documentation>the amount to increment the cell with (or decrement, if the amount is negative).</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="writeToWAL" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>set it to false means that in a fail scenario, you will lose any increments that have not been flushed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="check-and-put-value" substitutionGroup="mule:abstract-message-processor" type="CheckAndPutValueType">
    <xs:annotation>
      <xs:documentation>Atomically checks if a value at a (table, row,family,qualifier) matches
the given one. If it does, it performs the put.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CheckAndPutValueType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the table that contains the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the row key that contains the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkColumnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column family of the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkColumnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column qualifier of the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkValue-ref" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the value to check. It must be either a byte array or a serializable object. As a special case, strings are saved always in standard utf-8 format.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="putColumnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column family of the cell to put.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="putColumnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column qualifier of the cell to put.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="putTimestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the version dimension to put.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="value-ref" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the value to put. It must be either a byte array or a serializable object. As a special case, strings are saved always in standard utf-8 format.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="writeToWAL" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>set it to false means that in a fail scenario, you will lose any increments that have not been flushed.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lock-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>and optional</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/hbase" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="check-and-delete-value" substitutionGroup="mule:abstract-message-processor" type="CheckAndDeleteValueType">
    <xs:annotation>
      <xs:documentation>Atomically checks if a value at a (table, row,family,qualifier) matches
the given one. If it does, it performs the delete.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CheckAndDeleteValueType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:attribute name="config-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify which configuration to use for this invocation.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="tableName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the table that contains the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="rowKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the row key that contains the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkColumnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the column family of the cell to check.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkColumnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the qualifier of the column to check</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="checkValue-ref" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the value to check. It must be either a byte array or a serializable object. As a special case, strings are saved always in standard utf-8 format.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deleteColumnFamilyName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the column family to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="deleteColumnQualifier" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the qualifier of the column values to delete. If no qualifier is specified, the Processor will affect all the qulifiers for the given column family name to delete. Thus it has only sense if deleteColumnFamilyName is specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="deleteTimestamp" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the timestamp of the values to delete. If no timestamp is specified, the most recent timestamp for the deleted value is used. Only has sense if deleteColumnFamilyName is specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/hbase" name="deleteAllVersions" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>if all versions should be deleted,or only those more recent than the deleteTimestamp. Only has sense if deleteColumnFamilyName and deleteColumnQualifier are specified</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="lock-ref" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>an optional</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="CompressionTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="LZO"></xs:enumeration>
          <xs:enumeration value="GZ"></xs:enumeration>
          <xs:enumeration value="NONE"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="BloomFilterTypeEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="NONE"></xs:enumeration>
          <xs:enumeration value="ROW"></xs:enumeration>
          <xs:enumeration value="ROWCOL"></xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:pattern value="\#\[[^\]]+\]"></xs:pattern>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
</xs:schema>