Add a data interface for manifest labels API
This commit is contained in:
parent
fe6760749a
commit
af27a1b6dc
3 changed files with 128 additions and 56 deletions
42
endpoints/api/manifest_models_interface.py
Normal file
42
endpoints/api/manifest_models_interface.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
from abc import ABCMeta, abstractmethod
|
||||
from collections import namedtuple
|
||||
|
||||
from six import add_metaclass
|
||||
|
||||
|
||||
class ManifestLabel(
|
||||
namedtuple('ManifestLabel', [
|
||||
'uuid',
|
||||
'key',
|
||||
'value',
|
||||
'source_type_name',
|
||||
'media_type_name',
|
||||
])):
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'id': self.uuid,
|
||||
'key': self.key,
|
||||
'value': self.value,
|
||||
'source_type': self.source_type_name,
|
||||
'media_type': self.media_type_name,
|
||||
}
|
||||
|
||||
|
||||
@add_metaclass(ABCMeta)
|
||||
class ManifestLabelInterface(object):
|
||||
@abstractmethod
|
||||
def get_manifest_labels(self, namespace_name, repository_name, manifestref, filter=None):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def create_manifest_label(self, namespace_name, repository_name, manifestref, key, value, source_type_name, media_type_name):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_manifest_label(self, namespace_name, repository_name, manifestref, label_uuid):
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def delete_manifest_label(self, namespace_name, repository_name, manifestref, label_uuid):
|
||||
pass
|
Reference in a new issue