lemur/lemur/destinations/schemas.py

44 lines
1.3 KiB
Python
Raw Normal View History

2016-05-10 13:43:26 -07:00
"""
.. module: lemur.destinations.schemas
:platform: unix
:copyright: (c) 2015 by Netflix Inc., see AUTHORS for more
:license: Apache, see LICENSE for more details.
.. moduleauthor:: Kevin Glisson <kglisson@netflix.com>
"""
2016-05-12 12:38:44 -07:00
from marshmallow import fields, post_dump
2016-05-10 13:43:26 -07:00
from lemur.common.schema import LemurInputSchema, LemurOutputSchema
2016-05-12 12:38:44 -07:00
from lemur.schemas import PluginInputSchema, PluginOutputSchema
2016-05-10 13:43:26 -07:00
class DestinationInputSchema(LemurInputSchema):
2016-05-12 12:38:44 -07:00
id = fields.Integer()
2016-05-10 13:43:26 -07:00
label = fields.String(required=True)
2016-05-12 12:38:44 -07:00
description = fields.String(required=True)
active = fields.Boolean()
plugin = fields.Nested(PluginInputSchema, required=True)
2016-05-10 13:43:26 -07:00
class DestinationOutputSchema(LemurOutputSchema):
2016-05-12 12:38:44 -07:00
id = fields.Integer()
2016-05-10 13:43:26 -07:00
label = fields.String()
description = fields.String()
2016-05-12 12:38:44 -07:00
active = fields.Boolean()
plugin = fields.Nested(PluginOutputSchema)
options = fields.List(fields.Dict())
@post_dump
def fill_object(self, data):
if data:
data['plugin']['pluginOptions'] = data['options']
2016-05-12 12:38:44 -07:00
return data
2016-05-10 13:43:26 -07:00
class DestinationNestedOutputSchema(DestinationOutputSchema):
__envelope__ = False
2016-05-10 13:43:26 -07:00
destination_input_schema = DestinationInputSchema()
destinations_output_schema = DestinationOutputSchema(many=True)
destination_output_schema = DestinationOutputSchema()