<?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/s3">
  <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.s3.config.S3ConnectorConnectionManager">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mule:abstractExtensionType">
          <xs:annotation>
            <xs:documentation>Amazon S3 (Simple Storage Service) is an online storage web service offered by Amazon Web Services. Amazon S3
provides storage through web services interfaces (REST, SOAP, and BitTorrent).</xs:documentation>
          </xs:annotation>
          <xs:sequence>
            <xs:element name="connection-pooling-profile" minOccurs="0" type="mule:poolingProfileType">
              <xs:annotation>
                <xs:documentation>Characteristics of the connection pool.</xs:documentation>
              </xs:annotation>
            </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="proxyUsername" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The optional proxy username</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="proxyPort" use="optional" type="integerType">
            <xs:annotation>
              <xs:documentation>The optional  proxy port</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="proxyPassword" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The optional  proxy password</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="proxyHost" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The optional  proxy port</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="accessKey" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
            </xs:annotation>
          </xs:attribute>
          <xs:attribute name="secretKey" use="optional" type="xs:string">
            <xs:annotation>
              <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
            </xs:annotation>
          </xs:attribute>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-bucket" substitutionGroup="mule:abstract-message-processor" type="CreateBucketType">
    <xs:annotation>
      <xs:documentation>Creates a new bucket; connector must not be configured as anonymous for this
operation to succeed. Bucket names must be unique across all of Amazon S3,
that is, among all their users. Bucket ownership is similar to the ownership
of Internet domain names. Within Amazon S3, only a single user owns each
bucket. Once a uniquely named bucket is created in Amazon S3, organize and
name the objects within the bucket in any way. Ownership of the bucket is
retained as long as the owner has an Amazon S3 account. To conform with DNS
requirements, buckets names must: not contain underscores, be between 3 and 63
characters long, not end with a dash, not contain adjacent periods, not
contain dashes next to periods and not contain uppercase characters. Do not
make bucket create or delete calls in the high availability code path of an
application. Create or delete buckets in a separate initialization or setup.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateBucketType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The bucket to create. It must not exist yet.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="region" default="US_STANDARD" use="optional" type="RegionEnumType">
          <xs:annotation>
            <xs:documentation>the region where to create the new bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="acl" default="PRIVATE" use="optional" type="AccessControlListEnumType">
          <xs:annotation>
            <xs:documentation>the access control list of the new bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-bucket" substitutionGroup="mule:abstract-message-processor" type="DeleteBucketType">
    <xs:annotation>
      <xs:documentation>Deletes the specified bucket. All objects (and all object versions, if
versioning was ever enabled) in the bucket must be deleted before the bucket
itself can be deleted; this restriction can be relaxed by specifying the
attribute  force="true".</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteBucketType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the bucket to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="force" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>optional true if the bucket must be deleted even if it is not empty, false if operation should fail in such scenario.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-bucket-website-configuration" substitutionGroup="mule:abstract-message-processor" type="DeleteBucketWebsiteConfigurationType">
    <xs:annotation>
      <xs:documentation>Removes the website configuration for a bucket; this operation requires the
DeleteBucketWebsite permission. By default, only the bucket owner can delete
the website configuration attached to a bucket. However, bucket owners can
grant other users permission to delete the website configuration by writing a
bucket policy granting them the &lt;code&gt;S3:DeleteBucketWebsite&lt;/code&gt;
permission. Calling this operation on a bucket with no website configuration
does not fail, but calling this operation a bucket that does not exist does.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteBucketWebsiteConfigurationType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the bucket whose policy to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-bucket-policy" substitutionGroup="mule:abstract-message-processor" type="GetBucketPolicyType">
    <xs:annotation>
      <xs:documentation>Answers the policy for the given bucket. Only the owner of the bucket can
retrieve it. If no policy has been set for the bucket, then a null policy text
field will be returned.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetBucketPolicyType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the bucket whose policy to retrieve</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="set-bucket-policy" substitutionGroup="mule:abstract-message-processor" type="SetBucketPolicyType">
    <xs:annotation>
      <xs:documentation>Sets the bucket's policy, overriding any previously set. Only the owner of the
bucket can set a bucket policy. Bucket policies provide access control
management at the bucket level for both the bucket resource and contained
object resources. Only one policy can be specified per-bucket.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SetBucketPolicyType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the bucket name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="policyText" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the policy text</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-bucket-policy" substitutionGroup="mule:abstract-message-processor" type="DeleteBucketPolicyType">
    <xs:annotation>
      <xs:documentation>Deletes the bucket's policy. Only the owner of the bucket can delete the
bucket policy. Bucket policies provide access control management at the bucket
level for both the bucket resource and contained object resources.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteBucketPolicyType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the bucket whose policy to delete</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="set-bucket-website-configuration" substitutionGroup="mule:abstract-message-processor" type="SetBucketWebsiteConfigurationType">
    <xs:annotation>
      <xs:documentation>Sets the given bucket's website configuration. This operation requires the
PutBucketWebsite permission. By default, only the bucket owner can configure
the website attached to a bucket. However, bucket owners can allow other users
to set the website configuration by writing a bucket policy granting them the
S3:PutBucketWebsite permission.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SetBucketWebsiteConfigurationType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target bucket's name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="suffix" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>The document to serve when a directory is specified, relative to the requested resource</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="errorDocument" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the full path to error document the bucket will use as error page for 4XX errors</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-bucket-website-configuration" substitutionGroup="mule:abstract-message-processor" type="GetBucketWebsiteConfigurationType">
    <xs:annotation>
      <xs:documentation>Answers the website of the given bucket. This operation requires the
GetBucketWebsite permission. By default, only the bucket owner can read the
bucket website configuration. However, bucket owners can allow other users to
read the website configuration by writing a bucket policy granting them the
GetBucketWebsite permission.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetBucketWebsiteConfigurationType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target bucket's name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="list-buckets" substitutionGroup="mule:abstract-message-processor" type="ListBucketsType">
    <xs:annotation>
      <xs:documentation>Answers a list of all Amazon S3 buckets that the authenticated sender of the
request owns. Users must authenticate with a valid AWS Access Key ID that is
registered with Amazon S3. Anonymous requests cannot list buckets, and users
cannot list buckets that they did not create.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ListBucketsType">
    <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="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="list-objects" substitutionGroup="mule:abstract-message-processor" type="ListObjectsType">
    <xs:annotation>
      <xs:documentation>Lazily lists all objects for a given prefix. As S3 does not limit in any way
the number of objects, such listing can retrieve an arbitrary amount of
objects, and may need to perform extra calls to the api while it is iterated.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ListObjectsType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target bucket's name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="prefix" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the prefix of the objects to be listed. If unspecified, all objects are listed</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="list-object-versions" substitutionGroup="mule:abstract-message-processor" type="ListObjectVersionsType">
    <xs:annotation>
      <xs:documentation>Lazily lists all object versions for a given bucket that has versioning enabled.
As S3 does not limit in any way
the number of objects, such listing can retrieve an arbitrary amount of
object versions, and may need to perform extra calls to the api while it is iterated.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="ListObjectVersionsType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target bucket's name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-object" substitutionGroup="mule:abstract-message-processor" type="CreateObjectType">
    <xs:annotation>
      <xs:documentation>Uploads an object to S3. Supported contents are InputStreams, Strings, byte
arrays and Files.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateObjectType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="user-metadata" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>a map of arbitrary object properties keys and values</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="user-metadatum" 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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="contentLength" use="optional" type="longType">
          <xs:annotation>
            <xs:documentation>the content length. If content is a InputStream, this parameter should be specified, as not doing so will introduce a performance loss as the contents will have to be persisted on disk before being uploaded. Otherwise, it is ignored. An exception to this rule are InputStreams returned by Mule Http Connector: if stream has Content-Length information, it will be used. In any case a content length of 0 is interpreted as an unspecified content length</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentMd5" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the content md5, encoded in base 64. If content is a file, it is ignored.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="contentType" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the content type of the new object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="acl" default="PRIVATE" use="optional" type="AccessControlListEnumType">
          <xs:annotation>
            <xs:documentation>the access control list of the new object</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="storageClass" default="STANDARD" use="optional" type="StorageClassEnumType">
          <xs:annotation>
            <xs:documentation>the storage class of the new object</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="delete-object" substitutionGroup="mule:abstract-message-processor" type="DeleteObjectType">
    <xs:annotation>
      <xs:documentation>Deletes a given object, only the owner of the bucket containing the version
can perform this operation. If version is specified, versioning must be
enabled, and once deleted, there is no method to restore such version.
Otherwise, once deleted, the object can only be restored if versioning was
enabled when the object was deleted. If attempting to delete an object that
does not exist, Amazon S3 will return a success message instead of an error
message.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="DeleteObjectType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the specific version of the object to delete, if versioning is enabled. Left unspecified if the latest version is desired, or versioning is not enabled.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="set-object-storage-class" substitutionGroup="mule:abstract-message-processor" type="SetObjectStorageClassType">
    <xs:annotation>
      <xs:documentation>Sets the Amazon S3 storage class for the given object. Changing the storage
class of an object in a bucket that has enabled versioning creates a new
version of the object with the new storage class. The existing version of the
object preservers the previous storage class.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SetObjectStorageClassType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="storageClass" use="required" type="StorageClassEnumType">
          <xs:annotation>
            <xs:documentation>the storage class to set</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="copy-object" substitutionGroup="mule:abstract-message-processor" type="CopyObjectType">
    <xs:annotation>
      <xs:documentation>Copies a source object to a new destination; to copy an object, the caller's
account must have read access to the source object and write access to the
destination bucket. By default, all object metadata for the source object are
copied to the new destination object, unless new object metadata in the
specified is provided. The AccesControlList is not copied to the new object,
and, unless another ACL specified, PRIVATE is assumed. If no destination
bucket is specified, the same that the source bucket is used - local copy.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CopyObjectType">
    <xs:complexContent>
      <xs:extension xmlns:mule="http://www.mulesoft.org/schema/mule/core" base="mule:abstractMessageProcessorType">
        <xs:sequence>
          <xs:element name="destination-user-metadata" maxOccurs="1" minOccurs="0">
            <xs:annotation>
              <xs:documentation>the new metadata of the destination object, that if specified, overrides that copied from the source object</xs:documentation>
            </xs:annotation>
            <xs:complexType>
              <xs:choice>
                <xs:sequence>
                  <xs:element name="destination-user-metadatum" 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="sourceBucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the source object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sourceKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the source object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="sourceVersionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the specific version of the source object to copy, if versioning is enabled. Left unspecified if the latest version is desired, or versioning is not enabled.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="destinationBucketName" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the destination object's bucket. If none provided, a local copy is performed, that is, it is copied within the same bucket.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="destinationKey" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the destination object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="destinationAcl" default="PRIVATE" use="optional" type="AccessControlListEnumType">
          <xs:annotation>
            <xs:documentation>the acl of the destination object.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="destinationStorageClass" default="STANDARD" use="optional" type="StorageClassEnumType">
          <xs:annotation>
            <xs:documentation>one of  enumerated values, defaults to</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="modifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The modified constraint that restricts this request to executing only if the object has been modified after the specified date. This constraint is specified but does not match, no copy is performed</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="unmodifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The unmodified constraint that restricts this request to executing only if the object has not been modified after this date. This constraint is specified but does not match, no copy is performed</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-object-presigned-uri" substitutionGroup="mule:abstract-message-processor" type="CreateObjectPresignedUriType">
    <xs:annotation>
      <xs:documentation>Returns a pre-signed URL for accessing an Amazon S3 object. The pre-signed URL
can be shared to other users, allowing access to the resource without
providing an account's AWS security credentials.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateObjectPresignedUriType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the specific version of the object to create the URI, if versioning is enabled. Left unspecified if the latest version is desired, or versioning is not enabled.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="expiration" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The time at which the returned pre-signed URL will expire.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="method" default="PUT" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The HTTP method verb to use for this URL</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-object-content" substitutionGroup="mule:abstract-message-processor" type="GetObjectContentType">
    <xs:annotation>
      <xs:documentation>Gets the content of an object stored in Amazon S3 under the specified bucket
and key. Returns null if the specified constraints weren't met. To get an
object's content from Amazon S3, the caller must have 
access to the object. Regarding conditional get constraints, Amazon S3 will
ignore any dates occurring in the future.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetObjectContentType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the specific version of the object to get its contents, if versioning is enabled, left unspecified if the latest version is desired, or versioning is not enabled.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="modifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The modified constraint that restricts this request to executing only if the object has been modified after the specified date.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="unmodifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The unmodified constraint that restricts this request to executing only if the object has not been modified after this date.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-object" substitutionGroup="mule:abstract-message-processor" type="GetObjectType">
    <xs:annotation>
      <xs:documentation>Gets the object stored in Amazon S3 under the specified bucket and key.
Returns null if the specified constraints weren't met. To get an object from
Amazon S3, the caller must have  access to the object.
Callers should be very careful when using this method; the returned Amazon S3
object contains a direct stream of data from the HTTP connection. The
underlying HTTP connection cannot be closed until the user finishes reading
the data and closes the stream. Regarding conditional get constraints, Amazon
S3 will ignore any dates occurring in the future.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetObjectType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the specific version of the object to get its contents, if versioning is enabled. Left unspecified if the latest version is desired, or versioning is not enabled.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="modifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The modified constraint that restricts this request to executing only if the object has been modified after the specified date.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="unmodifiedSince" use="optional" type="dateTimeType">
          <xs:annotation>
            <xs:documentation>The unmodified constraint that restricts this request to executing only if the object has not been modified after this date.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="get-object-metadata" substitutionGroup="mule:abstract-message-processor" type="GetObjectMetadataType">
    <xs:annotation>
      <xs:documentation>Gets the metadata for the specified Amazon S3 object without actually fetching
the object itself. This is useful in obtaining only the object metadata, and
avoids wasting bandwidth on fetching the object data.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="GetObjectMetadataType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="versionId" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object metadata for the given bucketName and key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="set-bucket-versioning-status" substitutionGroup="mule:abstract-message-processor" type="SetBucketVersioningStatusType">
    <xs:annotation>
      <xs:documentation>Sets the versioning status for the given bucket. A bucket's versioning
configuration can be in one of three possible states: Off, Enabled and
Suspended. By default, new buckets are in the Off state. Once versioning is
enabled for a bucket the status can never be reverted to Off.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="SetBucketVersioningStatusType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the target bucket name</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="versioningStatus" use="required" type="VersioningStatusEnumType">
          <xs:annotation>
            <xs:documentation>the version status to set</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element xmlns="http://www.mulesoft.org/schema/mule/s3" xmlns:mule="http://www.mulesoft.org/schema/mule/core" name="create-object-uri" substitutionGroup="mule:abstract-message-processor" type="CreateObjectUriType">
    <xs:annotation>
      <xs:documentation>Creates an http URI for the given object id. The useDefaultServer option
enables using default US Amazon server subdomain in the URI regardless of the
region. The main benefit of such feature is that this operation does not need
to hit the Amazon servers, but the drawback is that using the given URI as an
URL to the resource have unnecessary latency penalties for standard regions
other than US_STANDARD.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:complexType name="CreateObjectUriType">
    <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="bucketName" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's bucket</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="key" use="required" type="xs:string">
          <xs:annotation>
            <xs:documentation>the object's key</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="useDefaultServer" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>if the default US Amazon server subdomain should be used in the URI regardless of the region.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute xmlns="http://www.mulesoft.org/schema/mule/s3" name="secure" default="false" use="optional" type="booleanType">
          <xs:annotation>
            <xs:documentation>whether to use http or https</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="retryMax" default="1" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>Specify how many times this operation can be retried automatically.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="accessKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The access key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
        <xs:attribute name="secretKey" use="optional" type="xs:string">
          <xs:annotation>
            <xs:documentation>The secrete key provided by Amazon, needed for non annoynous operations</xs:documentation>
          </xs:annotation>
        </xs:attribute>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="RegionEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="US_STANDARD"></xs:enumeration>
          <xs:enumeration value="US_WEST"></xs:enumeration>
          <xs:enumeration value="EU_IRELAND"></xs:enumeration>
          <xs:enumeration value="AP_SINGAPORE"></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="AccessControlListEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="PRIVATE"></xs:enumeration>
          <xs:enumeration value="PUBLIC_READ"></xs:enumeration>
          <xs:enumeration value="PUBLIC_READ_WRITE"></xs:enumeration>
          <xs:enumeration value="AUTHENTICATED_READ"></xs:enumeration>
          <xs:enumeration value="LOG_DELIVERY_WRITE"></xs:enumeration>
          <xs:enumeration value="BUCKET_OWNER_READ"></xs:enumeration>
          <xs:enumeration value="BUCKET_OWNER_FULL_CONTROL"></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="StorageClassEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="STANDARD"></xs:enumeration>
          <xs:enumeration value="REDUCED_REDUNDANCY"></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="VersioningStatusEnumType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="OFF"></xs:enumeration>
          <xs:enumeration value="ENABLED"></xs:enumeration>
          <xs:enumeration value="SUSPENDED"></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>