o
    id                     @   s   d dl Z d dlZd dlmZmZmZmZ d dlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ d	ee d
eeeef  ddfddZG dd deZdeded
edefddZdS )    N)AnyOptionalDictMapping)HttpRequest   )EnvironmentVariables)
within_dac)ManagedIdentityClient)ManagedIdentityBase	client_ididentity_configreturnc                 C   sT   t  rd S | rtd|r&h d}t| |@ dkr(tdd| d S d S )Nz=client_id should not be set for cloud shell managed identity.>   Z	object_idr   Zresource_idr   z5identity_config must not contain the following keys: z, )r	   get
ValueErrorlenkeysjoin)r   r   Z
valid_keys r   ^/home/app/Keep/.python/lib/python3.10/site-packages/azure/identity/_credentials/cloud_shell.pyvalidate_client_id_and_config   s   r   c                   @   s6   e Zd Zdedee fddZd
dedefddZd	S )CloudShellCredentialkwargsr   c                 K   sT   | d}| d}t|| tj tj}|r(tdtt	|ddid|S d S )Nr   r   ZMetadatatrue)Zrequest_factorybase_headersr   )
r   r   osenvironr   ZMSI_ENDPOINTr
   	functoolspartial_get_request)selfr   r   r   urlr   r   r   
get_client   s   


zCloudShellCredential.get_client descc                 C   s
   d| S )NzECloud Shell managed identity configuration not found in environment. r   )r    r$   r   r   r   get_unavailable_message)   s   
z,CloudShellCredential.get_unavailable_messageN)r#   )	__name__
__module____qualname__r   r   r
   r"   strr%   r   r   r   r   r      s    r   r!   scopec                 C   s   t d| td|ifi |dS )NPOSTresource)data)r   dict)r!   r*   r   r   r   r   r   -   s   r   )r   r   typingr   r   r   r   Zazure.core.restr   
_constantsr   	_internalr	   Z!_internal.managed_identity_clientr
   Z_internal.managed_identity_baser   r)   r   r   r   r   r   r   r   <module>   s   &