o
    fD                     @   s  d dl mZmZmZ d dlmZ G dd deZG dd deZG dd deZ	G d	d
 d
eZ
G dd deZG dd deZeZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deZG dd  d eZG d!d" d"eZG d#d$ d$eZG d%d& d&eZG d'd( d(eZG d)d* d*eZG d+d, d,eZG d-d. d.eZG d/d0 d0eZG d1d2 d2eZ G d3d4 d4eZ!G d5d6 d6eZ"G d7d8 d8eZ#G d9d: d:eZ$G d;d< d<eZ%G d=d> d>eZ&G d?d@ d@e&Z'G dAdB dBe&Z(G dCdD dDeZ)G dEdF dFeeZ*e*Z+G dGdH dHeZ,G dIdJ dJeZ-G dKdL dLeZ.G dMdN dNeZ/G dOdP dPeZ0G dQdR dReZ1G dSdT dTeZ2G dUdV dVeZ3G dWdX dXeZ4G dYdZ dZeZ5G d[d\ d\eZ6G d]d^ d^eZ7G d_d` d`eZ8G dadb dbeZ9G dcdd ddeZ:G dedf dfeZ;G dgdh dheZ<G didj djeZ=G dkdl dleZ>G dmdn dneZ?G dodp dpeZ@G dqdr dreZAG dsdt dteZBG dudv dve@ZCG dwdx dxe@ZDG dydz dzeZEG d{d| d|eZFG d}d~ d~eZGG dd deZHG dd deZIG dd deZJG dd deZKG dd deZLG dd deZMG dd deZNG dd deZOG dd deZPG dd deZQG dd deQZRG dd deZSG dd deZTG dd deTZUG dd deTZVG dd deTZWG dd deZXG dd deZYG dd deZZG dd deZ[G dd deZ\G dd deZ]G dd deZ^G dd deZ_G dd deZ`G dd deZaG dd deZbG dd deZcG dd deZdG dd deZeG dd deZfG dd deZgG dd deZhG dd deZiG ddĄ deZjG ddƄ deZkG ddȄ deZlG ddʄ deZmG dd̄ deZnG dd΄ deZoG ddЄ deZpG dd҄ deZqG ddԄ deZrG ddք deZsG dd؄ deZtG ddڄ deZuG dd܄ deZvdS )    )ListOptionalTuple)messagesc                   @      e Zd ZdS )InPlaceUpgradeNotSupportedErrorN__name__
__module____qualname__ r   r   5/usr/lib/python3/dist-packages/uaclient/exceptions.pyr          r   c                   @   r   )IsProLicensePresentErrorNr   r   r   r   r   r   
   r   r   c                   @   r   )CancelProLicensePollingNr   r   r   r   r   r      r   r   c                   @   r   )DelayProLicensePollingNr   r   r   r   r   r      r   r   c                       s>   e Zd Z			d
dedee dededdf
 fdd	Z  ZS )ProcessExecutionErrorN cmd	exit_codestdoutstderrreturnc                    sH   || _ || _|| _|stjj|d}n	tjj|||d}t | d S )N)r   )r   r   r   )	r   r   r   r   SUBP_INVALID_COMMANDformatSUBP_COMMAND_FAILEDsuper__init__)selfr   r   r   r   message	__class__r   r   r      s   zProcessExecutionError.__init__)Nr   r   )r	   r
   r   strr   intr   __classcell__r   r   r    r   r      s    r   c                   @   sF   e Zd ZdZdZdZdZdddZedd Z	ed	d
 Z
dd ZdS )UbuntuProErrorzu
    Base class for all of our custom errors.
    All possible exceptions from our API should extend this class.
    N   r   c                 K   sP   | j d ur| j jdi || _n| j| _|| _| D ]
\}}t| || qd S Nr   )_formatted_msgr   	named_msg_msgadditional_infoitemssetattr)r   kwargskeyvaluer   r   r   r   5   s   


zUbuntuProError.__init__c                 C      | j jS Nr)   msgr   r   r   r   r4   B      zUbuntuProError.msgc                 C   r1   r2   )r)   namer5   r   r   r   msg_codeF   r6   zUbuntuProError.msg_codec                 C   r1   r2   r3   r5   r   r   r   __str__J   s   zUbuntuProError.__str__r   N)r	   r
   r   __doc__r*   r(   r   r   propertyr4   r8   r9   r   r   r   r   r%   *   s    


r%   c                       s(   e Zd ZdZdejf fddZ  ZS )AnonymousUbuntuProErrorz
    For cases where we have a NamedMessage of an Error already but it isn't in
    exception form, and we need to raise it as an exception. This generally
    should only be used in cli-only code.
    r)   c                       t  jdi | || _d S r'   )r   r   r)   )r   r)   r.   r    r   r   r   [      
z AnonymousUbuntuProError.__init__)r	   r
   r   r;   r   NamedMessager   r$   r   r   r    r   r=   T   s    r=   c                   @      e Zd ZejZdS )APTProcessConflictErrorN)r	   r
   r   r   E_APT_PROCESS_CONFLICTr*   r   r   r   r   rB   e       
rB   c                   @   rA   )APTInvalidRepoErrorN)r	   r
   r   r   E_APT_UPDATE_INVALID_URL_CONFIGr(   r   r   r   r   rE   i   rD   rE   c                   @   rA   )APTUpdateProcessConflictErrorN)r	   r
   r   r   E_APT_UPDATE_PROCESS_CONFLICTr*   r   r   r   r   rG   m   rD   rG   c                   @   rA   )APTUpdateInvalidRepoErrorN)r	   r
   r   r   E_APT_UPDATE_INVALID_REPOr(   r   r   r   r   rI   q   rD   rI   c                   @   rA   )APTUpdateFailedN)r	   r
   r   r   E_APT_UPDATE_FAILEDr(   r   r   r   r   rK   u   rD   rK   c                   @   rA   )APTInstallProcessConflictErrorN)r	   r
   r   r   E_APT_INSTALL_PROCESS_CONFLICTr*   r   r   r   r   rM   y   rD   rM   c                   @   rA   )APTInstallInvalidRepoErrorN)r	   r
   r   r   E_APT_INSTALL_INVALID_REPOr(   r   r   r   r   rO   }   rD   rO   c                   @   rA   )APTInvalidCredentialsN)r	   r
   r   r   E_APT_INVALID_CREDENTIALSr(   r   r   r   r   rQ      rD   rQ   c                   @   rA   )
APTTimeoutN)r	   r
   r   r   E_APT_TIMEOUTr(   r   r   r   r   rS      rD   rS   c                   @   rA   )APTUnexpectedErrorN)r	   r
   r   r   E_APT_UNEXPECTED_ERRORr(   r   r   r   r   rU      rD   rU   c                   @   rA   )APTCommandTimeoutN)r	   r
   r   r   E_APT_COMMAND_TIMEOUTr(   r   r   r   r   rW      rD   rW   c                   @   rA   )SnapNotInstalledErrorN)r	   r
   r   r   E_SNAP_NOT_INSTALLED_ERRORr(   r   r   r   r   rY      rD   rY   c                   @   rA   )UnexpectedSnapdAPIErrorN)r	   r
   r   r   E_UNEXPECTED_SNAPD_API_ERRORr(   r   r   r   r   r[      rD   r[   c                   @   rA   )SnapdAPIConnectionRefusedN)r	   r
   r   r   E_SNAPD_CONNECTION_REFUSEDr*   r   r   r   r   r]      rD   r]   c                   @   rA   )CannotInstallSnapdErrorN)r	   r
   r   r   E_CANNOT_INSTALL_SNAPDr*   r   r   r   r   r_      rD   r_   c                   @   rA   )ErrorInstallingLivepatchN)r	   r
   r   r   E_ERROR_INSTALLING_LIVEPATCHr(   r   r   r   r   ra      rD   ra   c                   @   rA   )
InvalidUrlN)r	   r
   r   r   E_INVALID_URLr(   r   r   r   r   rc      rD   rc   c                   @   rA   )ProxyNotWorkingErrorN)r	   r
   r   r   E_NOT_SETTING_PROXY_NOT_WORKINGr(   r   r   r   r   re      rD   re   c                   @   rA   )ProxyInvalidUrlN)r	   r
   r   r   E_NOT_SETTING_PROXY_INVALID_URLr(   r   r   r   r   rg      rD   rg   c                   @   rA   )PycurlRequiredErrorN)r	   r
   r   r   E_PYCURL_REQUIREDr*   r   r   r   r   ri      rD   ri   c                   @   rA   )PycurlErrorN)r	   r
   r   r   E_PYCURL_ERRORr(   r   r   r   r   rk      rD   rk   c                   @   rA   )ProxyAuthenticationFailedN)r	   r
   r   r   E_PROXY_AUTH_FAILr*   r   r   r   r   rm      rD   rm   c                   @   s&   e Zd ZejZdZdZdZdd Z	dS )ExternalAPIErrorNc                 C   s   d | j| j| jS )Nz{}: [{}], {})r   codeurlbodyr5   r   r   r   r9      s   zExternalAPIError.__str__)
r	   r
   r   r   E_EXTERNAL_API_ERRORr(   rp   rq   rr   r9   r   r   r   r   ro      s    ro   c                   @   r   )ContractAPIErrorNr   r   r   r   r   rt      r   rt   c                   @   r   )SecurityAPIErrorNr   r   r   r   r   ru      r   ru   c                       s$   e Zd ZejZd fddZ  ZS )PycurlCACertificatesErrorr   Nc                    r>   r'   )r   r   rq   )r   rq   r.   r    r   r   r      r?   z"PycurlCACertificatesError.__init__r:   )r	   r
   r   r   E_PYCURL_CA_CERTIFICATESr*   r   r$   r   r   r    r   rv      s    rv   c                   @   s$   e Zd ZejZdedefddZdS )ConnectivityErrorcauserq   c                 C   sP   t |dd rtt |d}nt|}t| | tj| ||d || _|| _d S )Nreason)cause_errorrq   )getattrr"   IOErrorr   r%   r{   rq   )r   ry   rq   r{   r   r   r   r      s   
zConnectivityError.__init__N)	r	   r
   r   r   E_CONNECTIVITY_ERRORr(   	Exceptionr"   r   r   r   r   r   rx      s    rx   c                   @   rA   )ContractExpiredErrorN)r	   r
   r   r   E_CONTRACT_EXPIREDr*   r   r   r   r   r      rD   r   c                   @   rA   )InvalidServiceOpErrorNr	   r
   r   r   E_INVALID_SERVICE_OP_FAILUREr(   r   r   r   r   r     rD   r   c                   @      e Zd ZdZdZejZdS )AlreadyAttachedErrorzDAn exception to be raised when a command needs an unattached system.   N)r	   r
   r   r;   r   r   E_ALREADY_ATTACHEDr(   r   r   r   r   r         
r   c                   @   r   )AttachErrorz@An exception to be raised when we detect a generic attach error.r&   N)r	   r
   r   r;   r   r   E_ATTACH_FAILUREr*   r   r   r   r   r     r   r   c                   @   rA   )AttachInvalidConfigFileErrorN)r	   r
   r   r   E_ATTACH_CONFIG_READ_ERRORr(   r   r   r   r   r     rD   r   c                   @   rA   )AttachInvalidTokenErrorN)r	   r
   r   r   E_ATTACH_INVALID_TOKENr*   r   r   r   r   r     rD   r   c                   @   rA   )AttachForbiddenExpiredN)r	   r
   r   r   E_ATTACH_FORBIDDEN_EXPIREDr(   r   r   r   r   r     rD   r   c                   @   rA   )AttachForbiddenNotYetN)r	   r
   r   r   E_ATTACH_FORBIDDEN_NOT_YETr(   r   r   r   r   r   !  rD   r   c                   @   rA   )AttachForbiddenNeverN)r	   r
   r   r   E_ATTACH_FORBIDDEN_NEVERr(   r   r   r   r   r   %  rD   r   c                   @   rA   )AttachExpiredTokenN)r	   r
   r   r   E_ATTACH_EXPIRED_TOKENr*   r   r   r   r   r   )  rD   r   c                   @   rA   ) MagicAttachTokenAlreadyActivatedN)r	   r
   r   r   &E_MAGIC_ATTACH_TOKEN_ALREADY_ACTIVATEDr*   r   r   r   r   r   -  rD   r   c                   @   rA   )MagicAttachTokenErrorN)r	   r
   r   r   E_MAGIC_ATTACH_TOKEN_ERRORr*   r   r   r   r   r   1  rD   r   c                   @   rA   )MagicAttachUnavailableN)r	   r
   r   r   E_MAGIC_ATTACH_UNAVAILABLEr*   r   r   r   r   r   5  rD   r   c                   @   rA   )MagicAttachInvalidParamN)r	   r
   r   r   E_MAGIC_ATTACH_INVALID_PARAMr(   r   r   r   r   r   9  rD   r   c                   @      e Zd ZdZejZdS )MissingAptURLDirectivez@An exception for when the contract server doesn't include aptURLN)r	   r
   r   r;   r   E_MISSING_APT_URL_DIRECTIVEr(   r   r   r   r   r   =      
r   c                   @   r   )UnattachedErrorz>An exception to be raised when a machine needs to be attached.N)r	   r
   r   r;   r   E_UNATTACHEDr*   r   r   r   r   r   C  r   r   c                   @   rA   )UnattachedValidServicesErrorN)r	   r
   r   r   "E_VALID_SERVICE_FAILURE_UNATTACHEDr(   r   r   r   r   r   I  rD   r   c                   @   rA   )UnattachedMixedServicesErrorN)r	   r
   r   r   #E_MIXED_SERVICES_FAILURE_UNATTACHEDr(   r   r   r   r   r   M  rD   r   c                   @   rA   )UnattachedInvalidServicesErrorNr   r   r   r   r   r   Q  rD   r   c                   @   rA   )EntitlementNotFoundErrorN)r	   r
   r   r   E_ENTITLEMENT_NOT_FOUNDr(   r   r   r   r   r   U  rD   r   c                       s:   e Zd ZdZejZdeee	ej
f  f fddZ  ZS )EntitlementsNotEnabledError   failed_servicesc                    s$   dd |D }t  jd|id d S )Nc                 S   s(   g | ]}|d  |d j |d jdqS )r   r&   )r7   rp   title)r7   r4   ).0fr   r   r   
<listcomp>`  s    z8EntitlementsNotEnabledError.__init__.<locals>.<listcomp>services)r+   )r   r   )r   r   
info_dictsr    r   r   r   ]  s   
z$EntitlementsNotEnabledError.__init__)r	   r
   r   r   r    E_ENTITLEMENTS_NOT_ENABLED_ERRORr*   r   r   r"   r@   r   r$   r   r   r    r   r   Y  s    r   c                       .   e Zd ZejZdedejf fddZ  Z	S )EntitlementNotEnabledErrorservicerz   c                    &   t  j|d|j|j|jdid d S Nrz   )rp   r   r+   )r   r+   r   r   r7   r4   r+   r   r   rz   r    r   r   r   l     
z#EntitlementNotEnabledError.__init__)
r	   r
   r   r   E_ENTITLEMENT_NOT_ENABLED_ERRORr(   r"   r@   r   r$   r   r   r    r   r   i       r   c                       r   )EntitlementNotDisabledErrorr   rz   c                    r   r   r   r   r    r   r   r   |  r   z$EntitlementNotDisabledError.__init__)
r	   r
   r   r    E_ENTITLEMENT_NOT_DISABLED_ERRORr(   r"   r@   r   r$   r   r   r    r   r   y  r   r   c                   @   rA   )AttachFailureDefaultServicesN)r	   r
   r   r   !E_ATTACH_FAILURE_DEFAULT_SERVICESr*   r   r   r   r   r     rD   r   c                   @   rA   )AttachFailureUnknownErrorN)r	   r
   r   r   E_ATTACH_FAILURE_UNEXPECTEDr*   r   r   r   r   r     rD   r   c                   @   rA   )AttachFailureRestrictedReleaseN)r	   r
   r   r   !ATTACH_FAILURE_RESTRICTED_RELEASEr(   r   r   r   r   r     rD   r   c                   @   rA   )RepoNoAptKeyN)r	   r
   r   r   E_REPO_NO_APT_KEYr(   r   r   r   r   r     rD   r   c                   @   rA   )RepoNoSuitesN)r	   r
   r   r   E_REPO_NO_SUITESr(   r   r   r   r   r     rD   r   c                   @   rA   )RepoPinFailNoOriginN)r	   r
   r   r   E_REPO_PIN_FAIL_NO_ORIGINr(   r   r   r   r   r     rD   r   c                   @   rA   ) InvalidContractDeltasServiceTypeN)r	   r
   r   r   &E_INVALID_CONTRACT_DELTAS_SERVICE_TYPEr(   r   r   r   r   r     rD   r   c                   @   rA   )%EntitlementsAPTDirectivesAreNotUniqueN)r	   r
   r   r   ,E_ENTITLEMENTS_APT_DIRECTIVES_ARE_NOT_UNIQUEr(   r   r   r   r   r     rD   r   c                   @   rA   )RequiredServiceStopsEnableN)r	   r
   r   r   E_REQUIRED_SERVICE_STOPS_ENABLEr(   r   r   r   r   r     rD   r   c                   @   rA   )IncompatibleServiceStopsEnableN)r	   r
   r   r   #E_INCOMPATIBLE_SERVICE_STOPS_ENABLEr(   r   r   r   r   r     rD   r   c                   @   rA   )DependentServiceStopsDisableN)r	   r
   r   r   !E_DEPENDENT_SERVICE_STOPS_DISABLEr(   r   r   r   r   r     rD   r   c                   @   rA   )LandscapeConfigFailedN)r	   r
   r   r   E_LANDSCAPE_CONFIG_FAILEDr*   r   r   r   r   r     rD   r   c                   @   rA   )#NonInteractiveKernelPurgeDisallowedN)r	   r
   r   r   )E_NON_INTERACTIVE_KERNEL_PURGE_DISALLOWEDr*   r   r   r   r   r     rD   r   c                   @   s   e Zd ZejZdZdS )InvalidProImageN)r	   r
   r   r   E_INVALID_PRO_IMAGEr(   	error_msgr   r   r   r   r     s    r   c                   @   rA   )CloudMetadataErrorN)r	   r
   r   r   E_CLOUD_METADATA_ERRORr(   r   r   r   r   r     rD   r   c                   @   r   )GCPServiceAccountErrorz;An exception raised when GCP service account is not enabledN)r	   r
   r   r;   r   $E_GCP_SERVICE_ACCT_NOT_ENABLED_ERRORr(   r   r   r   r   r     r   r   c                   @   rA   )AWSNoValidIMDSN)r	   r
   r   r   E_AWS_NO_VALID_IMDSr(   r   r   r   r   r     rD   r   c                   @   r   )CloudFactoryErrorNr   r   r   r   r   r     r   r   c                   @   rA   )CloudFactoryNoCloudErrorN)r	   r
   r   r    E_UNABLE_TO_DETERMINE_CLOUD_TYPEr*   r   r   r   r   r     rD   r   c                   @   rA   )CloudFactoryNonViableCloudErrorN)r	   r
   r   r   E_UNSUPPORTED_AUTO_ATTACHr*   r   r   r   r   r     rD   r   c                   @   r   )NonAutoAttachImageErrorz>Raised when machine isn't running an auto-attach enabled imager   N)r	   r
   r   r;   r   r   $E_UNSUPPORTED_AUTO_ATTACH_CLOUD_TYPEr(   r   r   r   r   r     r   r   c                   @   rA   )InvalidFileFormatErrorN)r	   r
   r   r   E_INVALID_FILE_FORMATr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidFileEncodingErrorN)r	   r
   r   r   E_INVALID_FILE_ENCODINGr(   r   r   r   r   r     rD   r   c                   @   rA   )ParsingErrorOnOSReleaseFileN)r	   r
   r   r   "E_ERROR_PARSING_VERSION_OS_RELEASEr(   r   r   r   r   r     rD   r   c                   @   rA   )MissingSeriesOnOSReleaseFileN)r	   r
   r   r   E_MISSING_SERIES_ON_OS_RELEASEr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidLockFileN)r	   r
   r   r   E_INVALID_LOCK_FILEr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidJsonN)r	   r
   r   r   E_JSON_PARSER_ERRORr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidBooleanConfigValueN)r	   r
   r   r   E_INVALID_BOOLEAN_CONFIG_VALUEr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidPosIntConfigValueN)r	   r
   r   r   "E_CLI_CONFIG_VALUE_MUST_BE_POS_INTr(   r   r   r   r   r   	  rD   r   c                   @   rA   )InvalidURLConfigValueN)r	   r
   r   r   E_CONFIG_INVALID_URLr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidFeatureYamlConfigValueN)r	   r
   r   r   E_CONFIG_NO_YAML_FILEr(   r   r   r   r   r     rD   r   c                   @   rA   )InvalidProxyCombinationConfigN)r	   r
   r   r   E_INVALID_PROXY_COMBINATIONr*   r   r   r   r   r    rD   r  c                   @   rA   )MissingDistroInfoFileN)r	   r
   r   r   E_MISSING_DISTRO_INFO_FILEr*   r   r   r   r   r    rD   r  c                   @   rA   )MissingSeriesInDistroInfoFileN)r	   r
   r   r   $E_MISSING_SERIES_IN_DISTRO_INFO_FILEr(   r   r   r   r   r    rD   r  c                   @   rA   )InvalidOptionCombinationN)r	   r
   r   r   E_INVALID_OPTION_COMBINATIONr(   r   r   r   r   r  &  rD   r  c                   @   rA   )NoHelpContentN)r	   r
   r   r   E_CLI_NO_HELPr(   r   r   r   r   r	  *  rD   r	  c                   @   rA   )InvalidSecurityIssueIdFormatN)r	   r
   r   r   #E_SECURITY_FIX_CLI_ISSUE_REGEX_FAILr(   r   r   r   r   r  .  rD   r  c                   @   rA   )InvalidArgChoiceN)r	   r
   r   r   E_CLI_VALID_CHOICESr(   r   r   r   r   r  2  rD   r  c                   @   rA   )EmptyConfigValueN)r	   r
   r   r   E_CLI_EMPTY_CONFIG_VALUEr(   r   r   r   r   r  6  rD   r  c                   @   rA   )GenericInvalidFormatN)r	   r
   r   r   E_CLI_EXPECTED_FORMATr(   r   r   r   r   r  :  rD   r  c                   @   rA   )RefreshConfigFailureN)r	   r
   r   r   E_REFRESH_CONFIG_FAILUREr*   r   r   r   r   r  >  rD   r  c                   @   rA   )RefreshContractFailureN)r	   r
   r   r   E_REFRESH_CONTRACT_FAILUREr*   r   r   r   r   r  B  rD   r  c                   @   rA   )RefreshMessagesFailureN)r	   r
   r   r   E_REFRESH_MESSAGES_FAILUREr*   r   r   r   r   r  F  rD   r  c                   @   rA   )CLIJSONFormatRequireAssumeYesN)r	   r
   r   r    E_JSON_FORMAT_REQUIRE_ASSUME_YESr*   r   r   r   r   r  J  rD   r  c                   @   rA   )CLIAttachTokenArgXORConfigN)r	   r
   r   r   E_ATTACH_TOKEN_ARG_XOR_CONFIGr*   r   r   r   r   r  N  rD   r  c                   @   rA   )CLIAPIOptionsXORDataN)r	   r
   r   r   "E_API_ERROR_ARGS_AND_DATA_TOGETHERr*   r   r   r   r   r  R  rD   r  c                   @   rA   )PromptDeniedErrorN)r	   r
   r   r   E_PROMPT_DENIEDr*   r   r   r   r   r  V  rD   r  c                   @   s   e Zd ZdZejZdZdS )LockHeldErrora  An exception for when another pro operation is in progress

    :param lock_request: String of the command requesting the lock
    :param lock_holder: String of the command that currently holds the lock
    :param pid: Integer of the process id of the lock_holder
    N)r	   r
   r   r;   r   E_LOCK_HELD_ERRORr(   pidr   r   r   r   r!  _  s    r!  c                   @   r   )NonRootUserErrorz7An exception to be raised when a user needs to be root.N)r	   r
   r   r;   r   E_NONROOT_USERr*   r   r   r   r   r$  k  r   r$  c                   @   r   )SecurityAPIMetadataErrorzDAn exception raised with Security API metadata returns invalid data.N)r	   r
   r   r;   r   E_SECURITY_API_INVALID_METADATAr(   r   r   r   r   r&  q  r   r&  c                   @   rA   )SecurityIssueNotFoundN)r	   r
   r   r   E_SECURITY_FIX_NOT_FOUND_ISSUEr(   r   r   r   r   r(  w  rD   r(  c                   @   rA   )GPGKeyNotFoundN)r	   r
   r   r   E_GPG_KEY_NOT_FOUNDr(   r   r   r   r   r*  {  rD   r*  N)wtypingr   r   r   uaclientr   r   r   r   r   r   r}   r   r%   UserFacingErrorr=   rB   rE   rG   rI   rK   rM   rO   rQ   rS   rU   rW   rY   r[   r]   r_   ra   rc   re   rg   ri   rk   rm   ro   rt   ru   rv   rx   UrlErrorr   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   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   <module>   s    '		
			