{ "$schema": "https://json-structure.org/meta/core/v0/#", "$id": "https://raw.githubusercontent.com/api-evangelist/palo-alto-networks/refs/heads/main/json-structure/sase-multitenant-interconnect-api-vlan-attachment-request-structure.json", "name": "VlanAttachmentRequest", "description": "VlanAttachmentRequest schema from SP Interconnect Manage APIs", "type": "object", "properties": { "name": { "type": "string", "pattern": "^([-0-9a-z]){1,13}$" }, "stackType": { "type": "string", "enum": [ "IPV4_ONLY", "IPV4_IPV6" ] }, "bandwidth": { "type": "string", "enum": [ "BPS_50M", "BPS_100M", "BPS_200M", "BPS_300M", "BPS_400M", "BPS_500M", "BPS_1G", "BPS_2G", "BPS_5G", "BPS_10G" ] }, "bgpPeerAsn": { "type": "int64", "minimum": 1 }, "bgpPeerBfdSessionInitMode": { "type": "string", "enum": [ "ACTIVE", "PASSIVE", "DISABLED" ] }, "bgpPeerBfdMinTransmitInterval": { "type": "int64", "minimum": 1000, "maximum": 30000 }, "bgpPeerBfdMinReceiveInterval": { "type": "int64", "minimum": 1000, "maximum": 30000 }, "bgpPeerBfdMultiplier": { "type": "int64", "minimum": 5, "maximum": 16 }, "dedicatedConnectionDetails": { "type": "array", "items": { "type": "object", "properties": { "edgeAvailability": { "type": "string" }, "bandwidth": { "type": "string", "enum": [ "BPS_50M", "BPS_100M", "BPS_200M", "BPS_300M", "BPS_400M", "BPS_500M", "BPS_1G", "BPS_2G", "BPS_5G", "BPS_10G" ] } }, "required": [ "edgeAvailability" ] } }, "primaryAttachmentCustomIpAddress": { "type": "object", "description": "Custom IP address configuration for VLAN attachment BGP peering. Both Cloud Router and Customer Router IP addresses must be provided together with matching prefix lengths (/29 or /30). IP addresses must not be in reserved ranges (RFC1918 private IPs, loopback, etc.) and must not be network or broadcast addresses.", "properties": { "candidateCloudRouterIpAddress": { "type": "string", "description": "Cloud Router IP address in CIDR notation (e.g., 169.254.1.1/29). Must have prefix length /29 or /30 and match the prefix length of candidateCustomerRouterIpAddress.", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))/(29|30)$" }, "candidateCustomerRouterIpAddress": { "type": "string", "description": "Customer Router IP address in CIDR notation (e.g., 169.254.1.2/29). Must have prefix length /29 or /30 and match the prefix length of candidateCloudRouterIpAddress.", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))/(29|30)$" } } }, "redundantAttachmentCustomIpAddress": { "type": "object", "description": "Custom IP address configuration for VLAN attachment BGP peering. Both Cloud Router and Customer Router IP addresses must be provided together with matching prefix lengths (/29 or /30). IP addresses must not be in reserved ranges (RFC1918 private IPs, loopback, etc.) and must not be network or broadcast addresses.", "properties": { "candidateCloudRouterIpAddress": { "type": "string", "description": "Cloud Router IP address in CIDR notation (e.g., 169.254.1.1/29). Must have prefix length /29 or /30 and match the prefix length of candidateCustomerRouterIpAddress.", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))/(29|30)$" }, "candidateCustomerRouterIpAddress": { "type": "string", "description": "Customer Router IP address in CIDR notation (e.g., 169.254.1.2/29). Must have prefix length /29 or /30 and match the prefix length of candidateCloudRouterIpAddress.", "pattern": "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))/(29|30)$" } } }, "bgpPeerMd5AuthEnabled": { "type": "boolean" } }, "required": [ "name", "bgpPeerAsn", "bgpPeerBfdSessionInitMode" ] }