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

    :param version_id: The specific version id within the task we are
     reporting on
    :type version_id: int
    :param number_of_bills_created: The number of bills created for this
     version within the task
    :type number_of_bills_created: int
    :param error_message: Error that may have occurred when running this
     version within the task
    :type error_message: str
    :param destination_bill_ids: The billids of all the destination bills
     created by this version within the task
    :type destination_bill_ids: list[int]
    :param source_bill_id: If this was a bill split task, then ID of the bill
     that was split by this version within the task
    :type source_bill_id: int
    :param task_id: Identifier for the task
    :type task_id: int
    :param workflow:
    :type workflow: ~energycap.sdk.models.ChargebackWorkflowStepChild
    :param task_begin: Begin date when the task started
    :type task_begin: datetime
    :param task_end: End date when the task ended
    :type task_end: datetime
    :param user:
    :type user: ~energycap.sdk.models.UserChild
    :param billing_period: The billing period the task was run for
    :type billing_period: int
    :param batch:
    :type batch: ~energycap.sdk.models.BatchChild
    :param settings: The task's settings
    :type settings: object
    :param comment: User comments on the task
    :type comment: str
    :param status: Current status of the task
    :type status: str
    :param chargeback_type: The chargeback type.  Either "Split" or
     "Calculation"
    :type chargeback_type: str
    :param reversed_by:
    :type reversed_by: ~energycap.sdk.models.UserChild
    :param reversed_date: The date when all bills generated by the task were
     voided or deleted
    :type reversed_date: datetime
    :param number_of_analyzing_bills: The number of bills that are currently
     analyzing within the task
    :type number_of_analyzing_bills: int
    :param number_of_unresolved_flags: The number of unresolved flags on bills
     within the task
    :type number_of_unresolved_flags: int
    """

    _attribute_map = {
        'version_id': {'key': 'versionId', 'type': 'int'},
        'number_of_bills_created': {'key': 'numberOfBillsCreated', 'type': 'int'},
        'error_message': {'key': 'errorMessage', 'type': 'str'},
        'destination_bill_ids': {'key': 'destinationBillIds', 'type': '[int]'},
        'source_bill_id': {'key': 'sourceBillId', 'type': 'int'},
        'task_id': {'key': 'taskId', 'type': 'int'},
        'workflow': {'key': 'workflow', 'type': 'ChargebackWorkflowStepChild'},
        'task_begin': {'key': 'taskBegin', 'type': 'iso-8601'},
        'task_end': {'key': 'taskEnd', 'type': 'iso-8601'},
        'user': {'key': 'user', 'type': 'UserChild'},
        'billing_period': {'key': 'billingPeriod', 'type': 'int'},
        'batch': {'key': 'batch', 'type': 'BatchChild'},
        'settings': {'key': 'settings', 'type': 'object'},
        'comment': {'key': 'comment', 'type': 'str'},
        'status': {'key': 'status', 'type': 'str'},
        'chargeback_type': {'key': 'chargebackType', 'type': 'str'},
        'reversed_by': {'key': 'reversedBy', 'type': 'UserChild'},
        'reversed_date': {'key': 'reversedDate', 'type': 'iso-8601'},
        'number_of_analyzing_bills': {'key': 'numberOfAnalyzingBills', 'type': 'int'},
        'number_of_unresolved_flags': {'key': 'numberOfUnresolvedFlags', 'type': 'int'},
    }

    def __init__(self, **kwargs):
        super(ChargebackTaskVersionResponse, self).__init__(**kwargs)
        self.version_id = kwargs.get('version_id', None)
        self.number_of_bills_created = kwargs.get('number_of_bills_created', None)
        self.error_message = kwargs.get('error_message', None)
        self.destination_bill_ids = kwargs.get('destination_bill_ids', None)
        self.source_bill_id = kwargs.get('source_bill_id', None)
        self.task_id = kwargs.get('task_id', None)
        self.workflow = kwargs.get('workflow', None)
        self.task_begin = kwargs.get('task_begin', None)
        self.task_end = kwargs.get('task_end', None)
        self.user = kwargs.get('user', None)
        self.billing_period = kwargs.get('billing_period', None)
        self.batch = kwargs.get('batch', None)
        self.settings = kwargs.get('settings', None)
        self.comment = kwargs.get('comment', None)
        self.status = kwargs.get('status', None)
        self.chargeback_type = kwargs.get('chargeback_type', None)
        self.reversed_by = kwargs.get('reversed_by', None)
        self.reversed_date = kwargs.get('reversed_date', None)
        self.number_of_analyzing_bills = kwargs.get('number_of_analyzing_bills', None)
        self.number_of_unresolved_flags = kwargs.get('number_of_unresolved_flags', None)
