<?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/boxnet">
  <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.modules.boxnet.adapters.BoxNetModuleLifecycleAdapter">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>Box.net Cloud Connector Module.</xs:documentation>
          </xs:annotation>
          <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="apiKey" use="required" type="xs:string">
            <xs:annotation>
              <xs:documentation>The API key obtained when registering a project with the Box platform.
For more information about this field please refer to</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/boxnet" name="usesCallback" default="false" use="optional" type="booleanType">
            <xs:annotation>
              <xs:documentation>If true, an http inbound endpoint will be set in place to receive a callback
from box.net with the authToken once the user has authenticated.

If this callback is in place, there's no need for you to manually
invoke the get-auth-token processor.

For more info look at http://developers.box.net/w/page/12923915/ApiAuthentication

Defaults to false</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="callbackPath" default="box_auth_callback" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The url where box.net will direct the authentication callback.
For more info look at http://developers.box.net/w/page/12923915/ApiAuthentication

Defaults to box_auth_callback</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/boxnet" name="callbackPort" default="8080" use="optional" type="integerType">
            <xs:annotation>
              <xs:documentation>The port where the authentication callback will be listening on
Defaults to 8080</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-ticket" substitutionGroup="mule:abstract-message-processor" type="GetTicketType">
    <xs:annotation>
      <xs:documentation>Get and access ticket using the configured apiKey.

With this ticket, the user needs to manually go to 
For more info look at http://developers.box.net/w/page/12923915/ApiAuthentication</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetTicketType">
    <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/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="auth-token" substitutionGroup="mule:abstract-message-processor" type="AuthTokenType">
    <xs:annotation>
      <xs:documentation>After the user authenticates the ticket obtained with the get-ticket processor,
there're two ways to get the required auth token:

&lt;ol&gt;
&lt;li&gt;
You can configure box.net to make a callback returning the ticket and authToken, in which case you need to set the
usesCallback and callbackPath config attributes accordingly
&lt;/li&gt;
&lt;li&gt;
You can use this processor to obtain the authentication token explicitly.
&lt;/li&gt;
&lt;/ol&gt;
Either way, this connector will retain the authToken in memory and will use it in all operations.

For more info look at http://developers.box.net/w/page/12923915/ApiAuthentication</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AuthTokenType">
    <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/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="register-new-user" substitutionGroup="mule:abstract-message-processor" type="RegisterNewUserType">
    <xs:annotation>
      <xs:documentation>Create a new user in box.net</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="RegisterNewUserType">
    <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="email" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the user's email</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="password" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the user's password</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-folder" substitutionGroup="mule:abstract-message-processor" type="CreateFolderType">
    <xs:annotation>
      <xs:documentation>Create a new folder</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateFolderType">
    <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="parentFolderId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the parent folder</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="folderName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name of the folder you want to create</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/boxnet" name="share" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>specifies if the folder is shared. This parameter is optional and defaults to false</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="upload-files" substitutionGroup="mule:abstract-message-processor" type="UploadFilesType">
    <xs:annotation>
      <xs:documentation>Receives a comma separated list of paths and uploads the corresponding
files.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="UploadFilesType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="paths" maxOccurs="1" minOccurs="1">
            <xs:annotation>
              <xs:documentation>a List of Strings with the paths where the files are. Defaults to payload</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:sequence>
                <xs:element name="path" 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:extension>
                    </xs:simpleContent>
                  </xs:complexType>
                </xs:element>
              </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>
        </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="folderId" default="0" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the parent folder. Defaults to 0 (the root folder)</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="upload-stream" substitutionGroup="mule:abstract-message-processor" type="UploadStreamType">
    <xs:annotation>
      <xs:documentation>Receives an input stream and uploads its content as a file</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="UploadStreamType">
    <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="folderId" default="0" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the parent folder. Defaults to 0 which is the root folder</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="filename" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the name we want the file to have on box.net</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="public-share" substitutionGroup="mule:abstract-message-processor" type="PublicShareType">
    <xs:annotation>
      <xs:documentation>Makes a public share of a file or folder</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PublicShareType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The type of item to be shared.  This can be set as 'file' or 'folder'. Any other value will throw a</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The id of the item you wish to share.  If the target is a folder, this will be the folder_id.  If the target is a file, this will be the file_id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="password" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The password to protect the folder or file.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="message" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>An message to be included in a notification email.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="public-unshare" substitutionGroup="mule:abstract-message-processor" type="PublicUnshareType">
    <xs:annotation>
      <xs:documentation>This processor unshares a public shared file or folder</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PublicUnshareType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>shoud be either 'file' or 'folder'</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>is id of a file or folder to be unshared</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="private-share" substitutionGroup="mule:abstract-message-processor" type="PrivateShareType">
    <xs:annotation>
      <xs:documentation>This processor privately shares a file or folder with another user(s).
'target' param, 'target_id' is . 'emails' params is an array of emails
of users' to share files with. if 'notify' param is , 'message' param .

Note: currently only files can be shared privately.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="PrivateShareType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>should be either 'file' or 'folder'</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the file or folder to be shared</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="csvMails" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>comma separated list of email addresses of the users that will receive the share</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/boxnet" name="notify" default="true" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>if true, then a notification email will be sent to users. Optional parameter, defaults to true</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="message" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>is a message to be included in the notification email. Optional parameter, defaults to an empty string</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-tree-structure" substitutionGroup="mule:abstract-message-processor" type="GetTreeStructureType">
    <xs:annotation>
      <xs:documentation>This processor is used to get a user's files and folders tree.

'folderId' param defines root folder from which the tree begins.
'csvParams' is comma separated list where you can set additional parameters,
which are: onelevel - make a tree of one level depth, so you will get
only files and folders stored in folder which folder_id you have
provided. nofiles - include folders only in result tree, no files. nozip
- do not zip tree xml.

On successful result you will receive 'listing_ok' as status and the tree xml.
if you haven't set 'nozip' as a parameter (it's set by default), then you have to unzip it. Then you will get xml like
this: (note that updatedand createdare UNIX timestamps in PST).</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetTreeStructureType">
    <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="folderId" default="0" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The ID of the root folder from which the tree begins.  If this value is "0", the user's full account tree is returned. Defaults to zero</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="csvParams" default="nozip" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>comma separated list of params. This is optional and defaults to 'nozip'</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="encoding" default="UTF-8" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>optional parameter to specify the encoding to use when decoding BASE64. Defaults to UTF-8</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="download" substitutionGroup="mule:abstract-message-processor" type="DownloadType">
    <xs:annotation>
      <xs:documentation>Downloads a file an returns its contents as a byte[]</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DownloadType">
    <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="fileId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the file we want to download</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete" substitutionGroup="mule:abstract-message-processor" type="DeleteType">
    <xs:annotation>
      <xs:documentation>Deletes a file or folder</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The type of item to be shared.  This can be set as 'file' or 'folder'. Any other value will throw a</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The id of the item you wish to delete. If the target is a folder, this will be the folder_id.  If the target is a file, this will be the file_id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="logout" substitutionGroup="mule:abstract-message-processor" type="LogoutType">
    <xs:annotation>
      <xs:documentation>Logs out the user associated with the authorization token</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="LogoutType">
    <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/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="verify-registration-email" substitutionGroup="mule:abstract-message-processor" type="VerifyRegistrationEmailType">
    <xs:annotation>
      <xs:documentation>This method is used to verify user registration email</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="VerifyRegistrationEmailType">
    <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="loginName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The login username of the user for which you would like to verify registration.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="export-tags" substitutionGroup="mule:abstract-message-processor" type="ExportTagsType">
    <xs:annotation>
      <xs:documentation>This processor returns all the user's tags.

On successful you will get an xml representing the tags that looks like this:

&lt;?xml version="1.0"?&gt; &lt;tags&gt; &lt;tag id="37"&gt; music &lt;/tag&gt; &lt;tag id="38"&gt; mp3
&lt;/tag&gt; &lt;/tags&gt; If the result wasn't successful, status field can be:
not_logged_id, application_restricted.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ExportTagsType">
    <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="encoding" default="UTF-8" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>encoding to use when decoding from BASE64. Optional, defaults to UTF-8</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="move" substitutionGroup="mule:abstract-message-processor" type="MoveType">
    <xs:annotation>
      <xs:documentation>This processor moves a file or folder to another folder.


On a successful result, status will be 's_move_node'. If the result
wasn't successful, status field can be: 'e_move_node', 'not_logged_in',
'application_restricted'.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="MoveType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>can be either 'file' or 'folder' depending on what do you</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>is the id of a file or folder to be moved</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="destinationId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>is the destination folder id.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="rename" substitutionGroup="mule:abstract-message-processor" type="RenameType">
    <xs:annotation>
      <xs:documentation>This processor renames a file or folder.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="RenameType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>can be either 'file' or 'folder' depending on what you want to rename</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>is the id of a file or folder to be renamed</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="newName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>is the new name for a file or folder</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-file-info" substitutionGroup="mule:abstract-message-processor" type="GetFileInfoType">
    <xs:annotation>
      <xs:documentation>Gets information about a file</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetFileInfoType">
    <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="fileId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the file you want info about</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="add-to-tag" substitutionGroup="mule:abstract-message-processor" type="AddToTagType">
    <xs:annotation>
      <xs:documentation>This processor adds file or folder to tags list.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="AddToTagType">
    <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="csvTags" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>comma separated list of tags</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>can be either 'file' or 'folder' depending on what do you want to add</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of a file or folder to be added</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/boxnet" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="set-description" substitutionGroup="mule:abstract-message-processor" type="SetDescriptionType">
    <xs:annotation>
      <xs:documentation>This processor sets a description to a file or folder.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SetDescriptionType">
    <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="target" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>can be either 'file' or 'folder'</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="targetId" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the id of the folder/file you want to modify</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="description" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the description you want to set</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>