from jsonmodels import validators from jsonmodels.fields import StringField, IntField, BoolField, FloatField from jsonmodels.models import Base from apiserver.apimodels import ListField class GetDefaultResp(Base): id = StringField(required=True) name = StringField(required=True) class CreateRequest(Base): name = StringField(required=True) tags = ListField(items_types=[str]) system_tags = ListField(items_types=[str]) class QueueRequest(Base): queue = StringField(required=True) class DeleteRequest(QueueRequest): force = BoolField(default=False) class UpdateRequest(QueueRequest): name = StringField() tags = ListField(items_types=[str]) system_tags = ListField(items_types=[str]) class TaskRequest(QueueRequest): task = StringField(required=True) class MoveTaskRequest(TaskRequest): count = IntField(default=1) class MoveTaskResponse(Base): position = IntField() class GetMetricsRequest(Base): queue_ids = ListField([str]) from_date = FloatField(required=True, validators=validators.Min(0)) to_date = FloatField(required=True, validators=validators.Min(0)) interval = IntField(required=True, validators=validators.Min(1)) class QueueMetrics(Base): queue = StringField() dates = ListField(int) avg_waiting_times = ListField([float, int]) queue_lengths = ListField(int) class GetMetricsResponse(Base): queues = ListField(QueueMetrics)