Models

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

GlobalOptionTypeDef = Literal["global"]

DefaultOptionTypeDef = Literal["default"]

Ipv4SubnetMaskDef = Literal[
    "0.0.0.0",
    "128.0.0.0",
    "192.0.0.0",
    "224.0.0.0",
    "240.0.0.0",
    "248.0.0.0",
    "252.0.0.0",
    "254.0.0.0",
    "255.0.0.0",
    "255.128.0.0",
    "255.192.0.0",
    "255.224.0.0",
    "255.240.0.0",
    "255.252.0.0",
    "255.254.0.0",
    "255.255.0.0",
    "255.255.128.0",
    "255.255.192.0",
    "255.255.224.0",
    "255.255.240.0",
    "255.255.248.0",
    "255.255.252.0",
    "255.255.254.0",
    "255.255.255.0",
    "255.255.255.128",
    "255.255.255.192",
    "255.255.255.224",
    "255.255.255.240",
    "255.255.255.248",
    "255.255.255.252",
    "255.255.255.254",
    "255.255.255.255",
]


class OneOfVirtualApplicationcaptureInterfaceIpDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfVirtualApplicationcaptureInterfaceIpDef2:
    option_type: DefaultOptionTypeDef


class OneOfVirtualApplicationIngressIfSubnetMaskDef1:
    option_type: GlobalOptionTypeDef
    value: (
        Ipv4SubnetMaskDef  # pytype: disable=annotation-type-mismatch
    )


class OneOfVirtualApplicationIngressIfSubnetMaskDef2:
    option_type: DefaultOptionTypeDef


class OneOfVirtualApplicationcollectionInterfaceIpDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfVirtualApplicationcollectionInterfaceIpDef2:
    option_type: DefaultOptionTypeDef


class OneOfVirtualApplicationcollectionInterfaceSubnetMask1:
    option_type: GlobalOptionTypeDef
    value: (
        Ipv4SubnetMaskDef  # pytype: disable=annotation-type-mismatch
    )


class OneOfVirtualApplicationcollectionInterfaceSubnetMask2:
    option_type: DefaultOptionTypeDef


class MultipleErspanSourceInterfaces:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfVirtualApplicationvirtualPortGroup5IpDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfVirtualApplicationvirtualPortGroup5IpDef2:
    option_type: DefaultOptionTypeDef


class OneOfVirtualApplicationvirtualPortGroup6IpDef1:
    option_type: GlobalOptionTypeDef
    value: Any


class OneOfVirtualApplicationvirtualPortGroup6IpDef2:
    option_type: DefaultOptionTypeDef


class OneOfVirtualApplicationerspanSourceInterfaceDef:
    option_type: GlobalOptionTypeDef
    value: str


class OneOfcvcId:
    option_type: GlobalOptionTypeDef
    value: str


class VirtualApplication:
    """
    Virtual application Instance
    """

    capture_interface_ip: Union[
        OneOfVirtualApplicationcaptureInterfaceIpDef1,
        OneOfVirtualApplicationcaptureInterfaceIpDef2,
    ]
    capture_interface_subnet_mask: Union[
        OneOfVirtualApplicationIngressIfSubnetMaskDef1,
        OneOfVirtualApplicationIngressIfSubnetMaskDef2,
    ]
    collection_interface_ip: Union[
        OneOfVirtualApplicationcollectionInterfaceIpDef1,
        OneOfVirtualApplicationcollectionInterfaceIpDef2,
    ]
    collection_interface_subnet_mask: Union[
        OneOfVirtualApplicationcollectionInterfaceSubnetMask1,
        OneOfVirtualApplicationcollectionInterfaceSubnetMask2,
    ]
    cvc_id: OneOfcvcId
    multiple_erspan_source_interfaces: List[
        MultipleErspanSourceInterfaces
    ]
    sensor_to_cvc_interface: (
        OneOfVirtualApplicationerspanSourceInterfaceDef
    )
    virtual_port_group5_ip: Union[
        OneOfVirtualApplicationvirtualPortGroup5IpDef1,
        OneOfVirtualApplicationvirtualPortGroup5IpDef2,
    ]
    virtual_port_group6_ip: Union[
        OneOfVirtualApplicationvirtualPortGroup6IpDef1,
        OneOfVirtualApplicationvirtualPortGroup6IpDef2,
    ]


class CybervisionData:
    # Virtual application Instance
    virtual_application: VirtualApplication


class Payload:
    """
    cybervision profile feature schema for POST/PUT request
    """

    data: CybervisionData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]


class Data:
    # User who last created this.
    created_by: Optional[str]
    # Timestamp of creation
    created_on: Optional[int]
    # User who last updated this.
    last_updated_by: Optional[str]
    # Timestamp of last update
    last_updated_on: Optional[int]
    parcel_id: Optional[str]
    parcel_type: Optional[str]
    # cybervision profile feature schema for POST/PUT request
    payload: Optional[Payload]


class GetListSdRoutingOtherCybervisionPayload:
    data: Optional[List[Data]]


class CreateCybervisionProfileFeatureForOtherPostResponse:
    """
    Profile Parcel POST Response schema
    """

    parcel_id: str
    metadata: Optional[Any]


class OtherCybervisionData:
    # Virtual application Instance
    virtual_application: VirtualApplication


class CreateCybervisionProfileFeatureForOtherPostRequest:
    """
    cybervision profile feature schema for POST/PUT request
    """

    data: OtherCybervisionData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]


class GetSingleSdRoutingOtherCybervisionPayload:
    # User who last created this.
    created_by: Optional[str]
    # Timestamp of creation
    created_on: Optional[int]
    # User who last updated this.
    last_updated_by: Optional[str]
    # Timestamp of last update
    last_updated_on: Optional[int]
    parcel_id: Optional[str]
    parcel_type: Optional[str]
    # cybervision profile feature schema for POST/PUT request
    payload: Optional[Payload]


class EditCybervisionProfileFeatureForOtherPutResponse:
    """
    Profile Parcel PUT Response schema
    """

    id: str
    metadata: Optional[Any]


class SdRoutingOtherCybervisionData:
    # Virtual application Instance
    virtual_application: VirtualApplication


class EditCybervisionProfileFeatureForOtherPutRequest:
    """
    cybervision profile feature schema for POST/PUT request
    """

    data: SdRoutingOtherCybervisionData
    description: Optional[str]
    metadata: Optional[Any]
    name: Optional[str]