
.. _structure-token:

:index:`Token Structure`
-------------------------------

A Token structure is returned from Shared Token methods :meth:`~jetstream.sendinterface.SendInterface.createSharedToken`, :meth:`~jetstream.sendinterface.SendInterface.getSharedToken`, :meth:`~jetstream.sendinterface.SendInterface.getSharedTokens`, or API Token methods :meth:`~jetstream.serverinterface.ServerInterface.createAPIToken`, :meth:`~jetstream.serverinterface.ServerInterface.getAPIToken`, :meth:`~jetstream.serverinterface.ServerInterface.getAPITokens`.

.. glossary::

   :index:`creationTime <pair: Token Structure; creationTime>`
      Timestamp when the token was created. See :doc:`/api/timestamps`.

   :index:`description <pair: Token Structure; description>`
      A description of the token.

   :index:`expiryTime <pair: Token Structure; expiryTime>`
      Timestamp when this token becomes invalid. See :doc:`/api/timestamps`. May be ``None`` if the token doesn't expire.

   :index:`owner <pair: Token Structure; owner>`
      The owner of this token.

   :index:`ownerToken <pair: Token Structure; ownerToken>`
      The owner of this token, if this destination was created by a token.

   :index:`ownerTokenSession <pair: Token Structure; ownerTokenSession>`
      The token session of the token that created this token.

   :index:`passwordRequired <pair: Token Structure; passwordRequired>`
      Whether a password is required to use this token.

   :index:`permissions <pair: Token Structure; permissions>`
      Permissions granted to this token. See :data:`~jetstream.constants.PERMISSIONS`

   :index:`token <pair: Token Structure; token>`
      A token ID.

   :index:`userData <pair: Token Structure; userData>`
      Key-value map of user attached metadata. Use :meth:`~jetstream.sendinterface.SendInterface.updateObjectUserData` and :meth:`~jetstream.sendinterface.SendInterface.deleteObjectUserData` to manipulate object user data.

   :index:`downloadCount <pair: Token Structure; downloadCount>`
      Number of times this shared token has been used to create a transfer.

      .. note::
         Shared Tokens only


   :index:`downloadLimit <pair: Token Structure; downloadLimit>`
      Total number of transfers that can be created with this shared token, before becoming invalid. May be ``None`` if there is not limit.

      .. note::
         Shared Tokens only


   :index:`manifestId <pair: Shared Token Structure; manifestId>`
      A manifest ID. Manifest IDs are returned from :meth:`~jetstream.sendinterface.SendInterface.createManifest`, and used in other methods to refer to a specific manifest.

      .. note::
         Shared Tokens only


   :index:`path <pair: Token Structure; path>`
      Path that this API token is sandboxed into.

      .. note::
         API Tokens only


.. versionchanged:: 2.4.0 Added `ownerToken`, `ownerTokenSession`, `permissions`, `path` keys.