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

    :param days: Threshold for how long the statement date can be after the
     end date
     If SettingStatus is set to Skip and no value is provided, EnergyCAP
     default will be set <span class='property-internal'>Must be between 0 and
     2147483647</span> <span class='property-internal'>Required when
     SettingStatus is set to Check, or Hold</span>
    :type days: int
    :param setting_status: The status of the audit setting <span
     class='property-internal'>One of Check, Hold, Skip </span> <span
     class='property-internal'>Required (defined)</span>
    :type setting_status: str
    :param minimum_cost: Minimum Bill/Meter Cost.
     This audit will run only when the cost meets the specified minimum cost
     <span class='property-internal'>Required (defined)</span>
    :type minimum_cost: int
    :param assignees: List of Assignees.
     Ids of the users the flag should get assigned to when the audit fails.
     <span class='property-internal'>Required (defined)</span>
    :type assignees: list[int]
    """

    _validation = {
        'days': {'maximum': 2147483647, 'minimum': 0},
    }

    _attribute_map = {
        'days': {'key': 'days', 'type': 'int'},
        'setting_status': {'key': 'settingStatus', 'type': 'str'},
        'minimum_cost': {'key': 'minimumCost', 'type': 'int'},
        'assignees': {'key': 'assignees', 'type': '[int]'},
    }

    def __init__(self, **kwargs):
        super(StatementDateTooLongAfterBillEndSettingRequest, self).__init__(**kwargs)
        self.days = kwargs.get('days', None)
        self.setting_status = kwargs.get('setting_status', None)
        self.minimum_cost = kwargs.get('minimum_cost', None)
        self.assignees = kwargs.get('assignees', None)
