1# Copyright (c) 2017, The MITRE Corporation. All rights reserved.
2# See LICENSE.txt for complete terms.
3
4from mixbox import fields
5
6import cybox.bindings.dns_record_object as dns_record_binding
7from cybox.common import (Integer, HexBinary, ObjectProperties, String,
8                          StructuredText, DateTime)
9from cybox.objects.address_object import Address
10from cybox.objects.uri_object import URI
11
12
13class DNSRecord(ObjectProperties):
14    _binding = dns_record_binding
15    _binding_class = dns_record_binding.DNSRecordObjectType
16    _namespace = 'http://cybox.mitre.org/objects#DNSRecordObject-2'
17    _XSI_NS = "DNSRecordObj"
18    _XSI_TYPE = "DNSRecordObjectType"
19
20    description = fields.TypedField("Description", StructuredText)
21    domain_name = fields.TypedField("Domain_Name", URI)
22    queried_date = fields.TypedField("Queried_Date", DateTime)
23    ip_address = fields.TypedField("IP_Address", Address)
24    address_class = fields.TypedField("Address_Class", String)
25    entry_type = fields.TypedField("Entry_Type", String)
26    record_name = fields.TypedField("Record_Name", String)
27    record_type = fields.TypedField("Record_Type", String)
28    ttl = fields.TypedField("TTL", Integer)
29    flags = fields.TypedField("Flags", HexBinary)
30    data_length = fields.TypedField("Data_Length", Integer)
31    record_data = fields.TypedField("Record_Data")
32