2022-04-06 23:20:20 -07:00
from typing import Any , Dict , List , Type , TypeVar , Union , cast
2022-04-06 22:41:11 -07:00
import attr
from . . types import UNSET , Unset
2023-09-06 11:27:00 -07:00
YO = TypeVar ( " YO " , bound = " Runtime " )
2022-04-06 22:41:11 -07:00
@attr.s ( auto_attribs = True )
2022-07-05 15:33:51 -07:00
class Runtime :
2023-05-04 00:58:06 -07:00
""" Runtime describes an [OCI compliant](https://github.com/opencontainers/runtime-spec) runtime. The runtime is invoked by the daemon via the `containerd` daemon. OCI runtimes act as an interface to the Linux kernel namespaces, cgroups, and SELinux. """ # noqa: E501
2022-07-05 15:33:51 -07:00
path : Union [ Unset , str ] = UNSET
runtime_args : Union [ Unset , List [ str ] ] = UNSET
2022-04-06 22:41:11 -07:00
additional_properties : Dict [ str , Any ] = attr . ib ( init = False , factory = dict )
def to_dict ( self ) - > Dict [ str , Any ] :
2022-07-05 15:33:51 -07:00
path = self . path
runtime_args : Union [ Unset , List [ str ] ] = UNSET
if not isinstance ( self . runtime_args , Unset ) :
runtime_args = self . runtime_args
2022-04-06 22:41:11 -07:00
field_dict : Dict [ str , Any ] = { }
field_dict . update ( self . additional_properties )
field_dict . update ( { } )
2022-07-05 15:33:51 -07:00
if path is not UNSET :
2023-05-04 00:58:06 -07:00
field_dict [ " path " ] = path
2022-07-05 15:33:51 -07:00
if runtime_args is not UNSET :
2023-05-04 00:58:06 -07:00
field_dict [ " runtime_args " ] = runtime_args
2022-04-06 22:41:11 -07:00
return field_dict
@classmethod
2023-09-06 11:27:00 -07:00
def from_dict ( cls : Type [ YO ] , src_dict : Dict [ str , Any ] ) - > YO :
2022-04-06 22:41:11 -07:00
d = src_dict . copy ( )
2022-07-05 15:33:51 -07:00
path = d . pop ( " path " , UNSET )
2022-04-06 22:41:11 -07:00
2022-07-05 15:33:51 -07:00
runtime_args = cast ( List [ str ] , d . pop ( " runtime_args " , UNSET ) )
runtime = cls (
path = path ,
runtime_args = runtime_args ,
2022-04-06 22:41:11 -07:00
)
2022-07-05 15:33:51 -07:00
runtime . additional_properties = d
return runtime
2022-04-06 22:41:11 -07:00
@property
def additional_keys ( self ) - > List [ str ] :
return list ( self . additional_properties . keys ( ) )
def __getitem__ ( self , key : str ) - > Any :
return self . additional_properties [ key ]
def __setitem__ ( self , key : str , value : Any ) - > None :
self . additional_properties [ key ] = value
def __delitem__ ( self , key : str ) - > None :
del self . additional_properties [ key ]
def __contains__ ( self , key : str ) - > bool :
return key in self . additional_properties