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

    :param billing_period: Billing Period to be processed <span
     class='property-internal'>Required</span>
    :type billing_period: int
    :param start_date_for_bill: Optional Start Date for Bill being generated.
     Only used for Calculate Bill and that too when use is not from sub-meter
     reading
     The bills generated will inherit bill headers (accounting period, invoice
     number, control code, etc ) from the batch <span
     class='property-internal'>Must be between 12/31/1899 and 1/1/3000</span>
    :type start_date_for_bill: datetime
    :param end_date_for_bill: Optional End Date for Bill being generated. Only
     used for Calculate Bill and that too when use is not from sub-meter
     reading
     The bills generated will inherit bill headers (accounting period, invoice
     number, control code, etc ) from the batch <span
     class='property-internal'>Must be between 12/31/1899 and 1/1/3000</span>
    :type end_date_for_bill: datetime
    :param note: Optional note/comment <span class='property-internal'>Must be
     between 0 and 255 characters</span>
    :type note: str
    :param batch_settings: Optional BatchSettings. If provided the batch will
     be created with the settings in here.
     The bills generated will inherit bill headers (accounting period, invoice
     number, control code, etc ) from the batch
    :type batch_settings: ~energycap.sdk.models.BatchCreate
    """

    _validation = {
        'billing_period': {'required': True},
        'note': {'max_length': 255, 'min_length': 0},
    }

    _attribute_map = {
        'billing_period': {'key': 'billingPeriod', 'type': 'int'},
        'start_date_for_bill': {'key': 'startDateForBill', 'type': 'iso-8601'},
        'end_date_for_bill': {'key': 'endDateForBill', 'type': 'iso-8601'},
        'note': {'key': 'note', 'type': 'str'},
        'batch_settings': {'key': 'batchSettings', 'type': 'BatchCreate'},
    }

    def __init__(self, billing_period, start_date_for_bill=None, end_date_for_bill=None, note=None, batch_settings=None):
        super(ChargebackProcessorSettingsWithoutFilters, self).__init__()
        self.billing_period = billing_period
        self.start_date_for_bill = start_date_for_bill
        self.end_date_for_bill = end_date_for_bill
        self.note = note
        self.batch_settings = batch_settings
