Skip to main content

Loopback Interface Models

Overview

The Loopback Interface models provide structured validation for loopback interface configuration. Loopback interfaces support IPv4 and IPv6 addressing for management and service endpoints.

Models

  • LoopbackInterfaceCreateModel: For creating new loopback interfaces
  • LoopbackInterfaceUpdateModel: For updating existing interfaces (includes id)
  • LoopbackInterfaceResponseModel: Response model from API operations

All models use extra="forbid" to reject undefined fields.

Model Attributes

LoopbackInterfaceBaseModel

AttributeTypeRequiredDefaultDescription
namestrYesNoneInterface name (e.g., "loopback.1")
commentstrNoNoneDescription (max 1023 chars)
ipList[str]NoNoneIPv4 addresses (e.g., ["10.0.0.1/32"])
ipv6Ipv6ConfigNoNoneIPv6 configuration
mtuintNo1500MTU (576-9216)
interface_management_profilestrNoNoneManagement profile (max 31 chars)
folderstrNo*NoneFolder container
snippetstrNo*NoneSnippet container
devicestrNo*NoneDevice container

* Exactly one container required for create operations

Ipv6Config

AttributeTypeDefaultDescription
enabledboolFalseEnable IPv6
addressList[Ipv6Address]NoneIPv6 addresses

Usage Examples

Create with IPv4

from scm.models.network import LoopbackInterfaceCreateModel

loopback = LoopbackInterfaceCreateModel(
name="loopback.1",
ip=["10.0.0.1/32"],
interface_management_profile="allow-ping",
folder="Interfaces"
)
payload = loopback.model_dump(exclude_unset=True)

Create with IPv6

loopback = LoopbackInterfaceCreateModel(
name="loopback.2",
ip=["192.168.1.1/32"],
ipv6={
"enabled": True,
"address": [{"name": "2001:db8::1/128"}]
},
folder="Interfaces"
)