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

    :param accrual_method: Accrual method to employ. Valid values are:
     simple      - cost per day from the most recent bill
     use history - unit cost based on historical bills
     (if AUC safety net used, use the most recent bill if the unit cost is
     within the safety net percentage,
     otherwise use a historical average of the last three years from the same
     period),
     or average cost per day if no usage
    :type accrual_method: str
    :param auc_safety_net: Use an average unit cost safety net (apply to most
     recent bill unit cost)
    :type auc_safety_net: bool
    :param auc_safety_net_percentage: Average unit cost safety net percentage
    :type auc_safety_net_percentage: int
    :param accrual_bill_filter: Default filter to use when selecting most
     recent bills. Valid value are:
     non-void       - select any non-void bill
     approved       - select only approved bills
     apexported     - select AP exported bills
     non-exporthold - select bills not held from AP export
    :type accrual_bill_filter: str
    """

    _attribute_map = {
        'accrual_method': {'key': 'accrualMethod', 'type': 'str'},
        'auc_safety_net': {'key': 'aucSafetyNet', 'type': 'bool'},
        'auc_safety_net_percentage': {'key': 'aucSafetyNetPercentage', 'type': 'int'},
        'accrual_bill_filter': {'key': 'accrualBillFilter', 'type': 'str'},
    }

    def __init__(self, *, accrual_method: str=None, auc_safety_net: bool=None, auc_safety_net_percentage: int=None, accrual_bill_filter: str=None, **kwargs) -> None:
        super(AccrualSettingsResponse, self).__init__(**kwargs)
        self.accrual_method = accrual_method
        self.auc_safety_net = auc_safety_net
        self.auc_safety_net_percentage = auc_safety_net_percentage
        self.accrual_bill_filter = accrual_bill_filter
