# variables in header
Accept:
  description: |
    Instead of using the ``format`` query parameter,
    set this header to ``application/json``, ``application/xml``, or
    ``text/xml``.
  in: header
  required: false
  type: string
Accept-Ranges:
  description: |
    The type of ranges that the object accepts.
  in: header
  required: true
  type: string
Content-Disposition:
  description: |
    If set, specifies the override behavior for the
    browser. For example, this header might specify that the browser
    use a download program to save this file rather than show the
    file, which is the default.
  in: header
  required: false
  type: string
Content-Disposition_resp:
  description: |
    If present, specifies the override behavior for the
    browser. For example, this header might specify that the browser
    use a download program to save this file rather than show the
    file, which is the default.  If not set, this header is not
    returned by this operation.
  in: header
  required: false
  type: string
Content-Encoding:
  description: |
    If set, the value of the ``Content-Encoding``
    metadata.
  in: header
  required: false
  type: string
Content-Encoding_resp:
  description: |
    If present, the value of the ``Content-Encoding``
    metadata.  If not set, the operation does not return this header.
  in: header
  required: false
  type: string
Content-Length_cud_resp:
  description: |
    If the operation succeeds, this value is zero
    (0) or the length of informational or error
    text in the response body.
  in: header
  required: true
  type: string
Content-Length_get_resp:
  description: |
    The length of the object content in the response
    body, in bytes.
  in: header
  required: true
  type: string
Content-Length_listing_resp:
  description: |
    If the operation succeeds, the length of the response body
    in bytes. On error, this is the length of the error text.
  in: header
  required: true
  type: string
Content-Length_obj_head_resp:
  description: |
    HEAD operations do not return content. The
    ``Content-Length`` header value is not the size of the response
    body but is the size of the object, in bytes.
  in: header
  required: true
  type: string
Content-Length_put_req:
  description: |
    Set to the length of the object content (i.e. the length in bytes
    of the request body). Do not
    set if chunked transfer encoding is being used.
  in: header
  required: false
  type: integer
Content-Type_cud_resp:
  description: |
    If present, this value is the MIME
    type of the informational or error text in the response body.
  in: header
  required: false
  type: string
Content-Type_listing_resp:
  description: |
    If the operation succeeds, this value is the MIME type of the list
    response. The MIME type is determined by the listing format specified by
    the request and will be one of ``text/plain``, ``application/json``,
    ``application/xml``, or ``text/xml``. If the operation fails, this value is
    the MIME type of the error text in the response body.
  in: header
  required: true
  type: string
Content-Type_obj_cu_req:
  description: |
    Sets the MIME type for the object.
  in: header
  required: false
  type: string
Content-Type_obj_resp:
  description: |
    If the operation succeeds, this value is the MIME type of the object. If
    the operation fails, this value is the MIME type of the error text in the
    response body.
  in: header
  required: true
  type: string
Date:
  description: |
    The date and time the system responded to the request,
    using the preferred format of
    `RFC 7231 <https://tools.ietf.org/html/rfc7231#section-7.1.1.1>`_ as
    shown in this example ``Thu, 16 Jun 2016 15:10:38 GMT``. The time is
    always in UTC.
  in: header
  required: true
  type: string
Destination:
  description: |
    The container and object name of the destination
    object in the form of ``/container/object``. You must UTF-8-encode
    and then URL-encode the names of the destination container and
    object before you include them in this header.
  in: header
  required: true
  type: string
Destination-Account:
  description: |
    Specifies the account name where the object is copied to. If not
    specified, the object is copied to the account which owns the object
    (i.e., the account in the path).
  in: header
  required: false
  type: string
ETag_obj_copied:
  description: |
    The MD5 checksum of the copied object content.
    The value is not quoted.
  in: header
  required: true
  type: string
ETag_obj_received:
  description: |
    The MD5 checksum of the uploaded object content.
    The value is not quoted. If it is an SLO, it would
    be MD5 checksum of the segments' etags.
  in: header
  required: true
  type: string
ETag_obj_req:
  description: |
    The MD5 checksum value of the request body. For
    example, the MD5 checksum value of the object content. For
    manifest objects, this value is the MD5 checksum of the
    concatenated string of ETag values for each of the segments in
    the manifest. You are strongly recommended to compute
    the MD5 checksum value and include it in the request. This
    enables the Object Storage API to check the integrity of the
    upload. The value is not quoted.
  in: header
  required: false
  type: string
ETag_obj_resp:
  description: |
    For objects smaller than 5 GB, this value is the
    MD5 checksum of the object content. The value is not quoted.  For
    manifest objects, this value is the MD5 checksum of the
    concatenated string of ETag values for each of the
    segments in the manifest, and not the MD5 checksum of the content
    that was downloaded. Also the value is enclosed in double-quote
    characters.  You are strongly recommended to compute the MD5
    checksum of the response body as it is received and compare this
    value with the one in the ETag header. If they differ, the content
    was corrupted, so retry the operation.
  in: header
  required: true
  type: string
If-Match:
  description: |
    See `Request for Comments: 2616
    <http://www.ietf.org/rfc/rfc2616.txt>`_.
  in: header
  required: false
  type: string
If-Modified-Since:
  description: |
    See `Request for Comments: 2616
    <http://www.ietf.org/rfc/rfc2616.txt>`_.
  in: header
  required: false
  type: string
If-None-Match-get-request:
  description: |
    A client that has one or more entities previously
    obtained from the resource can verify that none of those entities is
    current by including a list of their associated entity tags in the
    ``If-None-Match header`` field.
    See `Request for Comments: 2616 <http://www.ietf.org/rfc/rfc2616.txt>`_
    for details.
  in: header
  required: false
  type: string
If-None-Match-put-request:
  description: |
    In combination with ``Expect: 100-Continue``,
    specify an ``"If-None-Match: *"`` header to query whether the
    server already has a copy of the object before any data is sent.
  in: header
  required: false
  type: string
If-Unmodified-Since:
  description: |
    See `Request for Comments: 2616
    <http://www.ietf.org/rfc/rfc2616.txt>`_.
  in: header
  required: false
  type: string
Last-Modified:
  description: |
    The date and time when the object was created or its metadata was
    changed. The date and time is formatted as shown in this
    example: ``Fri, 12 Aug 2016 14:24:16 GMT``

    The time is always in UTC.
  in: header
  required: true
  type: string
Range:
  description: |
    The ranges of content to get.  You can use the
    ``Range`` header to get portions of data by using one or more
    range specifications. To specify many ranges, separate the range
    specifications with a comma.  The types of range specifications
    are:  - **Byte range specification**. Use FIRST_BYTE_OFFSET to
    specify the   start of the data range, and LAST_BYTE_OFFSET to
    specify the end.   You can omit the LAST_BYTE_OFFSET and if you
    do, the value   defaults to the offset of the last byte of data.
    - **Suffix byte range specification**. Use LENGTH bytes to specify
    the length of the data range.  The following forms of the header
    specify the following ranges of data:

    - ``Range: bytes=-5``. The last five bytes.
    - ``Range: bytes=10-15``. The six bytes of data after a 10-byte   offset.
    - ``Range: bytes=10-15,-5``. A multi-part response that contains the
      last five bytes and the six
      bytes of data after a 10-byte offset. The ``Content-Type``
      response header contains   ``multipart/byteranges``.
    - ``Range: bytes=4-6``. Bytes 4 to 6 inclusive.
    - ``Range: bytes=2-2``. Byte 2, the third byte of the data.
    - ``Range: bytes=6-``. Byte 6 and after.
    - ``Range: bytes=1-3,2-5``. A multi-part response that
      contains   bytes 1 to 3 inclusive, and bytes 2 to 5 inclusive. The
      ``Content-Type`` response header contains
      ``multipart/byteranges``.
  in: header
  required: false
  type: string
Transfer-Encoding:
  description: |
    Set to ``chunked`` to enable chunked transfer
    encoding. If used, do not set the ``Content-Length`` header to a
    non-zero value.
  in: header
  required: false
  type: string
X-Account-Access-Control_req:
  description: |
    **Note**: `X-Account-Access-Control` is not supported by Keystone auth.

    Sets an account access control list (ACL) that grants access to
    containers and objects in the account.
    See `Account ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#account-acls>`_
    for more information.
  in: header
  required: false
  type: string
X-Account-Access-Control_resp:
  description: |
    **Note**: `X-Account-Access-Control` is not supported by Keystone auth.

    The account access control list (ACL) that grants access to
    containers and objects in the account.
    If there is no ACL, this header is not returned by this operation.
    See `Account ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#account-acls>`_
    for more information.
  in: header
  required: false
  type: string
X-Account-Bytes-Used:
  description: |
    The total number of bytes that are stored in
    Object Storage for the account.
  in: header
  required: true
  type: integer
X-Account-Container-Count:
  description: |
    The number of containers.
  in: header
  required: true
  type: integer
X-Account-Meta-name:
  description: |
    The custom account metadata item, where
    ``name`` is the name of the metadata item.  One ``X-Account-Meta-name``
    response header appears for each metadata item (for
    each ``name``).
  in: header
  required: false
  type: string
X-Account-Meta-name_req:
  description: |
    The account metadata. The ``name`` is the name
    of metadata item that you want to add, update, or delete. To
    delete this item, send an empty value in this header.  You must
    specify an ``X-Account-Meta-name`` header for each metadata
    item (for each ``name``) that you want to add, update, or
    delete.
  in: header
  required: false
  type: string
X-Account-Meta-Quota-Bytes_resp:
  description: |
    If present, this is the limit on the total size in bytes of objects stored
    in the account.
    Typically this value is set by an administrator.
  in: header
  required: false
  type: string
X-Account-Meta-Temp-URL-Key-2_req:
  description: |
    A second secret key value for temporary URLs.
    The second key enables you to rotate keys by having
    two active keys at the same time.
  in: header
  required: false
  type: string
X-Account-Meta-Temp-URL-Key-2_resp:
  description: |
    The second secret key value for temporary URLs. If
    not set, this header is not returned in the response.
  in: header
  required: false
  type: string
X-Account-Meta-Temp-URL-Key_req:
  description: |
    The secret key value for temporary URLs.
  in: header
  required: false
  type: string
X-Account-Meta-Temp-URL-Key_resp:
  description: |
    The secret key value for temporary URLs. If not
    set, this header is not returned in the response.
  in: header
  required: false
  type: string
X-Account-Object-Count:
  description: |
    The number of objects in the account.
  in: header
  required: true
  type: integer
X-Account-Storage-Policy-name-Bytes-Used:
  description: |
    The total number of bytes that are stored in
    in a given storage policy, where ``name`` is the
    name of the storage policy.
  in: header
  required: true
  type: integer
X-Account-Storage-Policy-name-Container-Count:
  description: |
    The number of containers in the account that use the given
    storage policy where ``name`` is the name of the storage policy.
  in: header
  required: true
  type: integer
X-Account-Storage-Policy-name-Object-Count:
  description: |
    The number of objects in given storage policy where ``name`` is
    the name of the storage policy.
  in: header
  required: true
  type: integer
X-Auth-Token:
  description: |
    Authentication token. If you omit this header,
    your request fails unless the account owner has granted you access
    through an access control list (ACL).
  in: header
  required: false
  type: string
X-Container-Bytes-Used:
  description: |
    The total number of bytes used.
  in: header
  required: true
  type: integer
X-Container-Meta-Access-Control-Allow-Origin:
  description: |
    Originating URLs allowed to make cross-origin
    requests (CORS), separated by spaces. This heading applies to the
    container only, and all objects within the container with this
    header applied are CORS-enabled for the allowed origin URLs.  A
    browser (user-agent) typically issues a `preflighted request
    <https://developer.mozilla.org/en-
    US/docs/HTTP/Access_control_CORS>`_ , which is an OPTIONS call
    that verifies the origin is allowed to make the request. The
    Object Storage service returns 200 if the originating URL is
    listed in this header parameter, and issues a 401 if the
    originating URL is not allowed to make a cross-origin request.
    Once a 200 is returned, the browser makes a second request to the
    Object Storage service to retrieve the CORS-enabled object.
  in: header
  required: false
  type: string
X-Container-Meta-Access-Control-Expose-Headers:
  description: |
    Headers the Object Storage service exposes to the
    browser (technically, through the ``user-agent`` setting), in the
    request response, separated by spaces.  By default the Object
    Storage service returns the following headers:

    - All "simple response headers" as listed on
      `http://www.w3.org/TR/cors/#simple-response-header
      <http://www.w3.org/TR/cors/#simple-response-header>`_.
    - The headers ``etag``, ``x-timestamp``, ``x-trans-id``,
      ``x-openstack-request-id``.
    - All metadata headers (``X-Container-Meta-*`` for containers and
      ``X-Object-Meta-*`` for objects).
    - headers listed in ``X-Container-Meta-Access-Control-Expose-Headers``.
  in: header
  required: false
  type: string
X-Container-Meta-Access-Control-Max-Age:
  description: |
    Maximum time for the origin to hold the preflight
    results. A browser may make an OPTIONS call to verify the origin
    is allowed to make the request. Set the value to an integer number
    of seconds after the time that the request was received.
  in: header
  required: false
  type: string
X-Container-Meta-name:
  description: |
    The custom container metadata item, where
    ``name`` is the name of the metadata item.  One ``X-Container-Meta-name``
    response header appears for each metadata item (for
    each ``name``).
  in: header
  required: true
  type: string
X-Container-Meta-name_req:
  description: |
    The container metadata, where ``name`` is the
    name of metadata item.  You must specify an ``X-Container-Meta-name``
    header for each metadata item (for each ``name``) that
    you want to add or update.
  in: header
  required: false
  type: string
X-Container-Meta-Quota-Bytes:
  description: |
    Sets maximum size of the container, in bytes.
    Typically these values are set by an administrator. Returns a 413
    response (request entity too large) when an object PUT operation
    exceeds this quota value.
    This value does not take effect immediately. see
    `Container Quotas
    <https://docs.openstack.org/swift/latest/api/container_quotas.html>`_
    for more information.
  in: header
  required: false
  type: string
X-Container-Meta-Quota-Bytes_resp:
  description: |
    The maximum size of the container, in bytes. If not set, this header is not
    returned by this operation.
  in: header
  required: false
  type: string
X-Container-Meta-Quota-Count:
  description: |
    Sets maximum object count of the container.
    Typically these values are set by an administrator. Returns a 413
    response (request entity too large) when an object PUT operation
    exceeds this quota value.
    This value does not take effect immediately. see
    `Container Quotas
    <https://docs.openstack.org/swift/latest/api/container_quotas.html>`_
    for more information.
  in: header
  required: false
  type: string
X-Container-Meta-Quota-Count_resp:
  description: |
    The maximum object count of the container. If not set, this header is not
    returned by this operation.
  in: header
  required: false
  type: string
X-Container-Meta-Temp-URL-Key-2_req:
  description: |
    A second secret key value for temporary URLs.
    The second key enables you to rotate keys by having
    two active keys at the same time.
  in: header
  required: false
  type: string
X-Container-Meta-Temp-URL-Key-2_resp:
  description: |
    The second secret key value for temporary URLs. If
    not set, this header is not returned in the response.
  in: header
  required: false
  type: string
X-Container-Meta-Temp-URL-Key_req:
  description: |
    The secret key value for temporary URLs.
  in: header
  required: false
  type: string
X-Container-Meta-Temp-URL-Key_resp:
  description: |
    The secret key value for temporary URLs. If not
    set, this header is not returned in the response.
  in: header
  required: false
  type: string
X-Container-Meta-Web-Directory-Type:
  description: |
    Sets the content-type of directory marker
    objects. If the header is not set, default is
    ``application/directory``. Directory marker objects are 0-byte
    objects that represent directories to create a simulated
    hierarchical structure.  For example, if you set ``"X-Container-
    Meta-Web-Directory-Type: text/directory"``, Object Storage treats
    0-byte objects with a content-type of ``text/directory`` as
    directories rather than objects.
  in: header
  required: false
  type: string
X-Container-Object-Count:
  description: |
    The number of objects.
  in: header
  required: true
  type: integer
X-Container-Read:
  description: |
    Sets a container access control list (ACL) that grants read access.
    The scope of the access is specific to the container. The ACL grants
    the ability to perform GET or HEAD operations on objects in the container
    or to perform a GET or HEAD operation on the container itself.

    The format and scope of the ACL is dependent on the authorization system
    used by the Object Storage service. See `Container ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#container-acls>`_
    for more information.
  in: header
  required: false
  type: string
X-Container-Read_resp:
  description: |
    The ACL that grants read access. If there is no ACL, this
    header is not returned by this operation.
    See `Container ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#container-acls>`_
    for more information.
  in: header
  required: false
  type: string
X-Container-Sync-Key:
  description: |
    Sets the secret key for container
    synchronization. If you remove the secret key, synchronization is
    halted.
    For more information, see `Container to Container Synchronization
    <https://docs.openstack.org/swift/latest/overview_container_sync.html>`_
  in: header
  required: false
  type: string
X-Container-Sync-Key_resp:
  description: |
    The secret key for container synchronization. If
    not set, this header is not returned by this operation.
  in: header
  required: false
  type: string
X-Container-Sync-To:
  description: |
    Sets the destination for container
    synchronization. Used with the secret key indicated in the ``X
    -Container-Sync-Key`` header. If you want to stop a container from
    synchronizing, send a blank value for the ``X-Container-Sync-Key``
    header.
  in: header
  required: false
  type: string
X-Container-Sync-To_resp:
  description: |
    The destination for container synchronization. If
    not set, this header is not returned by this operation.
  in: header
  required: false
  type: string
X-Container-Write:
  description: |
    Sets a container access control list (ACL) that grants write access.
    The scope of the access is specific to the container. The ACL grants
    the ability to perform PUT, POST and DELETE operations on
    objects in the container. It does not grant write access to the container
    metadata.

    The format of the ACL is dependent on the authorization system
    used by the Object Storage service.  See `Container ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#container-acls>`_
    for more information.

  in: header
  required: false
  type: string
X-Container-Write_resp:
  description:
    The ACL that grants write access. If there is no ACL,
    this header is not returned by this operation.
    See `Container ACLs
    <https://docs.openstack.org/swift/latest/overview_acl.html#container-acls>`_
    for more information.
  in: header
  required: false
  type: string
X-Copied-From:
  description: |
    For a copied object, shows the container and
    object name from which the new object was copied. The value is in
    the ``{container}/{object}`` format.
  in: header
  required: false
  type: string
X-Copied-From-Account:
  description: |
    For a copied object, shows the account
    from which the new object was copied.
  in: header
  required: false
  type: string
X-Copied-From-Last-Modified:
  description: |
    For a copied object, the date and time in `UNIX
    Epoch time stamp format
    <https://en.wikipedia.org/wiki/Unix_time>`_ when the container and
    object name from which the new object was copied was last
    modified.  For example, ``1440619048`` is equivalent to ``Mon,
    Wed, 26 Aug 2015 19:57:28 GMT``.
  in: header
  required: false
  type: integer
X-Copy-From:
  description: |
    If set, this is the name of an object used to
    create the new object by copying the ``X-Copy-From`` object. The
    value is in form ``{container}/{object}``. You must UTF-8-encode
    and then URL-encode the names of the container and object before
    you include them in the header.  Using PUT with ``X-Copy-From``
    has the same effect as using the COPY operation to copy an object.
    Using ``Range`` header with ``X-Copy-From`` will create a new
    partial copied object with bytes set by ``Range``.
  in: header
  required: false
  type: string
X-Copy-From-Account:
  description: |
    Specifies the account name where the object is copied from. If not
    specified, the object is copied from the account which owns the new
    object (i.e., the account in the path).
  in: header
  required: false
  type: string
X-Delete-After:
  description: |
    The number of seconds after which the system removes the object. The value
    should be a positive integer. Internally, the Object Storage system uses
    this value to generate an ``X-Delete-At`` metadata item. If both
    ``X-Delete-After`` and ``X-Delete-At`` are set then ``X-Delete-After``
    takes precedence.
  in: header
  required: false
  type: integer
X-Delete-At:
  description: |
    The date and time in `UNIX Epoch time stamp format
    <https://en.wikipedia.org/wiki/Unix_time>`_ when the system removes the
    object.  For example, ``1440619048`` is equivalent to ``Mon, Wed, 26 Aug
    2015 19:57:28 GMT``.  The value should be a positive integer corresponding
    to a time in the future. If both ``X-Delete-After`` and ``X-Delete-At`` are
    set then ``X-Delete-After`` takes precedence.
  in: header
  required: false
  type: integer
X-Delete-At_resp:
  description: |
    If present, specifies date and time in `UNIX Epoch time stamp format
    <https://en.wikipedia.org/wiki/Unix_time>`_ when the system removes the
    object.  For example, ``1440619048`` is equivalent to ``Mon, Wed, 26 Aug
    2015 19:57:28 GMT``.
  in: header
  required: false
  type: integer
X-Detect-Content-Type:
  description: |
    If set to ``true``, Object Storage guesses the
    content type based on the file extension and ignores the value
    sent in the ``Content-Type`` header, if present.
  in: header
  required: false
  type: boolean
X-Fresh-Metadata:
  description: |
    Enables object creation that omits existing user
    metadata.  If set to ``true``, the COPY request creates an object
    without existing user metadata.  Default value is ``false``.
  in: header
  required: false
  type: boolean
X-History-Location:
  description: |
    The URL-encoded UTF-8 representation of the container that stores
    previous versions of objects. If neither this nor ``X-Versions-Location``
    is set, versioning is disabled for this container. ``X-History-Location``
    and ``X-Versions-Location`` cannot both be set at the same time. For more
    information about object versioning, see `Object versioning
    <https://docs.openstack.org/swift/latest/api/object_versioning.html>`_.
  in: header
  required: false
  type: string
X-History-Location_resp:
  description: |
    If present, this container has versioning enabled and the value
    is the UTF-8 encoded name of another container. For more information
    about object versioning, see `Object versioning
    <https://docs.openstack.org/swift/latest/api/object_versioning.html>`_.
  in: header
  required: false
  type: string
X-Newest:
  description: |
    If set to true , Object Storage queries all
    replicas to return the most recent one. If you omit this header,
    Object Storage responds faster after it finds one valid replica.
    Because setting this header to true is more expensive for the back
    end, use it only when it is absolutely needed.
  in: header
  required: false
  type: boolean
X-Object-Manifest:
  description: |
    Set to specify that this is a dynamic large
    object manifest object. The value is the container and object name
    prefix of the segment objects in the form ``container/prefix``.
    You must UTF-8-encode and then URL-encode the names of the
    container and prefix before you include them in this header.
  in: header
  required: false
  type: string
X-Object-Manifest_resp:
  description: |
    If present, this is a dynamic large object
    manifest object. The value is the container and object name prefix
    of the segment objects in the form ``container/prefix``.
  in: header
  required: false
  type: string
X-Object-Meta-name:
  description: |
    The object metadata, where ``name`` is the name
    of the metadata item.  You must specify an
    ``X-Object-Meta-name`` header for each metadata ``name`` item that
    you want to add or update.
  in: header
  required: false
  type: string
X-Object-Meta-name_resp:
  description: |
    If present, the custom object metadata item, where ``name``
    is the name of the metadata item.  One``X-Object-Meta-name``
    response header appears for each metadata ``name`` item.
  in: header
  required: false
  type: string
X-Openstack-Request-Id:
  description: |
    A unique transaction ID for this request. Your
    service provider might need this value if you report a problem.
    (same as ``X-Trans-Id``)
  in: header
  required: true
  type: string
X-Remove-Account-name:
  description: |
    Removes the metadata item named ``name``.
    For example, ``X-Remove-Account-Meta-Blue`` removes
    custom metadata.
  in: header
  required: false
  type: string
X-Remove-Container-name:
  description: |
    Removes the metadata item named ``name``. For
    example, ``X-Remove-Container-Read`` removes the
    ``X-Container-Read`` metadata item and ``X-Remove-Container-Meta-Blue``
    removes custom metadata.
  in: header
  required: false
  type: string
X-Remove-History-Location:
  description: |
    Set to any value to disable versioning. Note that this disables version
    that was set via ``X-Versions-Location`` as well.
  in: header
  required: false
  type: string
X-Remove-Versions-Location:
  description: |
    Set to any value to disable versioning. Note that this disables version
    that was set via ``X-History-Location`` as well.
  in: header
  required: false
  type: string
X-Service-Token:
  description: |
    A service token. See `OpenStack Service Using Composite Tokens
    <https://docs.openstack.org/swift/latest/overview_auth.html#openstack-
    service-using-composite-tokens>`_ for more information.
  in: header
  required: false
  type: string
X-Static-Large-Object:
  description: |
    Set to ``true`` if this object is a static large
    object manifest object.
  in: header
  required: true
  type: boolean
X-Storage-Policy:
  description: |
    In requests, specifies the name of the storage policy to use for
    the container. In responses, is the storage policy name.
    The storage policy of the container cannot be changed.
  in: header
  required: false
  type: string
X-Symlink-Target:
  description: |
    Set to specify that this is a symlink object.
    The value is the relative path of the target object in the
    format <container>/<object>.  The target object does not need to
    exist at the time of symlink creation.
    You must UTF-8-encode and then URL-encode the names of the
    container and object before you include them in this header.
  in: header
  required: false
  type: string
X-Symlink-Target-Account:
  description: |
    Set to specify that this is a cross-account symlink to
    an object in the account specified in the value.
    The ``X-Symlink-Target`` must also be set for this to
    be effective.
    You must UTF-8-encode and then URL-encode the account name
    before you include it in this header.
  in: header
  required: false
  type: string
X-Symlink-Target-Account_resp:
  description: |
    If present, and ``X-Symlink-Target`` is present, then
    this is a cross-account symlink to
    an object in the account specified in the value.
  in: header
  required: false
  type: string
X-Symlink-Target_resp:
  description: |
    If present, this is a symlink object.
    The value is the relative path of the target object in the
    format <container>/<object>.
  in: header
  required: false
  type: string
X-Timestamp:
  description: |
    The date and time in `UNIX Epoch time stamp
    format <https://en.wikipedia.org/wiki/Unix_time>`_ when the
    account, container, or object was initially created as a current
    version.  For example, ``1440619048`` is equivalent to ``Mon, Wed,
    26 Aug 2015 19:57:28 GMT``.
  in: header
  required: true
  type: integer
X-Trans-Id:
  description: |
    A unique transaction ID for this request. Your
    service provider might need this value if you report a problem.
  in: header
  required: true
  type: string
X-Trans-Id-Extra:
  description: |
    Extra transaction information. Use the ``X-Trans-Id-Extra``
    request header to include extra information to help you
    debug any errors that might occur with large object upload and
    other Object Storage transactions.  The server appends the
    first 32 characters of the ``X-Trans-Id-Extra`` request header
    value to the transaction ID value in the generated ``X-Trans-Id``
    response header. You must UTF-8-encode and then URL-encode the
    extra transaction information before you include it in the
    ``X-Trans-Id-Extra`` request header.  For example, you can include
    extra transaction information when you upload `large objects
    <https://docs.openstack.org/swift/latest/api/large_objects.html>`_
    such as images. When
    you upload each segment and the manifest, include the same value
    in the ``X-Trans-Id-Extra`` request header. If an error occurs,
    you can find all requests that are related to the large object
    upload in the Object Storage logs.  You can also use ``X-Trans-Id-Extra``
    strings to help operators debug requests that fail to
    receive responses. The operator can search for the extra
    information in the logs.
  in: header
  required: false
  type: string
X-Versions-Location:
  description: |
    The URL-encoded UTF-8 representation of the container that stores
    previous versions of objects. If neither this nor ``X-History-Location``
    is set, versioning is disabled for this container. ``X-Versions-Location``
    and ``X-History-Location`` cannot both be set at the same time. For more
    information about object versioning, see `Object versioning
    <https://docs.openstack.org/swift/latest/api/object_versioning.html>`_.
  in: header
  required: false
  type: string
X-Versions-Location_resp:
  description: |
    If present, this container has versioning enabled and the value
    is the UTF-8 encoded name of another container. For more information
    about object versioning, see `Object versioning
    <https://docs.openstack.org/swift/latest/api/object_versioning.html>`_.
  in: header
  required: false
  type: string

# variables in path
account:
  description: |
    The unique name for the account. An account is
    also known as the project or tenant.
  in: path
  required: false
  type: string
container:
  description: |
    The unique (within an account) name for the container.  The container
    name must be from 1 to 256 characters long and can start with any
    character and contain any pattern. Character set must be UTF-8.
    The container name cannot contain a slash (``/``) character
    because this character delimits the container and object name. For
    example, the path ``/v1/account/www/pages`` specifies the ``www``
    container, not the ``www/pages`` container.
  in: path
  required: false
  type: string
object:
  description: |
    The unique name for the object.
  in: path
  required: false
  type: string

# variables in query
bulk-delete:
  description: |
    When the ``bulk-delete`` query parameter is present in the POST
    request, multiple objects or containers can be deleted
    with a single request. See `Bulk Delete
    <https://docs.openstack.org/swift/latest/middleware.html#bulk-delete>`_
    for how this feature is used.
  in: query
  required: false
  type: string
delimiter:
  description: |
    The delimiter is a single character used to split object
    names to present a pseudo-directory hierarchy of objects. When combined
    with a ``prefix`` query, this enables API users to simulate and
    traverse the objects in a container as if they were in a directory tree.
  in: query
  required: false
  type: string
end_marker:
  description: |
    For a string value, `x` , constrains the list to items whose names
    are less than `x`.
  in: query
  required: false
  type: string
extract-archive:
  description: |
    When the ``extract-archive`` query parameter is present in the POST
    request, an archive (tar file) is uploaded and extracted to
    create multiple objects. See `Extract Archive
    <https://docs.openstack.org/swift/latest/middleware.html#extract-archive>`_
    for how this feature is used.
  in: query
  required: false
  type: string
filename:
  description: |
    Overrides the default file name. Object Storage
    generates a default file name for GET temporary URLs that is based
    on the object name. Object Storage returns this value in the
    ``Content-Disposition`` response header. Browsers can interpret
    this file name value as a file attachment to save. For more
    information about temporary URLs, see `Temporary URL middleware
    <https://docs.openstack.org/swift/latest/api/temporary_url_middleware.html>`_.
  in: query
  required: false
  type: string
format:
  description: |
    The response format. Valid values are ``json``,
    ``xml``, or ``plain``. The default is ``plain``.  If you append
    the ``format=xml`` or ``format=json`` query parameter to the
    storage account URL, the response shows extended container
    information serialized in that format.  If you append the
    ``format=plain`` query parameter, the response lists the container
    names separated by newlines.
  in: query
  required: false
  type: string
limit:
  description: |
    For an integer value n , limits the number of
    results to n .
  in: query
  required: false
  type: integer
marker:
  description: |
    For a string value, `x` , constrains the list to items whose names
    are greater than `x`.
  in: query
  required: false
  type: string
multipart-manifest_copy:
  description: |
    If you include the ``multipart-manifest=get``
    query parameter and the object is a large object, the object
    contents are not copied. Instead, the manifest is copied to
    the new object.
  in: query
  required: false
  type: string
multipart-manifest_delete:
  description: |
    If you include the ``multipart-manifest=delete``
    query parameter and the object is a static large object, the
    segment objects and manifest object are deleted. If you omit the
    ``multipart-manifest=delete`` query parameter and the object is a
    static large object, the manifest object is deleted but the
    segment objects are not deleted.  The response body will contain
    the status of the deletion of every processed segment object.
  in: query
  required: false
  type: string
multipart-manifest_get:
  description: |
    If you include the ``multipart-manifest=get``
    query parameter and the object is a large object, the object
    contents are not returned. Instead, the manifest is returned in
    the ``X-Object-Manifest`` response header for dynamic large
    objects or in the response body for static large objects.
  in: query
  required: false
  type: string
multipart-manifest_head:
  description: |
    If you include the ``multipart-manifest=get`` query parameter and the
    object is a large object, the object metadata is not returned. Instead, the
    response headers will include the manifest metadata and for dynamic large
    objects the ``X-Object-Manifest`` response header.
  in: query
  required: false
  type: string
multipart-manifest_put:
  description: |
    If you include the ``multipart-manifest=put`` query parameter, the object
    is a static large object manifest and the body contains the manifest.
    See `Static large objects <https://docs.openstack.org/swift/latest
    /api/large_objects.html#static-large-objects>`_ for more information.
  in: query
  required: false
  type: string
path:
  description: |
    For a string value, returns the object names that
    are nested in the pseudo path. Please use ``prefix``/``delimiter``
    queries instead of using this ``path`` query.
  in: query
  required: false
  type: string
prefix:
  description: |
    Only objects with this prefix will be returned. When combined with a
    ``delimiter`` query, this enables API users to simulate and
    traverse the objects in a container as if they were in a directory tree.
  in: query
  required: false
  type: string
swiftinfo_expires:
  description: |
    The time at which ``swiftinfo_sig`` expires. The time is in
    `UNIX Epoch time stamp format
    <https://en.wikipedia.org/wiki/Unix_time>`_.
  in: query
  required: false
  type: integer
swiftinfo_sig:
  description: |
    A hash-based message authentication code (HMAC)
    that enables access to administrator-only information. To use this
    parameter, the ``swiftinfo_expires`` parameter is also required.
  in: query
  required: false
  type: string
symlink:
  description: |
    If you include the ``symlink=get`` query parameter
    and the object is a symlink, then the response will include
    data and metadata from the symlink itself rather than from the target.
  in: query
  required: false
  type: string
symlink_copy:
  description: |
    If you include the ``symlink=get`` query parameter
    and the object is a symlink, the target object
    contents are not copied. Instead, the symlink is copied to
    create a new symlink to the same target.
  in: query
  required: false
  type: string
temp_url_expires:
  description: |
    The date and time in `UNIX Epoch time stamp
    format <https://en.wikipedia.org/wiki/Unix_time>`_ or
    `ISO 8601 UTC timestamp <https://en.wikipedia.org/wiki/ISO_8601>`_
    when the signature for temporary URLs expires.
    For example, ``1440619048`` or ``2015-08-26T19:57:28Z``
    is equivalent to ``Mon, Wed, 26 Aug 2015 19:57:28 GMT``.  For more
    information about temporary URLs, see `Temporary URL middleware
    <https://docs.openstack.org/swift/latest/api/temporary_url_middleware.html>`_.
  in: query
  required: true
  type: integer
temp_url_sig:
  description: |
    Used with temporary URLs to sign the request with
    an HMAC-SHA1 cryptographic signature that defines the allowed HTTP
    method, expiration date, full path to the object, and the secret
    key for the temporary URL. For more information about temporary
    URLs, see `Temporary URL middleware
    <https://docs.openstack.org/swift/latest/api/temporary_url_middleware.html>`_.
  in: query
  required: true
  type: string

# variables in body
bytes_in_account_get:
  description: |
    The total number of bytes that are stored in
    Object Storage for the account.
  in: body
  required: true
  type: integer
bytes_in_container_get:
  description: |
    The total number of bytes that are stored in
    Object Storage for the container.
  in: body
  required: true
  type: integer
content_type:
  description: |
    The content type of the object.
  in: body
  required: true
  type: string
count:
  description: |
    The number of objects in the container.
  in: body
  required: true
  type: integer
hash:
  description: |
    The MD5 checksum value of the object content.
  in: body
  required: true
  type: string
last_modified:
  description: |
    The date and time when the object was last modified.

    The date and time stamp format is `ISO 8601
    <https://en.wikipedia.org/wiki/ISO_8601>`_:

    ::

       CCYY-MM-DDThh:mm:ss±hh:mm

    For example, ``2015-08-27T09:49:58-05:00``.

    The ``±hh:mm`` value, if included, is the time zone as an offset
    from UTC. In the previous example, the offset value is ``-05:00``.
  in: body
  required: true
  type: string
name_in_account_get:
  description: |
    The name of the container.
  in: body
  required: true
  type: string
name_in_container_get:
  description: |
    The name of the object.
  in: body
  required: true
  type: string
symlink_path:
  description: |
    This field exists only when the object is symlink.
    This is the target path of the symlink object.
  in: body
  required: true
  type: string