Models

from typing import Any, Dict, List, Literal, Optional, Union

Solution = Literal["sd-routing", "sdwan"]


class Variables:
    name: str
    value: Union[str, int, int, bool, List[None]]


class Devices:
    # Device unique id
    device_id: str
    # Variable object for the device
    variables: List[Variables]


class CreatePolicyGroupDeviceVariablesPutRequest:
    """
    Variables PUT request Schema
    """

    # Variables for devices
    devices: List[Devices]
    solution: Solution  # pytype: disable=annotation-type-mismatch


class VariablesVariables:
    # Name of the variable
    name: str
    # List of suggestions for the variable
    suggestions: Optional[List[str]]
    # Value of the variable
    value: Optional[str]


class VariablesDevices:
    # Unique identifier for the device
    device_id: str
    variables: List[VariablesVariables]


class Groups:
    # Variables associated with the group
    group_variables: List[Any]
    # Name of the group
    name: str


class FetchPolicyGroupDeviceVariablesPostResponse:
    """
    Schema for the response of a GET request to retrieve config group variables
    """

    devices: List[VariablesDevices]
    # Family of the configuration
    family: str
    groups: List[Groups]


class FetchPolicyGroupDeviceVariablesPostRequest:
    """
    Variables POST request Schema
    """

    # ID of devices for which Variables need to be fetched
    device_ids: Optional[List[str]]
    # Variable object for the device
    suggestions: Optional[bool]