fix: Applying the interoperability parameter to UUIDs referenced in various SDOs & SROs
parent
3ae38fe687
commit
3850a046ff
|
@ -135,7 +135,12 @@ class MarkingDefinition(_STIXBase, _MarkingsMixin):
|
||||||
if not isinstance(kwargs['definition'], marking_type):
|
if not isinstance(kwargs['definition'], marking_type):
|
||||||
defn = _get_dict(kwargs['definition'])
|
defn = _get_dict(kwargs['definition'])
|
||||||
kwargs['definition'] = marking_type(**defn)
|
kwargs['definition'] = marking_type(**defn)
|
||||||
self._properties['id'].interoperability = kwargs.get('interoperability', False)
|
interoperability = kwargs.get('interoperability', False)
|
||||||
|
self._properties['id'].interoperability = interoperability
|
||||||
|
if kwargs.get('created_by_ref'):
|
||||||
|
self._properties['created_by_ref'].interoperability = interoperability
|
||||||
|
if kwargs.get('object_marking_refs'):
|
||||||
|
self._properties['object_marking_refs'].contained.interoperability = interoperability
|
||||||
|
|
||||||
super(MarkingDefinition, self).__init__(**kwargs)
|
super(MarkingDefinition, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ class STIXDomainObject(_STIXBase, _MarkingsMixin):
|
||||||
self.__interoperability = interoperability
|
self.__interoperability = interoperability
|
||||||
self._properties['id'].interoperability = interoperability
|
self._properties['id'].interoperability = interoperability
|
||||||
self._properties['created_by_ref'].interoperability = interoperability
|
self._properties['created_by_ref'].interoperability = interoperability
|
||||||
|
if kwargs.get('object_marking_refs'):
|
||||||
|
self._properties['object_marking_refs'].contained.interoperability = interoperability
|
||||||
|
|
||||||
super(STIXDomainObject, self).__init__(*args, **kwargs)
|
super(STIXDomainObject, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
@ -262,6 +264,11 @@ class Report(STIXDomainObject):
|
||||||
('granular_markings', ListProperty(GranularMarking)),
|
('granular_markings', ListProperty(GranularMarking)),
|
||||||
])
|
])
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
self._properties['object_refs'].contained.interoperability = kwargs.get('interoperability', False)
|
||||||
|
|
||||||
|
super(Report, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ThreatActor(STIXDomainObject):
|
class ThreatActor(STIXDomainObject):
|
||||||
"""For more detailed information on this object's properties, see
|
"""For more detailed information on this object's properties, see
|
||||||
|
|
|
@ -12,7 +12,16 @@ from .common import ExternalReference, GranularMarking
|
||||||
|
|
||||||
|
|
||||||
class STIXRelationshipObject(_STIXBase, _MarkingsMixin):
|
class STIXRelationshipObject(_STIXBase, _MarkingsMixin):
|
||||||
pass
|
def __init__(self, *args, **kwargs):
|
||||||
|
interoperability = kwargs.get('interoperability', False)
|
||||||
|
self.__interoperability = interoperability
|
||||||
|
self._properties['id'].interoperability = interoperability
|
||||||
|
if kwargs.get('created_by_ref'):
|
||||||
|
self._properties['created_by_ref'].interoperability = interoperability
|
||||||
|
if kwargs.get('object_marking_refs'):
|
||||||
|
self._properties['object_marking_refs'].contained.interoperability = interoperability
|
||||||
|
|
||||||
|
super(STIXRelationshipObject, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class Relationship(STIXRelationshipObject):
|
class Relationship(STIXRelationshipObject):
|
||||||
|
@ -49,6 +58,9 @@ class Relationship(STIXRelationshipObject):
|
||||||
kwargs['relationship_type'] = relationship_type
|
kwargs['relationship_type'] = relationship_type
|
||||||
if target_ref and not kwargs.get('target_ref'):
|
if target_ref and not kwargs.get('target_ref'):
|
||||||
kwargs['target_ref'] = target_ref
|
kwargs['target_ref'] = target_ref
|
||||||
|
interoperability = kwargs.get('interoperability', False)
|
||||||
|
self._properties['source_ref'].interoperability = interoperability
|
||||||
|
self._properties['target_ref'].interoperability = interoperability
|
||||||
|
|
||||||
super(Relationship, self).__init__(**kwargs)
|
super(Relationship, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
@ -85,5 +97,11 @@ class Sighting(STIXRelationshipObject):
|
||||||
# Allow sighting_of_ref as a positional arg.
|
# Allow sighting_of_ref as a positional arg.
|
||||||
if sighting_of_ref and not kwargs.get('sighting_of_ref'):
|
if sighting_of_ref and not kwargs.get('sighting_of_ref'):
|
||||||
kwargs['sighting_of_ref'] = sighting_of_ref
|
kwargs['sighting_of_ref'] = sighting_of_ref
|
||||||
|
interoperability = kwargs.get('interoperability', False)
|
||||||
|
self._properties['sighting_of_ref'].interoperability = interoperability
|
||||||
|
if kwargs.get('observed_data_refs'):
|
||||||
|
self._properties['observed_data_refs'].contained.interoperability = interoperability
|
||||||
|
if kwargs.get('where_sighted_refs'):
|
||||||
|
self._properties['where_sighted_refs'].contained.interoperability = interoperability
|
||||||
|
|
||||||
super(Sighting, self).__init__(**kwargs)
|
super(Sighting, self).__init__(**kwargs)
|
||||||
|
|
Loading…
Reference in New Issue