otupy.core.response.Response
- class Response(*args, **kwargs)
-
OpenC2 Response
This class defines the structure of the OpenC2 Response. According to the definition in Sec. 3.3.2 of the Language Specification, the Response contains a list of
<key, value>pair. This allows for extensions by the Profiles.Extensions to Response must extend fieldtypes according to the allowed field names and types. fieldtypes is used to parse incoming OpenC2 messages and to build and initialize the correct Python objects for each
<key, value>pair.Methods
D.clear() -> None.
D.copy() -> a shallow copy of D
Builds instance from dictionary
Create a new dictionary with keys from iterable and values set to value.
Return the value for key if key is in the dictionary, else default.
Returns the Content type
D.items() -> a set-like object providing a view on D's items
D.keys() -> a set-like object providing a view on D's keys
Make this class recursive
D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
Remove and return a (key, value) pair as a 2-tuple.
Insert key with a value of default if key is not in the dictionary.
Converts to dictionary
D.update([E, ]**F) -> None.
Check the status field is present
D.values() -> an object providing a view on D's values
Attributes
Base class
The list of allowed <key,value> pair expected in a Response
The type of Content (MessageType)
Registered extensions
- __init__(*args, **kwargs)
- base = None
Base class
Data types defined in the Language Specification shall not set this field. Data types defined in Profiles that extends a Data Type defined in the Language Specification, must set this field to the corresponding class of the base Data Type.
Note: Extensions defined in the otupy context are recommended to use the same name of the base Data Type, and to distinguish them through appropriate usage of the namespacing mechanism.
- clear() None. Remove all items from D.
- copy() a shallow copy of D
- fieldtypes: dict = {'results': <class 'otupy.core.results.Results'>, 'status': <aenum 'StatusCode'>, 'status_text': <class 'str'>}
The list of allowed <key,value> pair expected in a Response
- classmethod fromdict(dic, e)
Builds instance from dictionary
It is used during deserialization to create an otupy instance from the text message. It takes an
Encoderinstance that is used to recursively build instances of the inner objects (theEncoderprovides standard methods to create instances of base objects like strings, integers, boolean).- Parameters:
dic – The intermediary dictionary representation from which the object is built.
e – The
Encoderthat is being used.
- Returns:
An instance of this class initialized from the dictionary values.
- classmethod fromkeys(iterable, value=None, /)
Create a new dictionary with keys from iterable and values set to value.
- get(key, default=None, /)
Return the value for key if key is in the dictionary, else default.
- getType()
Returns the Content type
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- static make_recursive(cls)
Make this class recursive
This method can be used as a decorator to make a Map-derived class recurive, namely to hold objects of the same type in fieldtypes. To use this function, just declare the field that must be of the same type as the class as typing.Self, and use the @make_recursive decorator at declaration time.
- Param:
No arguments must be specified when using this method as a decorator.
- Returns:
A new instance of the class, where all types in fieldtypes marked as typing.Self are replaced with the class instance.
- msg_type: MessageType = 2
The type of Content (MessageType)
- pop(k[, d]) v, remove specified key and return the corresponding value.
If the key is not found, return the default if given; otherwise, raise a KeyError.
- popitem()
Remove and return a (key, value) pair as a 2-tuple.
Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.
- register = None
Registered extensions
Classes that implement a Data Type defined in the Language Specification will use this field to register extensions defined by external Profiles. Classes that define extensions within Profiles shall register themselves according to the specific documentation of the base type class, but shall not modify this field.
- setdefault(key, default=None, /)
Insert key with a value of default if key is not in the dictionary.
Return the value for key if key is in the dictionary, else default.
- todict(e)
Converts to dictionary
It is used to convert this object to an intermediary representation during serialization. It takes an
Encoderargument that is used to recursively serialize inner data and structures (theEncoderprovides standard methods for converting base types to dictionaries)..- Parameters:
e – The
Encoderthat is being used.- Returns:
A dictionary compliants to the Language Specification’s serialization rules.
- update([E, ]**F) None. Update D from dict/iterable E and F.
If E is present and has a .keys() method, then does: for k in E: D[k] = E[k] If E is present and lacks a .keys() method, then does: for k, v in E: D[k] = v In either case, this is followed by: for k in F: D[k] = F[k]
- validate_fields()
Check the status field is present
- values() an object providing a view on D's values