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

    :param audit_group_code: The bill audit group code <span
     class='property-internal'>Required</span> <span
     class='property-internal'>Must be between 0 and 16 characters</span>
    :type audit_group_code: str
    :param audit_group_info: The bill audit group name <span
     class='property-internal'>Required</span> <span
     class='property-internal'>Must be between 0 and 32 characters</span>
    :type audit_group_info: str
    :param description: The bill audit group description <span
     class='property-internal'>Must be between 0 and 255 characters</span>
    :type description: str
    :param filters: List of filters to determine what bills to run this audit
     group on
    :type filters: list[~energycap.sdk.models.FilterEdit]
    :param specific_audits: List of bill audits to add to this group
    :type specific_audits: list[~energycap.sdk.models.SpecificAuditCreate]
    """

    _validation = {
        'audit_group_code': {'required': True, 'max_length': 16, 'min_length': 0},
        'audit_group_info': {'required': True, 'max_length': 32, 'min_length': 0},
        'description': {'max_length': 255, 'min_length': 0},
    }

    _attribute_map = {
        'audit_group_code': {'key': 'auditGroupCode', 'type': 'str'},
        'audit_group_info': {'key': 'auditGroupInfo', 'type': 'str'},
        'description': {'key': 'description', 'type': 'str'},
        'filters': {'key': 'filters', 'type': '[FilterEdit]'},
        'specific_audits': {'key': 'specificAudits', 'type': '[SpecificAuditCreate]'},
    }

    def __init__(self, audit_group_code, audit_group_info, description=None, filters=None, specific_audits=None):
        super(BillAuditGroupCreate, self).__init__()
        self.audit_group_code = audit_group_code
        self.audit_group_info = audit_group_info
        self.description = description
        self.filters = filters
        self.specific_audits = specific_audits
