
    'wf                     ^    d Z ddlZddlmZ ddlmZ ddlmZ  G d dej                        Zy)z8Create / interact with Google Cloud Storage connections.    N)_http)__version__)_helpersc                   t     e Zd ZdZ ej
                         ZdZd fd	Zej                  Z
	 dZ	  fdZ xZS )
Connectiona  A connection to Google Cloud Storage via the JSON REST API.

    Mutual TLS will be enabled if the "GOOGLE_API_USE_CLIENT_CERTIFICATE"
    environment variable is set to the exact string "true" (case-sensitive).

    Mutual TLS is not compatible with any API endpoint or universe domain
    override at this time. If such settings are enabled along with
    "GOOGLE_API_USE_CLIENT_CERTIFICATE", a ValueError will be raised.

    :type client: :class:`~google.cloud.storage.client.Client`
    :param client: The client that owns the current connection.

    :type client_info: :class:`~google.api_core.client_info.ClientInfo`
    :param client_info: (Optional) instance used to generate user agent.

    :type api_endpoint: str
    :param api_endpoint: (Optional) api endpoint to use.
    z#https://storage.mtls.googleapis.comc                    t         t        |   ||       |xs | j                  | _        | j
                  | _        |d u | _        t        | j                  _
        | j                  j                  d| j                  _        dt         }|| j                  j                  vr$| j                  xj                  d| dz  c_        y y )N zgcloud-python/ )superr   __init__DEFAULT_API_ENDPOINTAPI_BASE_URLDEFAULT_API_MTLS_ENDPOINTAPI_BASE_MTLS_URLALLOW_AUTO_SWITCH_TO_MTLS_URLr   _client_infoclient_library_version
user_agent)selfclientclient_infoapi_endpointagent_version	__class__s        n/home/panchajanya/Development/work/volatility3/venv/lib/python3.12/site-packages/google/cloud/storage/_http.pyr   zConnection.__init__.   s    j$(=(ED,E,E!%!?!?-9T-A*3>0 ''/+-D((6 1 1 < <<((aa,@@( =    z*{api_base_url}/storage/{api_version}{path}c                 
   |j                  dd       }t        j                         |d<   t        j                  t
        t        |   g|i |}|r	  |j                  di |}|r ||      } |       S # t        $ r Y w xY w)Nretryextra_api_info )
popr   _get_invocation_id	functoolspartialr   r   api_request"get_retry_policy_if_conditions_metAttributeError)r   argskwargsr   callr   s        r   r%   zConnection.api_requestB   s    

7D)#+#>#>#@   z4!DVtVvV@@@J6J T{v	 " s   A6 6	BB)NN)__name__
__module____qualname____doc__r   _get_default_storage_base_urlr   r   r   _API_VERSIONAPI_VERSIONAPI_URL_TEMPLATEr%   __classcell__)r   s   @r   r   r      sK    & B8AAC EA ''KFC: r   r   )	r.   r#   google.cloudr   google.cloud.storager   r   JSONConnectionr   r    r   r   <module>r7      s(    ?   , )7%% 7r   