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

    :param operation_type: Possible values include: 'none', 'ingestion',
     'derivedEntity', 'hierarchy', 'dataPreparation', 'map',
     'realtimeM3Search', 'match', 'merge', 'profileStore', 'search',
     'activity', 'contact', 'attributeMeasures', 'entityMeasures', 'measures',
     'segmentation', 'segmentMembership', 'enrichment', 'preEnrichment',
     'transform', 'intelligence', 'aiBuilder', 'insights', 'export',
     'modelManagement', 'relationship', 'roleAssignment', 'analysis',
     'semanticEntity', 'all'
    :type operation_type: str or ~dynamics.customerinsights.api.models.enum
    :param sub_type: Possible values include: 'noSubType',
     'templatedMeasures', 'createAnalysisModel', 'linkAnalysisModel',
     'singleActivityMapping', 'powerPlatform'
    :type sub_type: str or ~dynamics.customerinsights.api.models.enum
    :param identifier:
    :type identifier: str
    :param friendly_name:
    :type friendly_name: str
    :param job_ids:
    :type job_ids: list[str]
    :param task_status: Possible values include: 'queued', 'needsUpdate',
     'running', 'failed', 'timedOut', 'aborted', 'deleted', 'successful',
     'skipped'
    :type task_status: str or ~dynamics.customerinsights.api.models.enum
    :param last_success_job_ids:
    :type last_success_job_ids: list[str]
    :param end_timestamp:
    :type end_timestamp: datetime
    :param last_successful_timestamp:
    :type last_successful_timestamp: datetime
    :param ci_error:
    :type ci_error: ~dynamics.customerinsights.api.models.CIResult
    :param ci_errors:
    :type ci_errors: list[~dynamics.customerinsights.api.models.CIResult]
    :param additional_info:
    :type additional_info:
     ~dynamics.customerinsights.api.models.CustomTaskInformation
    :param selection_reason:
    :type selection_reason:
     ~dynamics.customerinsights.api.models.SelectionReason
    """

    _attribute_map = {
        'operation_type': {'key': 'operationType', 'type': 'str'},
        'sub_type': {'key': 'subType', 'type': 'str'},
        'identifier': {'key': 'identifier', 'type': 'str'},
        'friendly_name': {'key': 'friendlyName', 'type': 'str'},
        'job_ids': {'key': 'jobIds', 'type': '[str]'},
        'task_status': {'key': 'taskStatus', 'type': 'str'},
        'last_success_job_ids': {'key': 'lastSuccessJobIds', 'type': '[str]'},
        'end_timestamp': {'key': 'endTimestamp', 'type': 'iso-8601'},
        'last_successful_timestamp': {'key': 'lastSuccessfulTimestamp', 'type': 'iso-8601'},
        'ci_error': {'key': 'ciError', 'type': 'CIResult'},
        'ci_errors': {'key': 'ciErrors', 'type': '[CIResult]'},
        'additional_info': {'key': 'additionalInfo', 'type': 'CustomTaskInformation'},
        'selection_reason': {'key': 'selectionReason', 'type': 'SelectionReason'},
    }

    def __init__(self, *, operation_type=None, sub_type=None, identifier: str=None, friendly_name: str=None, job_ids=None, task_status=None, last_success_job_ids=None, end_timestamp=None, last_successful_timestamp=None, ci_error=None, ci_errors=None, additional_info=None, selection_reason=None, **kwargs) -> None:
        super(GraphNodeInfo, self).__init__(**kwargs)
        self.operation_type = operation_type
        self.sub_type = sub_type
        self.identifier = identifier
        self.friendly_name = friendly_name
        self.job_ids = job_ids
        self.task_status = task_status
        self.last_success_job_ids = last_success_job_ids
        self.end_timestamp = end_timestamp
        self.last_successful_timestamp = last_successful_timestamp
        self.ci_error = ci_error
        self.ci_errors = ci_errors
        self.additional_info = additional_info
        self.selection_reason = selection_reason
