:doc:`S3Control <../../s3control>` / Client / tag_resource

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



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

  

  Creates a new user-defined tag or updates an existing tag. Each tag is a label consisting of a key and value that is applied to your resource. Tags can help you organize, track costs for, and control access to your resources. You can add up to 50 Amazon Web Services resource tags for each S3 resource.

   

  .. note::

    

    This operation is only supported for the following Amazon S3 resource:

     

    
    * `General purpose buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html>`__
     
    * `Access Points for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-db-tagging.html>`__
     
    * `Access Points for general purpose buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points-tagging.html>`__
     
    * `Directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html>`__
     
    * `S3 Storage Lens groups <https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-lens-groups.html>`__
     
    * `S3 Access Grants instances, registered locations, or grants <https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-tagging.html>`__.
    

    

    Permissions  

  For general purpose buckets, access points for general purpose buckets, Storage Lens groups, and S3 Access Grants, you must have the ``s3:TagResource`` permission to use this operation.

    Directory bucket permissions  

  For directory buckets, you must have the ``s3express:TagResource`` permission to use this operation. For more information about directory buckets policies and permissions, see `Identity and Access Management (IAM) for S3 Express One Zone <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-permissions.html>`__ in the *Amazon S3 User Guide*.

    HTTP Host header syntax  

  **Directory buckets** - The HTTP Host header syntax is ``s3express-control.region.amazonaws.com``.

     

  For information about S3 Tagging errors, see `List of Amazon S3 Tagging error codes <https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#S3TaggingErrorCodeList>`__.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/TagResource>`_  


  **Request Syntax**
  ::

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

    The Amazon Web Services account ID that created the S3 resource that you're trying to add tags to or the requester's account ID.

    

  
  :type ResourceArn: string
  :param ResourceArn: **[REQUIRED]** 

    The Amazon Resource Name (ARN) of the S3 resource that you're applying tags to. The tagged resource can be a directory bucket, S3 Storage Lens group or S3 Access Grants instance, registered location, or grant.

    

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

    The Amazon Web Services resource tags that you want to add to the specified S3 resource.

    

  
    - *(dict) --* 

      A key-value pair that you use to label your resources. You can add tags to new resources when you create them, or you can add tags to existing resources. Tags can help you organize, track costs for, and control access to resources.

      

    
      - **Key** *(string) --* **[REQUIRED]** 

        The key of the key-value pair of a tag added to your Amazon Web Services resource. A tag key can be up to 128 Unicode characters in length and is case-sensitive. System created tags that begin with ``aws:`` aren’t supported.

        

      
      - **Value** *(string) --* **[REQUIRED]** 

        The value of the key-value pair of a tag added to your Amazon Web Services resource. A tag value can be up to 256 Unicode characters in length and is case-sensitive.

        

      
    

  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  