HEX
Server: Apache
System: Linux server.enlacediseno.com 4.18.0-553.62.1.el8_10.x86_64 #1 SMP Wed Jul 16 04:08:25 EDT 2025 x86_64
User: maor (1069)
PHP: 7.3.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/config/schemas/vcenter.py
"""
    :codeauthor: :email:`Rod McKenzie (roderick.mckenzie@morganstanley.com)`
    :codeauthor: :email:`Alexandru Bleotu (alexandru.bleotu@morganstanley.com)`

    salt.config.schemas.vcenter
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~

    VCenter configuration schemas
"""

from salt.utils.schema import ArrayItem, BooleanItem, IntegerItem, Schema, StringItem


class VCenterEntitySchema(Schema):
    """
    Entity Schema for a VCenter.
    """

    title = "VCenter Entity Schema"
    description = "VCenter entity schema"
    type = StringItem(
        title="Type",
        description="Specifies the entity type",
        required=True,
        enum=["vcenter"],
    )

    vcenter = StringItem(
        title="vCenter", description="Specifies the vcenter hostname", required=True
    )


class VCenterProxySchema(Schema):
    """
    Schema for the configuration for the proxy to connect to a VCenter.
    """

    title = "VCenter Proxy Connection Schema"
    description = "Schema that describes the connection to a VCenter"
    additional_properties = False
    proxytype = StringItem(required=True, enum=["vcenter"])
    vcenter = StringItem(required=True, pattern=r"[^\s]+")
    mechanism = StringItem(required=True, enum=["userpass", "sspi"])
    username = StringItem()
    passwords = ArrayItem(min_items=1, items=StringItem(), unique_items=True)
    verify_ssl = BooleanItem()
    ca_bundle = StringItem()

    domain = StringItem()
    principal = StringItem(default="host")
    protocol = StringItem(default="https")
    port = IntegerItem(minimum=1)