:doc:`SecretsManager <../../secretsmanager>` / Client / tag_resource

************
tag_resource
************



.. py:method:: SecretsManager.Client.tag_resource(**kwargs)

  

  Attaches tags to a secret. Tags consist of a key name and a value. Tags are part of the secret's metadata. They are not associated with specific versions of the secret. This operation appends tags to the existing list of tags.

   

  For tag quotas and naming restrictions, see `Service quotas for Tagging <https://docs.aws.amazon.com/general/latest/gr/arg.html#taged-reference-quotas>`__ in the *Amazon Web Services General Reference guide*.

   

  .. warning::

     

    If you use tags as part of your security strategy, then adding or removing a tag can change permissions. If successfully completing this operation would result in you losing your permissions for this secret, then the operation is blocked and returns an Access Denied error.

     

   

  Secrets Manager generates a CloudTrail log entry when you call this action. Do not include sensitive information in request parameters because it might be logged. For more information, see `Logging Secrets Manager events with CloudTrail <https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieve-ct-entries.html>`__.

   

  **Required permissions:** ``secretsmanager:TagResource``. For more information, see `IAM policy actions for Secrets Manager <https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_iam-permissions.html#reference_iam-permissions_actions>`__ and `Authentication and access control in Secrets Manager <https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/secretsmanager-2017-10-17/TagResource>`_  


  **Request Syntax**
  ::

    response = client.tag_resource(
        SecretId='string',
        Tags=[
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    )
    
  :type SecretId: string
  :param SecretId: **[REQUIRED]** 

    The identifier for the secret to attach tags to. You can specify either the Amazon Resource Name (ARN) or the friendly name of the secret.

     

    For an ARN, we recommend that you specify a complete ARN rather than a partial ARN. See `Finding a secret from a partial ARN <https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot.html#ARN_secretnamehyphen>`__.

    

  
  :type Tags: list
  :param Tags: **[REQUIRED]** 

    The tags to attach to the secret as a JSON text string argument. Each element in the list consists of a ``Key`` and a ``Value``.

     

    For storing multiple values, we recommend that you use a JSON text string argument and specify key/value pairs. For more information, see `Specifying parameter values for the Amazon Web Services CLI <https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters.html>`__ in the Amazon Web Services CLI User Guide.

    

  
    - *(dict) --* 

      A structure that contains information about a tag.

      

    
      - **Key** *(string) --* 

        The key identifier, or name, of the tag.

        

      
      - **Value** *(string) --* 

        The string value associated with the key of the tag.

        

      
    

  
  :returns: None
  **Exceptions**
  
  *   :py:class:`SecretsManager.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`SecretsManager.Client.exceptions.InvalidRequestException`

  
  *   :py:class:`SecretsManager.Client.exceptions.InvalidParameterException`

  
  *   :py:class:`SecretsManager.Client.exceptions.InternalServiceError`

  

  **Examples**

  The following example shows how to attach two tags each with a Key and Value to a secret. There is no output from this API. To see the result, use the DescribeSecret operation.
  ::

    response = client.tag_resource(
        SecretId='MyExampleSecret',
        Tags=[
            {
                'Key': 'FirstTag',
                'Value': 'SomeValue',
            },
            {
                'Key': 'SecondTag',
                'Value': 'AnotherValue',
            },
        ],
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'ResponseMetadata': {
            '...': '...',
        },
    }

  