:py:mod:`wfexs_backend.utils.docker`
====================================

.. py:module:: wfexs_backend.utils.docker

.. autodoc2-docstring:: wfexs_backend.utils.docker
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`Credentials <wfexs_backend.utils.docker.Credentials>`
     - .. autodoc2-docstring:: wfexs_backend.utils.docker.Credentials
          :summary:
   * - :py:obj:`DockerTagMetadata <wfexs_backend.utils.docker.DockerTagMetadata>`
     - .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata
          :summary:
   * - :py:obj:`DXFFat <wfexs_backend.utils.docker.DXFFat>`
     -
   * - :py:obj:`DockerHelper <wfexs_backend.utils.docker.DockerHelper>`
     -

API
~~~

.. py:exception:: DockerHelperException()
   :canonical: wfexs_backend.utils.docker.DockerHelperException

   Bases: :py:obj:`Exception`

.. py:class:: Credentials
   :canonical: wfexs_backend.utils.docker.Credentials

   Bases: :py:obj:`typing.NamedTuple`

   .. autodoc2-docstring:: wfexs_backend.utils.docker.Credentials

   .. py:attribute:: domain
      :canonical: wfexs_backend.utils.docker.Credentials.domain
      :type: Optional[str]
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.Credentials.domain

   .. py:attribute:: username
      :canonical: wfexs_backend.utils.docker.Credentials.username
      :type: Optional[str]
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.Credentials.username

   .. py:attribute:: password
      :canonical: wfexs_backend.utils.docker.Credentials.password
      :type: Optional[str]
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.Credentials.password

.. py:class:: DockerTagMetadata
   :canonical: wfexs_backend.utils.docker.DockerTagMetadata

   Bases: :py:obj:`typing.NamedTuple`

   .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata

   .. py:attribute:: registryServer
      :canonical: wfexs_backend.utils.docker.DockerTagMetadata.registryServer
      :type: str
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata.registryServer

   .. py:attribute:: repo
      :canonical: wfexs_backend.utils.docker.DockerTagMetadata.repo
      :type: str
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata.repo

   .. py:attribute:: alias
      :canonical: wfexs_backend.utils.docker.DockerTagMetadata.alias
      :type: str
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata.alias

   .. py:attribute:: manifest
      :canonical: wfexs_backend.utils.docker.DockerTagMetadata.manifest
      :type: Mapping[str, Any]
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata.manifest

   .. py:attribute:: partial_fingerprint
      :canonical: wfexs_backend.utils.docker.DockerTagMetadata.partial_fingerprint
      :type: str
      :value: None

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerTagMetadata.partial_fingerprint

.. py:class:: DXFFat(host: str, repo: str, auth: typing.Optional[typing.Callable[[dxf.DXFBase, requests.Response], None]] = None, insecure: bool = False, auth_host: typing.Optional[str] = None, tlsverify: typing.Union[bool, str] = True, timeout: typing.Optional[float] = None)
   :canonical: wfexs_backend.utils.docker.DXFFat

   Bases: :py:obj:`dxf.DXF`

   .. py:method:: get_fat_manifest_and_response(alias: str, http_method: str = 'get') -> Tuple[str, requests.Response]
      :canonical: wfexs_backend.utils.docker.DXFFat.get_fat_manifest_and_response

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DXFFat.get_fat_manifest_and_response

   .. py:method:: get_parsed_manifest_and_dcd(alias: str) -> Union[Tuple[Mapping[str, Any], str], Tuple[None, None]]
      :canonical: wfexs_backend.utils.docker.DXFFat.get_parsed_manifest_and_dcd

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DXFFat.get_parsed_manifest_and_dcd

   .. py:method:: get_fat_manifest_and_dcd(alias: str, http_method: str = 'get') -> Tuple[str, Optional[str]]
      :canonical: wfexs_backend.utils.docker.DXFFat.get_fat_manifest_and_dcd

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DXFFat.get_fat_manifest_and_dcd

   .. py:method:: get_fat_manifest(alias: str) -> str
      :canonical: wfexs_backend.utils.docker.DXFFat.get_fat_manifest

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DXFFat.get_fat_manifest

.. py:class:: DockerHelper()
   :canonical: wfexs_backend.utils.docker.DockerHelper

   Bases: :py:obj:`abc.ABC`

   .. py:attribute:: DEFAULT_DOCKER_REGISTRY
      :canonical: wfexs_backend.utils.docker.DockerHelper.DEFAULT_DOCKER_REGISTRY
      :type: Final[str]
      :value: 'docker.io'

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.DEFAULT_DOCKER_REGISTRY

   .. py:attribute:: DOCKER_REGISTRY
      :canonical: wfexs_backend.utils.docker.DockerHelper.DOCKER_REGISTRY
      :type: Final[str]
      :value: 'registry-1.docker.io'

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.DOCKER_REGISTRY

   .. py:attribute:: DEFAULT_ALIAS
      :canonical: wfexs_backend.utils.docker.DockerHelper.DEFAULT_ALIAS
      :type: Final[str]
      :value: 'latest'

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.DEFAULT_ALIAS

   .. py:method:: add_creds(username: str, password: str, domain: Optional[str] = None) -> None
      :canonical: wfexs_backend.utils.docker.DockerHelper.add_creds

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.add_creds

   .. py:method:: choose_domain(domain_name: Optional[str] = None) -> None
      :canonical: wfexs_backend.utils.docker.DockerHelper.choose_domain

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.choose_domain

   .. py:method:: _auth(dxf: dxf.DXFBase, response: requests.Response) -> None
      :canonical: wfexs_backend.utils.docker.DockerHelper._auth

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper._auth

   .. py:method:: query_tag(tag: str) -> Optional[DockerTagMetadata]
      :canonical: wfexs_backend.utils.docker.DockerHelper.query_tag

      .. autodoc2-docstring:: wfexs_backend.utils.docker.DockerHelper.query_tag
