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

    All required parameters must be populated in order to send to Azure.

    :param policy_name: Required.
    :type policy_name: str
    :param attribute_name: Required.
    :type attribute_name: str
    :param predicate_type: Required.
    :type predicate_type: str
    :param predicate_value: Required.
    :type predicate_value: int
    :param restrictions:
    :type restrictions: list[~wallet.models.VerificationPolicyRestriction]
    """

    _validation = {
        'policy_name': {'required': True},
        'attribute_name': {'required': True},
        'predicate_type': {'required': True},
        'predicate_value': {'required': True},
    }

    _attribute_map = {
        'policy_name': {'key': 'policyName', 'type': 'str'},
        'attribute_name': {'key': 'attributeName', 'type': 'str'},
        'predicate_type': {'key': 'predicateType', 'type': 'str'},
        'predicate_value': {'key': 'predicateValue', 'type': 'int'},
        'restrictions': {'key': 'restrictions', 'type': '[VerificationPolicyRestriction]'},
    }

    def __init__(self, **kwargs):
        super(VerificationPolicyPredicateContract, self).__init__(**kwargs)
        self.policy_name = kwargs.get('policy_name', None)
        self.attribute_name = kwargs.get('attribute_name', None)
        self.predicate_type = kwargs.get('predicate_type', None)
        self.predicate_value = kwargs.get('predicate_value', None)
        self.restrictions = kwargs.get('restrictions', None)
