class_docstr: Synchronizes an S3 key, possibly a prefix, with a Google Cloud Storage destination path.
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:S3ToGCSOperator`
  
  :param bucket: The S3 bucket where to find the objects. (templated)
  :param prefix: Prefix string which filters objects whose name begin with
      such prefix. (templated)
  :param apply_gcs_prefix: (Optional) Whether to replace source objects' path by given GCS destination path.
      If apply_gcs_prefix is False (default), then objects from S3 will be copied to GCS bucket into a given
      GSC path and the source path will be place inside. For example,
      <s3_bucket><s3_prefix><content> => <gcs_prefix><s3_prefix><content>
  
      If apply_gcs_prefix is True, then objects from S3 will be copied to GCS bucket into a given
      GCS path and the source path will be omitted. For example:
      <s3_bucket><s3_prefix><content> => <gcs_prefix><content>
  
  :param delimiter: the delimiter marks key hierarchy. (templated)
  :param aws_conn_id: The source S3 connection
  :param verify: Whether or not to verify SSL certificates for S3 connection.
      By default SSL certificates are verified.
      You can provide the following values:
  
      - ``False``: do not validate SSL certificates. SSL will still be used
               (unless use_ssl is False), but SSL certificates will not be
               verified.
      - ``path/to/cert/bundle.pem``: A filename of the CA cert bundle to uses.
               You can specify this argument if you want to use a different
               CA cert bundle than the one used by botocore.
  :param gcp_conn_id: (Optional) The connection ID used to connect to Google Cloud.
  :param dest_gcs: The destination Google Cloud Storage bucket and prefix
      where you want to store the files. (templated)
  :param replace: Whether you want to replace existing destination files
      or not.
  :param gzip: Option to compress file for upload. Parameter ignored in deferrable mode.
  :param google_impersonation_chain: Optional Google service account to impersonate using
      short-term credentials, or chained list of accounts required to get the access_token
      of the last account in the list, which will be impersonated in the request.
      If set as a string, the account must grant the originating account
      the Service Account Token Creator IAM role.
      If set as a sequence, the identities from the list must grant
      Service Account Token Creator IAM role to the directly preceding identity, with first
      account from the list granting this role to the originating account (templated).
  :param deferrable: Run operator in the deferrable mode
  :param poll_interval: time in seconds between polling for job completion.
      The value is considered only when running in deferrable mode. Must be greater than 0.
  
  **Example**:
  
  .. code-block:: python
  
     s3_to_gcs_op = S3ToGCSOperator(
         task_id="s3_to_gcs_example",
         bucket="my-s3-bucket",
         prefix="data/customers-201804",
         gcp_conn_id="google_cloud_default",
         dest_gcs="gs://my.gcs.bucket/some/customers/",
         replace=False,
         gzip=True,
         dag=my_dag,
     )
  
  Note that ``bucket``, ``prefix``, ``delimiter`` and ``dest_gcs`` are
  templated, so you can use variables in them if you wish.
docstr: Transforms GCS path to S3 path according to the operator's logic.
  
  If apply_gcs_prefix == True then <gcs_prefix><content> => <s3_prefix><content>
  If apply_gcs_prefix == False then <gcs_prefix><s3_prefix><content> => <s3_prefix><content>
docstr_tok: ["Transforms","GCS","path","to","S3","path","according","to","the","operator","'s","logic",".","If","apply_gcs_prefix","==","True","then","<","gcs_prefix",">","<","content",">","=",">","<","s3_prefix",">","<","content",">","If","apply_gcs_prefix","==","False","then","<","gcs_prefix",">","<","s3_prefix",">","<","content",">","=",">","<","s3_prefix",">","<","content",">"]
code: def gcs_to_s3_object(self, gcs_object: str) -> str:
      """
      Transforms GCS path to S3 path according to the operator's logic.
  
      If apply_gcs_prefix == True then <gcs_prefix><content> => <s3_prefix><content>
      If apply_gcs_prefix == False then <gcs_prefix><s3_prefix><content> => <s3_prefix><content>
  
      """
      gcs_bucket, gcs_prefix = _parse_gcs_url(self.dest_gcs)
      s3_object = gcs_object.replace(gcs_prefix, "", 1)
      if self.apply_gcs_prefix:
          return self.prefix + s3_object
      return s3_object
  
imports: from __future__ import annotations
  from datetime import datetime
  from tempfile import NamedTemporaryFile
  from typing import TYPE_CHECKING, Any, Sequence
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException
  from airflow.providers.amazon.aws.hooks.s3 import S3Hook
  from airflow.providers.google.cloud.hooks.cloud_storage_transfer_service import ACCESS_KEY_ID, AWS_ACCESS_KEY, AWS_S3_DATA_SOURCE, AWS_SECRET_ACCESS_KEY, BUCKET_NAME, GCS_DATA_SINK, INCLUDE_PREFIXES, OBJECT_CONDITIONS, OVERWRITE_OBJECTS_ALREADY_EXISTING_IN_SINK, PATH, PROJECT_ID, SCHEDULE, SCHEDULE_END_DATE, SCHEDULE_START_DATE, STATUS, TRANSFER_OPTIONS, TRANSFER_SPEC, CloudDataTransferServiceHook, GcpTransferJobsStatus
  from airflow.providers.google.cloud.hooks.gcs import GCSHook, _parse_gcs_url, gcs_object_is_directory
  from airflow.providers.google.cloud.triggers.cloud_storage_transfer_service import CloudStorageTransferServiceCreateJobsTrigger
label_desc: Use image node_id 6 for calling the S3ToGCSOperator obj's underlying member method code with example usage: obj.gcs_to_s3_object(gcs_object) and returns: s3_object, unknown