class_docstr: This operator puts tagging for an S3 bucket.
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:S3PutBucketTaggingOperator`
  
  :param bucket_name: The name of the bucket to add tags to.
  :param key: The key portion of the key/value pair for a tag to be added.
      If a key is provided, a value must be provided as well.
  :param value: The value portion of the key/value pair for a tag to be added.
      If a value is provided, a key must be provided as well.
  :param tag_set: A dictionary containing the tags, or a List of key/value pairs.
  :param aws_conn_id: The Airflow connection used for AWS credentials.
      If this is None or empty then the default boto3 behaviour is used. If
      running Airflow in a distributed manner and aws_conn_id is None or
      empty, then the default boto3 configuration would be used (and must be
      maintained on each worker node).
class_docstr_tok: ["This","operator","puts","tagging","for","an","S3","bucket",".","..","seealso",":",":","For","more","information","on","how","to","use","this","operator",",","take","a","look","at","the","guide",":",":","ref",":","`","howto\/operator",":","S3PutBucketTaggingOperator","`",":","param","bucket_name",":","The","name","of","the","bucket","to","add","tags","to",".",":","param","key",":","The","key","portion","of","the","key\/value","pair","for","a","tag","to","be","added",".","If","a","key","is","provided",",","a","value","must","be","provided","as","well",".",":","param","value",":","The","value","portion","of","the","key\/value","pair","for","a","tag","to","be","added",".","If","a","value","is","provided",",","a","key","must","be","provided","as","well",".",":","param","tag_set",":","A","dictionary","containing","the","tags",",","or","a","List","of","key\/value","pairs",".",":","param","aws_conn_id",":","The","Airflow","connection","used","for","AWS","credentials",".","If","this","is","None","or","empty","then","the","default","boto3","behaviour","is","used",".","If","running","Airflow","in","a","distributed","manner","and","aws_conn_id","is","None","or","empty",",","then","the","default","boto3","configuration","would","be","used","(","and","must","be","maintained","on","each","worker","node",")","."]
code: def __init__(
      self,
      bucket_name: str,
      key: str | None = None,
      value: str | None = None,
      tag_set: dict | list[dict[str, str]] | None = None,
      aws_conn_id: str | None = "aws_default",
      **kwargs,
  ) -> None:
      super().__init__(**kwargs)
      self.key = key
      self.value = value
      self.tag_set = tag_set
      self.bucket_name = bucket_name
      self.aws_conn_id = aws_conn_id
  
imports: from __future__ import annotations
  import subprocess
  import sys
  from tempfile import NamedTemporaryFile
  from typing import TYPE_CHECKING, Sequence
  from airflow.exceptions import AirflowException
  from airflow.models import BaseOperator
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
  from airflow.utils.helpers import exactly_one
label_desc: Use image node_id 1 to create a new S3PutBucketTaggingOperator object from inherited base classes: BaseOperator with example: obj = S3PutBucketTaggingOperator(bucket_name, key, value, tag_set, aws_conn_id)