o ckF[@sTddlZddlmZddlmZGdddeZGdddeZGdd d eZdS) N)urllib) ResultSetc@sjeZdZdZdddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZdS)InvalidationBatchzA simple invalidation request. :see: http://docs.amazonwebservices.com/AmazonCloudFront/2010-08-01/APIReference/index.html?InvalidationBatchDatatype.html NcCsB|pg|_||_||_|jstt|_|r||_dS||_dS)z_Create a new invalidation request: :paths: An array of paths to invalidate N)paths distributioncaller_referencestruuiduuid4 connection)selfrr rrr>/usr/lib/python3/dist-packages/boto/cloudfront/invalidation.py__init__!s   zInvalidationBatch.__init__cC d|jS)Nzidr rrr__repr__2 zInvalidationBatch.__repr__cC |j|S)z-Add another path to this invalidation request)rappendr pathrrradd5 zInvalidationBatch.addcCr)z,Remove a path from this invalidation request)rremoverrrrr9rzInvalidationBatch.removecCs t|jSN)iterrrrrr__iter__=rzInvalidationBatch.__iter__cCs |j|Srr)r irrr __getitem__@rzInvalidationBatch.__getitem__cCs||j|<dSrr!)r kvrrr __setitem__CszInvalidationBatch.__setitem__cCs$|ddks d|}tjj|ddS)zwEscape a path, make sure it begins with a slash and contains no invalid characters. Retain literal wildcard characters.r/z/%sz/*)safe)rparsequote)r prrrescapeFs zInvalidationBatch.escapecCsZ|jdusJd}|d|jj7}|jD] }|d||7}q|d|j7}|d7}|S)zGet this batch as XMLNz' zD z %s z* %s z )r Versionrr,r)r sr+rrrto_xmlLs zInvalidationBatch.to_xmlcCs|dkrg|_dS)Nrr!r nameattrsr rrr startElementWszInvalidationBatch.startElementcCs`|dkr |j|dS|dkr||_dS|dkr||_dS|dkr'||_dS|dkr.||_dS)NPathStatusId CreateTimeCallerReference)rrstatusr create_timerr r1valuer rrr endElement\s  zInvalidationBatch.endElement)NNNr)__name__ __module__ __qualname____doc__rrrrr r#r&r,r/r3r=rrrrrs  rc@sBeZdZdZ   dddZddZd d Zd d ZdddZdS)InvalidationListResultSetaG A resultset for listing invalidations on a given CloudFront distribution. Implements the iterator interface and transparently handles paging results from CF so even if you have many thousands of invalidations on the distribution you can iterate over all invalidations in a reasonably efficient manner. NrFc CsF|pg|_||_||_||_||_||_|du|_||_|pg|_dSr) markersr distribution_idmarker next_marker max_items auto_paginate is_truncated _inval_cache) r rCr rD invalidationsrErFrGrIrrrrrs  z"InvalidationListResultSet.__init__ccsh|j}|j}|}|jD]}|Vq |jsdS|jr2|j||j|jd}|jD]}|Vq'|jsdSdS)zu A generator function for listing invalidation requests for a given CloudFront distribution. N)rErG)r rDrJrHrIget_invalidation_requestsrFrG)r connrD result_setinvalr"rrrr s   z"InvalidationListResultSet.__iter__cCs>|jD]\}}||kr|||jd}|j||SqdS)N)rD)rCrDrJr)r r1r2r root_elemhandlerobjrrrr3s z&InvalidationListResultSet.startElementcCsV|dkr |||_dS|dkr||_dS|dkr||_dS|dkr)t||_dSdS)N IsTruncatedMarker NextMarkerMaxItems) to_booleanrIrErFintrGr;rrrr=s  z$InvalidationListResultSet.endElementtruecCs||krdSdS)NTFr)r r< true_valuerrrrWsz$InvalidationListResultSet.to_boolean)NNNNrNNF)rY) r>r?r@rArr r3r=rWrrrrrBjs   rBc@sFeZdZdZ  dddZddZdd Zd d Zd d ZddZ dS)InvalidationSummaryz Represents InvalidationSummary complex type in CloudFront API that lists the id and status of a given invalidation request. NrcCs||_||_||_||_dSr)r rDrr9)r r rDrr9rrrrs zInvalidationSummary.__init__cCr)NzrrrrrrrzInvalidationSummary.__repr__cCsdSrrr0rrrr3sz InvalidationSummary.startElementcCs(|dkr ||_dS|dkr||_dSdS)Nr6r5)rr9r;rrrr=s   zInvalidationSummary.endElementcCs|j|jS)a Returns a Distribution object representing the parent CloudFront distribution of the invalidation request listed in the InvalidationSummary. :rtype: :class:`boto.cloudfront.distribution.Distribution` :returns: A Distribution object representing the parent CloudFront distribution of the invalidation request listed in the InvalidationSummary )r get_distribution_inforDrrrrget_distributions z$InvalidationSummary.get_distributioncCs|j|j|jS)aa Returns an InvalidationBatch object representing the invalidation request referred to in the InvalidationSummary. :rtype: :class:`boto.cloudfront.invalidation.InvalidationBatch` :returns: An InvalidationBatch object representing the invalidation request referred to by the InvalidationSummary )r invalidation_request_statusrDrrrrrget_invalidation_requests z,InvalidationSummary.get_invalidation_request)NNrr) r>r?r@rArrr3r=r]r_rrrrr[s  r[) r boto.compatrboto.resultsetrobjectrrBr[rrrrs   N?