%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/cloudlinux/venv/lib/python3.11/site-packages/xray/apiclient/
Upload File :
Create Path :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/xray/apiclient/schemas.py

# -*- 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