
    ]h6b                         d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d Z
 G d deee	      Z G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)    )Enum)Optional)CaseInsensitiveEnumMeta)Configuration)UserAgentPolicyc                 L    | | dv ry 	 | j                   S # t        $ r | cY S w xY w)N)None )valueAttributeError)r   s    g/var/www/core.comfia.cic-ware.com/crm/lib/python3.12/site-packages/azure/storage/blob/_shared/models.pyget_enum_valuer      s4    }-{{ s    ##c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUZXdVZYdWZZdXZ[dYZ\dZZ]d[Z^d\Z_d]Z`d^Zad_Zbd`ZcdaZddbZedcZfdcZgddZhdeZidfZjdgZkdhZldiZmdjZndkZodlZpdmZqdnZrdoZsdpZtdqZudrZvdsZwdtZxduZydvZzdwZ{dxZ|dyZ}dzZ~d{Zd|Zd}Zd~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)StorageErrorCodeAccountAlreadyExistsAccountBeingCreatedAccountIsDisabledAuthenticationFailedAuthorizationFailureNoAuthenticationInformationConditionHeadersNotSupportedConditionNotMetEmptyMetadataKeyInsufficientAccountPermissionsInternalErrorInvalidAuthenticationInfoInvalidHeaderValueInvalidHttpVerbInvalidInput
InvalidMd5InvalidMetadataInvalidQueryParameterValueInvalidRangeInvalidResourceName
InvalidUriInvalidXmlDocumentInvalidXmlNodeValueMd5MismatchMetadataTooLargeMissingContentLengthHeaderMissingRequiredQueryParameterMissingRequiredHeaderMissingRequiredXmlNode$MultipleConditionHeadersNotSupportedOperationTimedOutOutOfRangeInputOutOfRangeQueryParameterValueRequestBodyTooLargeResourceTypeMismatchRequestUrlFailedToParseResourceAlreadyExistsResourceNotFound
ServerBusyUnsupportedHeaderUnsupportedXmlNodeUnsupportedQueryParameterUnsupportedHttpVerbAppendPositionConditionNotMet(BlobAccessTierNotSupportedForAccountTypeBlobAlreadyExistsBlobNotFoundBlobOverwritten"BlobTierInadequateForContentLengthBlockCountExceedsLimitBlockListTooLongCannotChangeToLowerTierCannotVerifyCopySourceContainerAlreadyExistsContainerBeingDeletedContainerDisabledContainerNotFound ContentLengthLargerThanTierLimitCopyAcrossAccountsNotSupportedCopyIdMismatchFeatureVersionMismatchIncrementalCopyBlobMismatch1IncrementalCopyOfEarlierVersionSnapshotNotAllowed#IncrementalCopySourceMustBeSnapshotInfiniteLeaseDurationRequiredInvalidBlobOrBlockInvalidBlobTierInvalidBlobTypeInvalidBlockIdInvalidBlockListInvalidOperationInvalidPageRangeInvalidSourceBlobTypeInvalidSourceBlobUrl"InvalidVersionForPageBlobOperationLeaseAlreadyPresentLeaseAlreadyBroken LeaseIdMismatchWithBlobOperation%LeaseIdMismatchWithContainerOperation!LeaseIdMismatchWithLeaseOperationLeaseIdMissing"LeaseIsBreakingAndCannotBeAcquired!LeaseIsBreakingAndCannotBeChangedLeaseIsBrokenAndCannotBeRenewed	LeaseLost LeaseNotPresentWithBlobOperation%LeaseNotPresentWithContainerOperation!LeaseNotPresentWithLeaseOperationMaxBlobSizeConditionNotMetNoPendingCopyOperation(OperationNotAllowedOnIncrementalCopyBlobPendingCopyOperationPreviousSnapshotCannotBeNewerPreviousSnapshotNotFound%PreviousSnapshotOperationNotSupportedSequenceNumberConditionNotMetSequenceNumberIncrementTooLargeSnapshotCountExceededSnapshotOperationRateExceededSnapshotsPresentSourceConditionNotMetSystemInUseTargetConditionNotMetUnauthorizedBlobOverwriteBlobBeingRehydratedBlobArchivedBlobNotArchivedInvalidMarkerMessageNotFoundMessageTooLargePopReceiptMismatchQueueAlreadyExistsQueueBeingDeletedQueueDisabledQueueNotEmptyQueueNotFoundCannotDeleteFileOrDirectoryClientCacheFlushDelayDeletePendingDirectoryNotEmptyFileLockConflict0FileShareProvisionedBandwidthDowngradeNotAllowed+FileShareProvisionedIopsDowngradeNotAllowedInvalidFileOrDirectoryPathNameParentNotFoundReadOnlyAttributeShareAlreadyExistsShareBeingDeletedShareDisabledShareNotFoundSharingViolationShareSnapshotInProgressShareSnapshotCountExceeded"ShareSnapshotOperationNotSupportedShareHasSnapshots!ContainerQuotaDowngradeNotAllowedContentLengthMustBeZeroPathAlreadyExistsInvalidFlushPositionInvalidPropertyNameInvalidSourceUriUnsupportedRestVersionFilesystemNotFoundPathNotFound#RenameDestinationParentPathNotFoundSourcePathNotFoundDestinationPathIsBeingDeletedFilesystemAlreadyExistsFilesystemBeingDeletedInvalidDestinationPathInvalidRenameSourcePath&InvalidSourceOrDestinationResourceTypeLeaseIsAlreadyBrokenLeaseNameMismatchPathConflictSourcePathIsBeingDeletedN)__name__
__module____qualname__ACCOUNT_ALREADY_EXISTSACCOUNT_BEING_CREATEDACCOUNT_IS_DISABLEDAUTHENTICATION_FAILEDAUTHORIZATION_FAILURENO_AUTHENTICATION_INFORMATIONCONDITION_HEADERS_NOT_SUPPORTEDCONDITION_NOT_METEMPTY_METADATA_KEY INSUFFICIENT_ACCOUNT_PERMISSIONSINTERNAL_ERRORINVALID_AUTHENTICATION_INFOINVALID_HEADER_VALUEINVALID_HTTP_VERBINVALID_INPUTINVALID_MD5INVALID_METADATAINVALID_QUERY_PARAMETER_VALUEINVALID_RANGEINVALID_RESOURCE_NAMEINVALID_URIINVALID_XML_DOCUMENTINVALID_XML_NODE_VALUEMD5_MISMATCHMETADATA_TOO_LARGEMISSING_CONTENT_LENGTH_HEADER MISSING_REQUIRED_QUERY_PARAMETERMISSING_REQUIRED_HEADERMISSING_REQUIRED_XML_NODE(MULTIPLE_CONDITION_HEADERS_NOT_SUPPORTEDOPERATION_TIMED_OUTOUT_OF_RANGE_INPUT"OUT_OF_RANGE_QUERY_PARAMETER_VALUEREQUEST_BODY_TOO_LARGERESOURCE_TYPE_MISMATCHREQUEST_URL_FAILED_TO_PARSERESOURCE_ALREADY_EXISTSRESOURCE_NOT_FOUNDSERVER_BUSYUNSUPPORTED_HEADERUNSUPPORTED_XML_NODEUNSUPPORTED_QUERY_PARAMETERUNSUPPORTED_HTTP_VERB!APPEND_POSITION_CONDITION_NOT_MET/BLOB_ACCESS_TIER_NOT_SUPPORTED_FOR_ACCOUNT_TYPEBLOB_ALREADY_EXISTSBLOB_NOT_FOUNDBLOB_OVERWRITTEN'BLOB_TIER_INADEQUATE_FOR_CONTENT_LENGTHBLOCK_COUNT_EXCEEDS_LIMITBLOCK_LIST_TOO_LONGCANNOT_CHANGE_TO_LOWER_TIERCANNOT_VERIFY_COPY_SOURCECONTAINER_ALREADY_EXISTSCONTAINER_BEING_DELETEDCONTAINER_DISABLEDCONTAINER_NOT_FOUND%CONTENT_LENGTH_LARGER_THAN_TIER_LIMIT"COPY_ACROSS_ACCOUNTS_NOT_SUPPORTEDCOPY_ID_MISMATCHFEATURE_VERSION_MISMATCHINCREMENTAL_COPY_BLOB_MISMATCH8INCREMENTAL_COPY_OF_EARLIER_VERSION_SNAPSHOT_NOT_ALLOWED8INCREMENTAL_COPY_OF_ERALIER_VERSION_SNAPSHOT_NOT_ALLOWED(INCREMENTAL_COPY_SOURCE_MUST_BE_SNAPSHOT INFINITE_LEASE_DURATION_REQUIREDINVALID_BLOB_OR_BLOCKINVALID_BLOB_TIERINVALID_BLOB_TYPEINVALID_BLOCK_IDINVALID_BLOCK_LISTINVALID_OPERATIONINVALID_PAGE_RANGEINVALID_SOURCE_BLOB_TYPEINVALID_SOURCE_BLOB_URL'INVALID_VERSION_FOR_PAGE_BLOB_OPERATIONLEASE_ALREADY_PRESENTLEASE_ALREADY_BROKEN%LEASE_ID_MISMATCH_WITH_BLOB_OPERATION*LEASE_ID_MISMATCH_WITH_CONTAINER_OPERATION&LEASE_ID_MISMATCH_WITH_LEASE_OPERATIONLEASE_ID_MISSING(LEASE_IS_BREAKING_AND_CANNOT_BE_ACQUIRED'LEASE_IS_BREAKING_AND_CANNOT_BE_CHANGED%LEASE_IS_BROKEN_AND_CANNOT_BE_RENEWED
LEASE_LOST%LEASE_NOT_PRESENT_WITH_BLOB_OPERATION*LEASE_NOT_PRESENT_WITH_CONTAINER_OPERATION&LEASE_NOT_PRESENT_WITH_LEASE_OPERATIONMAX_BLOB_SIZE_CONDITION_NOT_METNO_PENDING_COPY_OPERATION.OPERATION_NOT_ALLOWED_ON_INCREMENTAL_COPY_BLOBPENDING_COPY_OPERATION!PREVIOUS_SNAPSHOT_CANNOT_BE_NEWERPREVIOUS_SNAPSHOT_NOT_FOUND)PREVIOUS_SNAPSHOT_OPERATION_NOT_SUPPORTED!SEQUENCE_NUMBER_CONDITION_NOT_MET#SEQUENCE_NUMBER_INCREMENT_TOO_LARGESNAPSHOT_COUNT_EXCEEDED SNAPSHOT_OPERATION_RATE_EXCEEDEDSNAPHOT_OPERATION_RATE_EXCEEDEDSNAPSHOTS_PRESENTSOURCE_CONDITION_NOT_METSYSTEM_IN_USETARGET_CONDITION_NOT_METUNAUTHORIZED_BLOB_OVERWRITEBLOB_BEING_REHYDRATEDBLOB_ARCHIVEDBLOB_NOT_ARCHIVEDINVALID_MARKERMESSAGE_NOT_FOUNDMESSAGE_TOO_LARGEPOP_RECEIPT_MISMATCHQUEUE_ALREADY_EXISTSQUEUE_BEING_DELETEDQUEUE_DISABLEDQUEUE_NOT_EMPTYQUEUE_NOT_FOUNDCANNOT_DELETE_FILE_OR_DIRECTORYCLIENT_CACHE_FLUSH_DELAYDELETE_PENDINGDIRECTORY_NOT_EMPTYFILE_LOCK_CONFLICT6FILE_SHARE_PROVISIONED_BANDWIDTH_DOWNGRADE_NOT_ALLOWED1FILE_SHARE_PROVISIONED_IOPS_DOWNGRADE_NOT_ALLOWED#INVALID_FILE_OR_DIRECTORY_PATH_NAMEPARENT_NOT_FOUNDREAD_ONLY_ATTRIBUTESHARE_ALREADY_EXISTSSHARE_BEING_DELETEDSHARE_DISABLEDSHARE_NOT_FOUNDSHARING_VIOLATIONSHARE_SNAPSHOT_IN_PROGRESSSHARE_SNAPSHOT_COUNT_EXCEEDED&SHARE_SNAPSHOT_OPERATION_NOT_SUPPORTEDSHARE_HAS_SNAPSHOTS%CONTAINER_QUOTA_DOWNGRADE_NOT_ALLOWEDCONTENT_LENGTH_MUST_BE_ZEROPATH_ALREADY_EXISTSINVALID_FLUSH_POSITIONINVALID_PROPERTY_NAMEINVALID_SOURCE_URIUNSUPPORTED_REST_VERSIONFILE_SYSTEM_NOT_FOUNDPATH_NOT_FOUND(RENAME_DESTINATION_PARENT_PATH_NOT_FOUNDSOURCE_PATH_NOT_FOUND!DESTINATION_PATH_IS_BEING_DELETEDFILE_SYSTEM_ALREADY_EXISTSFILE_SYSTEM_BEING_DELETEDINVALID_DESTINATION_PATHINVALID_RENAME_SOURCE_PATH+INVALID_SOURCE_OR_DESTINATION_RESOURCE_TYPELEASE_IS_ALREADY_BROKENLEASE_NAME_MISMATCHPATH_CONFLICTSOURCE_PATH_IS_BEING_DELETED     r   r   r      s    41-22$A!&D#)+'G$$N"=/)"MK($@!"M1K/2 L+$@!'F$5 8/U,-*)H&23";5+K,/"=1 )H%6`3-#N(.R+ 8,"; 875,-,N))I&'7%B"?r<?r</T,'F$0))'+*+64.R+1/,N)1X.-P*'/S,.Q+,M)J,N)1X.-P*&B# 85_23(G%"<0W-(G%*K'5'F$&E#*6!M6"=1"M) %N))//-$N%O%O 'D#6$N-+=o:8e5*J''-/-$N%O*!:$@!-Q*-,O) #<-31+70#N/T,0(G%!: 87!:2Z/4-"M#= rO  r   )	metaclassc                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZddZy)	DictMixinc                 "    || j                   |<   y N__dict__)selfkeyitems      r   __setitem__zDictMixin.__setitem__       !crO  c                      | j                   |   S rT  rU  rW  rX  s     r   __getitem__zDictMixin.__getitem__   s    }}S!!rO  c                     t        |       S rT  )strrW  s    r   __repr__zDictMixin.__repr__   s    4yrO  c                 4    t        | j                               S rT  )lenkeysra  s    r   __len__zDictMixin.__len__   s    499;rO  c                 "    d | j                   |<   y rT  rU  r]  s     r   __delitem__zDictMixin.__delitem__   r[  rO  c                 b    t        || j                        r| j                  |j                  k(  S y)NF)
isinstance	__class__rV  rW  others     r   __eq__zDictMixin.__eq__   s&    eT^^,==ENN22rO  c                 &    | j                  |       S rT  )rn  rl  s     r   __ne__zDictMixin.__ne__   s    ;;u%%%rO  c           	          t        | j                  j                         D ci c]  \  }}|j                  d      r|| c}}      S c c}}w N_)r`  rV  items
startswithrW  kvs      r   __str__zDictMixin.__str__   s;    T]]%8%8%:TTQ!,,sBSAqDTUUTs
   A

A

c                     || j                   v S rT  rU  r]  s     r   __contains__zDictMixin.__contains__   s    dmm##rO  c                     || j                   v S rT  rU  rW  rw  s     r   has_keyzDictMixin.has_key   s    DMM!!rO  c                 :     | j                   j                  |i |S rT  )rV  update)rW  argskwargss      r   r  zDictMixin.update   s    #t}}##T4V44rO  c                 d    | j                   D cg c]  }|j                  d      r| c}S c c}w rr  )rV  ru  r}  s     r   re  zDictMixin.keys   s%    ==BaS0ABBBs   --c                     | j                   j                         D cg c]  \  }}|j                  d      r| c}}S c c}}w rr  rV  rt  ru  rv  s      r   valueszDictMixin.values   s2    "mm113Mda1<<;LMMMs
   A A c                     | j                   j                         D cg c]  \  }}|j                  d      r||f c}}S c c}}w rr  r  rv  s      r   rt  zDictMixin.items   s6    #'==#6#6#8R41aS@QARRRs
   AANc                 @    || j                   v r| j                   |   S |S rT  rU  )rW  rX  defaults      r   getzDictMixin.get   s"    $--==%%rO  rT  )r   r   r   rZ  r^  rb  rf  rh  rn  rp  ry  r{  r~  r  re  r  rt  r  rN  rO  r   rR  rR     sQ    "" "&V$"5CNSrO  rR  c                       e Zd ZdZdZdZy)LocationModez
    Specifies the location the request should be sent to. This mode only applies
    for RA-GRS accounts which allow secondary read access. All other account types
    must use PRIMARY.
    primary	secondaryN)r   r   r   __doc__PRIMARY	SECONDARYrN  rO  r   r  r     s     GIrO  r  c            	       |    e Zd ZU dZdZeed<   dZeed<   dZeed<   e	ed<   	 	 	 ddedededdfd	Z
d
 Zed        Zy)ResourceTypesaQ  
    Specifies the resource types that are accessible with the account SAS.

    :param bool service:
        Access to service-level APIs (e.g., Get/Set Service Properties,
        Get Service Stats, List Containers/Queues/Shares)
    :param bool container:
        Access to container-level APIs (e.g., Create/Delete Container,
        Create/Delete Queue, Create/Delete Share,
        List Blobs/Files and Directories)
    :param bool object:
        Access to object-level APIs for blobs, queue messages, and
        files(e.g. Put Blob, Query Entity, Get Messages, Create File, etc.)
    Fservice	containerobject_strreturnNc                     || _         || _        || _        | j                   rdnd| j                  rdndz   | j                  r
dz   | _        y dz   | _        y )Nsr
   co)r  r  r  r  )rW  r  r  r  s       r   __init__zResourceTypes.__init__  sR     "!\\crB0-	)+-	rO  c                     | j                   S rT  r  ra  s    r   ry  zResourceTypes.__str__(      yyrO  c                 @    d|v }d|v }d|v } | |||      }||_         |S )a  Create a ResourceTypes from a string.

        To specify service, container, or object you need only to
        include the first letter of the word in the string. E.g. service and container,
        you would provide a string "sc".

        :param str string: Specify service, container, or object in
            in the string with the first letter of the word.
        :return: A ResourceTypes object
        :rtype: ~azure.storage.blob.ResourceTypes
        r  r  r  r  )clsstringres_serviceres_container
res_objectparseds         r   from_stringzResourceTypes.from_string+  s9     VmvF]
[-<rO  )FFF)r   r   r   r  r  bool__annotations__r  r  r`  r  ry  classmethodr  rN  rO  r   r  r    s{     GTItFD
I 	.. . 	.
 
.  rO  r  c                   "   e Zd ZU dZdZeed<   dZeed<   dZeed<   dZ	eed<   dZ
eed<   dZeed<   dZeed	<   dZeed
<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   	 	 	 	 	 	 	 	 	 ddededededed	ed
edededdfdZd Zed        Zy)AccountSasPermissionsaO  
    :class:`~ResourceTypes` class to be used with generate_account_sas
    function and for the AccessPolicies used with set_*_acl. There are two types of
    SAS which may be used to grant resource access. One is to grant access to a
    specific resource (resource-specific). Another is to grant access to the
    entire service for a specific account and allow certain operations based on
    perms found here.

    :param bool read:
        Valid for all signed resources types (Service, Container, and Object).
        Permits read permissions to the specified resource type.
    :param bool write:
        Valid for all signed resources types (Service, Container, and Object).
        Permits write permissions to the specified resource type.
    :param bool delete:
        Valid for Container and Object resource types, except for queue messages.
    :param bool delete_previous_version:
        Delete the previous blob version for the versioning enabled storage account.
    :param bool list:
        Valid for Service and Container resource types only.
    :param bool add:
        Valid for the following Object resource types only: queue messages, and append blobs.
    :param bool create:
        Valid for the following Object resource types only: blobs and files.
        Users can create new blobs or files, but may not overwrite existing
        blobs or files.
    :param bool update:
        Valid for the following Object resource types only: queue messages.
    :param bool process:
        Valid for the following Object resource type only: queue messages.
    :keyword bool tag:
        To enable set or get tags on the blobs in the container.
    :keyword bool filter_by_tags:
        To enable get blobs by tags, this should be used together with list permission.
    :keyword bool set_immutability_policy:
        To enable operations related to set/delete immutability policy.
        To get immutability policy, you just need read permission.
    :keyword bool permanent_delete:
        To enable permanent delete on the blob is permitted.
        Valid for Object resource type of Blob only.
    Freadwritedeletedelete_previous_versionlistaddcreater  processtagfilter_by_tagsset_immutability_policypermanent_deleter  Nc
                    || _         || _        || _        |	| _        |
j	                  dd      | _        || _        || _        || _        || _	        || _
        |
j	                  dd      | _        |
j	                  dd      | _        |
j	                  dd      | _        | j                   rdnd| j                  rdndz   | j                  rd	ndz   | j                  rd
ndz   | j
                  rdndz   | j                  rdndz   | j                  rdndz   | j                  rdndz   | j                  rdndz   | j                  rdndz   | j                  rdndz   | j                  rdndz   | j                  r
dz   | _        y dz   | _        y )Nr  Fr  r  r  rr
   wdxylar  upfti)r  r  r  r  popr  r  r  r  r  r  r  r  r  r  )rW  r  r  r  r  r  r  r  r  r  r  s              r   r  zAccountSasPermissions.__init__z  s    	
'>$ &

+=u E	::eU+$jj)95A'-zz2KU'S$!YYcB!ZZcR1![[cb2 "99crC "22c	<
 "YYcB0 "XXc2/ "[[cb2 "[[cb2 "\\cr	3 "00cb
: "XXc2/ "99cC	 @BC	rO  c                     | j                   S rT  r  ra  s    r   ry  zAccountSasPermissions.__str__  r  rO  c                     d|v }d|v }d|v }d|v }d|v }d|v }d|v }d|v }	d	|v }
d
|v }d|v }d|v }d|v } | |||||||	|
|||||      }|S )a  Create AccountSasPermissions from a string.

        To specify read, write, delete, etc. permissions you need only to
        include the first letter of the word in the string. E.g. for read and write
        permissions you would provide a string "rw".

        :param str permission: Specify permissions in
            the string with the first letter of the word.
        :return: An AccountSasPermissions object
        :rtype: ~azure.storage.blob.AccountSasPermissions
        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  rN  )r  
permissionp_readp_writep_deletep_delete_previous_versionp_permanent_deletep_listp_addp_createp_update	p_processp_tagp_filter_by_tagsp_set_immutability_policyr  s                   r   r  z!AccountSasPermissions.from_string  s     
"#*$$':$5! J.
"z!*$*$:%	z!*,$':$5!&Zs eHXW`fk$4Ng&8:
 rO  )	FFFFFFFFF)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ry  r  r  rN  rO  r   r  r  A  s-   (T D$E4FD$)T)D$CFDFDGTC ND $)T)"d" (-'' ' 	'
 ' ' ' ' ' "&' 
'R  rO  r  c            	       H    e Zd ZdZdddddedededdfd	Zd
 Zed        Zy)Servicesa  Specifies the services accessible with the account SAS.

    :keyword bool blob:
        Access for the `~azure.storage.blob.BlobServiceClient`. Default is False.
    :keyword bool queue:
        Access for the `~azure.storage.queue.QueueServiceClient`. Default is False.
    :keyword bool fileshare:
        Access for the `~azure.storage.fileshare.ShareServiceClient`. Default is False.
    Fblobqueue	filesharer  r  r  r  Nc                    || _         || _        || _        | j                   rdnd| j                  rdndz   | j                  r
dz   | _        y dz   | _        y )Nbr
   qr  )r  r  r  r  )rW  r  r  r  s       r   r  zServices.__init__  sR     	
"!YYcB

,0	,.0	rO  c                     | j                   S rT  r  ra  s    r   ry  zServices.__str__  r  rO  c                 B    d|v }d|v }d|v } | |||      }||_         |S )a  Create Services from a string.

        To specify blob, queue, or file you need only to
        include the first letter of the word in the string. E.g. for blob and queue
        you would provide a string "bq".

        :param str string: Specify blob, queue, or file in
            in the string with the first letter of the word.
        :return: A Services object
        :rtype: ~azure.storage.blob.Services
        r  r  r  r  r  )r  r  res_blob	res_queueres_filer  s         r   r  zServices.from_string  s9     &=6M	&=()xHrO  )	r   r   r   r  r  r  ry  r  r  rN  rO  r   r  r    sV     	11 1 	1
 
1  rO  r  c                       e Zd ZU dZdZee   ed<   	 dZee   ed<   	 dZ	ee   ed<   	 dZ
ee   ed<   	 dZee   ed<   	 dZee   ed<   	 dZee   ed	<   	 d
 Zy)UserDelegationKeya?  
    Represents a user delegation key, provided to the user by Azure Storage
    based on their Azure Active Directory access token.

    The fields are saved as simple strings since the user does not have to interact with this object;
    to generate an identify SAS, the user can simply pass it to the right API.
    N
signed_oid
signed_tidsigned_startsigned_expirysigned_servicesigned_versionr   c                 f    d | _         d | _        d | _        d | _        d | _        d | _        d | _        y rT  )r  r  r  r  r  r  r   ra  s    r   r  zUserDelegationKey.__init__  s7     !""
rO  )r   r   r   r  r  r   r`  r  r  r  r  r  r  r   r  rN  rO  r   r  r    s     !%J$" $J$9"&L(3-&0#'M8C='*$(NHSM(-$(NHSM(ME8C="rO  r  c                        e Zd ZU dZeed<   eed<   eed<   eed<   eed<   eed<   eed<   eed	<   eed
<   eed<   eed<    fdZ xZ	S )StorageConfigurationa  
    Specifies the configurable values used in Azure Storage.

    :param int max_single_put_size: If the blob size is less than or equal max_single_put_size, then the blob will be
        uploaded with only one http PUT request. If the blob size is larger than max_single_put_size,
        the blob will be uploaded in chunks. Defaults to 64*1024*1024, or 64MB.
    :param int copy_polling_interval: The interval in seconds for polling copy operations.
    :param int max_block_size: The maximum chunk size for uploading a block blob in chunks.
        Defaults to 4*1024*1024, or 4MB.
    :param int min_large_block_upload_threshold: The minimum chunk size required to use the memory efficient
        algorithm when uploading a block blob.
    :param bool use_byte_buffer: Use a byte buffer for block blob uploads. Defaults to False.
    :param int max_page_size: The maximum chunk size for uploading a page blob. Defaults to 4*1024*1024, or 4MB.
    :param int min_large_chunk_upload_threshold: The max size for a single put operation.
    :param int max_single_get_size: The maximum size for a blob to be downloaded in a single call,
        the exceeded part will be downloaded in chunks (could be parallel). Defaults to 32*1024*1024, or 32MB.
    :param int max_chunk_get_size: The maximum chunk size used for downloading a blob. Defaults to 4*1024*1024,
        or 4MB.
    :param int max_range_size: The max range size for file upload.

    max_single_put_sizecopy_polling_intervalmax_block_size min_large_block_upload_thresholduse_byte_buffermax_page_size min_large_chunk_upload_thresholdmax_single_get_sizemax_chunk_get_sizemax_range_sizeuser_agent_policyc                    t        t        | 
  di | |j                  dd      | _        d| _        |j                  dd      | _        |j                  dd      | _        |j                  dd	      | _	        |j                  d
d      | _
        |j                  dd      | _        |j                  dd      | _        |j                  dd      | _        |j                  dd      | _        y )Nr  i      r  i  @ r  i @ r  Fr  r  i @r  i   r  r  rN  )superr  r  r  r  r  r  r  r  r  r  r  r  r  r  )rW  r  rk  s     r   r  zStorageConfiguration.__init__>  s    "D2<V<#)::.CEU#V %'"$jj)9?K06

;]_r0s-%zz*;UC#ZZI06

;]_t0u-#)::.CEU#V "(**-A?"S$jj)9?KrO  )
r   r   r   r  intr  r  r   r  __classcell__)rk  s   @r   r  r    sX    , &))&))&&L LrO  r  N)enumr   typingr   
azure.corer   azure.core.configurationr   azure.core.pipeline.policiesr   r   r`  r   r  rR  r  r  r  r  r  r  rN  rO  r   <module>r     s      . 2 8j>sD,C j>Z3 3l6 8F 8vDF DN.v .b D.L= .LrO  