U
    JhH                     @   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ZvG ddބ de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~dS )    )ListOptionalTuple)messagesc                   @   s   e Zd ZdS )InPlaceUpgradeNotSupportedErrorN__name__
__module____qualname__ r   r   5/usr/lib/python3/dist-packages/uaclient/exceptions.pyr      s   r   c                   @   s   e Zd ZdS )IsProLicensePresentErrorNr   r   r   r   r   r   
   s   r   c                   @   s   e Zd ZdS )CancelProLicensePollingNr   r   r   r   r   r      s   r   c                   @   s   e Zd ZdS )DelayProLicensePollingNr   r   r   r   r   r      s   r   c                       s0   e Zd Zdeee eedd 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   ZSUBP_INVALID_COMMANDformatZ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                   @   sJ   e Zd ZdZdZdZdZd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   sL   | j d k	r| j jf || _n| j| _|| _| D ]\}}t| || q2d S N)_formatted_msgr   	named_msg_msgadditional_infoitemssetattr)r   kwargskeyvaluer   r   r   r   5   s    
zUbuntuProError.__init__c                 C   s   | j jS r$   r&   msgr   r   r   r   r/   B   s    zUbuntuProError.msgc                 C   s   | j jS r$   )r&   namer0   r   r   r   msg_codeF   s    zUbuntuProError.msg_codec                 C   s   | j jS r$   r.   r0   r   r   r   __str__J   s    zUbuntuProError.__str__)r   r	   r
   __doc__r'   r%   r   r   propertyr/   r2   r3   r   r   r   r   r!   *   s   

r!   c                       s(   e Zd ZdZejd 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                    s   t  jf | || _d S r$   )r   r   r&   )r   r&   r+   r   r   r   r   [   s    z AnonymousUbuntuProError.__init__)r   r	   r
   r4   r   NamedMessager   r    r   r   r   r   r6   T   s   r6   c                   @   s   e Zd ZejZdS )APTProcessConflictErrorN)r   r	   r
   r   ZE_APT_PROCESS_CONFLICTr'   r   r   r   r   r8   e   s   r8   c                   @   s   e Zd ZejZdS )APTInvalidRepoErrorN)r   r	   r
   r   ZE_APT_UPDATE_INVALID_URL_CONFIGr%   r   r   r   r   r9   i   s   r9   c                   @   s   e Zd ZejZdS )APTUpdateProcessConflictErrorN)r   r	   r
   r   ZE_APT_UPDATE_PROCESS_CONFLICTr'   r   r   r   r   r:   m   s   r:   c                   @   s   e Zd ZejZdS )APTUpdateInvalidRepoErrorN)r   r	   r
   r   ZE_APT_UPDATE_INVALID_REPOr%   r   r   r   r   r;   q   s   r;   c                   @   s   e Zd ZejZdS )APTUpdateFailedN)r   r	   r
   r   ZE_APT_UPDATE_FAILEDr%   r   r   r   r   r<   u   s   r<   c                   @   s   e Zd ZejZdS )APTInstallProcessConflictErrorN)r   r	   r
   r   ZE_APT_INSTALL_PROCESS_CONFLICTr'   r   r   r   r   r=   y   s   r=   c                   @   s   e Zd ZejZdS )APTInstallInvalidRepoErrorN)r   r	   r
   r   ZE_APT_INSTALL_INVALID_REPOr%   r   r   r   r   r>   }   s   r>   c                   @   s   e Zd ZejZdS )APTInvalidCredentialsN)r   r	   r
   r   ZE_APT_INVALID_CREDENTIALSr%   r   r   r   r   r?      s   r?   c                   @   s   e Zd ZejZdS )
APTTimeoutN)r   r	   r
   r   ZE_APT_TIMEOUTr%   r   r   r   r   r@      s   r@   c                   @   s   e Zd ZejZdS )APTUnexpectedErrorN)r   r	   r
   r   ZE_APT_UNEXPECTED_ERRORr%   r   r   r   r   rA      s   rA   c                   @   s   e Zd ZejZdS )APTCommandTimeoutN)r   r	   r
   r   ZE_APT_COMMAND_TIMEOUTr%   r   r   r   r   rB      s   rB   c                   @   s   e Zd ZejZdS )SnapNotInstalledErrorN)r   r	   r
   r   ZE_SNAP_NOT_INSTALLED_ERRORr%   r   r   r   r   rC      s   rC   c                   @   s   e Zd ZejZdS )UnexpectedSnapdAPIErrorN)r   r	   r
   r   ZE_UNEXPECTED_SNAPD_API_ERRORr%   r   r   r   r   rD      s   rD   c                   @   s   e Zd ZejZdS )SnapdAPIConnectionRefusedN)r   r	   r
   r   ZE_SNAPD_CONNECTION_REFUSEDr'   r   r   r   r   rE      s   rE   c                   @   s   e Zd ZejZdS )CannotInstallSnapdErrorN)r   r	   r
   r   ZE_CANNOT_INSTALL_SNAPDr'   r   r   r   r   rF      s   rF   c                   @   s   e Zd ZejZdS )ErrorInstallingLivepatchN)r   r	   r
   r   ZE_ERROR_INSTALLING_LIVEPATCHr%   r   r   r   r   rG      s   rG   c                   @   s   e Zd ZejZdS )
InvalidUrlN)r   r	   r
   r   ZE_INVALID_URLr%   r   r   r   r   rH      s   rH   c                   @   s   e Zd ZejZdS )ProxyNotWorkingErrorN)r   r	   r
   r   ZE_NOT_SETTING_PROXY_NOT_WORKINGr%   r   r   r   r   rI      s   rI   c                   @   s   e Zd ZejZdS )ProxyInvalidUrlN)r   r	   r
   r   ZE_NOT_SETTING_PROXY_INVALID_URLr%   r   r   r   r   rJ      s   rJ   c                   @   s   e Zd ZejZdS )PycurlRequiredErrorN)r   r	   r
   r   ZE_PYCURL_REQUIREDr'   r   r   r   r   rK      s   rK   c                   @   s   e Zd ZejZdS )PycurlErrorN)r   r	   r
   r   ZE_PYCURL_ERRORr%   r   r   r   r   rL      s   rL   c                   @   s   e Zd ZejZdS )ProxyAuthenticationFailedN)r   r	   r
   r   ZE_PROXY_AUTH_FAILr'   r   r   r   r   rM      s   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bodyr0   r   r   r   r3      s    zExternalAPIError.__str__)
r   r	   r
   r   ZE_EXTERNAL_API_ERRORr%   rO   rP   rQ   r3   r   r   r   r   rN      s
   rN   c                   @   s   e Zd ZdS )ContractAPIErrorNr   r   r   r   r   rR      s   rR   c                   @   s   e Zd ZdS )SecurityAPIErrorNr   r   r   r   r   rS      s   rS   c                       s(   e Zd ZejZdd fddZ  ZS )PycurlCACertificatesErrorNr#   c                    s   t  jf | || _d S r$   )r   r   rP   )r   rP   r+   r   r   r   r      s    z"PycurlCACertificatesError.__init__)r   r	   r
   r   ZE_PYCURL_CA_CERTIFICATESr'   r   r    r   r   r   r   rT      s   rT   c                   @   s"   e Zd ZejZeedddZdS )ConnectivityError)causerP   c                 C   sP   t |dd rtt |d}nt|}t| | tj| ||d || _|| _d S )Nreason)cause_errorrP   )getattrr   IOErrorr   r!   rX   rP   )r   rV   rP   rX   r   r   r   r      s    zConnectivityError.__init__N)	r   r	   r
   r   ZE_CONNECTIVITY_ERRORr%   	Exceptionr   r   r   r   r   r   rU      s   rU   c                   @   s   e Zd ZejZdS )ContractExpiredErrorN)r   r	   r
   r   ZE_CONTRACT_EXPIREDr'   r   r   r   r   r\      s   r\   c                   @   s   e Zd ZejZdS )InvalidServiceOpErrorNr   r	   r
   r   ZE_INVALID_SERVICE_OP_FAILUREr%   r   r   r   r   r]     s   r]   c                   @   s   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
   r4   r   r   ZE_ALREADY_ATTACHEDr%   r   r   r   r   r_     s   r_   c                   @   s   e Zd ZdZdZejZdS )AttachErrorz@An exception to be raised when we detect a generic attach error.r"   N)r   r	   r
   r4   r   r   ZE_ATTACH_FAILUREr'   r   r   r   r   ra     s   ra   c                   @   s   e Zd ZejZdS )AttachInvalidConfigFileErrorN)r   r	   r
   r   ZE_ATTACH_CONFIG_READ_ERRORr%   r   r   r   r   rb     s   rb   c                   @   s   e Zd ZejZdS )AttachInvalidTokenErrorN)r   r	   r
   r   ZE_ATTACH_INVALID_TOKENr'   r   r   r   r   rc     s   rc   c                   @   s   e Zd ZejZdS )AttachForbiddenExpiredN)r   r	   r
   r   ZE_ATTACH_FORBIDDEN_EXPIREDr%   r   r   r   r   rd     s   rd   c                   @   s   e Zd ZejZdS )AttachForbiddenNotYetN)r   r	   r
   r   ZE_ATTACH_FORBIDDEN_NOT_YETr%   r   r   r   r   re   !  s   re   c                   @   s   e Zd ZejZdS )AttachForbiddenNeverN)r   r	   r
   r   ZE_ATTACH_FORBIDDEN_NEVERr%   r   r   r   r   rf   %  s   rf   c                   @   s   e Zd ZejZdS )AttachExpiredTokenN)r   r	   r
   r   ZE_ATTACH_EXPIRED_TOKENr'   r   r   r   r   rg   )  s   rg   c                   @   s   e Zd ZejZdS ) MagicAttachTokenAlreadyActivatedN)r   r	   r
   r   Z&E_MAGIC_ATTACH_TOKEN_ALREADY_ACTIVATEDr'   r   r   r   r   rh   -  s   rh   c                   @   s   e Zd ZejZdS )MagicAttachTokenErrorN)r   r	   r
   r   ZE_MAGIC_ATTACH_TOKEN_ERRORr'   r   r   r   r   ri   1  s   ri   c                   @   s   e Zd ZejZdS )MagicAttachUnavailableN)r   r	   r
   r   ZE_MAGIC_ATTACH_UNAVAILABLEr'   r   r   r   r   rj   5  s   rj   c                   @   s   e Zd ZejZdS )MagicAttachInvalidParamN)r   r	   r
   r   ZE_MAGIC_ATTACH_INVALID_PARAMr%   r   r   r   r   rk   9  s   rk   c                   @   s   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
   r4   r   ZE_MISSING_APT_URL_DIRECTIVEr%   r   r   r   r   rl   =  s   rl   c                   @   s   e Zd ZdZejZdS )UnattachedErrorz>An exception to be raised when a machine needs to be attached.N)r   r	   r
   r4   r   ZE_UNATTACHEDr'   r   r   r   r   rm   C  s   rm   c                   @   s   e Zd ZejZdS )UnattachedValidServicesErrorN)r   r	   r
   r   Z"E_VALID_SERVICE_FAILURE_UNATTACHEDr%   r   r   r   r   rn   I  s   rn   c                   @   s   e Zd ZejZdS )UnattachedMixedServicesErrorN)r   r	   r
   r   Z#E_MIXED_SERVICES_FAILURE_UNATTACHEDr%   r   r   r   r   ro   M  s   ro   c                   @   s   e Zd ZejZdS )UnattachedInvalidServicesErrorNr^   r   r   r   r   rp   Q  s   rp   c                   @   s   e Zd ZejZdS )EntitlementNotFoundErrorN)r   r	   r
   r   ZE_ENTITLEMENT_NOT_FOUNDr%   r   r   r   r   rq   U  s   rq   c                       s:   e Zd ZdZejZeee	ej
f  d 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"   )r1   rO   title)r1   r/   ).0fr   r   r   
<listcomp>`  s   z8EntitlementsNotEnabledError.__init__.<locals>.<listcomp>services)r(   )r   r   )r   rt   Z
info_dictsr   r   r   r   ]  s    z$EntitlementsNotEnabledError.__init__)r   r	   r
   r   r   Z E_ENTITLEMENTS_NOT_ENABLED_ERRORr'   r   r   r   r7   r   r    r   r   r   r   rr   Y  s   rr   c                       s,   e Zd ZejZeejd fddZ  Z	S )EntitlementNotEnabledErrorservicerW   c                    s&   t  j|d|j|j|jdid d S NrW   )rO   ru   r(   )r|   r(   r   r   r1   r/   r(   r   r|   rW   r   r   r   r   l  s    z#EntitlementNotEnabledError.__init__)
r   r	   r
   r   ZE_ENTITLEMENT_NOT_ENABLED_ERRORr%   r   r7   r   r    r   r   r   r   rz   i  s   rz   c                       s,   e Zd ZejZeejd fddZ  Z	S )EntitlementNotDisabledErrorr{   c                    s&   t  j|d|j|j|jdid d S r}   r~   r   r   r   r   r   |  s    z$EntitlementNotDisabledError.__init__)
r   r	   r
   r   Z E_ENTITLEMENT_NOT_DISABLED_ERRORr%   r   r7   r   r    r   r   r   r   r   y  s   r   c                   @   s   e Zd ZejZdS )AttachFailureDefaultServicesN)r   r	   r
   r   Z!E_ATTACH_FAILURE_DEFAULT_SERVICESr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )AttachFailureUnknownErrorN)r   r	   r
   r   ZE_ATTACH_FAILURE_UNEXPECTEDr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )AttachFailureRestrictedReleaseN)r   r	   r
   r   Z!ATTACH_FAILURE_RESTRICTED_RELEASEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )RepoNoAptKeyN)r   r	   r
   r   ZE_REPO_NO_APT_KEYr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )RepoNoSuitesN)r   r	   r
   r   ZE_REPO_NO_SUITESr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )RepoPinFailNoOriginN)r   r	   r
   r   ZE_REPO_PIN_FAIL_NO_ORIGINr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS ) InvalidContractDeltasServiceTypeN)r   r	   r
   r   Z&E_INVALID_CONTRACT_DELTAS_SERVICE_TYPEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )%EntitlementsAPTDirectivesAreNotUniqueN)r   r	   r
   r   Z,E_ENTITLEMENTS_APT_DIRECTIVES_ARE_NOT_UNIQUEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )RequiredServiceStopsEnableN)r   r	   r
   r   ZE_REQUIRED_SERVICE_STOPS_ENABLEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )IncompatibleServiceStopsEnableN)r   r	   r
   r   Z#E_INCOMPATIBLE_SERVICE_STOPS_ENABLEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )DependentServiceStopsDisableN)r   r	   r
   r   Z!E_DEPENDENT_SERVICE_STOPS_DISABLEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )LandscapeConfigFailedN)r   r	   r
   r   ZE_LANDSCAPE_CONFIG_FAILEDr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )#NonInteractiveKernelPurgeDisallowedN)r   r	   r
   r   Z)E_NON_INTERACTIVE_KERNEL_PURGE_DISALLOWEDr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdZdS )InvalidProImageN)r   r	   r
   r   ZE_INVALID_PRO_IMAGEr%   Z	error_msgr   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )CloudMetadataErrorN)r   r	   r
   r   ZE_CLOUD_METADATA_ERRORr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZdZejZdS )GCPServiceAccountErrorz;An exception raised when GCP service account is not enabledN)r   r	   r
   r4   r   Z$E_GCP_SERVICE_ACCT_NOT_ENABLED_ERRORr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )AWSNoValidIMDSN)r   r	   r
   r   ZE_AWS_NO_VALID_IMDSr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZdS )CloudFactoryErrorNr   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )CloudFactoryNoCloudErrorN)r   r	   r
   r   Z E_UNABLE_TO_DETERMINE_CLOUD_TYPEr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )CloudFactoryNonViableCloudErrorN)r   r	   r
   r   ZE_UNSUPPORTED_AUTO_ATTACHr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZdZdZejZdS )NonAutoAttachImageErrorz>Raised when machine isn't running an auto-attach enabled imager   N)r   r	   r
   r4   r   r   Z$E_UNSUPPORTED_AUTO_ATTACH_CLOUD_TYPEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )LXDAutoAttachNotAvailableN)r   r	   r
   r   ZE_LXD_AUTO_ATTACH_NOT_AVAILABLEr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )LXDAutoAttachNotAllowedN)r   r	   r
   r   ZE_LXD_AUTO_ATTACH_NOT_ALLOWEDr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidFileFormatErrorN)r   r	   r
   r   ZE_INVALID_FILE_FORMATr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidFileEncodingErrorN)r   r	   r
   r   ZE_INVALID_FILE_ENCODINGr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )ParsingErrorOnOSReleaseFileN)r   r	   r
   r   Z"E_ERROR_PARSING_VERSION_OS_RELEASEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )MissingSeriesOnOSReleaseFileN)r   r	   r
   r   ZE_MISSING_SERIES_ON_OS_RELEASEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidLockFileN)r   r	   r
   r   ZE_INVALID_LOCK_FILEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidJsonN)r   r	   r
   r   ZE_JSON_PARSER_ERRORr%   r   r   r   r   r   	  s   r   c                   @   s   e Zd ZejZdS )InvalidBooleanConfigValueN)r   r	   r
   r   ZE_INVALID_BOOLEAN_CONFIG_VALUEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidPosIntConfigValueN)r   r	   r
   r   Z"E_CLI_CONFIG_VALUE_MUST_BE_POS_INTr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidURLConfigValueN)r   r	   r
   r   ZE_CONFIG_INVALID_URLr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidFeatureYamlConfigValueN)r   r	   r
   r   ZE_CONFIG_NO_YAML_FILEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )InvalidProxyCombinationConfigN)r   r	   r
   r   ZE_INVALID_PROXY_COMBINATIONr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )MissingDistroInfoFileN)r   r	   r
   r   ZE_MISSING_DISTRO_INFO_FILEr'   r   r   r   r   r   !  s   r   c                   @   s   e Zd ZejZdS )MissingSeriesInDistroInfoFileN)r   r	   r
   r   Z$E_MISSING_SERIES_IN_DISTRO_INFO_FILEr%   r   r   r   r   r   %  s   r   c                   @   s   e Zd ZejZdS )UnsupportedManifestFileN)r   r	   r
   r   ZE_UNSUPPORTED_MANIFEST_FILEr%   r   r   r   r   r   )  s   r   c                   @   s   e Zd ZejZdS )InvalidOptionCombinationN)r   r	   r
   r   ZE_INVALID_OPTION_COMBINATIONr%   r   r   r   r   r   2  s   r   c                   @   s   e Zd ZejZdS )DepedentOptionErrorN)r   r	   r
   r   ZE_DEPENDENT_OPTIONr%   r   r   r   r   r   6  s   r   c                   @   s   e Zd ZejZdS )NoHelpContentN)r   r	   r
   r   ZE_CLI_NO_HELPr%   r   r   r   r   r   :  s   r   c                   @   s   e Zd ZejZdS )InvalidSecurityIssueIdFormatN)r   r	   r
   r   Z#E_SECURITY_FIX_CLI_ISSUE_REGEX_FAILr%   r   r   r   r   r   >  s   r   c                   @   s   e Zd ZejZdS )InvalidArgChoiceN)r   r	   r
   r   ZE_CLI_VALID_CHOICESr%   r   r   r   r   r   B  s   r   c                   @   s   e Zd ZejZdS )EmptyConfigValueN)r   r	   r
   r   ZE_CLI_EMPTY_CONFIG_VALUEr%   r   r   r   r   r   F  s   r   c                   @   s   e Zd ZejZdS )GenericInvalidFormatN)r   r	   r
   r   ZE_CLI_EXPECTED_FORMATr%   r   r   r   r   r   J  s   r   c                   @   s   e Zd ZejZdS )RefreshConfigFailureN)r   r	   r
   r   ZE_REFRESH_CONFIG_FAILUREr'   r   r   r   r   r   N  s   r   c                   @   s   e Zd ZejZdS )RefreshContractFailureN)r   r	   r
   r   ZE_REFRESH_CONTRACT_FAILUREr'   r   r   r   r   r   R  s   r   c                   @   s   e Zd ZejZdS )RefreshMessagesFailureN)r   r	   r
   r   ZE_REFRESH_MESSAGES_FAILUREr'   r   r   r   r   r   V  s   r   c                   @   s   e Zd ZejZdS )CLIJSONFormatRequireAssumeYesN)r   r	   r
   r   Z E_JSON_FORMAT_REQUIRE_ASSUME_YESr'   r   r   r   r   r   Z  s   r   c                   @   s   e Zd ZejZdS )CLIAttachTokenArgXORConfigN)r   r	   r
   r   ZE_ATTACH_TOKEN_ARG_XOR_CONFIGr'   r   r   r   r   r   ^  s   r   c                   @   s   e Zd ZejZdS )CLIAPIOptionsXORDataN)r   r	   r
   r   Z"E_API_ERROR_ARGS_AND_DATA_TOGETHERr'   r   r   r   r   r   b  s   r   c                   @   s   e Zd ZejZdS )PromptDeniedErrorN)r   r	   r
   r   ZE_PROMPT_DENIEDr'   r   r   r   r   r   f  s   r   c                   @   s   e Zd ZejZdS )VulnerabilityDataNotFoundN)r   r	   r
   r   ZE_VULNERABILITY_DATA_NOT_FOUNDr'   r   r   r   r   r   o  s   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
   r4   r   ZE_LOCK_HELD_ERRORr%   pidr   r   r   r   r   x  s   r   c                   @   s   e Zd ZdZejZdS )NonRootUserErrorz7An exception to be raised when a user needs to be root.N)r   r	   r
   r4   r   ZE_NONROOT_USERr'   r   r   r   r   r     s   r   c                   @   s   e Zd ZdZejZdS )SecurityAPIMetadataErrorzDAn exception raised with Security API metadata returns invalid data.N)r   r	   r
   r4   r   ZE_SECURITY_API_INVALID_METADATAr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )SecurityIssueNotFoundN)r   r	   r
   r   ZE_SECURITY_FIX_NOT_FOUND_ISSUEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )GPGKeyNotFoundN)r   r	   r
   r   ZE_GPG_KEY_NOT_FOUNDr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )UnknownProcessorTypeN)r   r	   r
   r   ZE_UNKNOWN_PROCESSOR_TYPEr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS ) FeatureNotSupportedOldTokenErrorN)r   r	   r
   r   Z!E_FEATURE_NOT_SUPPORTED_OLD_TOKENr%   r   r   r   r   r     s   r   c                   @   s   e Zd ZejZdS )ETagUnchangedN)r   r	   r
   r   ZE_ETAG_UNCHANGEDZ_formatted_msg_r   r   r   r   r     s   r   N)typingr   r   r   Zuaclientr   r[   r   r   r   r   rZ   r   r!   ZUserFacingErrorr6   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rR   rS   rT   rU   ZUrlErrorr\   r]   r_   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rz   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   '		
					