# 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 AdiEmsWebApiV2DtoProfileProcessingInformation(Model):
    """Encapsulates information about processing.

    All required parameters must be populated in order to send to Azure.

    :param processing_state: Required. The state of the processing.
    :type processing_state: str
    :param processed_date: Required. The date and time that the processing
     occured (UTC).
    :type processed_date: datetime
    :param retry_count: Required. The retry count.
    :type retry_count: int
    :param worker_cpu_time: Required. The worker cpu time of the processing in
     seconds.
    :type worker_cpu_time: float
    :param worker_wall_time: Required. The worker wall time of the processing
     in seconds.
    :type worker_wall_time: float
    :param total_wall_time: Required. The total wall time of the processing in
     seconds.
    :type total_wall_time: float
    :param is_failure: Required. Whether it is a failure.
    :type is_failure: bool
    :param failure_type: Required. The failure type.
    :type failure_type: int
    :param failure_name: Required. The failure name.
    :type failure_name: str
    """

    _validation = {
        'processing_state': {'required': True},
        'processed_date': {'required': True},
        'retry_count': {'required': True},
        'worker_cpu_time': {'required': True},
        'worker_wall_time': {'required': True},
        'total_wall_time': {'required': True},
        'is_failure': {'required': True},
        'failure_type': {'required': True},
        'failure_name': {'required': True},
    }

    _attribute_map = {
        'processing_state': {'key': 'processingState', 'type': 'str'},
        'processed_date': {'key': 'processedDate', 'type': 'iso-8601'},
        'retry_count': {'key': 'retryCount', 'type': 'int'},
        'worker_cpu_time': {'key': 'workerCpuTime', 'type': 'float'},
        'worker_wall_time': {'key': 'workerWallTime', 'type': 'float'},
        'total_wall_time': {'key': 'totalWallTime', 'type': 'float'},
        'is_failure': {'key': 'isFailure', 'type': 'bool'},
        'failure_type': {'key': 'failureType', 'type': 'int'},
        'failure_name': {'key': 'failureName', 'type': 'str'},
    }

    def __init__(self, *, processing_state: str, processed_date, retry_count: int, worker_cpu_time: float, worker_wall_time: float, total_wall_time: float, is_failure: bool, failure_type: int, failure_name: str, **kwargs) -> None:
        super(AdiEmsWebApiV2DtoProfileProcessingInformation, self).__init__(**kwargs)
        self.processing_state = processing_state
        self.processed_date = processed_date
        self.retry_count = retry_count
        self.worker_cpu_time = worker_cpu_time
        self.worker_wall_time = worker_wall_time
        self.total_wall_time = total_wall_time
        self.is_failure = is_failure
        self.failure_type = failure_type
        self.failure_name = failure_name
