|
7 | 7 | "url": "https://oxide.computer", |
8 | 8 | "email": "api@oxide.computer" |
9 | 9 | }, |
10 | | - "version": "2026060800.0.0" |
| 10 | + "version": "2026062500.0.0" |
11 | 11 | }, |
12 | 12 | "paths": { |
13 | 13 | "/device/auth": { |
@@ -10740,6 +10740,113 @@ |
10740 | 10740 | } |
10741 | 10741 | } |
10742 | 10742 | }, |
| 10743 | + "/v1/system/networking/bgp/unnumbered/interfaces": { |
| 10744 | + "get": { |
| 10745 | + "tags": [ |
| 10746 | + "system/networking" |
| 10747 | + ], |
| 10748 | + "summary": "List BGP Unnumbered interfaces", |
| 10749 | + "operationId": "networking_bgp_unnumbered_interface_list", |
| 10750 | + "responses": { |
| 10751 | + "200": { |
| 10752 | + "description": "successful operation", |
| 10753 | + "content": { |
| 10754 | + "application/json": { |
| 10755 | + "schema": { |
| 10756 | + "title": "Array_of_SwitchUnnumberedInterface", |
| 10757 | + "type": "array", |
| 10758 | + "items": { |
| 10759 | + "$ref": "#/components/schemas/SwitchUnnumberedInterface" |
| 10760 | + } |
| 10761 | + } |
| 10762 | + } |
| 10763 | + } |
| 10764 | + }, |
| 10765 | + "4XX": { |
| 10766 | + "$ref": "#/components/responses/Error" |
| 10767 | + }, |
| 10768 | + "5XX": { |
| 10769 | + "$ref": "#/components/responses/Error" |
| 10770 | + } |
| 10771 | + } |
| 10772 | + } |
| 10773 | + }, |
| 10774 | + "/v1/system/networking/bgp/unnumbered/interfaces/{switch_slot}/{interface_name}": { |
| 10775 | + "get": { |
| 10776 | + "tags": [ |
| 10777 | + "system/networking" |
| 10778 | + ], |
| 10779 | + "summary": "Get BGP Unnumbered interface state", |
| 10780 | + "operationId": "networking_bgp_unnumbered_interface_view", |
| 10781 | + "parameters": [ |
| 10782 | + { |
| 10783 | + "in": "path", |
| 10784 | + "name": "interface_name", |
| 10785 | + "required": true, |
| 10786 | + "schema": { |
| 10787 | + "type": "string" |
| 10788 | + } |
| 10789 | + }, |
| 10790 | + { |
| 10791 | + "in": "path", |
| 10792 | + "name": "switch_slot", |
| 10793 | + "required": true, |
| 10794 | + "schema": { |
| 10795 | + "$ref": "#/components/schemas/SwitchSlot" |
| 10796 | + } |
| 10797 | + } |
| 10798 | + ], |
| 10799 | + "responses": { |
| 10800 | + "200": { |
| 10801 | + "description": "successful operation", |
| 10802 | + "content": { |
| 10803 | + "application/json": { |
| 10804 | + "schema": { |
| 10805 | + "$ref": "#/components/schemas/SwitchUnnumberedInterface" |
| 10806 | + } |
| 10807 | + } |
| 10808 | + } |
| 10809 | + }, |
| 10810 | + "4XX": { |
| 10811 | + "$ref": "#/components/responses/Error" |
| 10812 | + }, |
| 10813 | + "5XX": { |
| 10814 | + "$ref": "#/components/responses/Error" |
| 10815 | + } |
| 10816 | + } |
| 10817 | + } |
| 10818 | + }, |
| 10819 | + "/v1/system/networking/bgp/unnumbered/manager": { |
| 10820 | + "get": { |
| 10821 | + "tags": [ |
| 10822 | + "system/networking" |
| 10823 | + ], |
| 10824 | + "summary": "Get BGP Unnumbered manager state", |
| 10825 | + "operationId": "networking_bgp_unnumbered_manager_status", |
| 10826 | + "responses": { |
| 10827 | + "200": { |
| 10828 | + "description": "successful operation", |
| 10829 | + "content": { |
| 10830 | + "application/json": { |
| 10831 | + "schema": { |
| 10832 | + "title": "Array_of_SwitchUnnumberedManagerState", |
| 10833 | + "type": "array", |
| 10834 | + "items": { |
| 10835 | + "$ref": "#/components/schemas/SwitchUnnumberedManagerState" |
| 10836 | + } |
| 10837 | + } |
| 10838 | + } |
| 10839 | + } |
| 10840 | + }, |
| 10841 | + "4XX": { |
| 10842 | + "$ref": "#/components/responses/Error" |
| 10843 | + }, |
| 10844 | + "5XX": { |
| 10845 | + "$ref": "#/components/responses/Error" |
| 10846 | + } |
| 10847 | + } |
| 10848 | + } |
| 10849 | + }, |
10743 | 10850 | "/v1/system/networking/bgp-announce-set": { |
10744 | 10851 | "get": { |
10745 | 10852 | "tags": [ |
|
19831 | 19938 | } |
19832 | 19939 | ] |
19833 | 19940 | }, |
| 19941 | + "DiscoveredRouter": { |
| 19942 | + "type": "object", |
| 19943 | + "properties": { |
| 19944 | + "address": { |
| 19945 | + "description": "Peer IPv6 address", |
| 19946 | + "type": "string", |
| 19947 | + "format": "ipv6" |
| 19948 | + }, |
| 19949 | + "discovered_at": { |
| 19950 | + "description": "When the peer was first discovered (ISO 8601 timestamp)", |
| 19951 | + "type": "string" |
| 19952 | + }, |
| 19953 | + "expired": { |
| 19954 | + "description": "Whether the peer entry has expired", |
| 19955 | + "type": "boolean" |
| 19956 | + }, |
| 19957 | + "last_advertisement": { |
| 19958 | + "description": "When the most recent Router Advertisement was received (ISO 8601 timestamp)", |
| 19959 | + "type": "string" |
| 19960 | + }, |
| 19961 | + "reachable_time": { |
| 19962 | + "description": "Reachable time from RA (milliseconds)", |
| 19963 | + "type": "integer", |
| 19964 | + "format": "uint32", |
| 19965 | + "minimum": 0 |
| 19966 | + }, |
| 19967 | + "retrans_timer": { |
| 19968 | + "description": "Retransmit timer from RA (milliseconds)", |
| 19969 | + "type": "integer", |
| 19970 | + "format": "uint32", |
| 19971 | + "minimum": 0 |
| 19972 | + }, |
| 19973 | + "router_lifetime": { |
| 19974 | + "description": "Router lifetime from RA (seconds)", |
| 19975 | + "type": "integer", |
| 19976 | + "format": "uint16", |
| 19977 | + "minimum": 0 |
| 19978 | + }, |
| 19979 | + "time_until_expiry": { |
| 19980 | + "nullable": true, |
| 19981 | + "description": "Time until expiry (human-readable), or None if already expired", |
| 19982 | + "type": "string" |
| 19983 | + } |
| 19984 | + }, |
| 19985 | + "required": [ |
| 19986 | + "address", |
| 19987 | + "discovered_at", |
| 19988 | + "expired", |
| 19989 | + "last_advertisement", |
| 19990 | + "reachable_time", |
| 19991 | + "retrans_timer", |
| 19992 | + "router_lifetime" |
| 19993 | + ] |
| 19994 | + }, |
19834 | 19995 | "Disk": { |
19835 | 19996 | "description": "View of a Disk", |
19836 | 19997 | "type": "object", |
|
25369 | 25530 | "type": "string", |
25370 | 25531 | "maxLength": 512 |
25371 | 25532 | }, |
| 25533 | + "PendingUnnumberedInterface": { |
| 25534 | + "type": "object", |
| 25535 | + "properties": { |
| 25536 | + "interface": { |
| 25537 | + "description": "Interface name", |
| 25538 | + "type": "string" |
| 25539 | + }, |
| 25540 | + "router_lifetime": { |
| 25541 | + "description": "Configured router lifetime (seconds)", |
| 25542 | + "type": "integer", |
| 25543 | + "format": "uint16", |
| 25544 | + "minimum": 0 |
| 25545 | + } |
| 25546 | + }, |
| 25547 | + "required": [ |
| 25548 | + "interface", |
| 25549 | + "router_lifetime" |
| 25550 | + ] |
| 25551 | + }, |
25372 | 25552 | "PhysicalDisk": { |
25373 | 25553 | "description": "View of a Physical Disk\n\nPhysical disks reside in a particular sled and are used to store both Instance Disk data as well as internal metadata.", |
25374 | 25554 | "type": "object", |
|
26835 | 27015 | } |
26836 | 27016 | ] |
26837 | 27017 | }, |
| 27018 | + "RouterDiscoveryRuntimeState": { |
| 27019 | + "type": "object", |
| 27020 | + "properties": { |
| 27021 | + "rx": { |
| 27022 | + "description": "ICMPv6 Router Advertisement receive loop is running", |
| 27023 | + "type": "boolean" |
| 27024 | + }, |
| 27025 | + "tx": { |
| 27026 | + "description": "ICMPv6 Router Advertisement transmit loop is running", |
| 27027 | + "type": "boolean" |
| 27028 | + } |
| 27029 | + }, |
| 27030 | + "required": [ |
| 27031 | + "rx", |
| 27032 | + "tx" |
| 27033 | + ] |
| 27034 | + }, |
26838 | 27035 | "RouterLifetimeConfig": { |
26839 | 27036 | "description": "Router lifetime in seconds for unnumbered BGP peers", |
26840 | 27037 | "type": "integer", |
|
29667 | 29864 | } |
29668 | 29865 | ] |
29669 | 29866 | }, |
| 29867 | + "SwitchUnnumberedInterface": { |
| 29868 | + "type": "object", |
| 29869 | + "properties": { |
| 29870 | + "interface": { |
| 29871 | + "$ref": "#/components/schemas/UnnumberedInterface" |
| 29872 | + }, |
| 29873 | + "switch_slot": { |
| 29874 | + "$ref": "#/components/schemas/SwitchSlot" |
| 29875 | + } |
| 29876 | + }, |
| 29877 | + "required": [ |
| 29878 | + "interface", |
| 29879 | + "switch_slot" |
| 29880 | + ] |
| 29881 | + }, |
| 29882 | + "SwitchUnnumberedManagerState": { |
| 29883 | + "type": "object", |
| 29884 | + "properties": { |
| 29885 | + "state": { |
| 29886 | + "$ref": "#/components/schemas/UnnumberedManagerState" |
| 29887 | + }, |
| 29888 | + "switch_slot": { |
| 29889 | + "$ref": "#/components/schemas/SwitchSlot" |
| 29890 | + } |
| 29891 | + }, |
| 29892 | + "required": [ |
| 29893 | + "state", |
| 29894 | + "switch_slot" |
| 29895 | + ] |
| 29896 | + }, |
29670 | 29897 | "SystemNetworkingSettings": { |
29671 | 29898 | "description": "Fleet-wide networking settings. Only fleet viewers may view these settings. Only fleet admins can modify them.", |
29672 | 29899 | "type": "object", |
|
30078 | 30305 | } |
30079 | 30306 | ] |
30080 | 30307 | }, |
| 30308 | + "UnnumberedInterface": { |
| 30309 | + "type": "object", |
| 30310 | + "properties": { |
| 30311 | + "discovered_peer": { |
| 30312 | + "nullable": true, |
| 30313 | + "description": "Information about discovered peer", |
| 30314 | + "allOf": [ |
| 30315 | + { |
| 30316 | + "$ref": "#/components/schemas/DiscoveredRouter" |
| 30317 | + } |
| 30318 | + ] |
| 30319 | + }, |
| 30320 | + "interface": { |
| 30321 | + "description": "Interface name (e.g. \"qsfp0\")", |
| 30322 | + "type": "string" |
| 30323 | + }, |
| 30324 | + "local_address": { |
| 30325 | + "description": "IPv6 link-local address of this interface.", |
| 30326 | + "type": "string", |
| 30327 | + "format": "ipv6" |
| 30328 | + }, |
| 30329 | + "ndp_state": { |
| 30330 | + "description": "State of rx/tx loops (None if interface not active in NDP)", |
| 30331 | + "allOf": [ |
| 30332 | + { |
| 30333 | + "$ref": "#/components/schemas/RouterDiscoveryRuntimeState" |
| 30334 | + } |
| 30335 | + ] |
| 30336 | + }, |
| 30337 | + "router_lifetime": { |
| 30338 | + "description": "Router Lifetime advertised in ICMPv6 Router Advertisements sent on this interface.", |
| 30339 | + "type": "integer", |
| 30340 | + "format": "uint16", |
| 30341 | + "minimum": 0 |
| 30342 | + } |
| 30343 | + }, |
| 30344 | + "required": [ |
| 30345 | + "interface", |
| 30346 | + "local_address", |
| 30347 | + "ndp_state", |
| 30348 | + "router_lifetime" |
| 30349 | + ] |
| 30350 | + }, |
| 30351 | + "UnnumberedManagerState": { |
| 30352 | + "type": "object", |
| 30353 | + "properties": { |
| 30354 | + "active_interfaces": { |
| 30355 | + "type": "array", |
| 30356 | + "items": { |
| 30357 | + "type": "string" |
| 30358 | + } |
| 30359 | + }, |
| 30360 | + "monitor_running": { |
| 30361 | + "type": "boolean" |
| 30362 | + }, |
| 30363 | + "pending_interfaces": { |
| 30364 | + "type": "array", |
| 30365 | + "items": { |
| 30366 | + "$ref": "#/components/schemas/PendingUnnumberedInterface" |
| 30367 | + } |
| 30368 | + } |
| 30369 | + }, |
| 30370 | + "required": [ |
| 30371 | + "active_interfaces", |
| 30372 | + "monitor_running", |
| 30373 | + "pending_interfaces" |
| 30374 | + ] |
| 30375 | + }, |
30081 | 30376 | "UpdateStatus": { |
30082 | 30377 | "type": "object", |
30083 | 30378 | "properties": { |
|
0 commit comments