
    "hjS                       d Z ddlZddlmc mZ ddlZddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m5Z5m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM ddlNmOZOmPZP ddlQmRZRmSZSmTZT ddlUmVZVmWZWmXZX ddlYmUZU ddlZZZdd	l[m\Z\  ej                  e^      Z_d
 Z`d Zad Zbd Zcd Zdd Zed Zfd Zgd Zhd Zid Zjd Zkd Zld Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud  Zvd! Zwd" Zxd# Zyd$ Zzd% Z{d& Z|d' Z}d( Z~d) Zd* Zd+ Zd, Zd- Zd. Zd/ Zd0 Zd1 Zd2 Zd3 Zd4 Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg ZddhZdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)u   
oss2.xml_utils
~~~~~~~~~~~~~~

XML处理相关。

主要包括两类接口：
    - parse_开头的函数：用来解析服务器端返回的XML
    - to_开头的函数：用来生成发往服务器端的XML

    N   )HSimplifiedObjectInfoSimplifiedBucketInfoPartInfoMultipartUploadInfoLifecycleRuleLifecycleExpirationCorsRuleLiveChannelInfoTargetLiveChannelInfo
LiveRecordLiveChannelVideoStatLiveChannelAudioStatOwnerAccessControlListAbortMultipartUploadStorageTransitionTaggingTaggingRuleServerSideEncryptionRuleListObjectVersionsResultObjectVersionInfoDeleteMarkerInfoBatchDeleteObjectVersionResultBucketWebsiteRoutingRule	ConditionConditionInlcudeHeaderRedirectRedirectMirrorHeadersMirrorHeadersSetREDIRECT_TYPE_MIRRORREDIRECT_TYPE_EXTERNALREDIRECT_TYPE_INTERNALREDIRECT_TYPE_ALICDN"NoncurrentVersionStorageTransitionNoncurrentVersionExpirationAsyncFetchTaskConfigurationInventoryConfigurationInventoryFilterInventoryScheduleInventoryDestinationInventoryBucketDestination InventoryServerSideEncryptionKMS InventoryServerSideEncryptionOSSLocationTransferTypeBucketReplicationProgressReplicationRule	CnameInfoCertificateInfor2   MetaQueryFileAggregationsInfoOSSTaggingInfoOSSUserMetaInfoAggregationGroupInfoAccessMonitorInfoLifecycleFilter	FilterNotFilterNotTagBucketStyleInfo
RegionInfoCallbackPolicyInfoDataRedundancyTransitionInfoListAccessPointResultAccessPointVpcConfigurationAccessPointEndpointsAccessPointInfoPublicAccessBlockConfigurationResourcePoolInfoResourcePoolBucketInfoRequesterQoSInfoQoSConfiguration)SelectJsonTypesSelectParameters)
urlunquote
to_unicode	to_string)iso8601_to_unixtimedate_to_iso8601iso8601_to_date)utils)SelectOperationClientErrorc                     | j                  |      }|t        d|z   dz   | j                  z         |j                  yt	        |j                        S )Nzparse xml: z could not be found under  )findRuntimeErrortagtextrO   )parentpathchilds      L/root/.hermes/SkillClaw/.venv/lib/python3.12/site-packages/oss2/xml_utils.py	_find_tagr_   e   sS    KKE}=4/2NNQWQ[Q[[\\zzUZZ      c                 p    | j                  |      }||S |j                  yt        |j                        S NrV   )rW   rZ   rO   )r[   r\   default_valuer]   s       r^   _find_tag_with_defaultrd   o   s7    KKE}zzUZZ  r`   c                 n    t        | |      }|dk(  ry|dk(  ryt        d|z   dz   | j                  z         )NtrueTfalseFzparse xml: value of z is not a boolean under )r_   rX   rY   )r[   r\   rZ   s      r^   
_find_boolrh   y   sE    VT"Dv~	1D8;UUX^XbXbbccr`   c                 ,    t        t        | |            S N)intr_   )r[   r\   s     r^   	_find_intrl      s    y&''r`   c                 8    t        | |      }|rt        |      S |S rj   )r_   rM   )r[   r\   url_encodednames       r^   _find_objectrp      s!    VT"D$r`   c                 x    | j                  |      D cg c]  }t        |j                        xs d c}S c c}w rb   )findallrO   rZ   )r[   rY   nodes      r^   _find_all_tagsrt      s0    39>>#3FG4Idii &B&GGGs    7c                 \    | j                  d      }|t        |j                        dk(  ryy)NEncodingTypeurlTF)rW   rO   rZ   )rootrs   s     r^   _is_url_encodingry      s,    99^$DIdii0E9r`   c                 0    t        j                  | d      S )Nzutf-8)encoding)ElementTreetostring)rx   s    r^   _node_to_stringr~      s    w77r`   c                 ,    |D ]  }t        | ||        y rj   )_add_text_child)r[   rY   entrieses       r^   _add_node_listr      s     (Q'(r`   c                 L    t        |      t        j                  | |      _        y rj   )rN   r|   
SubElementrZ   )r[   rY   rZ   s      r^   r   r      s    /9$/?K63',r`   c                 .    t        j                  | |      S rj   )r|   r   )r[   rY   s     r^   _add_node_childr      s    !!&#..r`   c                    t        j                  |      }t        |      }t        |d      | _        | j                  rt        |d|      | _        |j                  d      D ]  }d }|j                  d       t        t        |d      t        |d            }| j                  j                  t        t        |d|      t        t        |d            t        |d	      j                  d
      t        |d      t!        t        |d            t        |d      |t#        |dd                     |j                  d      D ](  }| j$                  j                  t        |d|             * | S )NIsTruncated
NextMarkerContentsr   Owner/DisplayNameOwner/IDKeyLastModifiedETag"TypeSizeStorageClassRestoreInfoCommonPrefixesPrefix)r|   
fromstringry   rh   is_truncatedrp   next_markerrr   rW   r   r_   object_listappendr   rP   striprk   rd   prefix_listresultbodyrx   rn   contents_nodeownerprefix_nodes          r^   parse_list_objectsr      sO   !!$'D"4(K$T=9F)$kJj1 g&2)M3FGS`blImnE!!"6{;	- HImV,2237mV,	-01m^4"=-F	#
 			 ||$45 T!!,{Hk"RST Mr`   c                    t        j                  |      }t        |      }t        |d      | _        | j                  rt        |d|      | _        |j                  d      D ]  }d }|j                  d       t        t        |d      t        |d            }| j                  j                  t        t        |d|      t        t        |d            t        |d	      j                  d
      t        |d      t!        t        |d            t        |d      |t#        |dd                     |j                  d      D ](  }| j$                  j                  t        |d|             * | S )Nr   NextContinuationTokenr   r   r   r   r   r   r   r   r   r   r   r   r   r   )r|   r   ry   rh   r   rp   next_continuation_tokenrr   rW   r   r_   r   r   r   rP   r   rk   rd   r   r   s          r^   parse_list_objects_v2r      sQ   !!$'D"4(K$T=9F)5d<SU`)a&j1 g&2)M3FGS`blImnE!!"6{;	- HImV,2237mV,	-01m^4"=-F	#
 			 ||$45 T!!,{Hk"RST Mr`   c                 f   t        j                  |      }|j                  d      d| _        nt	        |d      | _        | j                  rt        |d      | _        |j                  d      't        t        |dd       t        |dd             | _	        |j                  d      D ]  }| j                  j                  t        t        |d      t        |d	      t        t        |d
            t        |d      t        |d      t        |d      t        |dd       t        |dd                     | S )Nr   Fr   r   r   r   zBuckets/BucketNameLocationCreationDateExtranetEndpointIntranetEndpointr   RegionResourceGroupId)r|   r   rW   r   rh   r_   r   r   rd   r   rr   bucketsr   r   rP   )r   r   rx   bucket_nodes       r^   parse_list_bucketsr      s&   !!$'Dyy'#(}=&t\:yy%3D:MtTVlmqs}  @D  WE  F||$45 
2k6*k:.	+~ FGk#56k#56k>2";$?";0A4H	
 		
 Mr`   c                 R    t        j                  |      }t        |d      | _        | S )NUploadId)r|   r   r_   	upload_idr   r   rx   s      r^   parse_init_multipart_uploadr      s&    !!$'D z2FMr`   c                    t        j                  |      }t        |      }t        |d      | _        t        |d|      | _        t        |d      | _        |j                  d      D ]P  }| j                  j                  t        t        |d|      t        |d      t        t        |d                         R |j                  d      D ](  }| j                  j                  t        |d	|             * | S )
Nr   NextKeyMarkerNextUploadIdMarkerUploadr   r   	Initiatedr   r   )r|   r   ry   rh   r   rp   next_key_markerr_   next_upload_id_markerrr   upload_listr   r   rP   r   )r   r   rx   rn   upload_noder   s         r^   parse_list_multipart_uploadsr     s    !!$'D"4(K$T=9F)$MF#,T3G#HF ||H- !!"5e[9k:.	+{ CD#
 	 ||$45 T!!,{Hk"RST Mr`   c                 p   t        j                  |      }t        |d      | _        t	        |d      | _        |j                  d      D ]j  }| j                  j                  t        t        |d      t	        |d      j                  d      t        |d      t        t	        |d            	             l | S )
Nr   NextPartNumberMarkerPart
PartNumberr   r   r   r   )sizelast_modified)r|   r   rh   r   r_   r   rr   partsr   r   rl   r   rP   )r   r   rx   	part_nodes       r^   parse_list_partsr     s    !!$'D$T=9F"4)?@F\\&) 	Hi.i(..s39f--i	>.RS	
 	 Mr`   c           	         |s| S t        j                  |      }t        |      }|j                  d      D ]  }t	        |d|      }| j
                  j                  |       |j                  d      }d }|t        |d      }|j                  d      }d}	|t        |d      }	|j                  d      }
d}|
t        |d      }| j                  j                  t        |||	|              | S )NDeletedr   	VersionIdDeleteMarkerFDeleteMarkerVersionIdrV   )r|   r   ry   rr   rp   deleted_keysr   rW   r_   rh   delete_versionsr   )r   r   rx   rn   deleted_nodekeyversionid_node	versioniddelete_marker_nodedelete_markermarker_versionid_nodedelete_marker_versionids               r^   parse_batch_delete_objectsr   ,  s   !!$'D"4(KY/ ~<<""3'%**;7	%!,<I)..~>)&|^DM , 1 12I J"$ ,&/>U&V#%%&DS)Ubd{&|}'~* Mr`   c                 R    t        j                  |      }t        |d      | _        | S NzAccessControlList/Grantr|   r   r_   aclr   s      r^   parse_get_bucket_aclr   J  &    !!$'D4!:;FJMr`   c                 R    t        j                  |      }t        |d      | _        | S r   r   r   s      r^   parse_get_object_aclr   Q  r   r`   c                 `    t        t        j                  |      j                        | _        | S rj   )rO   r|   r   rZ   locationr   r   s     r^   parse_get_bucket_locationr   X  s$     6 6t < A ABFOMr`   c                     t        j                  |      }|j                  d      t        |d      | _        |j                  d      t        |d      | _        | S )NzLoggingEnabled/TargetBucketzLoggingEnabled/TargetPrefix)r|   r   rW   r_   target_buckettarget_prefixr   s      r^   parse_get_bucket_loggingr   ]  sW    !!$'Dyy./;(/LMyy./;(/LMMr`   c                    t        j                  |      }t        |d      | _        t        |d      | _        t        t        |dd            | _        |j                  d      t        t        |d            | _
        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d	      t        t        |d	            | _        |j                  d
      t        t        |d
            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        |j                  d      t        t        |d            | _        | S )NStorageObjectCountMultipartUploadCountr   LiveChannelCountLastModifiedTimeStandardStorageStandardObjectCountInfrequentAccessStorageInfrequentAccessRealStorageInfrequentAccessObjectCountArchiveStorageArchiveRealStorageArchiveObjectCountColdArchiveStorageColdArchiveRealStorageColdArchiveObjectCountMultipartPartCountDeleteMarkerCountDeepColdArchiveStorageDeepColdArchiveRealStorageDeepColdArchiveObjectCount)r|   r   rl   storage_size_in_bytesobject_countrk   rd   multi_part_upload_countrW   r_   live_channel_countlast_modified_timestandard_storagestandard_object_countinfrequent_access_storageinfrequent_access_real_storageinfrequent_access_object_countarchive_storagearchive_real_storagearchive_object_countcold_archive_storagecold_archive_real_storagecold_archive_object_countmultipart_part_countdelete_marker_countdeep_cold_archive_storagedeep_cold_archive_real_storagedeep_cold_archive_object_countr   s      r^   parse_get_bucket_statr  i  s   !!$'D#,T9#=F #D-8F%()?F\^_)`%aF"yy#$0$'	$8J(K$L!yy#$0$'	$8J(K$L!yy"#/"%i6G&H"Iyy&'3'*9T;P+Q'R$yy*+7+.y?X/Y+Z(yy./;03IdDa4b0c-yy./;03IdDa4b0c-yy!".!$Yt5E%F!Gyy%&2&))D:N*O&P#yy%&2&))D:N*O&P#yy%&2&))D:N*O&P#yy)*6+.y?W/X+Y(yy)*6+.y?W/X+Y(yy%&2&))D:N*O&P#yy$%1%(49L)M%N"yy)*6+.y?W/X+Y(yy-.:03IdD`4a0b-yy-.:03IdD`4a0b-Mr`   c                    t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        t        t        |d      t        |d            | _
        t        t        |d	            | _        t        |d
d       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        |j+                  d      }|	d | _        | S t/        |      | _        | S )NzBucket/NamezBucket/CreationDatezBucket/StorageClasszBucket/ExtranetEndpointzBucket/IntranetEndpointzBucket/LocationzBucket/Owner/DisplayNamezBucket/Owner/IDzBucket/AccessControlList/GrantzBucket/CommentzBucket/VersioningzBucket/DataRedundancyTypezBucket/AccessMonitorzBucket/TransferAccelerationzBucket/CrossRegionReplicationzBucket/ResourceGroupIdzBucket/ServerSideEncryptionRule)r|   r   r_   ro   creation_datestorage_classextranet_endpointintranet_endpointr   r   r   r   r   rd   commentversioning_statusdata_redundancy_typeaccess_monitortransfer_accelerationcross_region_replicationresource_group_idrW   bucket_encryption_rule_parse_bucket_encryption_info)r   r   rx   server_side_encryptions       r^   parse_get_bucket_infor(    s`   !!$'DD-0FK$T+@AF$T+@AF(/HIF(/HIF&78FO4)CDiPTVgFhiFL"9T3S#TUFJ+D2BDIFN5d<OQUVF"8?Z\`"aF249OQUVF#9$@]_c#dF &<TCbdh&iF#5d<TVZ[F!YY'HI%(,% M )FF\(]%Mr`   c                    t               }t        | d      |_        |j                  dk(  rd |_        d |_        |S | j	                  d      }||j
                  d |_        nt        |j
                        |_        | j	                  d      }||j
                  	d |_        |S t        |j
                        |_        |S )NSSEAlgorithmNoneKMSMasterKeyIDKMSDataEncryption)r   r_   sse_algorithmkms_master_keyidrW   rZ   rO   kms_data_encryption)rs   rulekmsnodekms_data_encryption_nodes       r^   r&  r&    s    #%D"47DV# $!ii()G',,. $ )',, 7#yy)<='+C+H+H+P#'  K $--E-J-J#K Kr`   c                     t        j                  |      }t        |d      | _        t	        |d      | _        |j                  d      t        |d      | _        |j                  d      t	        |d      | _        | S )NAllowEmptyRefererzRefererList/RefererAllowTruncateQueryStringzRefererBlacklist/Referer)	r|   r   rh   allow_empty_refererrt   referersrW   allow_truncate_query_stringblack_referersr   s      r^   parse_get_bucket_refererr;    sv    !!$'D!+D2E!FF$T+@AFOyy+,8-7>X-Y*yy+,8 .t5O PMr`   c                 N    t        | d      }t        | d      }t        ||      }|S )Nr   Equals)r_   r   )include_header_noder   equalsinclude_headers       r^   parse_condition_include_headerrA    s.    
'
/C*H5F+C8Nr`   c                    | j                  d      t        | d      }| j                  d      t        | d      }g }| j                  d      2| j                  d      D ]  }t	        |      }|j                  |         t        |      }|S )NKeyPrefixEqualsHttpErrorCodeReturnedEqualsIncludeHeader)rW   r_   rl   rr   rA  r   r   )condition_nodekey_prefix_equalshttp_err_code_return_equalsinclude_header_listr>  r@  	conditions          r^   parse_routing_rule_conditionrK    s    ,-9%n6GH89E&/@]&^#?+7#1#9#9/#J 	7;<OPN&&~6	7 +-HJ]^Ir`   c                 0   | y d }| j                  d      t        | d      }t        | d      }t        | d      }g }| j                  d      D ]7  }t	        |d      }t	        |d      }t        ||      }|j                  |       9 t        ||||      }	|	S )NPassAllPassRemoveSetr   Value)rW   rh   rt   rr   r_   r!   r   r    )
mirror_headers_nodepass_all	pass_listremove_listset_listset_noder   valuemirror_headers_setredirect_mirror_headerss
             r^   parse_mirror_headersr[    s    "H	*619=2F;I !4h?KH'//6 ,%((G,-c59*+	, 4HiV^_""r`   c                    d }d }d }d }d }d }d }d }d }	d }
d }d }d }d }t        | d      }| j                  d      t        | d      }|t        t        fv rW| j                  d      t        | d      }| j                  d      t        | d      }| j                  d      t        | d      }|t        t        t        fv r;| j                  d      t        | d      }| j                  d      t        | d      }n|t        k(  r| j                  d      t        | d      }| j                  d	      t        | d	      }	| j                  d
      t        | d
      }
| j                  d      t        | d      }| j                  d      t        | d      }| j                  d      t        | d      }t        | j                  d            }t        |||||||||	|
||||      }|S )NRedirectTypePassQueryStringProtocolHostNameHttpRedirectCodeReplaceKeyWithReplaceKeyPrefixWith	MirrorURLMirrorURLSlaveMirrorURLProbeMirrorPassQueryStringMirrorCheckMd5MirrorFollowRedirectMirrorHeaders)redirect_typeproto	host_namereplace_key_withreplace_key_prefix_withhttp_redirect_codepass_query_string
mirror_urlmirror_url_slavemirror_url_probemirror_pass_query_stringmirror_follow_redirectmirror_check_md5mirror_headers)
r_   rW   rh   r#   r%   rl   r$   r"   r[  r   )redirect_noderk  rq  rn  ro  rl  rm  rp  rr  rs  rt  ru  rw  rv  rx  redirects                   r^   parse_routing_rule_redirectr{    sR   M"EIJ#!N m^<M+,8&}6GH /1EFFj)5mZ8Ej)5!-<I01=!*=:L!M /1EG]^^./;(8HI45A&/?U&V# 
.	.k*6"=+>J./;(8HI./;(8HI56B'1-AX'Y$./;)-9IJ45A%/?U%V"-m.@.@.QRm5Ihx,CXj&7J`p%5Ph+ATd#13H Or`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        |j                  d      | S |j                  d      }|j                  d      D ]j  }t        |d      }t        |j                  d            }t        |j                  d            }t        |||      }| j                  j                  |       l | S )NzIndexDocument/SuffixzErrorDocument/KeyRoutingRulesr   
RuleNumberr   r   )r|   r   rd   
index_file
error_filerW   rr   rl   rK  r{  r   rulesr   )	r   r   rx   routing_rules_node	rule_noderule_numrJ  rz  r1  s	            r^   parse_get_bucket_websiter  K  s    !!$'D.t5KTRF.t5H$OFyy (>2'//> "	Y501LM	.y~~j/IJ8Y9D!" Mr`   c                 t    t        j                  |      }t        |d      | _        t        |d      | _        | S )NPlayUrls/UrlPublishUrls/Url)r|   r   r_   play_urlpublish_urlr   s      r^   parse_create_live_channelr  _  s5    !!$'Dn5FO"4):;FMr`   c                    t        j                  |      }t        |d      | _        t        |d      | _        t               }t        |d      |_        t        |d      |_        t        |d      |_        t        |d      |_	        || _
        | S )NStatusDescriptionzTarget/TypezTarget/FragDurationzTarget/FragCountzTarget/PlaylistName)r|   r   r_   statusdescriptionr   typefrag_duration
frag_countplaylist_nametarget)r   r   rx   r  s       r^   parse_get_live_channelr  h  s    !!$'DdH-FM"47F"$FD-0FK$T+@AF!$(:;F$T+@AFFMMr`   c                 J   t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        | j                  rt        |d      | _	        |j                  d      }|D ]  }t               }t        |d      |_        t        |d      |_        t        |d	      |_        t        t        |d
            |_        t        |d      |_        t        |d      |_        | j&                  j)                  |        | S )Nr   MarkerMaxKeysr   r   LiveChannelr   r  r  r   r  r  )r|   r   r_   prefixmarkerrl   max_keysrh   r   r   rr   r   ro   r  r  rP   r   r  r  channelsr   )r   r   rx   r  channeltmps         r^   parse_list_live_channelr  y  s    !!$'DdH-FMdH-FMi0FO$T=9F&t\:||M*H 	$Wf-#G];w1
/	'>0RS .9#G->?s#	$ Mr`   c                     t        | d      |_        t        | d      |_        t        | d      |_        t        | d      |_        t        | d      |_        y )NWidthHeight	FrameRate	BandwidthCodec)rl   widthheight
frame_rate	bandwidthr_   codec)
video_nodevideos     r^   parse_stat_videor    sI    J0EKZ2EL [9E
K8EOJ0EKr`   c                 j    t        | d      |_        t        | d      |_        t        | d      |_        y )Nr  
SampleRater  )rl   r  sample_rater_   r  )
audio_nodeaudios     r^   parse_stat_audior    s-    
K8EO!*l;EJ0EKr`   c                    t        j                  |      }t        |d      | _        |j	                  d      t        |d      | _        |j	                  d      t        t        |d            | _        |j	                  d      }|j	                  d      }|%t               | _	        t        || j                         |%t               | _        t        || j                         | S )Nr  
RemoteAddrConnectedTimeVideoAudio)r|   r   r_   r  rW   remote_addrrP   connected_timer   r  r  r   r  r  )r   r   rx   r  r  s        r^   parse_live_channel_statr    s    !!$'DdH-FMyy*&t\:yy!- 3IdO4T U7#J7#J+-V\\2+-V\\2Mr`   c                 4   t        j                  |      }|j                  d      }|D ]l  }t               }t	        t        |d            |_        t	        t        |d            |_        t        |d      |_        | j                  j                  |       n | S )Nr   	StartTimeEndTimer  )r|   r   rr   r   rP   r_   
start_timeend_timer  recordsr   )r   r   rx   r  recordr  s         r^   parse_live_channel_historyr    s    !!$'Dll<(G #l,Yv{-KL*9VY+GH#FL9c"# Mr`   c                 `   | y t               }| j                  d      t        | d      |_        |S | j                  d      t	        t        | d            |_        |S | j                  d      t	        t        | d            |_        |S | j                  d      t        | d      |_	        |S )NDaysDateCreatedBeforeDateExpiredObjectDeleteMarker)
r	   rW   rl   daysrR   r_   datecreated_before_daterh   expired_detete_marker)expiration_node
expirations     r^   parse_lifecycle_expirationr    s    $&JF#/#OV<
  
		f	%	1))OV*LM
  
		1	2	>)8?Tg9h)i
&  
		9	:	F+5oGb+c
(r`   c                     | y t               }| j                  d      t        | d      |_        |S | j                  d      t	        t        | d            |_        |S )Nr  r  )r   rW   rl   r  rR   r_   r  )abort_multipart_upload_nodeabort_multipart_uploads     r^   &parse_lifecycle_abort_multipart_uploadr    sv    "*13"''/;&/0KV&T# "! 
%	)	)*=	>	J5DYOjObFd 6e2!!r`   c                    g }| D ]  }t        |d      }t        |      }|j                  d      t        |d      |_        n+|j                  d      t        t        |d            |_        |j                  d      t        |d      |_        |j                  d      t        |d      |_	        |j                  d      t        |d      |_
        |j                  |        |S )Nr   )r  r  r  IsAccessTimeReturnToStdWhenVisitAllowSmallFile)r_   r   rW   rl   r  rR   r  rh   is_access_timereturn_to_std_when_visitallow_small_filer   )storage_transition_nodesstorage_transitionsstorage_transition_noder  storage_transitions        r^   #parse_lifecycle_storage_transitionsr    s   #; 7!"9>J.]K"''/;&/0G&P#$))*=>J5DYOfObFd 6e2"''7C0:;RTb0c-"''(>?K:DE\^t:u7"''(89E2<=TVf2g/""#567" r`   c                     | t        |       dk(  ry t               }| D ],  }t        |d      }t        |d      }|j                  ||       . t	        |      S )Nr   r   rQ  )lenr   r_   addr   )lifecycle_tagging_nodestagging_ruletag_noder   rX  s        r^   parse_lifecycle_object_taggingsr    sd    &#$)=L+ %%((G,e$%
 <  r`   c                 :    | y t        | d      }t        |      }|S )NNoncurrentDays)rl   r'   )version_expiration_nodenoncurrent_daysr  s      r^   "parse_lifecycle_version_expirationr    s)    & 79IJO,_=Jr`   c                 N   g }| D ]  }t        |d      }t        |d      }t        ||      }|j                  d      t	        |d      |_        |j                  d      t	        |d      |_        |j                  d      t	        |d      |_        |j                  |        |S )Nr   r  r  r  r  )	r_   rl   r&   rW   rh   r  r  r  r   ) version_storage_transition_nodesversion_storage_transitionstransition_noder  non_crurrent_daysversion_storage_transitions         r^   +parse_lifecycle_verison_storage_transitionsr    s    "$; G!/>B%o7GH%GHY[h%i"/;8B?Tb8c&5 67CBL_^tBu&? 01=:D_Vf:g&7#**+EFG '&r`   c                    t        j                  |      }t        |      }|j                  d      D ]  }t	        |j                  d            }t        |j                  d            }t        |j                  d            }t        |j                  d            }t        |j                  d            }	t        |j                  d            }
t        |j                  d            }t        t        |d	      t        |d
      t        |d      |||||	|
t        t        |dd            |      }| j                   j#                  |        | S )NRule
Expirationr   
TransitionTagr'   NoncurrentVersionTransitionFilterIDr   r  	AtimeBaser   )	r  r  r  r  taggingnoncurrent_version_expiration&noncurrent_version_sotrage_transitions
atime_basefilter)r|   r   ry   rr   r  rW   r  r  r  r  r  parse_lifecycle_filterr   r_   rk   rd   r  r   )r   r   rx   rn   r  r  r  r  r  r  r   lifecycle_filterr1  s                r^   parse_get_bucket_lifecycler  !  s>   !!$'D"4(K\\&) "	/	|0LM
!G	WmHn!oA)BSBST`Bab1)2C2CE2JK(J9>>ZwKx(y%1\]f]n]n  pM  ^N  2O.1)..2JKi&i*Y1!#9 3,I5[1)[!LM# 	D!-"0 Mr`   c                    t        j                  |      }|j                  d      D ]  }t               }t	        |d      |_        t	        |d      |_        t	        |d      |_        t	        |d      |_        |j                  d      }|t        |j                        |_        | j                  j                  |        |j                  d      t        |d      | _        | S )NCORSRuleAllowedOriginAllowedMethodAllowedHeaderExposeHeaderMaxAgeSecondsResponseVary)r|   r   rr   r
   rt   allowed_originsallowed_methodsallowed_headersexpose_headersrW   rk   rZ   max_age_secondsr  r   rh   response_vary)r   r   rx   r  r1  max_age_nodes         r^   parse_get_bucket_corsr  A  s    !!$'D\\*- "	z-iI-iI-iI,YG ~~o6##&|'8'8#9D D!" yy ,)$?Mr`   c                    t        j                  d      }| D ]^  }t        j                  |d      }t        |dt	        |j
                               t        |ddj                  |j                               ` t        |      S )NCompleteMultipartUploadr   r   r   z"{0}")	r|   Elementr   r   strpart_numberformatetagr~   )r   rx   pr   s       r^   to_complete_upload_requestr  W  sq    89D C**48		<Q]]1CD	67>>!&&+ABC
 4  r`   c                     t        j                  d      }t        |dt        |      j	                                | D ]%  }t        j
                  |d      }t        |d|       ' t        |      S )NDeleteQuietObjectr   )r|   r  r   r  lowerr   r~   )keysquiet	root_noder   object_nodes        r^   to_batch_delete_objects_requestr(  a  se    ##H-IIwE
(8(8(:; 1!,,YAUC01 9%%r`   c                 X   t        j                  d      }t        |dt        |      j	                                | j
                  }|D ]V  }t        j                  |d      }t        |d|j                         |j                  dk7  s@t        |d|j                         X t        |      S )Nr   r!  r"  r   rV   r   )
r|   r  r   r  r#  object_version_listr   r   r   r~   )objectVersionsr%  r&  objectVersionListverr'  s         r^   'to_batch_delete_objects_version_requestr.  l  s    ##H-IIwE
(8(8(:;&::  E!,,YAUCGG4==BKcmmD	E 9%%r`   c                     t        j                  d      }t        |d| j                         | j                  t        |d| j                         t        |      S )NCreateBucketConfigurationr   DataRedundancyType)r|   r  r   r  r   r~   )bucket_configrx   s     r^   to_put_bucket_configr3  }  sO    :;DD.-*E*EF))52M4V4VW4  r`   c                     t        j                  d      }| j                  rDt        j                  |d      }t	        |d| j                         t	        |d| j
                         t        |      S )NBucketLoggingStatusLoggingEnabledTargetBucketTargetPrefix)r|   r  r   r   r   r   r~   )bucket_loggingrx   logging_nodes      r^   to_put_bucket_loggingr;    s^    45D##"--d4DEnn6R6RSnn6R6RS4  r`   c                    t        j                  d      }t        |dt        | j                        j                                t        j                  |d      }| j                  D ]  }t        |d|        | j                  .t        |dt        | j                        j                                | j                  r4t        j                  |d      }| j                  D ]  }t        |d|        t        |      S )NRefererConfigurationr5  RefererListRefererr6  RefererBlacklist)r|   r  r   r  r7  r#  r   r8  r9  r:  r~   )bucket_refererrx   	list_noderblack_referer_nodes        r^   to_put_bucket_refererrE    s    56DD-s>3U3U/V/\/\/^_&&t];I$$ 1	9a01 11=8#n>h>h:i:o:o:qr$$(33D:LM.. 	>A.	1=	> 4  r`   c                 T   t        j                  d      }t        j                  |d      }t        |d| j                         t        j                  |d      }t        |d| j
                         t        | j                        dk(  rt        |      S t        j                  |d      }| j                  D ]  }t        j                  |d      }t        |d	t        |j                               t        j                  |d
      }|j                  j                  !t        |d|j                  j                         |j                  j                  *t        |dt        |j                  j                               |j                  j                  D ]F  }t        j                  |d      }	t        |	d|j                         t        |	d|j                          H |j"                  4t        j                  |d      }
t        |
d|j"                  j$                         |j"                  j&                  *t        |
dt        |j"                  j&                               |j"                  j$                  t(        t*        fv r|j"                  j,                  !t        |
d|j"                  j,                         |j"                  j.                  !t        |
d|j"                  j.                         |j"                  j0                  *t        |
dt        |j"                  j0                               |j"                  j$                  t(        t*        t2        fv rr|j"                  j4                  !t        |
d|j"                  j4                         |j"                  j6                  t        |
d|j"                  j6                         |j"                  j$                  t8        k(  s3|j"                  j:                  !t        |
d|j"                  j:                         |j"                  j<                  !t        |
d|j"                  j<                         |j"                  j>                  !t        |
d|j"                  j>                         |j"                  j@                  *t        |
dt        |j"                  j@                               |j"                  jB                  *t        |
dt        |j"                  jB                               |j"                  jD                  *t        |
dt        |j"                  jD                               |j"                  jF                  t        j                  |
d      }|j"                  jF                  jH                  4t        |dt        |j"                  jF                  jH                               |j"                  jF                  jJ                  D ]  }t        |d|        |j"                  jF                  jL                  D ]  }t        |d |        |j"                  jF                  jN                  D ]F  }t        j                  |d!      }t        |d|j                         t        |d"|jP                         H  t        |      S )#NWebsiteConfigurationIndexDocumentSuffixErrorDocumentr   r   r}  r   r~  r   rC  rD  rE  r=  r   r]  r^  r_  r`  ra  rb  rc  rd  re  rf  rg  ri  rh  rj  rM  rN  rO  rP  rQ  ))r|   r  r   r   r  r  r  r  r~   r  r  rJ  rG  rH  rI  r   r?  rz  rk  rq  r#   r%   rl  rm  rp  r$   rn  ro  r"   rr  rs  rt  ru  rv  rw  rx  rS  rT  rU  rV  rX  )bucket_websiterx   
index_node
error_node
rules_noder1  r  rF  headerr>  ry  rR  
pass_paramremove_param	set_paramrW  s                   r^   to_put_bucket_websiterS    s   56D''o>JJ.*C*CD''o>JJ~'@'@A
> A%t$$''n=J$$ FL**:}E		<T]]1CD$//	;G>>++7N,=t~~?_?_`>>55AN,IDNN>>?A nn88 	JF"-"8"8"Y/

C/6==I	J
 ==$'229jIM M>4==;V;VW}}..:/@#dmmFeFeBfg }}**/EG[.\\==&&2#M:t}}?R?RS==**6#M:t}}?V?VW==33?#M3Es4==KkKkGlm }}**/EG[]s.tt==11=#M3CT]]EcEcd==88D#M3I4==KpKpq ,,0DD==++7#M;@X@XY==11=#M3CT]]EcEcd==11=#M3CT]]EcEcd==99E#M3JCPTP]P]PvPvLwx==77C#M3I3t}}OsOsKtu==11=#M3CSIgIgEhi==//;*5*@*@P_*`'}}33<<H'(;YDMMLhLhLqLqHrs&*mm&B&B&L&L Q
'(;VZPQ(,(D(D(P(P U'(;X|TU%)]]%A%A%J%J L	#.#9#9:Mu#U'%G''9??KLGFLP 4  r`   c           	         t        j                  d      }| j                  D ]F  }t        j                  |d      }t	        |d|j
                         t	        |d|j                         t	        |d|j                         |j                  }|rt        j                  |d      }|j                  !t	        |dt        |j                               n|j                  !t	        |dt        |j                               nY|j                  !t	        |d	t        |j                               n,|j                   t	        |d
t        |j                               |j                  }|rot        j                  |d      }|j                  !t	        |dt        |j                               n,|j                   t	        |d	t        |j                               |j                   }|rI|D ]C  }	t        j                  |d      }
t	        |
dt        |	j"                               |	j$                  .t	        |
dt        |	j$                        j'                                |	j(                  .t	        |
dt        |	j(                        j'                                |	j*                  .t	        |
dt        |	j*                        j'                                |	j                  "t	        |
dt        |	j                               |	j                  $t	        |
d	t        |	j                               F |j,                  }|rd|j.                  j0                  }|j.                  j0                  D ]5  }t        j                  |d      }t	        |d|       t	        |d||          7 |j2                  }|6t        j                  |d      }t	        |dt        |j4                               |j6                  }||D ]  }t        j                  |d      }t	        |dt        |j4                               t	        |dt        |j"                               |j$                  .t	        |dt        |j$                        j'                                |j(                  .t	        |dt        |j(                        j'                                |j*                  t	        |dt        |j*                        j'                                 |j8                  st        j                  |d      }|j8                  j:                  r*t	        |dt        |j8                  j:                               |j8                  j<                  r*t	        |dt        |j8                  j<                               |j8                  j>                  s|j8                  j>                  D ]  }t        j                  |d      }t	        |d|j                         |j@                  s=t        j                  |d      }t	        |d|j@                  jB                         t	        |d|j@                  jD                          I tG        |      S )NLifecycleConfigurationr  r  r   r  r  r  r  r  r  r   r  r   r  r  r  r  r   rQ  r'   r  r  r  ObjectSizeGreaterThanObjectSizeLessThanNot)$r|   r  r  r   r   idr  r  r  r  r  r  rQ   r  r  r  r  r  r  r#  r  r  r  tag_setr  r  r  r   r  object_size_greater_thanobject_size_less_than
filter_notrY   r   rX  r~   )bucket_lifecyclerx   r1  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   %noncurrent_version_sotrage_transitionversion_transition_nodefilter_nodenot_argnot_nodes                          r^   to_put_bucket_lifecyclerd    s   78D && UN**48		41	8T[[9	8T[[9__
)44YMO*Z__9MN,9YZ//;1DoV`VtVtFuv11=1LcR\RrRrNst!%!<!<!*5*@*@Lb*c'%**6 ;VSI_IdIdEef';;G ;=P /0F0Z0Z [] #66&9 ]"*5*@*@L*Y' 7M_MmMmIno%44@#$;^SQcQrQrMsMyMyM{|%>>J#$;=SUXYk  ZE  ZE  VF  VL  VL  VN  O%66B#$;=MsSeSvSvOwO}O}O  A%**6#$;VSI[I`I`Eab';;G#$;=P$34F4Z4Z$[]] ,,"??77L33 F&11)UC%5'<3DEF
 )-(J(J%(4&1&<&<YHe&f#35EsKhKxKxGyz151\1\.1=9_ 	T5*5*@*@Li*j' 79I3Ot  PE  PE  LF  G 7Mr  NA  NA  JB  C8GGS#$;^SQv  RF  RF  NG  NM  NM  NO  P8QQ]#$;=SUXY~  ZX  ZX  VY  V_  V_  Va  b8IIU#$;=MsSx  TJ  TJ  PK  PQ  PQ  PS  T	T ;;%00HEK{{33-Dc$++JnJnFop{{00-A3t{{GhGhCij{{%%#{{55 NG*55k5IH#HhG{{#.#9#9(E#J'%I''7;;;L;LMN]UNn 4  r`   c                    t        j                  d      }| j                  D ]  }t        j                  |d      }t	        |d|j
                         t	        |d|j                         t	        |d|j                         t	        |d|j                         |j                  t        |dt        |j                                | j                  .t        |dt        | j                        j                                t        |      S )	NCORSConfigurationr  r  r	  r
  r  r  r  )r|   r  r  r   r   r  r  r  r  r  r   r  r  r#  r~   )bucket_corsrx   r1  r  s       r^   to_put_bucket_corsrh  ^  s    23D!! S**4<	y/43G3GHy/43G3GHy/43G3GHy.$2E2EF+ID<P<P8QRS   ,nc+2K2K.L.R.R.TU4  r`   c                    t        j                  d      }t        |d| j                         t        |d| j                         t        |d      }t        |d| j                  j                         t        |dt        | j                  j                               t        |dt        | j                  j                               t        |dt        | j                  j                               t        |      S )	NLiveChannelConfigurationr  r  Targetr   FragDuration	FragCountPlaylistName)r|   r  r   r  r  r   r  r  r  r  r  r  r~   )live_channelrx   target_nodes      r^   to_create_live_channelrq  p  s    9:DD-)A)ABD(L$7$78!$1KK)<)<)A)ABK\5H5H5V5V1WXKc,2E2E2P2P.QRK\5H5H5V5V1WX4  r`   c                 >    |d|v rt        | |      S t        | |      S )N	Json_Type)to_select_json_objectto_select_csv_object)sqlselect_paramss     r^   to_select_objectrx  ~  s)    !k]&B$S-88#C77r`   c           
      
   t        j                  d      }t        |dt        j                  t
        j                  |                    t        j                  |d      }t        j                  |d      }t        j                  |d      }t        j                  |d      }t        j                  |d      }|t        |      S |j                         D ]h  \  }}	t        j                  |k(  rt        |d|	       (t        j                  |k(  rBt        |t        j                  t        j                  t
        j                  |	                   }t        j                  |k(  rBt        |t        j                  t        j                  t
        j                  |	                   t        j                  |k(  rCt        |t        j                  t        j                  t
        j                  |	                   (t        j                  |k(  rCt        |t        j                  t        j                  t
        j                  |	                   ~t        j                   |k(  rCt        |t        j                  t        j                  t
        j                  |	                   t        j"                  |k(  rCt        |t        j"                  t        j                  t
        j                  |	                   *t        j$                  |k(  r"t        |dt'        j(                  |	             _t        j*                  |k(  r"t        |dt'        j,                  |	             t        j.                  |k(  r&t        |t        j.                  t        |	             t        j0                  |k(  r&t        |t        j0                  t        |	             t        j2                  |k(  r&t        |t        j2                  t        |	             ?t        j4                  |k(  r&t        |t        j4                  t        |	             xt        j6                  |k(  r&t        |t        j6                  t        |	             t        j8                  |k(  r&t        |t        j8                  t        |	             t        j:                  |k(  r&t        |t        j:                  t        |	             #t        j<                  |k(  r&t        |t        j<                  t        |	             \t?        d	|z   d
       t        |      S )NSelectRequest
ExpressionInputSerializationOutputSerializationCSVOptionsFileHeaderInfoRange+The select_params contains unsupported key rV   ) r|   r  r   base64	b64encoder  encoder   r~   itemsrL   CsvHeaderInfoCommentCharacterRecordDelimiterOutputRecordDelimiterFieldDelimiterOutputFieldDelimiterQuoteCharacter
SplitRangerS   _make_split_range_string	LineRange_make_line_range_stringCompressionTypeKeepAllColumnsOutputRawDataEnablePayloadCrcOutputHeaderSkipPartialDataRecordMaxSkippedRecordsAllowedAllowQuotedRecordDelimiterrT   )
rv  rw  rx   	input_ser
output_sercsvout_csvoptionsr   rX  s
             r^   ru  ru    s   /DD,(8(8C(IJ&&t-ABI''.CDJ

 
 E
2C$$Z7G$$T95Gt$$#))+ $f
U))S0C!159..#5C!1!B!BFDTDTUXU_U_`eUfDgh--4C!1!A!A6CSCSTWT^T^_dTeCfg33s:G%5%E%EvGWGWX[XbXbchXiGjk,,3C!1!@!@&BRBRSVS]S]^cSdBef22c9G%5%D%DfFVFVWZWaWabgWhFij,,3C!1!@!@&BRBRSVS]S]^cSdBef((C/C%*H*H*OP''3.C%*G*G*NO--4I'7'G'GUT,,3J(8(G(GUT++s2J(8(F(FE
S..#5J(8(I(I3u:V**c1J(8(E(Es5zR33s:G%5%K%KSQVZX66#=G%5%N%NPSTYPZ[88C?C!1!L!LcRWjY,-Z]`-`bdeeI$fL 4  r`   c           
         t        j                  d      }t        |dt        j                  t
        j                  |                    t        j                  |d      }t        j                  |d      }t        j                  |d      }t        j                  |d      }t        j                  |d      }|t        j                     t        j                  k(  }t        |d|t        j                            |j                         D ];  \  }	}
t        j                  |	k(  r&|dk(  r!t        |d	t        j                  |
             @t        j                   |	k(  r&|dk(  r!t        |d	t        j"                  |
             yt        j$                  |	k(  rt        |t        j$                  |
       t        j&                  |	k(  r%t        |t        j&                  t        |
             t        j(                  |	k(  r&t        |t        j(                  t        |
             t        j*                  |	k(  rCt        |t        j,                  t        j                  t
        j                  |
                   ot        j.                  |	k(  r&t        |t        j.                  t        |
             t        j0                  |	k(  r&t        |t        j0                  t        |
             t        j2                  |	k(  r&t        |t        j2                  t        |
             |	t        j                  k7  s/t5        d
|	z   d       t7        |      S )Nrz  r{  r|  r}  JSONr  r   Fr  r  rV   )r|   r  r   r  r  r  r  r   rL   rs  rK   DOCUMENTr  r  rS   r  r  r  r  r  r  r  r  r  r  ParseJsonNumberAsStringrT   r~   )rv  rw  rx   r  r  jsonout_jsonr  is_docr   rX  s              r^   rt  rt    s~   /DD,(8(8C(IJ&&t-ABI''.CDJ!!)V4D%%j&9H$$T95G+556/:R:RRFD&-0@0J0J"KL#))+ j
U&&#-&E/D'5+I+I%+PQ''3.6U?D'5+H+H+OP--4I'7'G'GO++s2J(8(F(FE
S..#5J(8(I(I3u:V33s:H&6&F&FHXHXY\YcYcdiYjHkl33s:G%5%K%KSQVZX66#=G%5%N%NPSTYPZ[55<D"2"J"JCPUJW&00001^ad1dfhii+j. 4  r`   c                     | Mt         j                  | v r;| t         j                     t        j                  k7  rt	        dd      t        |       S t        |       S )Nz/Json_Type can only be 'LINES' for creating metarV   )rL   rs  rK   LINESrT   to_get_select_json_object_metato_get_select_csv_object_meta)
meta_params    r^   to_get_select_object_metar    sU    "2"<"<
"J&001_5J5JJ,-^`bcc1*==,Z88r`   c           
          t        j                  d      }t        j                  |d      }t        j                  |d      }| t        |      S | j	                         D ]  \  }}t
        j                  |k(  rBt        |t
        j                  t        j                  t        j                  |                   \t
        j                  |k(  rBt        |t
        j                  t        j                  t        j                  |                   t
        j                  |k(  rCt        |t
        j                  t        j                  t        j                  |                   t
        j                  |k(  rCt        |t
        j                  t        j                  t        j                  |                   ]t
        j                  |k(  r&t        |t
        j                  t        |             t!        d|z   d       t        |      S )NCsvMetaRequestr|  r~  z,The csv_meta_param contains unsupported key rV   )r|   r  r   r~   r  rL   r  r   r  r  r  r  r  r  r  OverwriteIfExistsrT   )csv_meta_paramrx   r  r  r   rX  s         r^   r  r    s   /0D&&t-ABI

 
 E
2Ct$$$**, f
U++s2C!1!A!A6CSCSTWT^T^_dTeCfg,,3C!1!@!@&BRBRSVS]S]^cSdBef,,3C!1!@!@&BRBRSVS]S]^cSdBef--4I'7'G'GIYIYZ]ZdZdejZkIlm//36D"2"D"Dc%jQ+,Z]`,`bdeef 4  r`   c           
      d   t        j                  d      }t        j                  |d      }t        j                  |d      }t        |d| t        j
                            | j                         D ]  \  }}t        j                  |k(  r%t        |t        j                  t        |             >t        j                  |k(  rBt        |t        j                  t        j                  t        j                  |                   t        j
                  |k7  st        d|z   d       t        |      S )NJsonMetaRequestr|  r  r   z-The json_meta_param contains unsupported key rV   )r|   r  r   r   rL   rs  r  r  r  r  r  r  r  rT   r~   )json_meta_paramrx   r  r  r   rX  s         r^   r  r    s    01D&&t-ABI!!)V4DD&/2B2L2L"MN%++- l
U--4D"2"D"Dc%jQ--4Y(8(H(H&JZJZ[^[e[efk[lJmn))S001`cf1fhjkkl 4  r`   c                 2   t        j                  d      }t        j                  |d      }| j                  j                  D ]I  }t        j                  |d      }t        |d|       t        |d| j                  j                  |          K t        |      S )Nr   TagSetr  r   rQ  )r|   r  r   rZ  r  r   r~   )object_taggingrx   rZ  itemtag_xmls        r^   to_put_taggingr    s    y)D$$T84G&&33 U((%8-.*@*@*M*Md*STU
 4  r`   c                    t        j                  |      }t        |      }|j                  d      }|| S t	               }|j                  d      D ].  }t        |d|      }t        |d|      }|j                  ||       0 || _        | S )Nr  r  r   rQ  )	r|   r   ry   rW   r   rr   rp   r  rZ  )	r   r   rx   rn   tagset_nodetagging_rulesr  r   rX  s	            r^   parse_get_taggingr    s    !!$'D"4(K))H%KMM''. &8UK8Xw<#u%&
 #FNMr`   c                 (   t        j                  d      }t        j                  |d      }t        |d| j                         | j
                  rt        |d| j
                         | j                  rt        |d| j                         t        |      S )Nr   "ApplyServerSideEncryptionByDefaultr*  r,  r-  )r|   r  r   r   r.  r/  r0  r~   )r1  rx   
apply_nodes      r^   to_put_bucket_encryptionr  )  s{    9:D''.RSJJ0B0BC
$4d6K6KL
$79Q9QR4  r`   c                 z   t        j                  |      }|j                  d      }t        |d      | _        |j                  d      }||j
                  d | _        nt        |j
                        | _        |j                  d      }||j
                  	d | _        | S t        |j
                        | _        | S )Nr  r*  r,  r-  )	r|   r   rW   r_   r.  rZ   r/  rO   r0  )r   r   rx   r  r2  r3  s         r^   parse_get_bucket_encryptionr  7  s    !!$'D?@J$Z@Foo./G',,."&"+GLL"9)/BC'+C+H+H+P%)" M &//G/L/L%M"Mr`   c                    t        j                  |      }t        |      }t        |d      | _        | j                  r$t        |d|      | _        t        |d|      | _        t        |d      | _	        t        |d|      | _
        t        |d|      | _        t        |d|      | _        t        |d      | _        t        |d	|      | _        |j!                  d
      D ]  }t#               }t        |d|      |_        t        |d      |_        t        |d      |_        t+        t        |d            |_        t        |d      |j.                  _        t        |d      |j.                  _        | j4                  j7                  |        |j!                  d      D ]  }t9               }t        |d|      |_        t        |d      |_        t        |d      |_        t+        t        |d            |_        t        |d      |j.                  _        t        |d      |j.                  _        t        |d      |_        t        |d      |_        t        |d      |_        t        |d      jA                  d      |_!        tE        |dd       |_#        | jH                  j7                  |        |j!                  d      D ](  }| jJ                  j7                  t        |d|             * | S )Nr   r   NextVersionIdMarkerr   r   	KeyMarkerVersionIdMarkerr  	Delimiterr   r   r   IsLatestr   r   r   Versionr   r   r   r   r   r   r   )&r|   r   ry   rh   r   rp   r   next_versionid_markerr_   ro   r  
key_markerversionid_markerrl   r  	delimiterrr   r   r   r   	is_latestrP   r   r   rY  display_namer   r   r   r  r  r   r   r  rd   restore_infoversionscommon_prefix)	r   r   rx   rn   r   
deleteInfoversionversionInfor  s	            r^   parse_list_object_versionsr  K  s   !!$'D"4(K$T=9F!-dO[!Q'3D:OQ\']$D&)FK x=FM$T;DF*41BKPFi0FO#D+{CFn5 0%'
%mUKH
(D
)-D
#6yP^7_#`
 'zB
(1-AT(U
%##J/0 <<	* ,')&w{C )'; ? *7J ?$7	'>8Z$[!(*=)27<O)P&$Wf5$-g~$F!$Wf5$Wf5;;C@#9'=RV#W {+,  &67 X##L+$VWX Mr`   c                     t        j                  d      }t        |dt        | j                               t        |      S )NVersioningConfigurationr  )r|   r  r   r  r  r~   )bucket_version_configrx   s     r^   to_put_bucket_versioningr  y  s6    89DD(C(=(D(D$EF4  r`   c                     t        j                  |      }|j                  d      }|	d | _        | S t	        |d      | _        | S Nr  )r|   r   rW   r  r_   )r   r   rx   status_nodes       r^   parse_get_bucket_versioningr    sI    !!$'D))H%K M "$1Mr`   c                 \    t        j                  d      }t        |d|        t        |      S )NRequestPaymentConfigurationPayerr|   r  r   r~   )payerrx   s     r^   to_put_bucket_request_paymentr    s*    <=DD'5)4  r`   c                 R    t        j                  |      }t        |d      | _        | S )Nr  )r|   r   r_   r  r   s      r^    parse_get_bucket_request_paymentr    s%    !!$'DT7+FLMr`   c                 Z   t        j                  d      }| j                   t        |dt	        | j                               | j
                   t        |dt	        | j
                               | j                   t        |dt	        | j                               | j                   t        |dt	        | j                               | j                   t        |dt	        | j                               | j                   t        |dt	        | j                               | j                   t        |dt	        | j                               | j                   t        |d	t	        | j                               | j                   t        |d
t	        | j                               t        |      S )NrJ   TotalUploadBandwidthIntranetUploadBandwidthExtranetUploadBandwidthTotalDownloadBandwidthIntranetDownloadBandwidthExtranetDownloadBandwidthTotalQpsIntranetQpsExtranetQps)r|   r  total_upload_bwr   r  intranet_upload_bwextranet_upload_bwtotal_download_bwintranet_download_bwextranet_download_bw	total_qpsintranet_qpsextranet_qpsr~   )qos_inforx   s     r^   to_put_qos_infor    s_   12D+4c(:R:R6ST"".7X=X=X9YZ"".7X=X=X9YZ!!-6H<V<V8WX$$093x?\?\;]^$$093x?\?\;]^%j#h.@.@*AB(mS1F1F-GH(mS1F1F-GH4  r`   c                    t        j                  |      }t        | d      rt        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _	        t        |d      | _
        t        |d      | _        t        |d	      | _        t        |d
      | _        t        |d      | _        | S )uk   解析UserQosInfo 或者BucketQosInfo

    :UserQosInfo包含成员region,其他成员同BucketQosInfo
    regionr   r  r  r  r  r  r  r  r  r  )r|   r   hasattrr_   r  rl   r  r  r  r  r  r  r  r  r  r   s      r^   parse_get_qos_infor    s    
 !!$'Dvx !$1&t-CDF )$0I JF )$0I JF(/GHF"+D2M"NF"+D2M"NF z2F#D-8F#D-8FMr`   c                 R    t        j                  |      }t        |d      | _        | S )NStorageCapacity)r|   r   rl   storage_capacityr   s      r^   parse_get_bucket_user_qosr    s'    !!$'D'.?@FMr`   c                     t        j                  d      }t        |dt        | j                               t        |      S )NBucketUserQosr  )r|   r  r   r  r  r~   )user_qosrx   s     r^   to_put_bucket_user_qosr    s5    /DD+S1J1J-KL4  r`   c                 X   t        j                  d      }t        |d| j                         t        |d| j                         | j
                  t        |d| j
                         | j                  t        |d| j                         | j                  t        |d| j                         | j                  .t        |dt        | j                        j                                | j                  .t        |dt        | j                        j                                t        |      S )	Nr(   Urlr"  Host
ContentMD5CallbackIgnoreSameKeyCallbackWhenFailed)r|   r  r   rw   object_namehostcontent_md5callbackignore_same_keyr  r#  callback_when_failedr~   )task_configrx   s     r^   to_put_async_fetch_taskr    s    <=DD%1D(K$;$;<#fk&6&67*lK,C,CD'j+*>*>?"".os;3N3N/O/U/U/WX''32C8X8X4Y4_4_4ab4  r`   c                 R    t        j                  |      }t        |d      | _        | S NTaskId)r|   r   r_   task_idr   s      r^   !parse_put_async_fetch_task_resultr    s%    !!$'DtX.FNMr`   c                     t        | d      }t        | d      }t        | d      }t        | d      }t        | d      }t        | d      }t        ||||||      S )Nr	  r"  r
  r  r  r  )r_   rh   r(   )task_info_noderw   r  r  r  r  r  s          r^   %_parse_async_fetch_task_configurationr    s`    
NE
*CNH5K^V,DNL9K4H AO&sK{HVeffr`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |j                  d            | _        | S )Nr  StateErrorMsgTaskInfo)	r|   r   r_   r  
task_state	error_msgr  rW   r  r   s      r^   !parse_get_async_fetch_task_resultr%    sY    !!$'DtX.FN!$0F z2F>tyy?TUFMr`   c                    t        j                  d      }t        |d| j                         | j                   t        |dt        | j                               | j                  t        |d| j                         | j                  t        j                  |d      }| j                  j                  !t        |d| j                  j                         | j                  j                  *t        |dt        | j                  j                               | j                  j                  *t        |dt        | j                  j                               | j                  j                  *t        |d	t        | j                  j                               | j                  j                  *t        |d
t        | j                  j                               | j                  j                  !t        |d| j                  j                         | j                  M| j                  j                   7t        j                  |d      }t        |d| j                  j                          | j"                  4t        j                  |d      }| j"                  D ]  }t        |d|        | j$                  | j$                  j&                  t        j                  |d      }t        j                  |d      }| j$                  j&                  }|j(                   t        |dt        |j(                               |j*                  t        |d|j*                         |j,                  t        |dd|j,                  z          |j.                  t        |d|j.                         |j                  t        |d|j                         |j0                  Xt        j                  |d      }	t        j                  |	d      }
t        |
d|j0                  j2                         t9        |      S |j4                  "t        j                  |d      }	t7        |	d       t9        |      S )Nr)   Id	IsEnabledIncludedObjectVersionsr  r   LastModifyBeginTimeStampLastModifyEndTimeStampLowerSizeBoundUpperSizeBoundr   Schedule	FrequencyOptionalFieldsFieldDestinationOSSBucketDestination	AccountIdRoleArnBucket
acs:oss:::Format
EncryptionzSSE-KMSKeyIdzSSE-OSS)r|   r  r   inventory_id
is_enabledr  included_object_versionsinventory_filterr   r  last_modify_begin_time_stamplast_modify_end_time_stamplower_size_boundupper_size_boundr  inventory_schedule	frequencyoptional_fieldsinventory_destinationbucket_destination
account_idrole_arnbucketinventory_formatsse_kms_encryptionkey_idsse_oss_encryptionr   r~   )inventory_configrx   ra  schedule_nodefields_nodefielddestin_nodebucket_destin_nodebucket_destinencryption_nodesse_kms_nodes              r^   to_put_inventory_configurationrX    s   78DD$ 0 = =>"".k3/?/J/J+KL00<68H8a8ab((4!,,T8<,,33?K3C3T3T3[3[\,,IIUK)CSIYIjIj  JH  JH  FI  J,,GGSK)A3GWGhGh  HD  HD  DE  F,,==IK)93?O?`?`?q?q;rs,,==IK)93?O?`?`?q?q;rs,,::FK9I9Z9Z9h9hi**6;K;^;^;h;h;t#..tZ@{4D4W4W4a4ab''3!,,T3CD%55 	9EK%8	9 --9>N>d>d>w>w  ?D!,,T=A(33KAWX(>>QQ##/.SAYAY=Z[!!-.	=;Q;QR+.,I]I]:]^))5.-:X:XY+.-:N:NO++7*556H,WO'22?INLL'=3S3S3Z3Z[
 4  	 --9*556H,WOOY74  r`   c           	      ^   | }t               }t        |d      |_        t        |d      |_        t        |d      |_        |j                  d      d }d }d }d }d }d }|j                  d      t        |d      }|j                  d      t        |dd       }|j                  d      t        |dd       }|j                  d      t        |dd       }|j                  d	      t        |d	d       }|j                  d
      t        |d
d       }t        ||||||      |_	        |j                  d      t        t        |d            |_        t        |d      |_        |j                  d      9|j                  d      }	d }
d }d }d }d }d }d }|	j                  d      t        |	d      }
|	j                  d      t        |	d      }|	j                  d      /t        |	d      }|j                  d      r|j                  dd      }|	j                  d      t        |	d      }|	j                  d      t        |	d      }|	j                  d      }|t!        t        |d            }n|	j                  d      
t#               }t%        |
||||||      }t'        |      |_        |S )Nr'  r(  r)  r  zFilter/PrefixzFilter/LastModifyBeginTimeStampzFilter/LastModifyEndTimeStampzFilter/LowerSizeBoundzFilter/UpperSizeBoundzFilter/StorageClass)r  r?  r@  rA  rB  r  zSchedule/FrequencyzOptionalFields/Fieldz Destination/OSSBucketDestinationr4  r5  r6  r7  rV   r8  r   zEncryption/SSE-KMSr:  zEncryption/SSE-OSS)rH  rI  rJ  rK  r  rL  rN  )r)   r_   r;  rh   r<  r=  rW   rd   r*   r>  r+   rC  rt   rE  
startswithreplacer.   r/   r-   r,   rF  )elemrx   r   r  r?  r@  rA  rB  r  bucket_distin_noderH  rI  rJ  rK  rL  rN  origin_bucketrW  rG  s                      r^   (get_Inventory_configuration_from_elementr_  D  s   D#%F#D$/F"45F&/6N&OF#yy&'+$%)"99_%1t_5F9967C+A$Hiko+p(9945A)?Fegk)l&99,-95d<SUYZ99,-95d<SUYZ99*+7249NPTUM"1^zMg  {KCScp#r yy%&2$5iFZ6[$\!,T3IJFyy34@!YY'IJ
!!"";/;"#5{CJ""9-9 !3Y?H""8,8%&8(CM''5&..|R@""8,8();XF""8,818<F)../CD#!A)LZaBb!c$$%9:F!A!C7:X`0@#5J\^ (<<N'O$Mr`   c                 4   t        j                  |      }t        |      }|j                  | _        |j                  | _        |j
                  | _        |j                  | _        |j                  | _        |j                  | _        |j                  | _	        | S rj   )
r|   r   r_  r;  r<  r=  r>  rC  rE  rF  )r   r   rx   rO  s       r^   (parse_get_bucket_inventory_configurationra    s    !!$'D?E*77F(33F&6&O&OF#.??F 0 C CF-==F#3#I#IF Mr`   c                 t   t        j                  |      }|j                  d      D ](  }t        |      }| j                  j                  |       * |j                  d      t        |d      | _        |j                  d      t        |d      | _
        |j                  d      t        |d      | _        | S )Nr)   ContinuationTokenr   r   )r|   r   rr   r_  inventory_configurationsr   rW   r_   continuaiton_tokenrh   r   r   )r   r   rx   inventory_config_noderO  s        r^   *parse_list_bucket_inventory_configurationsrg    s    !!$'D!%.F!G ACDYZ''../?@A yy$%1$-d4G$H!yy+(}=yy()5)249P)Q&Mr`   c                 $   t        j                  d      }t        |dt        | j                               | j
                  E| j
                  }t        j                  |d      }|j                  t        |d|j                         t        |      S )NRestoreRequestr  JobParametersTier)	r|   r  r   r  r  job_parametersr   tierr~   )restore_configrx   rl  job_parameters_nodes       r^   to_put_restore_configrp    s~    /0DD&#n&9&9":;$$0'66)44T?K*/9L9LM4  r`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        y )NWormIdr   RetentionPeriodInDaysr   )r|   r   r_   worm_idstaterl   retention_period_daysr  r   s      r^   parse_get_bucket_worm_resultrw    sM    !!$'DtX.FNT7+FL#,T3J#KF $T>:Fr`   c                 n    t        j                  d      }t        |dt        |              t	        |      S )NExtendWormConfigurationrs  r|   r  r   r  r~   rv  rx   s     r^   to_put_extend_bucket_wormr|    s1    89DD137L3MN4  r`   c                 n    t        j                  d      }t        |dt        |              t	        |      S )NInitiateWormConfigurationrs  rz  r{  s     r^   to_put_init_bucket_wormr    s1    :;DD137L3MN4  r`   c                 $   t        j                  d      }t        j                  |d      }| j                  rt	        |d| j                         t        j                  |d      }t	        |d| j
                         t	        |d| j                         | j                  rt	        |d| j                         | j                  du rt	        |d	d
       nt	        |d	d       | j                  r4t        j                  |d      }| j                  D ]  }t	        |d|        | j                  r/d}| j                  D ]  }||z  }|dz  } |d d }t	        |d|       | j                  rt	        |d| j                         | j                  r-t        j                  |d      }t	        |d| j                         | j                  dv rCt        j                  |d      }	t        j                  |	d      }
t	        |
d| j                         t        |      S )NReplicationConfigurationr  r  r2  r6  r   TransferTypeFHistoricalObjectReplicationdisabledenabled	PrefixSetr   rV   ,ActionSyncRoleEncryptionConfigurationReplicaKmsKeyID)EnabledDisabledSourceSelectionCriteriaSseKmsEncryptedObjectsr  )r|   r  r   rule_idr   target_bucket_nametarget_bucket_locationtarget_transfer_type'is_enable_historical_object_replicationr   action_listsync_role_namereplica_kms_keyid sse_kms_encrypted_objects_statusr~   )replication_configrx   r1  destinationprefix_list_noder  actionsactionencryption_configcriteriasse_kms_encrypted_objectss              r^   to_put_bucket_replicationr    s   9:D!!$/D!!d$6$>$>?((}=KK+=+P+PQK-?-V-VW..^5G5\5\]AAUJ;ZH;YG%%&11$D(44 	@F,h?	@ %%(44 	FvGsNG	 #2,h0((j*<*K*KL++'2249RS)+<>P>b>bc::>UU))$0IJ$/$:$:8E]$^!18=O=p=pq4  r`   c                 \    t        j                  d      }t        |d|        t        |      S )NReplicationRulesr  r  )r  rx   s     r^   to_delete_bucket_replicationr    s*    12DD$(4  r`   c                    t        j                  |      }|j                  d      D ]`  }t               }|j	                  d      t        |d      |_        |j	                  d      }t        |dd       |_        t        |dd       |_	        t        |dd       |_
        t        |dd       |_        t        |dd       |_        t        |d	      |_        t        |d
d       |_        t        |dd       |_        t        |dd       |_        t        |d      dk(  rd|_        nd|_        |j	                  d      }|t%        |d      |_        t        |d      }|j)                  d      |_        | j,                  j/                  |       c y )Nr  r  r2  r6  r   r  CloudCloudLocationr  r  z'EncryptionConfiguration/ReplicaKmsKeyIDz5SourceSelectionCriteria/SseKmsEncryptedObjects/Statusr  r  TFr  r   r  r  )r|   r   rr   r2   rW   r_   r  rd   r  r  r  target_cloudtarget_cloud_locationr  r  r  r  r  rt   r   splitr  	rule_listr   )r   r   rx   r  r1  destination_nodeprefixes_noder  s           r^   #parse_get_bucket_replication_resultr    s   !!$'D\\&) &	 >>$+$Y5DL$>>-8"89I8UY"Z&<=Mz[_&`#$:;K^]a$b!23CWdS%;<Lo_c%d"	844Y
DQ!7	Clnr!s0Fy  SJ  LP  1Q-Y =>)K;?D8;@D8!{3$-mXFDIx0"==-%;&r`   c                 T   t        j                  |      }t        |d      | _        |j	                  d      q|j	                  d      }|j                  d      D ]K  }t               }t        |dd       |_        t        |dd       |_	        | j                  j                  |       M y y )Nr   LocationTransferTypeConstraintr0   zTransferTypes/Type)r|   r   rt   location_listrW   rr   r0   rd   r   transfer_typelocation_transfer_type_listr   )r   r   rx   constraint_nodetransfer_type_nodelocation_transfer_types         r^   ,parse_get_bucket_replication_location_resultr  !  s    !!$'D)$
;Fyy12>))$DE"1"9"9:P"Q 	N%9%;".DEWYcei.j"+3IJ\^rtx3y"0..556LM		N ?r`   c                 j   t        j                  |      }|j                  d      }t               }t	        |d      |_        |j                  d      }t	        |d      |_        t	        |d      |_        t        |dd       |_	        t	        |d      |_
        t	        |d      d	k(  rd
|_        nd|_        |j                  d      }|t        |d      |_        t	        |d      }|j                  d      |_        t        |dd       }|t!        |      |_        t        |dd       |_        || _        y )Nr  r  r2  r6  r   r  r  r  r  TFr  r   r  r  zProgress/HistoricalObjectzProgress/NewObject)r|   r   rW   r1   r_   r  r  r  rd   r  r  r  rt   r   r  r  floathistorical_object_progressnew_object_progressprogress)	r   r   rx   r  r  r  r  r  r  s	            r^   ,parse_get_bucket_replication_progress_resultr  -  s&   !!$'D		&!I(*H D1H ~~m4"+,<h"GH&/0@*&MH#$:;K^]a$bH!	84HO9:iG;?8;@8NN;/M -mXF	8,G"==-H!7	C^`d!e!-.34N.O+#9)EY[_#`H FOr`   c                 n    t        j                  d      }t        |dt        |              t	        |      S )N!TransferAccelerationConfigurationr  rz  r  rx   s     r^   #to_put_bucket_transfer_accelerationr  O  s.    BCDD)S\24  r`   c                 P    t        j                  |      }t        |d      | _        y Nr  )r|   r   r_   r  r   s      r^   -parse_get_bucket_transfer_acceleration_resultr  U  s     !!$'DtY/FNr`   c                    t        j                  d      }t        j                  |d      }t        |d|        |t        j                  |d      }|j                  t        |d|j                         |j
                  t        |d|j
                         |j                  t        |d|j                         |j                  t        |d|j                         |j                   t        |d	t        |j                               |j                   t        |d
t        |j                               t        |      S )NBucketCnameConfigurationCnameDomainCertificateConfigurationCertIdCertificate
PrivateKeyPreviousCertIdForceDeleteCertificate)r|   r  r   r   cert_idcertificateprivate_keyprevious_cert_idforcer  delete_certificater~   )domaincertrx   cnamer  s        r^   to_bucket_cname_configurationr  Z  s   9:D""41EE8V,!,,U4NO<<#K4<<@'K8H8HI'Kd6F6FG  ,K)94;P;PQ::!K#djj/B"".K)<c$BYBY>Z[4  r`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        y Nr6  r  Token
ExpireTimer|   r   r_   rJ  r  tokenexpire_timer   s      r^   parse_create_bucket_cname_tokenr  o  K    !!$'DdH-FMT7+FLT7+FL"46Fr`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        y r  r  r   s      r^   parse_get_bucket_cname_tokenr  w  r  r`   c                    t        j                  |      }t        |d      | _        t        |d      | _        |j                  d      D ]  }t               }t        |dd       |_        t        |dd       |_	        t        |dd       |_
        t        |dd       |_        |j                  d      }|t               }t        |d	d       |_        t        |d
d       |_        t        |dd       |_
        t        |dd       |_        t        |dd       |_        t        |dd       |_        t        |dd       |_        ||_        | j*                  j-                  |        y )Nr6  r   r  r  r   r  IsPurgeCdnCacher  r   r  r   FingerprintValidStartDateValidEndDate)r|   r   r_   rJ  r   rr   r3   rd   r  r   r  is_purge_cdn_cacherW   r4   r  r  r  fingerprintvalid_start_datevalid_end_dater  r  r   )r   r   rx   r  r  r  r  s          r^   parse_list_bucket_cnamer    sB   !!$'DdH-FMT7+FLg& !k+E8TB
25.$O+E8TB
!7?PRV!Wzz-()+K5dFDIK"8x"NK!7h!MK(>t^UY(ZK%&<T=RV&WK#+A$HXZ^+_K()?nVZ)[K&)COC %!r`   c                    t        j                  d      }| j                  t        |d| j                         t        |d| j                         t        |d| j
                         | j                  t        |d| j                         | j                  t        |d| j                         | j                  rt        j                  |d      }| j                  D ]_  }t        j                  |d      }|j                  t        |d	|j                         |j                  It        |d
|j                         a t        |      S )N	MetaQuery	NextToken
MaxResultsQuerySortOrderAggregationsAggregationr1  	Operation)r|   r  
next_tokenr   max_resultsquerysortorderaggregationsr   rR  	operationr~   )
meta_queryrx   aggregations_nodeaggregationaggregation_nodes        r^   to_do_bucket_meta_query_requestr    s   {+D(k:+@+@AD,
(>(>?D':#3#34"fjoo6#gz'7'78'224H%22 	VK*556GW  , 0';;L;LM$$0 0+{?T?TU	V 4  r`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        y )Nr   Phase
CreateTime
UpdateTime)r|   r   r_   ru  phasecreate_timeupdate_timer   s      r^   "parse_get_bucket_meta_query_resultr    sL    !!$'DT7+FLT7+FL"46F"46Fr`   c                    t        j                  |      }t        |d      | _        |j	                  d      D ]  }t               }t        |d      |_        t        t        |dd            |_	        t        |dd       |_
        t        |dd       |_        t        |dd       |_        t        |d	d       |_        t        |d
d       |_        t        |dd       |_        t        |dd       |_        t        |dd       |_        t        t        |dd            |_        |j'                  d      `|j'                  d      j	                  d      D ]=  }t)        t        |d      t        |d            }|j*                  j-                  |       ? |j'                  d      `|j'                  d      j	                  d      D ]=  }t/        t        |d      t        |d            }|j0                  j-                  |       ? | j2                  j-                  |        |j	                  d      D ]  }	t5               }t        |	d      |_        t        |	d      |_        t;        t        |	dd            |_        |	j	                  d      D ]G  }
t?        t        |
d      t        t        |
dd                  }|j@                  j-                  |       I | jB                  j-                  |        y )Nr  z
Files/FileFilenamer   r   FileModifiedTimeFileCreateTimeFileAccessTimeOSSObjectTypeOSSStorageClass	ObjectACLr   OSSCRC64OSSTaggingCount
OSSTaggingr   r   rQ  OSSUserMetaUserMetazAggregations/Aggregationr1  r  zGroups/GroupCount)"r|   r   r_   r  rr   r5   	file_namerk   rd   r   file_modified_timefile_create_timefile_access_timeoss_object_typeoss_storage_class
object_aclr  	oss_crc64oss_tagging_countrW   r7   oss_taggingr   r8   oss_user_metafilesr6   rR  r   r  rX  r9   groupsr  )r   r   rx   filer  r  tmp_taggingmetatmp_metar  group
tmp_groupss               r^   !parse_do_bucket_meta_query_resultr/    s   !!$'D!$4F\* !o!$
3-dFA>?!7>PRV!W5d<LdS5d<LdS4T?DQ 6t=NPT U/k4H)$=.tZF #$:4ARTU$V W99\".99\2::9E 4,Yw-F	RY[bHcd&&{34 99]#/		-088D 3*9T5+A9TSZC[\!!((23 	C +!. ||$>? 	( k73	!+{;0gqIJ	 ((8 	*E-iw.GMcdikrtuMvIwxJJJj)	* 	""3'	(r`   c                     | S rj    r   s     r^   parse_dummy_resultr2    s    Mr`   c                 \    t        j                  d      }t        |d|        t        |      S )NAccessMonitorConfigurationr  r  )r  rx   s     r^   to_put_bucket_access_monitorr5    s*    ;<DD(F+4  r`   c                 f    t        j                  |      }t        t        |d            }|| _        y r  )r|   r   r:   r_   r!  )r   r   rx   r!  s       r^   &parse_get_bucket_access_monitor_resultr7    s+    !!$'D&yx'@AN*Fr`   c                    t               }| | j                  d      t        t        | dd            |_        | j                  d      t        t        | dd            |_        | j                  d      }|a|D ]\  }t        |dd       }t        |dd       }t        |dd       }t        ||      }t        ||      }|j                  j                  |       ^ |S )NrV  r   rW  rX  r   zTag/Keyz	Tag/Value)r;   rW   rk   rd   r[  r\  rr   r=   r<   r]  r   )	ra  r  	not_nodesrc  r  r   rX  rY   r]  s	            r^   r  r    s    &(34@8;<RS^`wyz<{8|501=589OP[]qst9u5v2''.	 % ?/(DI,Xy$G.xdK"3.&vs3
 ++22:>? r`   c                 \    t        j                  d      }t        |d|        t        |      S )N BucketResourceGroupConfigurationr   r  )resourceGroupIdrx   s     r^   to_put_bucket_resource_groupr=    s+    ABDD+_=4  r`   c                 P    t        j                  |      }t        |d      | _        y )Nr   )r|   r   r_   r$  r   s      r^   &parse_get_bucket_resource_group_resultr?    s"    !!$'D(/@AFr`   c                 \    t        j                  d      }t        |d|        t        |      S )NStyleContentr  )contentrx   s     r^   to_put_bucket_stylerD    s)    w'DD)W-4  r`   c                     t        j                  |      }t        |d      | _        t        |d      | _        t        |d      | _        t        |d      | _        y )Nr   rB  r  LastModifyTime)r|   r   r_   ro   rC  r  last_modify_timer   s      r^   parse_get_bucket_style_resultrH    sM    !!$'DD&)FKtY/FN"46F'.>?Fr`   c                 4   t        j                  |      }|j                  d      D ]o  }t               }t	        |dd       |_        t	        |dd       |_        t	        |dd       |_        t	        |dd       |_        | j                  j                  |       q y )NrA  r   rB  r  rF  )r|   r   rr   r>   rd   ro   rC  r  rG  stylesr   )r   r   rx   styler  s        r^   parse_list_bucket_stylerL    s    !!$'Dg& ")%>,UItD0dK5e=MtTS!"r`   c                 4   t        j                  |      }|j                  d      D ]o  }t               }t	        |dd       |_        t	        |dd       |_        t	        |dd       |_        t	        |dd       |_        | j                  j                  |       q y )Nr?   r   InternetEndpointInternalEndpointAccelerateEndpoint)r|   r   rr   r?   rd   r  internet_endpointinternal_endpointaccelerate_endpointregionsr   )r   r   rx   r  r  s        r^   parse_describe_regionsrU    s    !!$'D,,|, #l+FHdC
 6v?QSW X 6v?QSW X"8AUW["\c"#r`   c                     |r<t        j                  t        |            }|d   | _        |d   | _        |d   | _        | S )NEventId	RequestIdr  )r  loadsrN   event_idasync_request_idr  )r   r   	body_dicts      r^   parse_async_process_objectr]  *  sB    JJz$/0	#I."+K"8"8,Mr`   c                 t   t        j                  d      }| r| D ]  }|st        j                  |d      }|j                  t	        |d|j                         |j
                  t	        |d|j
                         |j                  t	        |dd       |t	        |d|j                          t        |      S )NBucketCallbackPolicy
PolicyItem
PolicyNamer  CallbackVarrV   )r|   r  r   policy_namer   r  callback_varr~   )callback_policyrx   policypolicy_nodes       r^   $to_do_bucket_callback_policy_requestrh  2  s    56D% 
	UF)44T<H%%1#Kv?Q?QR??.#KV__M&&.#KC#K@S@ST
	U 4  r`   c                    t        j                  |      }|j                  d      D ]]  }t               }t	        |dd       |_        t	        |dd       |_        t	        |dd       |_        | j                  j                  |       _ y )Nr`  ra  r  rb  )
r|   r   rr   r@   rd   rc  r  rd  callback_policiesr   )r   r   rx   rf  r  s        r^   parse_callback_policy_resultrk  C  sw    !!$'D,,|, - "0tL-fj$G1&-N  '',-r`   c                     t        j                  d      }t        |dt        |       j	                                t        |      S )NArchiveDirectReadConfigurationr  r|   r  r   r  r#  r~   r  s     r^   !to_put_bucket_archive_direct_readro  M  s7    ?@DD)S\%7%7%9:4  r`   c                 t    t        j                  |      }|j                  d      t        |d      | _        y y r  )r|   r   rW   rh   r  r   s      r^   $parse_get_bucket_archive_direct_readrq  R  s4    !!$'Dyy'#D)4 (r`   c                    t        j                  d      }t        j                  |d      }t        |dt	        | j
                        j                                | j                  r| j                  D ]  }t        |d|        t        |      S )NHttpsConfigurationTLSEnable
TLSVersion)	r|   r  r   r   r  tls_enabledr#  tls_versionr~   )https_configrx   rB  rC  s       r^   !to_do_bucket_https_config_requestrz  W  s|    34D&&tU3IIx\-E-E)F)L)L)NO)) 	8AI|Q7	8 4  r`   c                     t        j                  |      }t        |d      | _        |j	                  d      t        |d      | _        | S )Nz
TLS/EnablezTLS/TLSVersion)r|   r   rh   rw  rW   rt   rx  r   s      r^   parse_get_bucket_https_configr|  d  sF    !!$'D#D,7Fyy!".+D2BCMr`   c                 R    t        j                  |      }t        |dd       | _        y r  )r|   r   rd   r  r   s      r^   .parse_create_data_redundancy_transition_resultr~  n  s"    !!$'D+D(DAFNr`   c                 L   | y t               }| j                  d      t        | dd       |_        | j                  d      t        | dd       |_        | j                  d      t        | dd       |_        | j                  d      t        | dd       |_        | j                  d      t        | dd       |_        | j                  d      t        | dd       |_        | j                  d      t        | d      |_
        | j                  d      t        | d      |_        |S 	Nr6  r  r  r  r  r  EstimatedRemainingTimeProcessPercentage)rA   rW   rd   rJ  r  transition_statusr  r  r  rl   estimated_remaining_timeprocess_percentage)r  
transitions     r^    parse_data_redundancy_transitionr  r  s-   -/JH%12?HdS
H%13OXtT
H%1'=oxY]'^
$L)5!7W[!\
K(4 6UY Z
I&24_iQUV
45A.7Ia.b
+/0<(1/CV(W
%r`   c                 \   t        j                  |      }|j                  d      t        |dd       | _        |j                  d      t        |dd       | _        |j                  d      t        |dd       | _        |j                  d      t        |dd       | _        |j                  d      t        |dd       | _        |j                  d      t        |dd       | _	        |j                  d      t        |d      | _        |j                  d      t        |d      | _        y y r  )r|   r   rW   rd   rJ  r  r  r  r  r  rl   r  r  r   s      r^   +parse_get_bucket_data_redundancy_transitionr    s   !!$'Dyy&.tXtDyy&/hEyy&#9$$#O yy*3D,Myy)24dKyy'0y$Gyy)*6*3D:R*S'yy$%1$-d4G$H! 2r`   c                     t        j                  |      }|j                  d      D ](  }t        |      }| j                  j                  |       * y )NBucketDataRedundancyTransition)r|   r   rr   r  data_redundancy_transitionsr   r   r   rx   r  r  s        r^   ,parse_list_bucket_data_redundancy_transitionr    sI    !!$'Dll#CD 7
.z:**11#67r`   c                 .   t        j                  |      }|j                  d      t        |d      | _        |j                  d      t        |d      | _        |j                  d      D ](  }t        |      }| j                  j                  |       * y )Nr   r   r  )r|   r   rW   rh   r   r_   r   rr   r  r  r   r  s        r^   *parse_list_user_data_redundancy_transitionr    s    !!$'Dyy+(}=yy()5)249P)Q&ll#CD 7
.z:**11#67r`   c                 T   t        j                  d      }| j                  t        |d| j                         | j                  t        |d| j                         | j
                  7t        j                  |d      }t        |d| j
                  j                         t        |      S )NCreateAccessPointConfigurationAccessPointNameNetworkOriginVpcConfigurationVpcId)	r|   r  access_point_namer   network_originvpcr   vpc_idr~   )accessPointrx   vpc_nodes      r^   !to_do_create_access_point_requestr    s    ?@D$$0/1N1NO!!-o{/I/IJ"))$0BC';??+A+AB4  r`   c                 v    t        j                  |      }t        |dd       | _        t        |dd       | _        y )NAccessPointArnAlias)r|   r   rd   access_point_arnaliasr   s      r^    parse_create_access_point_resultr    s4    !!$'D4T;KTRF)$>FLr`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        |j                  d      }|#t               }t        |dd       |_	        || _
        t        |dd       | _        t        |dd       | _        t        |d	d       | _        t        |d
d       | _        |j                  d      }|5t               }t        |dd       |_        t        |dd       |_        || _        |j                  d      }|5t'               }|j                  d      t)        |d      |_        || _        y y y )Nr  r6  r4  r  r  r  r  r   r  r  	EndpointsPublicEndpointrO  rF   BlockPublicAccess)r|   r   rd   r  rJ  rH  r  rW   rC   r  r  r  r  r  access_point_statusrD   public_endpointrR  	endpointsrF   rh   block_public_access!public_access_block_configuration)	r   r   rx   r  r  endpoint_nodeendpoint
block_nodeblocks	            r^   parse_get_access_point_resultr    sg   !!$'D5d<MtTF*44@FM.t[$GF24$OFyy+,H)++HgtD

4T;KTRF1$MF)$>FL!7h!MFIIk*M ')#9-IY[_#` %;MK]_c%d"#;<J.0??./;(2:?R(SE%7<F4 < r`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        t        |d      | _        t        |d      | _        | j                  t        |dd       | _	        |j                  d      }|D ]  }t               }t        |d      |_        t        |d      |_        t        |d	      |_        t        |d
      |_        t        |d      |_        |j%                  d      }|#t'               }t        |dd       |_        ||_        | j,                  j/                  |        | S )Nr4  r  r  r   r   zAccessPoints/AccessPointr6  r  r  r  r  r  r  )r|   r   rd   rH  r  rl   r  rh   r   r   rr   rE   r_   rJ  r  r  r  r  rW   rC   r  r  access_pointsr   )r   r   rx   r  access_pointr  r  r  s           r^   parse_list_access_point_resultr    s/   !!$'D.t[$GF*44@FMi0FO$T=9F&)?F]_c)d&LL!;<M% )|X6
 ),8I JlG4	|X6
&|_E$$%78-/C/'4HCJCG##C() Mr`   c                 n    t        j                  d      }t        |dt        |              t	        |      S )NrF   r  rz  )r  rx   s     r^   "to_put_public_access_block_requestr   	  s1    ?@DD-s3F/GH4  r`   c                 t    t        j                  |      }|j                  d      t        |d      | _        y y )Nr  )r|   r   rW   rh   r  r   s      r^   $parse_get_public_access_block_resultr  	  s7    !!$'Dyy$%1%/6I%J" 2r`   c                    | y t               }| j                  d      t        | d      |_        | j                  d      t        | d      |_        | j                  d      t        | d      |_        | j                  d      t        | d      |_        | j                  d      t        | d      |_        | j                  d      t        | d      |_        | j                  d      t        | d      |_	        | j                  d      t        | d      |_
        | j                  d	      t        | d	      |_        |S )
Nr  r  r  r  r  r  r  r  r  )rJ   rW   rl   r  r  r  r  r  r  r  r  r  )qos_info_nodeqoss     r^   parse_qos_configurationr  	  sC   

C01='7MN34@!*=:S!T34@!*=:S!T23? )-9Q R56B#,]<W#X 56B#,]<W#X *%1!-<-(4$]MB-(4$]MBJr`   c                     t        j                  d      }t        |dt        |       j	                                t        |      S )NrJ   r  rn  r  s     r^    to_put_bucket_requester_qos_infor  '	  s7    12DD)S\%7%7%9:4  r`   c                     t        j                  |      }t        |dd       | _        t	        |j                  d            | _        | S )N	RequesterrJ   )r|   r   rd   	requesterr  rW   qos_configurationr   s      r^   parse_get_requester_qos_infor  -	  s?    !!$'D-dKFF6tyyAS7TUFMr`   c                     t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |j                  d            | _	        | S )Nr   r   r   r  rJ   )
r|   r   rd   r  ro   r   r  r  rW   r  r   s      r^   parse_get_resource_pool_infor  5	  so    !!$'D*44@FM(vt<FK)$>FL/lDIF6tyyAS7TUFMr`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |d      | _        |j                  d      D ]K  }t               }t        |dd       |_        t        |dd       |_        | j                  j                  |       M | S )	Nr   r   rc  r   r   ResourcePoolr   r  )r|   r   rd   r  r   continuation_tokenr   rh   r   rr   rG   ro   r  resource_poolr   )r   r   rx   resourcer  s        r^   parse_list_resource_poolsr  A	  s    !!$'D*44@FM)$>FL 6t=PRV WF%;DBY[_%`F"$T=9FLL0 ) )(FDA0<N##C(	) Mr`   c                 |   t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |d      | _        |j                  d      D ]K  }t               }t        |dd       |_
        t        |dd       |_        | j                  j                  |       M | S )Nr  rc  r   r   ResourcePoolBucketr   JoinTime)r|   r   rd   r  r  r   rh   r   rr   rH   ro   	join_timeresource_pool_bucketsr   )r   r   rx   rJ  r  s        r^    parse_list_resource_pool_bucketsr  S	  s    !!$'D1$MF 6t=PRV WF%;DBY[_%`F"$T=9F,,34 1$&)&&$?.vz4H$$++C01 Mr`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |d      | _        |j                  d      D ]X  }t               }t        |dd       |_
        t        |j                  d            |_        | j                  j                  |       Z | S )Nr  rc  r   r   rI   r  rJ   )r|   r   rd   r  r  r   rh   r   rr   rI   r  r  rW   r  requester_qos_infor   r   r   rx   r  r  s        r^   ,parse_list_resource_pool_requester_qos_infosr  e	  s    !!$'D1$MF 6t=PRV WF%;DBY[_%`F"$T=9FLL!34 . .xdK 7FX8Y Z!!((-. Mr`   c                    t        j                  |      }t        |dd       | _        t        |dd       | _        t        |dd       | _        t        |d      | _        |j                  d      D ]X  }t               }t        |dd       |_
        t        |j                  d            |_        | j                  j                  |       Z | S )Nr6  rc  r   r   rI   r  rJ   )r|   r   rd   rJ  r  r   rh   r   rr   rI   r  r  rW   r  r  r   r  s        r^   %parse_list_bucket_requester_qos_infosr  w	  s    !!$'D*44@FM 6t=PRV WF%;DBY[_%`F"$T=9FLL!34 . .xdK 7FX8Y Z!!((-. Mr`   rj   )__doc__loggingxml.etree.ElementTreeetreer|   r  modelsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rw  rK   rL   compatrM   rN   rO   rS   rP   rQ   rR   rV   r  
exceptionsrT   	getLogger__name__loggerr_   rd   rh   rl   rp   rt   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r(  r&  r;  rA  rK  r[  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r(  r.  r3  r;  rE  rS  rd  rh  rq  rx  ru  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r%  rX  r_  ra  rg  rp  rw  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r/  r2  r5  r7  r  r=  r?  rD  rH  rL  rU  r]  rh  rk  ro  rq  rz  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  r`   r^   <module>r     s  
  + + G' G' G' G' G' G' G' G' G' G' G' G' G' G' G' G' G' G' G'R ? 5 5 H H   2			8	$!!d(H8(
@/88:, <
	+\62 #*EN("411,$
"*!'"@,!	&&"!!!*V!rZ!z!$!82!h"!H9!.!"	!"!(,\!	!!0,!!&g>!@HT$!;!
!
+!Z! &D
ND!0
!*77!4!,7$(L!
+&!
B!
@	"	#!"-!
5

!B4I(7
7
!?=>8!K6!	$$$r`   