# coding=utf-8
# --------------------------------------------------------------------------
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.
# --------------------------------------------------------------------------

from msrest.serialization import Model


class CIResult(Model):
    """Represents response result type.

    :param exception_culprit: Possible values include: 'system', 'user',
     'external'
    :type exception_culprit: str or ~dynamics.customerinsights.api.models.enum
    :param error_code:
    :type error_code: str
    :param result_severity: Possible values include: 'error', 'warning',
     'recommendation'
    :type result_severity: str or ~dynamics.customerinsights.api.models.enum
    :param message: Message providing more information about the event.
    :type message: str
    :param name: Message providing more information about the event.
    :type name: str
    :param params:
    :type params: dict[str, object]
    :param ci_results: List of CiResult contining CI result error code and
     information (if any).
    :type ci_results: list[~dynamics.customerinsights.api.models.CIResult]
    """

    _attribute_map = {
        'exception_culprit': {'key': 'exceptionCulprit', 'type': 'str'},
        'error_code': {'key': 'errorCode', 'type': 'str'},
        'result_severity': {'key': 'resultSeverity', 'type': 'str'},
        'message': {'key': 'message', 'type': 'str'},
        'name': {'key': 'name', 'type': 'str'},
        'params': {'key': 'params', 'type': '{object}'},
        'ci_results': {'key': 'ciResults', 'type': '[CIResult]'},
    }

    def __init__(self, **kwargs):
        super(CIResult, self).__init__(**kwargs)
        self.exception_culprit = kwargs.get('exception_culprit', None)
        self.error_code = kwargs.get('error_code', None)
        self.result_severity = kwargs.get('result_severity', None)
        self.message = kwargs.get('message', None)
        self.name = kwargs.get('name', None)
        self.params = kwargs.get('params', None)
        self.ci_results = kwargs.get('ci_results', None)
