class_docstr: Uploads line items in CSV format.
  
  .. seealso::
      For more information on how to use this operator, take a look at the guide:
      :ref:`howto/operator:GoogleDisplayVideo360UploadLineItemsOperator`
  
  .. seealso::
      Check also the official API docs:
      `https://developers.google.com/bid-manager/v1.1/lineitems/uploadlineitems`
  
  :param request_body: request to upload line items.
  :param bucket_name: The bucket form data is downloaded.
  :param object_name: The object to fetch.
  :param filename: The filename to fetch.
  :param dry_run: Upload status without actually persisting the line items.
class_docstr_tok: ["Uploads","line","items","in","CSV","format",".","..","seealso",":",":","For","more","information","on","how","to","use","this","operator",",","take","a","look","at","the","guide",":",":","ref",":","`","howto\/operator",":","GoogleDisplayVideo360UploadLineItemsOperator","`","..","seealso",":",":","Check","also","the","official","API","docs",":","`","https",":","\/\/developers.google.com\/bid-manager\/v1.1\/lineitems\/uploadlineitems","`",":","param","request_body",":","request","to","upload","line","items",".",":","param","bucket_name",":","The","bucket","form","data","is","downloaded",".",":","param","object_name",":","The","object","to","fetch",".",":","param","filename",":","The","filename","to","fetch",".",":","param","dry_run",":","Upload","status","without","actually","persisting","the","line","items","."]
code: def execute(self, context: Context) -> None:
      gcs_hook = GCSHook(
          gcp_conn_id=self.gcp_conn_id,
          delegate_to=self.delegate_to,
          impersonation_chain=self.impersonation_chain,
      )
      hook = GoogleDisplayVideo360Hook(
          gcp_conn_id=self.gcp_conn_id,
          delegate_to=self.delegate_to,
          api_version=self.api_version,
          impersonation_chain=self.impersonation_chain,
      )
  
      self.log.info("Uploading file %s...")
      # Saving file in the temporary directory,
      # downloaded file from the GCS could be a 1GB size or even more
      with tempfile.NamedTemporaryFile("w+") as f:
          line_items = gcs_hook.download(
              bucket_name=self.bucket_name,
              object_name=self.object_name,
              filename=f.name,
          )
          f.flush()
          hook.upload_line_items(line_items=line_items)
  
imports: from __future__ import annotations
  import csv
  import json
  import shutil
  import tempfile
  import urllib.request
  from typing import TYPE_CHECKING, Any, Sequence
  from urllib.parse import urlsplit
  from airflow.exceptions import AirflowException
  from airflow.models import BaseOperator
  from airflow.providers.google.cloud.hooks.gcs import GCSHook
  from airflow.providers.google.marketing_platform.hooks.display_video import GoogleDisplayVideo360Hook
label_desc: Use image node_id 2 for calling the GoogleDisplayVideo360UploadLineItemsOperator obj's underlying member method code with example usage: obj.execute(context) without return types