1# Copyright (c) 2017, The MITRE Corporation. All rights reserved.
2# See LICENSE.txt for complete terms.
3
4from mixbox import entities
5from mixbox import fields
6
7import cybox.bindings.network_route_object as network_route_binding
8from cybox.common import Duration, ObjectProperties, StructuredText
9from cybox.objects.network_route_entry_object import NetworkRouteEntry
10
11
12class NetworkRouteEntries(entities.EntityList):
13    _binding = network_route_binding
14    _binding_class = network_route_binding.NetworkRouteEntriesType
15    _namespace = "http://cybox.mitre.org/objects#NetworkRouteObject-2"
16    network_route_entry = fields.TypedField("Network_Route_Entry", NetworkRouteEntry, multiple=True)
17
18
19class NetRoute(ObjectProperties):
20    _binding = network_route_binding
21    _binding_class = network_route_binding.NetRouteObjectType
22    _namespace = "http://cybox.mitre.org/objects#NetworkRouteObject-2"
23    _XSI_NS = "NetworkRouteObj"
24    _XSI_TYPE = "NetRouteObjectType"
25
26    is_ipv6 = fields.TypedField("is_ipv6")
27    is_autoconfigure_address = fields.TypedField("is_autoconfigure_address")
28    is_immortal = fields.TypedField("is_immortal")
29    is_loopback = fields.TypedField("is_loopback")
30    is_publish = fields.TypedField("is_publish")
31
32    description = fields.TypedField("Description", StructuredText)
33    preferred_lifetime = fields.TypedField("Preferred_Lifetime", Duration)
34    valid_lifetime = fields.TypedField("Valid_Lifetime", Duration)
35    route_age = fields.TypedField("Route_Age", Duration)
36
37    network_route_entries = fields.TypedField("Network_Route_Entries", NetworkRouteEntries)
38