51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
from rest_framework import serializers
|
|
from services.models import Service, CloudProvider
|
|
|
|
|
|
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)
|