2023-05-04 00:58:06 -07:00
from typing import Any , Dict , List , Type , TypeVar , Union
2022-04-06 22:41:11 -07:00
import attr
from . . types import UNSET , Unset
2023-08-30 15:59:51 -07:00
ON = TypeVar ( " ON " , bound = " Commit " )
2022-04-06 22:41:11 -07:00
@attr.s ( auto_attribs = True )
2022-07-05 15:33:51 -07:00
class Commit :
2023-05-04 00:58:06 -07:00
""" Commit holds the Git-commit (SHA1) that a binary was built from, as reported in the version-string of external tools, such as `containerd`, or `runC`. """ # noqa: E501
2022-07-05 15:33:51 -07:00
expected : Union [ Unset , str ] = UNSET
id : Union [ Unset , 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
expected = self . expected
id = self . id
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 expected is not UNSET :
2023-05-04 00:58:06 -07:00
field_dict [ " expected " ] = expected
2022-07-05 15:33:51 -07:00
if id is not UNSET :
2023-05-04 00:58:06 -07:00
field_dict [ " id " ] = id
2022-04-06 22:41:11 -07:00
return field_dict
@classmethod
2023-08-30 15:59:51 -07:00
def from_dict ( cls : Type [ ON ] , src_dict : Dict [ str , Any ] ) - > ON :
2022-04-06 22:41:11 -07:00
d = src_dict . copy ( )
2022-07-05 15:33:51 -07:00
expected = d . pop ( " expected " , UNSET )
2022-04-06 22:41:11 -07:00
2022-07-05 15:33:51 -07:00
id = d . pop ( " id " , UNSET )
commit = cls (
expected = expected ,
id = id ,
2022-04-06 22:41:11 -07:00
)
2022-07-05 15:33:51 -07:00
commit . additional_properties = d
return commit
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