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