<!--
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 Object</title>
  </head>

  <body>
    <h2><a name="s3object">s3:object</a></h2>

    <h3>Description</h3>

    <p>Ant resource representing an S3 object or object version (an object
    version will ordinarily come from <a href="s3objects.html">s3:objects</a>).
    Supports a client although in normal usage this is unnecessary.</p>

    <h3>Parameters</h3>
    <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">bucket</td>
        <td valign="top">S3 bucket</td>
        <td align="center">Yes</td>
      </tr>
      <tr>
        <td valign="top">key</td>
        <td valign="top">S3 key</td>
        <td align="center">Yes</td>
      </tr>
      <tr>
        <td valign="top">clientrefid</td>
        <td valign="top">Ant reference ID of an <a href="s3client.html">s3:client</a>
        defined elsewhere</td>
        <td align="center">No</td>
      </tr>
      <tr>
        <td valign="top">contenttype</td>
        <td valign="top">MIME type of this resource</td>
        <td align="center">No</td>
      </tr>
    </table>

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

    <h4>client</h4>

    <p><a href="s3client.html">s3:client</p>

    <h4>metadata</h4>

    <p><a href="inlineproperties.html">Inline properties specifying S3 object metadata</p>

    <h4>tagging</h4>

    <p><a href="inlineproperties.html">Inline properties specifying S3 object tagging</p>

  </body>
</html>
