"""Validate error message configuration variables."""

# Third Party Imports
from pydantic import StrictStr

# Project Imports
from hyperglass.configuration.models._utils import HyperglassModel


class Messages(HyperglassModel):
    """Validation model for params.messages."""

    no_input: StrictStr = "{field} must be specified."
    acl_denied: StrictStr = "{target} is a member of {denied_network}, which is not allowed."
    acl_not_allowed: StrictStr = "{target} is not allowed."
    max_prefix: StrictStr = (
        "Prefix length must be shorter than /{max_length}. {target} is too specific."
    )
    requires_ipv6_cidr: StrictStr = (
        "{device_name} requires IPv6 BGP lookups to be in CIDR notation."
    )
    feature_not_enabled: StrictStr = "{feature} is not enabled for {device_name}."
    invalid_input: StrictStr = "{target} is not a valid {query_type} target."
    invalid_field: StrictStr = "{input} is an invalid {field}."
    general: StrictStr = "Something went wrong."
    directed_cidr: StrictStr = "{query_type} queries can not be in CIDR format."
    request_timeout: StrictStr = "Request timed out."
    connection_error: StrictStr = "Error connecting to {device_name}: {error}"
    authentication_error: StrictStr = "Authentication error occurred."
    noresponse_error: StrictStr = "No response."
    vrf_not_associated: StrictStr = "VRF {vrf_name} is not associated with {device_name}."
    no_matching_vrfs: StrictStr = "No VRFs in Common"
    no_output: StrictStr = "No output."
