# 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
    """

    _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'},
    }

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