:py:mod:`airflow.providers.amazon.aws.hooks.secrets_manager`
============================================================

.. py:module:: airflow.providers.amazon.aws.hooks.secrets_manager


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

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.amazon.aws.hooks.secrets_manager.SecretsManagerHook




.. py:class:: SecretsManagerHook(*args, **kwargs)

   Bases: :py:obj:`airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   Interact with Amazon SecretsManager Service.

   Additional arguments (such as ``aws_conn_id``) may be specified and
   are passed down to the underlying AwsBaseHook.

   .. see also::
       :class:`~airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook`

   .. py:method:: get_secret(self, secret_name)

      Retrieve secret value from AWS Secrets Manager as a str or bytes
      reflecting format it stored in the AWS Secrets Manager

      :param secret_name: name of the secrets.
      :return: Union[str, bytes] with the information about the secrets
      :rtype: Union[str, bytes]


   .. py:method:: get_secret_as_dict(self, secret_name)

      Retrieve secret value from AWS Secrets Manager in a dict representation

      :param secret_name: name of the secrets.
      :return: dict with the information about the secrets
      :rtype: dict



