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

<namespace xmlns="http://www.mulesoft.org/schema/mule/tooling.attributes" xmlns:mule="http://www.mulesoft.org/schema/mule/core" prefix="sqs" url="http://www.mulesoft.org/schema/mule/sqs">
  <global-cloud-connector metaData="static" connectivityTesting="on" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="" localId="parentConfig" icon="" description="" caption="Amazon SQS"></global-cloud-connector>
  <nested abstract="true" localId="connection-pooling-profile" description="" caption="">
    <label description="" caption="Define connection pool configuration" name="poolingProfileLabel"></label>
    <integer step="0" min="0" defaultValue="5" fillLine="true" description="Controls the maximum number of connections that can be borrowed from the pool at one time. When set to a negative value, there is no limit to the number of connections that may be active at one time. When maxActive is exceeded, the pool is said to be exhausted." caption="Max active" name="maxActive"></integer>
    <integer step="0" min="0" defaultValue="5" fillLine="true" description="Controls the maximum number of connections that can sit idle in the pool at any time. When set to a negative value, there is no limit to the number of connections that may be idle at one time." caption="Max idle" name="maxIdle"></integer>
    <enum defaultValue="INITIALISE_ONE" alwaysFill="true" description="Determines how connections in a pool should be initialized. The possible values are: INITIALISE_NONE (will not load any connection into the pool on startup), INITIALISE_ONE (will load one initial connection into the pool on startup), or INITIALISE_ALL (will load all connections in the pool on startup)" caption="Initialisation policy" name="initialisationPolicy">
      <option value="INITIALISE_NONE"></option>
      <option value="INITIALISE_ONE"></option>
      <option value="INITIALISE_ALL"></option>
    </enum>
    <enum defaultValue="WHEN_EXHAUSTED_GROW" alwaysFill="true" description="Specifies the behavior of the connection pool when the pool is exhausted. Possible values are: &quot;WHEN_EXHAUSTED_FAIL&quot;, which will throw a NoSuchElementException, &quot;WHEN_EXHAUSTED_WAIT&quot;, which will block by invoking Object.wait(long) until a new or idle object is available, or WHEN_EXHAUSTED_GROW, which will create a new connection and return it, essentially making maxActive meaningless. If a positive maxWait value is supplied, it will block for at most that many milliseconds, after which a NoSuchElementException will be thrown. If maxThreadWait is a negative value, it will block indefinitely." caption="Exhausted action" name="exhaustedAction">
      <option value="WHEN_EXHAUSTED_WAIT"></option>
      <option value="WHEN_EXHAUSTED_FAIL"></option>
      <option value="WHEN_EXHAUSTED_GROW"></option>
    </enum>
    <integer step="0" min="0" defaultValue="5" fillLine="true" description="When exhausted action is Wait (or block) this is the amount of time in milliseconds that the pool will wait before failing. Setting a negative value will block indefinitely until an idle instance becomes available." caption="Max wait" name="maxWait"></integer>
    <integer step="0" min="0" defaultValue="1800000" fillLine="true" description="Determines the minimum amount of time a connection may sit idle in the pool before it is eligible for eviction. When non-positive, no connections will be evicted from the pool due to idle time alone." caption="Min eviction (ms)" name="minEvictionMillis"></integer>
    <integer step="0" min="0" defaultValue="-1" fillLine="true" description="Specifies the number of milliseconds between runs of the connection evictor. When non-positive, no connection evictor is executed." caption="Eviction check interval (ms)" name="evictionCheckIntervalMillis"></integer>
  </nested>
  <nested abstract="true" localId="reconnectionStrategyElement" description="" caption="">
    <label description="" caption="Define how mule should attempt to handle a connection failure" name="connectionLabel"></label>
    <radioBoolean fillLine="true" description="Disable reconection strategy" caption="Do not use a Reconnection strategy" name="noReconnection"></radioBoolean>
    <radioBoolean fillLine="true" description="A reconnection strategy that allows the user to configure how many times a reconnection should be attempted and how long to wait between attempts." caption="Standard Reconnection" name="standardReconnection"></radioBoolean>
    <integer step="1" max="2147483647" min="1" defaultValue="2000" indented="true" controlled="standardReconnection" description="How often (in ms) to reconnect" caption="Frequency (ms)" name="reconnectionFrequency"></integer>
    <integer step="1" max="2147483647" min="1" defaultValue="2" indented="true" controlled="standardReconnection,!reconnectForever" description="How many reconnection attempts to make" caption="Reconnection Attempts" name="reconnectionAttemps"></integer>
    <boolean indented="true" controlled="standardReconnection" description="A reconnection strategy that retries an infinite number of times at the specified frequency." caption="Reconnect Forever" name="reconnectForever"></boolean>
    <radioBoolean fillLine="true" description="A user-defined reconnection strategy." caption="Custom Reconnection" name="customReconnection"></radioBoolean>
    <classname indented="true" controlled="customReconnection" description="A class that implements the RetryPolicyTemplate interface." caption="Class" name="class"></classname>
    <childElement allowMultiple="true" controlled="customReconnection" description="Property elements." caption="Properties" name="http://www.springframework.org/schema/beans/property"></childElement>
  </nested>
  <cloud-connector-message-source supportsOutbound="false" supportsInbound="true" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="false" image="icons/large/sqs-endpoint-48x32.png" localId="endpoint" icon="icons/small/sqs-endpoint-24x16.png" description="Amazon Simple Queue Service (Amazon SQS) is a distributed queue messaging service introduced by Amazon.com in
April of 2006. It supports programmatic sending of messages via web service applications as a way to communicate
over the internet. The intent of SQS is to provide a highly scalable hosted message queue that resolves issues
arising from the common producer-consumer problem or connectivity between producer and consumer.

This connector does not provide a method for creating a queue. The reason being that it will automatically
create it when its needed instead of having to manually specify so." caption="Amazon SQS (Streaming)">
    <attribute-category description="General." caption="General">
      <group caption="Generic" id="sqsConnectorGeneric">
        <modeSwitch alwaysCombo="true" description="Operation." caption="Operation" name="Sqs operations to execute">
          <mode modeLabel="Receive messages" modeId="http://www.mulesoft.org/schema/mule/sqs/receive-messages"></mode>
        </modeSwitch>
      </group>
    </attribute-category>
  </cloud-connector-message-source>
  <cloud-connector-message-source inboundLocalName="receive-messages" supportsOutbound="false" supportsInbound="true" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-endpoint-48x32.png" localId="receive-messages" icon="icons/small/sqs-endpoint-24x16.png" description="Attempts to receive a message from the queue. Every attribute of the incoming
message will be added as an inbound property. Also the following properties
will also be added:

sqs.message.id = containing the message identification
sqs.message.receipt.handle = containing the message identification
." caption="Receive Messages">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <integer step="1" min="0" defaultValue="30" javaType="java.lang.Integer" required="false" description="The duration (in seconds) the retrieved message is hidden from subsequent calls to retrieve." caption="Visibility Timeout" name="visibilityTimeout"></integer>
        <integer step="1" min="0" defaultValue="1000" javaType="java.lang.Long" required="false" description="Time in milliseconds to wait between polls (when no messages were retrieved). Default period is 1000 ms." caption="Poll Period" name="pollPeriod"></integer>
        <integer step="1" min="0" defaultValue="1" javaType="java.lang.Integer" required="false" description="The number of messages to be retrieved on each call (10 messages max). By default, 1 message will be retrieved." caption="Number Of Messages" name="numberOfMessages"></integer>
        <boolean defaultValue="false" javaType="java.lang.Boolean" required="false" supportsExpressions="true" description="Flag that indicates if you want to preserve the messages in the queue. False by default, so the messages are going to be deleted." caption="Preserve Messages" name="preserveMessages"></boolean>
      </group>
    </attribute-category>
  </cloud-connector-message-source>
  <global-cloud-connector metaData="static" connectivityTesting="on" extends="http://www.mulesoft.org/schema/mule/sqs/parentConfig" abstract="false" image="icons/large/sqs-connector-48x32.png" localId="config" icon="icons/small/sqs-connector-24x16.png" description="Global Amazon SQS configuration information." caption="Amazon SQS">
    <attribute-category description="Sqs configuration properties." caption="General">
      <group caption="Generic" id="sqsGenericProperties">
        <name required="true" description="Give a name to this configuration so it can be later referenced by config-ref." caption="Name" name="name"></name>
      </group>
      <group caption="Connection" id="connection">
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
      <group caption="Optional Parameters" id="optional Parameters">
        <enum allowsCustom="true" javaType="org.mule.modules.sqs.RegionEndpoint" required="false" supportsExpressions="true" description="Queue Region." caption="Region Endpoint" name="region">
          <option value="APNORTHEAST1"></option>
          <option value="APSOUTHEAST1"></option>
          <option value="APSOUTHEAST2"></option>
          <option value="EUWEST1"></option>
          <option value="SAEAST1"></option>
          <option value="USEAST1"></option>
          <option value="USWEST1"></option>
          <option value="USWEST2"></option>
        </enum>
      </group>
    </attribute-category>
    <attribute-category description="Pooling profile options." caption="Pooling Profile">
      <group caption="Pooling Profile" id="poolingProfile">
        <childElement inplace="true" description="" caption="" name="http://www.mulesoft.org/schema/mule/sqs/connection-pooling-profile"></childElement>
      </group>
    </attribute-category>
    <attribute-category description="Reconnection options." caption="Reconnection">
      <group caption="Strategies" id="reconnectionStrategies">
        <childElement inplace="true" valuePersistence="org.mule.tooling.ui.modules.core.widgets.meta.HTTPTransactionValuePersistence" description="" caption="" name="http://www.mulesoft.org/schema/mule/core/reconnectionStrategyElement"></childElement>
        <childElement allowedSubTypes="http://www.mulesoft.org/schema/mule/core/reconnect,http://www.mulesoft.org/schema/mule/core/reconnect-custom-strategy,http://www.mulesoft.org/schema/mule/core/reconnect-forever" allowSubTypes="true" visibleInDialog="false" description="" caption="" name="http://www.mulesoft.org/schema/mule/core/abstractReconnectionStrategy"></childElement>
      </group>
    </attribute-category>
  </global-cloud-connector>
  <cloud-connector abstract="true" image="icons/large/sqs-connector-48x32.png" localId="abstractSqsConnectorGeneric" icon="icons/small/sqs-connector-24x16.png" description="Interact with Sqs." caption="Abstractsqsconnectorgeneric">
    <attribute-category description="General." caption="General">
      <group caption="Generic" id="abstractSqsConnectorGeneric">
        <globalRef requiredType="http://www.mulesoft.org/schema/mule/sqs/config" required="true" description="Specify which configuration to use for this invocation." caption="Config Reference" name="config-ref"></globalRef>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" image="icons/large/sqs-connector-48x32.png" localId="sqs-connector" icon="icons/small/sqs-connector-24x16.png" description="Amazon Simple Queue Service (Amazon SQS) is a distributed queue messaging service introduced by Amazon.com in
April of 2006. It supports programmatic sending of messages via web service applications as a way to communicate
over the internet. The intent of SQS is to provide a highly scalable hosted message queue that resolves issues
arising from the common producer-consumer problem or connectivity between producer and consumer.

This connector does not provide a method for creating a queue. The reason being that it will automatically
create it when its needed instead of having to manually specify so." caption="Amazon SQS" aliasId="org.mule.tooling.ui.modules.core.pattern.sqs">
    <attribute-category description="General." caption="General">
      <group caption="Generic" id="sqsConnectorGeneric">
        <modeSwitch alwaysCombo="true" description="Operation." caption="Operation" name="Sqs operations to execute">
          <mode modeLabel="Add permission" modeId="http://www.mulesoft.org/schema/mule/sqs/add-permission"></mode>
          <mode modeLabel="Delete message" modeId="http://www.mulesoft.org/schema/mule/sqs/delete-message"></mode>
          <mode modeLabel="Delete queue" modeId="http://www.mulesoft.org/schema/mule/sqs/delete-queue"></mode>
          <mode modeLabel="Get approximate number of messages" modeId="http://www.mulesoft.org/schema/mule/sqs/get-approximate-number-of-messages"></mode>
          <mode modeLabel="Get queue attributes" modeId="http://www.mulesoft.org/schema/mule/sqs/get-queue-attributes"></mode>
          <mode modeLabel="Get url" modeId="http://www.mulesoft.org/schema/mule/sqs/get-url"></mode>
          <mode modeLabel="Remove permission" modeId="http://www.mulesoft.org/schema/mule/sqs/remove-permission"></mode>
          <mode modeLabel="Send message" modeId="http://www.mulesoft.org/schema/mule/sqs/send-message"></mode>
          <mode modeLabel="Set queue attribute" modeId="http://www.mulesoft.org/schema/mule/sqs/set-queue-attribute"></mode>
        </modeSwitch>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="add-permission" icon="icons/small/sqs-connector-24x16.png" caption="Add Permission">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string javaType="java.lang.String" required="true" description="The AWS account ID for the account to share this queue with." caption="Account Id" name="accountId"></string>
        <string javaType="java.lang.String" required="true" description="A value to indicate how much to share (SendMessage, ReceiveMessage, ChangeMessageVisibility, DeleteMessage, GetQueueAttributes)." caption="Action" name="action"></string>
        <string javaType="java.lang.String" required="true" description="A name for this permission." caption="Label" name="label"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="delete-message" icon="icons/small/sqs-connector-24x16.png" caption="Delete Message">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string defaultValue="#[header:inbound:sqs.message.receipt.handle]" javaType="java.lang.String" required="false" description="Receipt handle of the message to be deleted." caption="Receipt Handle" name="receiptHandle"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="delete-queue" icon="icons/small/sqs-connector-24x16.png" caption="Delete Queue">
    <attribute-category description="General." caption="General"></attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="int" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="get-approximate-number-of-messages" icon="icons/small/sqs-connector-24x16.png" caption="Get Approximate Number Of Messages">
    <attribute-category description="General." caption="General"></attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="java.util.Map&lt;java.lang.String,java.lang.String&gt;" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="get-queue-attributes" icon="icons/small/sqs-connector-24x16.png" caption="Get Queue Attributes">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string javaType="java.lang.String" required="true" description="Attribute to get." caption="Attribute" name="attribute"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="java.lang.String" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="get-url" icon="icons/small/sqs-connector-24x16.png" caption="Get Url">
    <attribute-category description="General." caption="General"></attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="remove-permission" icon="icons/small/sqs-connector-24x16.png" caption="Remove Permission">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string javaType="java.lang.String" required="true" description="A name for the permission to be removed." caption="Label" name="label"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="send-message" icon="icons/small/sqs-connector-24x16.png" caption="Send Message">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string defaultValue="#[payload]" javaType="java.lang.String" required="false" description="The message to send. Defaults to the payload of the Mule message." caption="Message" name="message"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
  <cloud-connector returnType="void" metaData="static" extends="http://www.mulesoft.org/schema/mule/sqs/abstractSqsConnectorGeneric" abstract="true" image="icons/large/sqs-connector-48x32.png" localId="set-queue-attribute" icon="icons/small/sqs-connector-24x16.png" caption="Set Queue Attribute">
    <attribute-category description="General." caption="General">
      <group caption="General" id="general">
        <string javaType="java.lang.String" required="true" description="Name of the attribute being set." caption="Attribute" name="attribute"></string>
        <string javaType="java.lang.String" required="true" description="The value being set for this attribute." caption="Value" name="value"></string>
      </group>
    </attribute-category>
    <attribute-category description="Connection." caption="Connection">
      <group caption="Connection" id="connection">
        <label caption="Use these fields to override the credentials defined in the Amazon SQS connector."></label>
        <label caption=""></label>
        <string javaType="java.lang.String" required="false" description="AWS access key." caption="Access Key" name="accessKey"></string>
        <string javaType="java.lang.String" required="false" description="AWS secret key." caption="Secret Key" name="secretKey"></string>
        <string javaType="java.lang.String" required="false" description="The name of the queue to connect to //     * @param region select a different region for the queue." caption="Queue Name" name="queueName"></string>
      </group>
    </attribute-category>
  </cloud-connector>
</namespace>