o .&a,@sddlZddlmZGdddeZd"ddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!ZdS)#N)CLIOperationCallercseZdZfddZZS)PipelineDefinitionErrorcs(d|}tt||||_||_dS)Nz!Error in pipeline definition: %s )superr__init__msg definition)selfrrfull_msg __class__O/usr/lib/python3/dist-packages/awscli/customizations/datapipeline/translator.pyrs  z PipelineDefinitionError.__init__)__name__ __module__ __qualname__r __classcell__r r r r rsrcCstj||dS)N)indent)jsondumps) dictionaryrr r r dict_to_stringsrcCs|j}|dur |d}|S)Nregion)rget_config_variable)sessionparsed_globalsrr r r get_region!s rcCst|}||||dSN)r_display_response)roperation_nameresultrcli_operation_callerr r r display_response)sr"cCsRd|vr t|d|d<d|vrt|d|d<d|vr't|d|d<|S)NpipelineObjectsobjectsparameterObjects parametersparameterValuesvalues)_api_to_objects_definitionpop_api_to_parameters_definition_api_to_values_definition)rr r r api_to_definition1sr-c Csd|vr td|g}|dD]G}z|d}Wnty)tdt||wd|i}|d|}||d<g}t|D] \}}|t||q@||d<| |q|S)Nr$zMissing "objects" keyidzMissing "id" key of element: %snamefields) rr*KeyErrorrrsorteditemsextend_parse_each_fieldappend) r api_elementselement element_id api_objectr/r0keyvaluer r r definition_to_api_objectsBs,     r=c Csd|vrdSg}|dD]=}z|d}Wnty&tdt||wd|i}g}t|D] \}}|t||q3||d<| |q |S)Nr&r.z!Missing "id" key of parameter: %s attributes) r*r1rrrr2r3r4r5r6)rparameter_objectsr8 parameter_idparameter_objectr>r;r<r r r definition_to_api_parameters^s(   rBcCs:d|vrdSg}|dD]}|t||d|q |S)Nr()r4_convert_single_parameter_value)rparameter_valuesr;r r r definition_to_parameter_valuesss rEcCs@g}t|tr|D] }|t||q |S|t|||Sr) isinstancelistr6_convert_single_field)r;r<r(itemr r r r5~s r5cCs@d|i}t|trt|dgkr|d|d<|S||d<|S)Nr;refrefValue stringValue)rFdictrGkeys)r;r<fieldr r r rHs  rHcCsHg}t|tr|D] }||d}||q |S||d}|||S)N)r.rLrFrGr6)r;r(rD each_valueparameter_valuer r r rCs    rCcCsng}|D]0}|d|dd}|dD]}|d}d|vr"|d}nd|di}t|||q||q|S) Nr.r/)r.r/r0r;rLrJrK _add_valuer6) api_responsepipeline_objectsr8currentrOr;r<r r r r)s    r)cCsJg}|D]}d|di}|dD] }t|d|d|q||q|S)Nr.r>r;rLrS)rUr?r8rW attributer r r r+s  r+cCs&i}|D] }t|d|d|q|S)Nr.rL)rT)rUpipeline_valuesr8r r r r,sr,cCsL||vr |||<dSt||tr|||dS|||g}|||<dSrrP)r;r< current_mapconverted_listr r r rTs    rT)r)rawscli.clidriverr Exceptionrrrr"r-r=rBrEr5rHrCr)r+r,rTr r r r s"