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

    :param number_of_bills_created: The number of bills created by the task
    :type number_of_bills_created: int
    :param number_of_failed_versions: The number of chargeback versions that
     failed to run within the task
    :type number_of_failed_versions: 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 = {
        'number_of_bills_created': {'key': 'numberOfBillsCreated', 'type': 'int'},
        'number_of_failed_versions': {'key': 'numberOfFailedVersions', '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, *, number_of_bills_created: int=None, number_of_failed_versions: int=None, task_id: int=None, workflow=None, task_begin=None, task_end=None, user=None, billing_period: int=None, batch=None, settings=None, comment: str=None, status: str=None, chargeback_type: str=None, reversed_by=None, reversed_date=None, number_of_analyzing_bills: int=None, number_of_unresolved_flags: int=None, **kwargs) -> None:
        super(ChargebackTaskResponse, self).__init__(**kwargs)
        self.number_of_bills_created = number_of_bills_created
        self.number_of_failed_versions = number_of_failed_versions
        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
        self.number_of_analyzing_bills = number_of_analyzing_bills
        self.number_of_unresolved_flags = number_of_unresolved_flags
