
    2	                     `    d Z ddlmZ ddlmZ dZdZdZdZ	d Z
 G d d	ej                        Zy
)z/Helpers for exceptions raised by Audit Manager.    )
exceptionsz&Error: {status_code}. {status_message}-ERROR_CODE_NO_ORGANISATION_FOUND_FOR_RESOURCE ERROR_CODE_RESOURCE_NOT_ENROLLEDIAM_PERMISSION_DENIEDc                 j    | j                   j                  d   }|y |D cg c]  }|d   	 c}S c c}w )N	ErrorInforeason)payloadtype_details)edetailsds      ?lib/googlecloudsdk/command_lib/audit_manager/exception_utils.pyExtractReasonsr      s:    II"";/'_&	'w!!H+w	''	's   0c                   8    e Zd ZdZ	 	 ddZd Zed        Zd Zy)AuditManagerErrora	  Custom error class for Audit Manager related exceptions.

  Attributes:
    http_exception: core http exception thrown by gcloud
    suggested_command_purpose: what the suggested command achieves
    suggested_command: suggested command to help fix the exception
  Nc                 ^    t        j                  |t              | _        || _        || _        y )N)gcloud_exceptionHttpExceptionERROR_FORMAThttp_exceptionsuggested_command_purposesuggested_command)selferrorr   r   s       r   __init__zAuditManagerError.__init__/   s)     +88MD%>D".D    c                 v    | j                    }| j                  |d| j                   d| j                   z  }|S )Nz

Run the following command to z:

)r   r   r   )r   messages     r   __str__zAuditManagerError.__str__9   sQ    $$%G%%1,,-U43I3I2JLg
 Nr   c                 H    | j                   j                  j                  d   S )Nr   )r   r
   r   )r   s    r   
error_infozAuditManagerError.error_infoD   s    &&33K@@r   c                 J    || j                   D cg c]  }|d   	 c}v S c c}w )Nr	   )r"   )r   r	   r   s      r   has_error_infoz AuditManagerError.has_error_infoH   s'    4??;?aak?;;;;s    )NN)	__name__
__module____qualname____doc__r   r    propertyr"   r$    r   r   r   r   &   s4     !%	/	 A A<r   r   N)r(   googlecloudsdk.api_lib.utilr   r   googlecloudsdk.coregcloud_core_exceptionsr   "ERROR_REASON_NO_ORGANISATION_FOUNDERROR_REASON_NOT_ENROLLEDERROR_REASON_PERMISSION_DENIEDr   Errorr   r*   r   r   <module>r2      sE    6 F D 83 # ? !8 (#<.44 #<r   