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

    :param connection_id:
    :type connection_id: str
    :param verification_id:
    :type verification_id: str
    :param definition_id:
    :type definition_id: str
    :param state: Possible values include: 'Proposed', 'Requested',
     'Accepted', 'Rejected'
    :type state: str or ~credentials.models.enum
    :param created_at_utc:
    :type created_at_utc: datetime
    :param updated_at_utc:
    :type updated_at_utc: datetime
    :param is_valid:
    :type is_valid: bool
    :param verified_at_utc:
    :type verified_at_utc: datetime
    :param proof:
    :type proof: dict[str, ~credentials.models.ProofAttributeContract]
    :param policy:
    :type policy: ~credentials.models.VerificationPolicyParameters
    :param proposal:
    :type proposal: ~credentials.models.ProofProposal
    :param verification_request_data:
    :type verification_request_data: str
    :param verification_request_url:
    :type verification_request_url: str
    """

    _attribute_map = {
        'connection_id': {'key': 'connectionId', 'type': 'str'},
        'verification_id': {'key': 'verificationId', 'type': 'str'},
        'definition_id': {'key': 'definitionId', 'type': 'str'},
        'state': {'key': 'state', 'type': 'str'},
        'created_at_utc': {'key': 'createdAtUtc', 'type': 'iso-8601'},
        'updated_at_utc': {'key': 'updatedAtUtc', 'type': 'iso-8601'},
        'is_valid': {'key': 'isValid', 'type': 'bool'},
        'verified_at_utc': {'key': 'verifiedAtUtc', 'type': 'iso-8601'},
        'proof': {'key': 'proof', 'type': '{ProofAttributeContract}'},
        'policy': {'key': 'policy', 'type': 'VerificationPolicyParameters'},
        'proposal': {'key': 'proposal', 'type': 'ProofProposal'},
        'verification_request_data': {'key': 'verificationRequestData', 'type': 'str'},
        'verification_request_url': {'key': 'verificationRequestUrl', 'type': 'str'},
    }

    def __init__(self, *, connection_id: str=None, verification_id: str=None, definition_id: str=None, state=None, created_at_utc=None, updated_at_utc=None, is_valid: bool=None, verified_at_utc=None, proof=None, policy=None, proposal=None, verification_request_data: str=None, verification_request_url: str=None, **kwargs) -> None:
        super(VerificationContract, self).__init__(**kwargs)
        self.connection_id = connection_id
        self.verification_id = verification_id
        self.definition_id = definition_id
        self.state = state
        self.created_at_utc = created_at_utc
        self.updated_at_utc = updated_at_utc
        self.is_valid = is_valid
        self.verified_at_utc = verified_at_utc
        self.proof = proof
        self.policy = policy
        self.proposal = proposal
        self.verification_request_data = verification_request_data
        self.verification_request_url = verification_request_url
