Source code for ska_tmc_cdm.schemas.mccscontroller.releaseresources

"""
The releaseresources module defines Marshmallow schemas that map
MCCSController ReleaseResourcesRequest objects to/from their JSON
representation.
"""
from marshmallow import fields, post_load

from ska_tmc_cdm.messages.mccscontroller.releaseresources import ReleaseResourcesRequest
from ska_tmc_cdm.schemas import CODEC
from ska_tmc_cdm.schemas.shared import ValidatingSchema


[docs]@CODEC.register_mapping(ReleaseResourcesRequest) class ReleaseResourcesRequestSchema(ValidatingSchema): # pylint: disable=too-few-public-methods """ Marshmallow schema for the ReleaseResourcesRequest class. """ interface = fields.String(required=True) subarray_id = fields.Integer(required=True) release_all = fields.Boolean(required=True)
[docs] @post_load def create_request(self, data, **_): # pylint: disable=no-self-use """ Convert parsed JSON from an ReleaseResources request back into an ReleaseResourcesRequest object. :param data: Marshmallow-provided dict containing parsed JSON values :param _: kwargs passed by Marshmallow :return: ReleaseResourcesRequest object populated from data """ interface = data["interface"] subarray_id = data["subarray_id"] release_all = data["release_all"] return ReleaseResourcesRequest( interface=interface, subarray_id=subarray_id, release_all=release_all )