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.disk_object as disk_binding 8from cybox.objects.disk_partition_object import DiskPartition 9from cybox.common import BaseProperty, ObjectProperties, String, UnsignedLong 10 11 12class PartitionList(entities.EntityList): 13 _binding = disk_binding 14 _binding_class = disk_binding.PartitionListType 15 _namespace = "http://cybox.mitre.org/objects#DiskObject-2" 16 17 partition = fields.TypedField("Partition", DiskPartition, multiple=True) 18 19 20class DiskType(BaseProperty): 21 _binding = disk_binding 22 _binding_class = disk_binding.DiskType 23 _namespace = "http://cybox.mitre.org/objects#DiskObject-2" 24 25 TERM_REMOVABLE = "Removable" 26 TERM_FIXED = "Fixed" 27 TERM_REMOTE = "Remote" 28 TERM_CDROM = "CDRom" 29 TERM_RAMDISK = "RAMDisk" 30 31 32class Disk(ObjectProperties): 33 _binding = disk_binding 34 _binding_class = disk_binding.DiskObjectType 35 _namespace = "http://cybox.mitre.org/objects#DiskObject-2" 36 _XSI_NS = "DiskObj" 37 _XSI_TYPE = "DiskObjectType" 38 39 disk_name = fields.TypedField('Disk_Name', String) 40 disk_size = fields.TypedField('Disk_Size', UnsignedLong) 41 free_space = fields.TypedField('Free_Space', UnsignedLong) 42 partition_list = fields.TypedField('Partition_List', PartitionList) 43 type_ = fields.TypedField('Type', DiskType) 44