Mini Shell
# -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT
"""
This module contains validation schemas for X Ray Smart Advice local utility
"""
from schema import Schema, And, Or, Optional
from ..adviser.advice_types import (
supported as supported_advice_types
)
advice_schema = Schema({
'metadata': Schema({
'username': str,
'domain': str,
'website': str
}),
'advice': Schema({
'id': int,
'type': And(str, lambda x: x in supported_advice_types,
error='Unsupported advice type'),
'status': str
}),
"updated_at": str,
"created_at": str
})
advice_list_schema = Schema([advice_schema])
user_site_info_schema = Schema({
'website': str,
'domain': str,
'advices': advice_list_schema,
'urls': [str]
})
user_sites_info_schema = Schema([user_site_info_schema])
detailed_advice_schema = Schema({
'metadata': Schema({
'username': str,
'domain': str,
'website': str
}),
'advice': Schema({
'id': int,
'type': And(str, lambda x: x in supported_advice_types,
error='Unsupported advice type'),
'status': str,
'requests': Schema([{
'id': int,
'url': str
}]),
Optional('title'): Or(str, None),
Optional('description'): Or(str, None),
Optional('apply_advice_button_text'): Or(str, None),
Optional('upgrade_to_apply_button_text'): Or(str, None),
Optional('email_view_advice_text'): Or(str, None),
Optional('email_subject'): Or(str, None)
}),
"updated_at": str,
"created_at": str
})
pullzone_info_schema = Schema({
"account_id": str,
"cdn_url": str,
"website": str,
"domain_url": str,
})
Zerion Mini Shell 1.0