<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<html>
  <head>
    <meta http-equiv="Content-Language" content="en-us"></meta>
    <link rel="stylesheet" type="text/css" href="style.css">
    <title>S3 Client</title>
  </head>

  <body>
    <h2><a name="s3client">s3:client</a></h2>

    <h3>Description</h3>

    <p>Declare an Amazon S3 client for use in the S3 Antlib.</p>

    <h3>Parameters specified as nested elements</h3>

    <h4>builder</h4>

    <p>The builder element applies its XML configuration to an AWS SDK 2.x
    <code>S3ClientBuilder</code>. Attributes are interpreted as simple
    string-convertible properties, while elements are interpreted as nested
    builders of the type specified by the method parameter.</p>

    <h4>credentials</h4>

    <p>The <code>credentials</code> element permits an easier mechanism
    for specifying client credentials.</p>

    <h5>Parameters</h5>
    <table border="1" cellpadding="2" cellspacing="0">
      <tr>
        <td valign="top"><b>Attribute</b></td>
        <td valign="top"><b>Description</b></td>
        <td align="center" valign="top"><b>Required</b></td>
      </tr>
      <tr>
        <td valign="top">accesskey</td>
        <td valign="top">AWS Access key</td>
        <td align="center">Yes, unless <code>profile</code> is specified</td>
      </tr>
      <tr>
        <td valign="top">secretkey</td>
        <td valign="top">AWS Secret key</td>
        <td align="center">Yes, unless <code>profile</code> is specified</td>
      </tr>
      <tr>
        <td valign="top">profile</td>
        <td valign="top">AWS profile ID</td>
        <td align="center">Yes, unless <code>@accesskey</code> and
        <code>@secretkey</code> are specified
        </td>
      </tr>
    </table>

    <h4>http</h4>

    <p><a href="inlineproperties.html">Inline properties</a> specifying
    <code>SdkHttpConfigurationOption</code> constants</p>

  </body>
</html>

