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"
)