website/hub/servicebroker/serializers.py

52 lines
1.8 KiB
Python
Raw Normal View History

2025-01-27 17:42:40 +01:00
from rest_framework import serializers
2025-01-28 10:06:56 +01:00
from services.models import Service, CloudProvider
2025-01-27 17:42:40 +01:00
class ServicePlanSerializer(serializers.Serializer):
id = serializers.CharField()
name = serializers.CharField()
description = serializers.CharField()
metadata = serializers.DictField()
free = serializers.BooleanField(default=False)
class ServiceSerializer(serializers.Serializer):
id = serializers.CharField()
name = serializers.CharField()
description = serializers.CharField()
bindable = serializers.BooleanField(default=True)
plans = ServicePlanSerializer(many=True)
metadata = serializers.DictField()
tags = serializers.ListField(child=serializers.CharField())
class CatalogSerializer(serializers.Serializer):
services = ServiceSerializer(many=True)
class ProvisionRequestSerializer(serializers.Serializer):
service_id = serializers.CharField()
plan_id = serializers.CharField()
organization_guid = serializers.CharField(required=False)
space_guid = serializers.CharField(required=False)
parameters = serializers.DictField(required=False)
class ProvisionResponseSerializer(serializers.Serializer):
dashboard_url = serializers.URLField(required=False)
operation = serializers.CharField(required=False, allow_null=True)
class BindingRequestSerializer(serializers.Serializer):
service_id = serializers.CharField()
plan_id = serializers.CharField()
bind_resource = serializers.DictField(required=False)
parameters = serializers.DictField(required=False)
class BindingResponseSerializer(serializers.Serializer):
credentials = serializers.DictField()
syslog_drain_url = serializers.URLField(required=False, allow_null=True)
route_service_url = serializers.URLField(required=False, allow_null=True)
volume_mounts = serializers.ListField(required=False)