o
    !d,                     @   s   d dl Z d dlmZ G dd deZd"ddZdd	 Zd
d Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zd d! ZdS )#    N)CLIOperationCallerc                       s   e Zd Z fddZ  ZS )PipelineDefinitionErrorc                    s(   d| }t t| | || _|| _d S )Nz!Error in pipeline definition: %s
)superr   __init__msg
definition)selfr   r   Zfull_msg	__class__ Qusr/lib/python3.10/site-packages/awscli/customizations/datapipeline/translator.pyr      s
   
z PipelineDefinitionError.__init__)__name__
__module____qualname__r   __classcell__r   r   r	   r   r      s    r      c                 C   s   t j| |dS )N)indent)jsondumps)
dictionaryr   r   r   r   dict_to_string   s   r   c                 C   s   |j }|d u r| d}|S )Nregion)r   Zget_config_variable)sessionparsed_globalsr   r   r   r   
get_region!   s   
r   c                 C   s   t | }|||| d S N)r   Z_display_response)r   Zoperation_nameresultr   Zcli_operation_callerr   r   r   display_response)   s   r   c                 C   sR   d| v rt | d| d< d| v rt| d| d< d| v r't| d| d< | S )NZpipelineObjectsobjectsZparameterObjects
parametersZparameterValuesvalues)_api_to_objects_definitionpop_api_to_parameters_definition_api_to_values_definition)r   r   r   r   api_to_definition1   s   r%   c           	   	   C   s   d| vr	t d| g }| d D ]G}z|d}W n ty)   t dt| | w d|i}|d|}||d< g }t| D ]\}}|t|| q@||d< |	| q|S )Nr   zMissing "objects" keyidzMissing "id" key of element: %snamefields)
r   r"   KeyErrorr   r   sorteditemsextend_parse_each_fieldappend)	r   Zapi_elementselementZ
element_idZ
api_objectr'   r(   keyvaluer   r   r   definition_to_api_objectsB   s,   
r2   c              	   C   s   d| vrd S g }| d D ]=}z| d}W n ty&   tdt| | w d|i}g }t| D ]\}}|t|| q3||d< |	| q|S )Nr   r&   z!Missing "id" key of parameter: %s
attributes)
r"   r)   r   r   r   r*   r+   r,   r-   r.   )r   parameter_objectsr/   Zparameter_idZparameter_objectr3   r0   r1   r   r   r   definition_to_api_parameters^   s(   r5   c                 C   s:   d| vrd S g }| d D ]}| t|| d |  q|S )Nr    )r,   _convert_single_parameter_value)r   parameter_valuesr0   r   r   r   definition_to_parameter_valuess   s   r8   c                 C   s@   g }t |tr|D ]
}|t| | q	|S |t| | |S r   )
isinstancelistr.   _convert_single_field)r0   r1   r    itemr   r   r   r-   ~   s   
r-   c                 C   s@   d| i}t |trt| dgkr|d |d< |S ||d< |S )Nr0   refrefValuestringValue)r9   dictr:   keys)r0   r1   fieldr   r   r   r;      s   r;   c                 C   sH   g }t |tr|D ]}| |d}|| q	|S | |d}|| |S )N)r&   r?   r9   r:   r.   )r0   r    r7   Z
each_valueZparameter_valuer   r   r   r6      s   



r6   c                 C   sn   g }| D ]0}|d |d d}|d D ]}|d }d|v r"|d }nd|d i}t ||| q|| q|S )	Nr&   r'   )r&   r'   r(   r0   r?   r=   r>   
_add_valuer.   )api_responseZpipeline_objectsr/   currentrB   r0   r1   r   r   r   r!      s   
r!   c                 C   sJ   g }| D ]}d|d i}|d D ]}t |d |d | q|| q|S )Nr&   r3   r0   r?   rD   )rF   r4   r/   rG   	attributer   r   r   r#      s   r#   c                 C   s&   i }| D ]}t |d |d | q|S )Nr&   r?   )rE   )rF   Zpipeline_valuesr/   r   r   r   r$      s   r$   c                 C   sL   | |vr
||| < d S t ||  tr||  | d S ||  |g}||| < d S r   rC   )r0   r1   Zcurrent_mapZconverted_listr   r   r   rE      s   rE   )r   )r   Zawscli.clidriverr   	Exceptionr   r   r   r   r%   r2   r5   r8   r-   r;   r6   r!   r#   r$   rE   r   r   r   r   <module>   s"   

	