# 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 GraphTaskInfo(Model):
    """GraphTaskInfo.

    :param task_id:
    :type task_id: str
    :param task_status: Possible values include: 'queued', 'needsUpdate',
     'running', 'failed', 'timedOut', 'aborted', 'deleted', 'successful',
     'skipped'
    :type task_status: str or
     ~microsoft.dynamics.customerinsights.api.models.enum
    :param operation_type: Possible values include: 'none', 'ingestion',
     'derivedEntity', 'dataPreparation', 'map', 'match', 'merge',
     'profileStore', 'search', 'activity', 'attributeMeasures',
     'entityMeasures', 'measures', 'segmentation', 'enrichment',
     'intelligence', 'aiBuilder', 'insights', 'export', 'modelManagement',
     'relationship', 'roleAssignment', 'analysis', 'all'
    :type operation_type: str or
     ~microsoft.dynamics.customerinsights.api.models.enum
    :param sub_type: Possible values include: 'templatedMeasures',
     'createAnalysisModel', 'linkAnalysisModel'
    :type sub_type: str or
     ~microsoft.dynamics.customerinsights.api.models.enum
    :param job_ids:
    :type job_ids: list[str]
    :param friendly_name:
    :type friendly_name: str
    :param end_timestamp:
    :type end_timestamp: datetime
    :param ci_error:
    :type ci_error: ~microsoft.dynamics.customerinsights.api.models.CIResult
    :param ci_errors:
    :type ci_errors:
     list[~microsoft.dynamics.customerinsights.api.models.CIResult]
    :param waiting_task_ids:
    :type waiting_task_ids: list[str]
    :param additional_info:
    :type additional_info:
     ~microsoft.dynamics.customerinsights.api.models.CustomTaskInformation
    :param submitted_timestamp:
    :type submitted_timestamp: datetime
    """

    _attribute_map = {
        'task_id': {'key': 'taskId', 'type': 'str'},
        'task_status': {'key': 'taskStatus', 'type': 'str'},
        'operation_type': {'key': 'operationType', 'type': 'str'},
        'sub_type': {'key': 'subType', 'type': 'str'},
        'job_ids': {'key': 'jobIds', 'type': '[str]'},
        'friendly_name': {'key': 'friendlyName', 'type': 'str'},
        'end_timestamp': {'key': 'endTimestamp', 'type': 'iso-8601'},
        'ci_error': {'key': 'ciError', 'type': 'CIResult'},
        'ci_errors': {'key': 'ciErrors', 'type': '[CIResult]'},
        'waiting_task_ids': {'key': 'waitingTaskIds', 'type': '[str]'},
        'additional_info': {'key': 'additionalInfo', 'type': 'CustomTaskInformation'},
        'submitted_timestamp': {'key': 'submittedTimestamp', 'type': 'iso-8601'},
    }

    def __init__(self, **kwargs):
        super(GraphTaskInfo, self).__init__(**kwargs)
        self.task_id = kwargs.get('task_id', None)
        self.task_status = kwargs.get('task_status', None)
        self.operation_type = kwargs.get('operation_type', None)
        self.sub_type = kwargs.get('sub_type', None)
        self.job_ids = kwargs.get('job_ids', None)
        self.friendly_name = kwargs.get('friendly_name', None)
        self.end_timestamp = kwargs.get('end_timestamp', None)
        self.ci_error = kwargs.get('ci_error', None)
        self.ci_errors = kwargs.get('ci_errors', None)
        self.waiting_task_ids = kwargs.get('waiting_task_ids', None)
        self.additional_info = kwargs.get('additional_info', None)
        self.submitted_timestamp = kwargs.get('submitted_timestamp', None)
