Download OpenAPI specification:Download
Management API for the Anapaya EDGE, CORE and GATE appliances
✨Added in v0.24
Put a new configuration to the appliance.
force | boolean Push the configuration, even if configuration validation fails. This parameter MUST be used with care as it can leave the appliance in a misconfigured state. |
disable_strict_parsing | boolean Disable strict parsing of the appliance configuration. |
If-Match | string |
The config to be pushed to the appliance.
required | object (Config) Anapaya appliance configuration |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}
}
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}, - "metadata": {
- "release_version": "v1.0.0",
- "system_version": "v1.0.0"
}
}
✨Added in v0.34
Validates a configuration.
disable_strict_parsing | boolean Disable strict parsing of the appliance configuration. |
The config to be validated.
required | object (Config) Anapaya appliance configuration |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}
}
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}, - "metadata": {
- "release_version": "v1.0.0",
- "system_version": "v1.0.0"
}
}
✨Added in v0.24
Add a SCION CPPKI Trust Root Configuration (TRC) file to the device. The TRC is first validated before it is added to the trust store. Only valid TRCs are added to the trust store. Use the 'force' query parameter to force the addition of the TRC regardless of validity.
force | boolean Default: false If force is true, the TRC is added regardless of validity. |
The PEM encoded signed TRC.
-----BEGIN TRC----- ZjAwOjA6MTEwI ... -----END TRC-----
{- "trc": {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
}
✨Added in v0.28
Add a bundle SCION CPPKI Trust Root Configuration (TRC) files to the device. The TRCs are first validated before they are added to the trust store. Only valid TRCs are added to the trust store. Use the 'force' query parameter to force the addition of the TRCs regardless of validity.
force | boolean Default: false If force is true, the TRC is added regardless of validity. |
The PEM encoded signed TRC.
-----BEGIN TRC----- ZjAwOjA6MTEwI ... -----END TRC----- -----BEGIN TRC----- 6QV3F2EsMZVWD ... -----END TRC----- -----BEGIN TRC----- GO0Vg34C8eRAu ... -----END TRC-----
{- "trcs": [
- {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
]
}
✨Added in v0.24
Create a SCION CPPKI AS Certificate Signing Request (CSR). The CSR needs to be signed by a SCION CPPKI Certificate Authority in the local ISD. The fully signed certificate chain then needs to be installed via the /cppki/certificates endpoint.
The parameters for the CSR.
required | object (Subject of a certificate signing request.) |
{- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}
}
{- "certificate_signing_request": {
- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}, - "creation_time": "2021-01-04T09:59:33Z",
- "id": "fa53a04a"
}
}
✨Added in v0.24
Add a SCION CPPKI AS certificate chain to the device by promoting an existing certificate signing request. The certificate chain is first verified against the active TRC of the local ISD before it is added. Only verifiable certificate chains are added. Use the 'force' query parameter to force the addition of the certificate chain regardless of validity or verifiability.
force | boolean Default: false If force is true the certificate chain is added regardless of validity. |
Certificate chain containing the new AS certificate and the issuing CA certificate encoded in a degenerate PKCS#7 data structure.
{- "certificate_chain": {
- "id": "fa53a04a",
- "subject": "1-ff00:0:110",
- "issuer": "1-ff00:0:110",
- "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "chain": "string",
- "blob": "string"
}
}
✨Added in v0.24
Get the currently active appliance configuration.
suppress_secrets | boolean Do not expose secrets in the response. |
If-None-Match | string |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}, - "metadata": {
- "release_version": "v1.0.0",
- "system_version": "v1.0.0"
}
}
✨Added in v0.24
Put a new configuration to the appliance.
force | boolean Push the configuration, even if configuration validation fails. This parameter MUST be used with care as it can leave the appliance in a misconfigured state. |
disable_strict_parsing | boolean Disable strict parsing of the appliance configuration. |
If-Match | string |
The config to be pushed to the appliance.
required | object (Config) Anapaya appliance configuration |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}
}
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}, - "metadata": {
- "release_version": "v1.0.0",
- "system_version": "v1.0.0"
}
}
✨Added in v0.34
Validates a configuration.
disable_strict_parsing | boolean Disable strict parsing of the appliance configuration. |
The config to be validated.
required | object (Config) Anapaya appliance configuration |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}
}
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}, - "metadata": {
- "release_version": "v1.0.0",
- "system_version": "v1.0.0"
}
}
✨Added in v0.38
Get the configured customization for a service, along with its state.
service_type required | string (service_type) Enum: "CA_FRONTEND" "CONTROL" "CRON" "DAEMON" "DATAPLANE" "DATAPLANE_CONTROL" "DISPATCHER" "FRR" "FRR_EXPORTER" "GATEWAY" "MOLE" "NODE_EXPORTER" "PROMTAIL" "ROUTER" "TELEMETRY" "SHUTTLE" Service Type |
{- "service_customization": {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
}
✨Added in v0.38
Get the configured custom template for a service, along with its state.
service_type required | string (service_type) Enum: "CA_FRONTEND" "CONTROL" "CRON" "DAEMON" "DATAPLANE" "DATAPLANE_CONTROL" "DISPATCHER" "FRR" "FRR_EXPORTER" "GATEWAY" "MOLE" "NODE_EXPORTER" "PROMTAIL" "ROUTER" "TELEMETRY" "SHUTTLE" Service Type |
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.38
Put a new custom template for a service, along with its state.
service_type required | string (service_type) Enum: "CA_FRONTEND" "CONTROL" "CRON" "DAEMON" "DATAPLANE" "DATAPLANE_CONTROL" "DISPATCHER" "FRR" "FRR_EXPORTER" "GATEWAY" "MOLE" "NODE_EXPORTER" "PROMTAIL" "ROUTER" "TELEMETRY" "SHUTTLE" Service Type |
The custom service template to be pushed to the appliance.
The custom template for the service.
{- "service_customization": {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
}
✨Added in v0.38
Render a new custom template for a service, along with its state.
service_type required | string (service_type) Enum: "CA_FRONTEND" "CONTROL" "CRON" "DAEMON" "DATAPLANE" "DATAPLANE_CONTROL" "DISPATCHER" "FRR" "FRR_EXPORTER" "GATEWAY" "MOLE" "NODE_EXPORTER" "PROMTAIL" "ROUTER" "TELEMETRY" "SHUTTLE" Service Type |
isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: isd_as=1-ff00:0:110 |
The custom service template to be rendered.
The custom template for the service.
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.24
List the latest SCION CPPKI Trust Root Configuration (TRC) files for each ISD that are known to the appliance. The result can be filtered by ISD. Optionally, all TRCs can be requested instead of only the latest ones by setting the 'all' query parameter.
isd | Array of integers Comma-separated list of ISDs to include. |
all | boolean Include all TRCs instead of just the latest one per ISD. |
{- "trcs": [
- {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
]
}
✨Added in v0.24
Add a SCION CPPKI Trust Root Configuration (TRC) file to the device. The TRC is first validated before it is added to the trust store. Only valid TRCs are added to the trust store. Use the 'force' query parameter to force the addition of the TRC regardless of validity.
force | boolean Default: false If force is true, the TRC is added regardless of validity. |
The PEM encoded signed TRC.
-----BEGIN TRC----- ZjAwOjA6MTEwI ... -----END TRC-----
{- "trc": {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
}
✨Added in v0.28
Add a bundle SCION CPPKI Trust Root Configuration (TRC) files to the device. The TRCs are first validated before they are added to the trust store. Only valid TRCs are added to the trust store. Use the 'force' query parameter to force the addition of the TRCs regardless of validity.
force | boolean Default: false If force is true, the TRC is added regardless of validity. |
The PEM encoded signed TRC.
-----BEGIN TRC----- ZjAwOjA6MTEwI ... -----END TRC----- -----BEGIN TRC----- 6QV3F2EsMZVWD ... -----END TRC----- -----BEGIN TRC----- GO0Vg34C8eRAu ... -----END TRC-----
{- "trcs": [
- {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
]
}
✨Added in v0.24
Get the SCION CPPKI Trust Root Configuration (TRC).
isd required | integer Example: 12 |
base required | integer Example: 1 |
serial required | integer Example: 3 |
{- "trc": {
- "id": {
- "isd": 15,
- "base_number": 1,
- "serial_number": 3
}, - "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "core_ases": [
- "1-ff00:0:110"
], - "authoritative_ases": [
- "1-ff00:0:110"
], - "description": "string",
- "blob": "string"
}
}
✨Added in v0.24
Get the SCION CPPKI Trust Root Configuration (TRC) as PEM encoded byte blob.
isd required | integer Example: 12 |
base required | integer Example: 1 |
serial required | integer Example: 3 |
{- "trc": "-----BEGIN TRC-----\\nZjAwOjA6MTEwI ...\\n-----END TRC-----"
}
✨Added in v0.26
List the certificate signing requests that are available on the device.
isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: isd_as=1-ff00:0:110 |
{- "certificate_signing_requests": [
- {
- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}, - "creation_time": "2021-01-04T09:59:33Z",
- "id": "fa53a04a"
}
]
}
✨Added in v0.24
Create a SCION CPPKI AS Certificate Signing Request (CSR). The CSR needs to be signed by a SCION CPPKI Certificate Authority in the local ISD. The fully signed certificate chain then needs to be installed via the /cppki/certificates endpoint.
The parameters for the CSR.
required | object (Subject of a certificate signing request.) |
{- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}
}
{- "certificate_signing_request": {
- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}, - "creation_time": "2021-01-04T09:59:33Z",
- "id": "fa53a04a"
}
}
✨Added in v0.26
Get the SCION Certificate Signing Request for a given CSR ID
csr_id required | string <hex-string> (Certificate signing request identifier) Example: fa53a04a Certificate signing request identifier. |
{- "certificate_signing_request": {
- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}, - "creation_time": "2021-01-04T09:59:33Z",
- "id": "fa53a04a"
}
}
✨Added in v0.26
Get the SCION CPPKI Certificate Signing Request encoded as PEM bytes blob for a given CSR ID.
csr_id required | string <hex-string> (Certificate signing request identifier) Example: fa53a04a Certificate signing request identifier. |
{- "csr": "-----BEGIN CERTIFICATE REQUEST-----\\nCertificateSigningRequest ...\\n-----END CERTIFICATE REQUEST-----"
}
✨Added in v0.24
List the certificate chains that are available on the device.
isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: isd_as=1-ff00:0:110 |
all | boolean Include all certificate chains instead of just the valid ones. |
{- "certificate_chains": [
- {
- "id": "fa53a04a",
- "subject": "1-ff00:0:110",
- "issuer": "1-ff00:0:110",
- "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "chain": "string",
- "blob": "string"
}
]
}
✨Added in v0.24
Add a SCION CPPKI AS certificate chain to the device by promoting an existing certificate signing request. The certificate chain is first verified against the active TRC of the local ISD before it is added. Only verifiable certificate chains are added. Use the 'force' query parameter to force the addition of the certificate chain regardless of validity or verifiability.
force | boolean Default: false If force is true the certificate chain is added regardless of validity. |
Certificate chain containing the new AS certificate and the issuing CA certificate encoded in a degenerate PKCS#7 data structure.
{- "certificate_chain": {
- "id": "fa53a04a",
- "subject": "1-ff00:0:110",
- "issuer": "1-ff00:0:110",
- "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "chain": "string",
- "blob": "string"
}
}
✨Added in v0.24
Manually renew a SCION CPPKI AS certificate chain with the regular renewal mechanism. By default, the distinguished name of the subject in the predecessor certificate chain is used. A different distinguished name can be requested by setting the subject in the request body. By default the issuers are taken from the appliance configuration, specific issuers can be configured in the request body. If they are set, certificate renewal is attempted with each issuer in order until success.
Note that certificate renewal requires at least one valid certificate chain to be present on the appliance.
isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: isd_as=1-ff00:0:110 The ISD-AS for which the certificate is renewed. This parameter is required only if the request body is not set, and there are multiple ISD-ASes configured on the appliance. |
object (Subject of a certificate signing request.) | |
issuers | Array of strings (ISD-AS Identifier) |
{- "subject": {
- "isd_as": "1-ff00:0:110",
- "common_name": "Anapaya Switzerland AS",
- "country": "CH",
- "locality": "Zurich",
- "organization": "Anapaya Systems AG",
- "organizational_unit": "Anapaya Systems Engineering Department",
- "postal_code": "8005",
- "province": "Zurich",
- "serial_number": "CHE 123.456.789",
- "street_address": "Hardturmstrasse 253, 8005 Zurich"
}, - "issuers": [
- "1-ff00:0:110"
]
}
-----BEGIN CERTIFICATE----- ASCertificate ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- CACertificate ... -----END CERTIFICATE-----
✨Added in v0.24
Get the SCION CPPKI AS certificate chain for a given ChainID.
chain_id required | string <hex-string> (Certificate chain identifier) Example: fa53a04a Certificate chain identifier. |
{- "certificate_chain": {
- "as_certificate": {
- "distinguished_name": "string",
- "isd_as": "1-ff00:0:110",
- "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "subject_key_algo": "ECDSA",
- "subject_key_id": "89 B9 49 C2 2F 2F 9C DD 0D 2A 57 A9 DE 8E 2F 95 F3 09 10 D1"
}, - "ca_certificate": {
- "distinguished_name": "string",
- "isd_as": "1-ff00:0:110",
- "validity": {
- "not_before": "2021-01-04T09:59:33Z",
- "not_after": "2022-01-04T09:59:33Z"
}, - "subject_key_algo": "ECDSA",
- "subject_key_id": "89 B9 49 C2 2F 2F 9C DD 0D 2A 57 A9 DE 8E 2F 95 F3 09 10 D1"
}
}
}
✨Added in v0.24
Get the SCION CPPKI AS certificate chain encoded as PEM bytes blob for a given ChainID.
chain_id required | string <hex-string> (Certificate chain identifier) Example: fa53a04a Certificate chain identifier. |
{- "certificate_chain": "-----BEGIN CERTIFICATE-----\\nASCertificate ...\\n-----END CERTIFICATE-----"
}
✨Added in v0.34
Manually request a SCION CPPKI AS certificate chain for a given CSR
using the regular certificate renewal mechanism. The endpoint expects a
CSR and uses that to request a certificate renewal. The certificate
renewal request is signed by an active key/certificate of the appliance
such that the CA will be able to authenticate the renewal request and
issue the certificate. This is useful if one appliance has been
disconnected from the SCION network for several days and thus has no
valid AS certificate anymore that could be used for certificate renewal.
In such a case, one can generate a new CSR on the appliance that was
offline and use this endpoint on an appliance that still has a valid AS
certificate to request a new certificate on behalf of the sibling.The
returned certificate can then be deployed to the offline appliance using
the regular POST /cppki/certificates
endpoint.
csr required | string PEM encoded CSR |
{- "csr": "-----BEGIN CERTIFICATE REQUEST-----\\nCertificateSigningRequest ...\\n-----END CERTIFICATE REQUEST-----"
}
-----BEGIN CERTIFICATE----- ASCertificate ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- CACertificate ... -----END CERTIFICATE-----
✨Added in v0.32
List the available physical interfaces of the appliance. The result includes the interface name and the PCI-E Bus/Device/Function (BDF) address for each interface. Only physical interfaces are listed here. To configure them use the config endpoint of the API.
{- "interfaces": [
- {
- "name": "eth0",
- "pcie_bdf": "0000:00:1f.0",
- "uuid": "0022481C-3BE5-0022-481C-3BE50022481C",
- "driver": "vfio-pci",
- "num_vfs": 0
}
]
}
✨Added in v0.32
List the configured wireguard interfaces. The result includes the interface name and the public key.
{- "interfaces": [
- {
- "name": "wg0",
- "public_key": "SqLwwTSYHBwQljJDqx7aUVWVDFN6ir6FQL/m3VfmhhQ="
}
]
}
✨Added in v0.32
Returns the configured wireguard interface and the public key.
interface_name required | string Name of the interface to list. |
{- "name": "wg0",
- "public_key": "SqLwwTSYHBwQljJDqx7aUVWVDFN6ir6FQL/m3VfmhhQ="
}
✨Added in v0.34
Get the installed firewall configuration of the appliance, including the tables, named counters, chains and rules.
{- "tables": [
- {
- "name": "string",
- "family": "ip",
- "chains": [
- {
- "name": "string",
- "hook": "prerouting",
- "priority": 0,
- "policy": "accept",
- "type": "filter",
- "rules": [
- {
- "rule": "string",
- "comment": "string"
}
]
}
], - "counters": [
- {
- "name": "string",
- "packets": 0,
- "bytes": 0
}
]
}
]
}
✨Added in v0.34
Get a specific firewall table of the appliance by name, including the named counters, chains, and their rules.
table_name required | string |
{- "table": {
- "name": "string",
- "family": "ip",
- "chains": [
- {
- "name": "string",
- "hook": "prerouting",
- "priority": 0,
- "policy": "accept",
- "type": "filter",
- "rules": [
- {
- "rule": "string",
- "comment": "string"
}
]
}
], - "counters": [
- {
- "name": "string",
- "packets": 0,
- "bytes": 0
}
]
}
}
✨Added in v0.34
Get a specific set of rules specified by their chain and table name of the appliance firewall.
table_name required | string |
chain_name required | string |
{- "chain": {
- "name": "string",
- "hook": "prerouting",
- "priority": 0,
- "policy": "accept",
- "type": "filter",
- "rules": [
- {
- "rule": "string",
- "comment": "string"
}
]
}
}
✨Added in v0.34
Validates a configuration and returns the firewall configuration which would be applied for the given appliance configuration.
disable_strict_parsing | boolean Disable strict parsing of the appliance configuration. |
The config to be validated.
required | object (Config) Anapaya appliance configuration |
{- "config": {
- "advanced": {
- "service_customizations": [
- {
- "disabled": false,
- "service_type": "CA_FRONTEND",
- "skip_template_validation": false,
- "template": "string"
}
]
}, - "bgp": {
- "global": {
- "as": 0,
- "networks": [
- "string"
], - "router_id": "string",
- "src_address": "string"
}, - "neighbors": [
- {
- "auth_password": "string",
- "bfd": {
- "desired_minimum_tx_interval": 300,
- "detection_multiplier": 3,
- "enabled": false,
- "local_address": "string",
- "minimum_ttl": 254,
- "multihop": false,
- "required_minimum_receive": 300
}, - "description": "string",
- "ebgp_multihop": 0,
- "enabled": true,
- "local_as": 0,
- "neighbor_address": "string",
- "peer_as": 0,
- "timers": {
- "connect_retry": 30,
- "hold_time": 30,
- "keepalive_interval": 10,
- "minimum_advertisement_interval": 30
}, - "transport": {
- "local_address": "string"
}, - "ttl_security": 0
}
]
}, - "cluster": {
- "features": {
- "scion_rss": true
}, - "peers": [
- {
- "description": "string",
- "features": {
- "scion_rss": false
}, - "name": "string",
- "scion": {
- "ases": [
- {
- "control": {
- "address": "192.168.1.1:30100"
}, - "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "interfaces": [ ],
- "neighbor_isd_as": null,
- "relationship": null
}
], - "shard_id": 0
}
]
}, - "scion_tunneling": {
- "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "disable_auto_allowed_interfaces": true,
- "ip": "192.168.1.100",
- "probe_port": 40202
}
}, - "synchronization": {
- "address": "192.168.1.1:30100"
}
}
], - "synchronization": {
- "address": "192.0.2.3:40000",
- "node_synchronization_interval": "1m"
}
}, - "experiments": {
- "features": [
- {
- "name": "string",
- "value": "string"
}
]
}, - "firewall": {
- "mode": "AUTO",
- "tables": [
- {
- "chains": [
- {
- "chaintype": "FILTER",
- "hook": "PREROUTING",
- "name": "string",
- "policy": "ACCEPT",
- "priority": 0,
- "rules": [
- {
- "comment": "string",
- "rule": "string",
- "sequence_id": 1
}
]
}
], - "counters": [
- {
- "name": "string"
}
], - "family": "IP",
- "name": "string"
}
]
}, - "interfaces": {
- "bonds": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "interfaces": [
- "string"
], - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "ethernets": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "driver": "LINUX",
- "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vpp": {
- "vlan_strip_offload": false
}, - "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "loopbacks": [
- {
- "addresses": [
- "string"
], - "name": "string"
}
], - "virtual_functions": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "vlans": [
- {
- "accept_ra": false,
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "id": 4095,
- "link": "string",
- "mac": "string",
- "mtu": 1472,
- "name": "string",
- "neighbors": [
- {
- "address": "string",
- "comment": "string",
- "mac": "string",
- "sequence_id": 3
}
], - "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
], - "rx_queue_size": 2048,
- "tx_queue_size": 2048,
- "vrrp": [
- {
- "addresses": [
- "string"
], - "no_preempt": false,
- "peers": [
- "string"
], - "priority": 17,
- "vrid": 3
}
]
}
], - "wireguards": [
- {
- "addresses": [
- "string"
], - "gateway": {
- "ipv4_gateway": "string",
- "ipv6_gateway": "string"
}, - "mtu": 1420,
- "name": "string",
- "peers": [
- {
- "allowed_ips": [
- "string"
], - "endpoint": "string",
- "public_key": "string"
}
], - "pointopoint": "string",
- "port": 0,
- "routes": [
- {
- "comment": "string",
- "from": "string",
- "metric": 10,
- "sequence_id": 3,
- "to": "string",
- "via": "string"
}
]
}
]
}, - "management": {
- "api": {
- "basic_auth": {
- "enabled": true,
- "users": [
- {
- "password_hashed": "$2y$10$QNodxwKFABMWu4XlFPmZDOSfqxrsqNvrSn487lCi7tJ/4nTsT/f02",
- "username": "admin"
}
]
}, - "listeners": [
- {
- "address": "127.0.0.1:443",
- "description": "string"
}
], - "oauth": {
- "enabled": false,
- "identity_providers": [
- {
- "client_id": "string",
- "client_secret": "string",
- "id": "string",
- "tenant_id": "string",
- "type": "GENERIC"
}
], - "roles": [
- {
- "aliases": [
- "string"
], - "role": "string"
}
], - "token_verification_keys": [
]
}, - "unprotected": false
}, - "hostname": "edge.geneva.corpbank",
- "remote_repository": {
- "cloudsmith": {
- "access_token": "APIKEY#ENTITLEMENTTOKEN",
}, - "repository_type": "CLOUDSMITH"
}, - "ssh": {
- "enable_password_login": false,
- "users": [
- {
- "ssh_keys": [
- {
- "description": "string",
- "key": "ssh-rsa AAAAB3NzaC1yc2"
}
], - "username": "anapaya"
}
]
}, - "telemetry": {
- "address": ":42001",
- "flow_metrics": {
- "cleanup_task_interval": "60s",
- "collector_url": "string",
- "enabled": false,
- "export_task_interval": "60s",
- "flow_expiration_interval": "180s",
- "max_active_flows": 0,
- "proxy_url": "string"
}, - "labels": [
- {
- "label": "string",
- "value": "string"
}
], - "logging": {
- "logging_type": "LOKI",
- "loki": {
- "basic_auth": {
- "password": "string",
- "username": "promtail"
}, - "tls_config": {
- "insecure_skip_verify": false
},
}
}
}
}, - "nat": {
- "snat": {
- "address_pool": [
- "string"
], - "exclude": [
- "string"
], - "interfaces": [
- "string"
]
}
}, - "scion": {
- "ases": [
- {
- "ca_service": {
- "anapaya_vault": {
- "addresses": [
- "string"
], - "credentials": {
- "role_id": "string",
- "secret_id": "string"
}, - "validation": {
- "subject": "MATCHING_ISD_AS"
}
}, - "external": {
- "address": "192.0.2.3:5000",
- "client_id": "string",
- "shared_secret": "shared secret"
}, - "service_type": "EXTERNAL"
}, - "control": {
- "address": "192.168.1.1:30100",
- "enabled": true
}, - "core": true,
- "cppki": {
- "disable_auto_renewal": true,
- "issuers": [
- {
- "isd_as": "1-ff00:0:120",
- "priority": 0
}
]
}, - "default": false,
- "details": {
- "description": "string",
- "name": "string"
}, - "forwarding_key": "string",
- "isd_as": "1-ff00:0:110",
- "neighbors": [
- {
- "description": "string",
- "interfaces": [
- {
- "address": "169.254.0.1:30100",
- "administrative_state": "UP",
- "bfd": {
- "desired_minimum_tx_interval": null,
- "detection_multiplier": null,
- "enabled": null,
- "required_minimum_receive": null
}, - "description": "string",
- "enable_scion_rss": false,
- "interface_id": 1,
- "remote": {
- "address": null,
- "interface_id": null
}, - "scion_mtu": 1472
}
], - "neighbor_isd_as": "2-ff00:0:210",
- "relationship": "CORE"
}
], - "router": {
- "enabled": true,
- "internal_interface": "192.168.1.1:30100"
}, - "scion_mtu": 1472,
- "shard_id": 0
}
], - "synchronization": {
- "beacon_synchronization_interval": "4s",
- "path_segment_synchronization_interval": "4s"
}
}, - "scion_tunneling": {
- "domains": [
- {
- "default": true,
- "description": "The domain. It matches all packets and allows any\npath to be used.",
- "encryption": "DISABLED",
- "local_isd_ases": [
- "string"
], - "name": "Default Domain",
- "prefixes": {
- "accept_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
], - "announce_filter": [
- {
- "action": "ACCEPT",
- "description": "string",
- "prefixes": [
- "192.168.1.0/24"
], - "sequence_id": 1
}
]
}, - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "description": "string",
- "isd_as": "0-ff00:0:310",
- "sequence_id": 1
}
], - "traffic_policies": [
- {
- "description": "Default traffic policy",
- "failover_sequence": [
- {
- "path_filter": "string",
- "sequence_id": 1
}
], - "sequence_id": 1,
- "traffic_matcher": "string"
}
]
}
], - "endpoint": {
- "allowed_interfaces": [
- {
- "interfaces": [
- 2,
- 3
], - "isd_as": "string"
}
], - "control_port": 40201,
- "data_port": 40200,
- "description": "string",
- "disable_auto_allowed_interfaces": true,
- "disable_urpf": true,
- "enable_scion_rss": true,
- "enabled": true,
- "encryption": {
- "enabled": true,
- "per_remote_sa_limit": 1000,
- "port": 40203,
- "total_sa_limit": 100000
}, - "ip": "192.168.1.100",
- "probe_port": 40202
}, - "path_filters": [
- {
- "acl": [
- "+ 64-0"
], - "description": "Match only paths in the Swiss Isolation Domain (ID 64).",
- "hop_pattern": "0* 64+ 0+",
- "name": "CH ISD only"
}
], - "remotes": [
- {
- "description": "string",
- "isd_as": "1-ff00:0:310"
}
], - "static_announcements": [
- {
- "description": "string",
- "next_hop_tracking": {
- "disabled": true,
- "target": "192.168.0.1"
}, - "prefixes": [
- "192.168.1.0/24",
- "172.30.100.0/28"
], - "sequence_id": 1
}
], - "traffic_matchers": [
- {
- "condition": "BOOL=true",
- "description": "'all packets' matches all packets.",
- "name": "all packets"
}
]
}, - "system": {
- "dns": {
- "servers": [
- {
- "address": "string"
}
]
}, - "kernel": {
- "hugepage_size": "2M",
- "hugepages": 0,
- "iommu_enabled": false
}, - "ntp": {
- "root_distance_max": "1s",
- "servers": [
- {
- "address": "string"
}
]
}, - "resources": {
- "service_limits": [
- {
- "cpu": 1.5,
- "memory": "2.5G",
- "name": "CA_FRONTEND"
}
]
}, - "vpp": {
- "buffers": {
- "data_size": 9000,
- "num_buffers": 0
}, - "connection": {
- "health_check": {
- "probe_interval": "1s",
- "reply_timeout": "250ms",
- "threshold": 3
}, - "reconnect_attempts": 5,
- "reconnect_interval": "1s"
}, - "cpu": {
- "corelist_workers": "2-3,5",
- "main_core": 1,
- "workers": 0
}, - "poll_sleep": "0s",
- "statseg": {
- "size": "100M"
}, - "tun": {
- "mtu": 1500,
- "prefixes": [
- "192.168.1.0/24"
]
}
}
}
}
}
{- "tables": [
- {
- "name": "string",
- "family": "ip",
- "chains": [
- {
- "name": "string",
- "hook": "prerouting",
- "priority": 0,
- "policy": "accept",
- "type": "filter",
- "rules": [
- {
- "rule": "string",
- "comment": "string"
}
]
}
], - "counters": [
- {
- "name": "string",
- "packets": 0,
- "bytes": 0
}
]
}
]
}
✨Added in v0.26
Trigger and wait for a ping run to test connectivity to a remote SCION host using SCMP echo packets.
required | object (PingRun) |
{- "run": {
- "destination_host": "string",
- "destination_isd_as": "1-ff00:0:110",
- "count": 1,
- "source_isd_as": "1-ff00:0:110",
- "max_mtu": true,
- "payload_size": 8,
- "sequence": "string",
- "timeout": "1s"
}
}
{- "summary": {
- "path": {
- "fingerprint": "string",
- "hops": [
- {
- "isd_as": "1-ff00:0:110",
- "interface": 42
}
], - "next_hop": "string",
- "expiry": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": [
- "string"
], - "status": "unknown",
- "local_ip": "string"
}, - "payload_size": 0,
- "scion_packet_size": 0,
- "replies": [
- {
- "scion_packet_size": 0,
- "source_isd_as": "1-ff00:0:110",
- "source_host": "string",
- "scmp_seq": 0,
- "round_trip_time": "string",
- "state": "success"
}
], - "statistics": {
- "sent": 0,
- "received": 0,
- "packet_loss": 0,
- "time": 0
}
}
}
✨Added in v0.26
Trigger a SCION showpaths request to a remote SCION AS.
required | object (ShowpathsRun) |
{- "run": {
- "destination_isd_as": "1-ff00:0:110",
- "source_isd_as": "1-ff00:0:110",
- "no_probe": false,
- "refresh": false,
- "maxpaths": 0,
- "sequence": "string",
- "timeout": "1s"
}
}
{- "paths": [
- {
- "fingerprint": "string",
- "hops": [
- {
- "isd_as": "1-ff00:0:110",
- "interface": 42
}
], - "next_hop": "string",
- "expiry": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": [
- "string"
], - "status": "unknown",
- "local_ip": "string"
}
]
}
✨Added in v0.26
Trigger a SCION traceroute run and trace the SCION path to a remote AS using SCMP traceroute packets.
required | object (TracerouteRun) |
{- "run": {
- "destination_host": "string",
- "destination_isd_as": "1-ff00:0:110",
- "source_isd_as": "1-ff00:0:110",
- "sequence": "string",
- "timeout": "1s",
- "probes_per_hop": 3
}
}
{- "summary": {
- "path": {
- "fingerprint": "string",
- "hops": [
- {
- "isd_as": "1-ff00:0:110",
- "interface": 42
}
], - "next_hop": "string",
- "expiry": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": [
- "string"
], - "status": "unknown",
- "local_ip": "string"
}, - "hops": [
- {
- "isd_as": "1-ff00:0:110",
- "ip": "10.0.0.1",
- "interface_id": 42,
- "round_trip_times": [
- "300ms"
]
}
]
}
}
✨Added in v0.26
List the package information (e.g., version) for all the scion packages which are available in the remote repository.
{- "packages": [
- {
- "version": "v0.25.12",
}
]
}
✨Added in v0.26
Get the package information of the scion package for the given version.
version required | string (Package version) Example: v0.25.12 Version of the scion package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
List the package information (e.g., version) for all the system packages which are available in the remote repository.
{- "packages": [
- {
- "version": "v0.25.12",
}
]
}
✨Added in v0.26
Get the package information of the system package for the given version.
version required | string (Package version) Example: v0.25.12 Version of the system package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Fetch the software scion package of a given version from a remote repository.
version required | string (Package version) |
{- "version": "v0.25.12"
}
{- "fetch": {
- "version": "v0.25.12",
- "fetch_id": "string",
- "status": "pending"
}
}
✨Added in v0.26
Fetch the software system package for a given version from a remote repository.
version required | string (Package version) |
{- "version": "v0.25.12"
}
{- "fetch": {
- "version": "v0.25.12",
- "fetch_id": "string",
- "status": "pending"
}
}
✨Added in v0.26
Get the download status of a software scion package from a remote repository.
id required | string (Identifier of the software package fetching process.) Identifier of the fetch process for the specific scion package version. |
{- "fetch_status": {
- "version": "v0.25.12",
- "fetch_id": "string",
- "status": "pending"
}
}
✨Added in v0.26
Get the download status of a software system package from a remote repository.
id required | string (Identifier of the software package fetching process.) Identifier of the fetch process for the specific system package version. |
{- "fetch_status": {
- "version": "v0.25.12",
- "fetch_id": "string",
- "status": "pending"
}
}
✨Added in v0.26
List the package information (e.g., version) for all the scion packages which are available locally on the appliance.
{- "packages": [
- {
- "version": "v0.25.12",
}
]
}
✨Added in v0.26
Upload the scion package to the local repository of the appliance.
force | boolean Default: false If force is true, the package is stored regardless of whether it already exists. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Get the package information of the scion package for the given version.
version required | string (Package version) Example: v0.25.12 Version of the scion package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Delete the scion package for the given version if it is available locally on the appliance.
version required | string (Package version) Example: v0.25.12 Version of the scion package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
List the package information (e.g., version) for all the system packages which are available locally on the appliance.
{- "packages": [
- {
- "version": "v0.25.12",
}
]
}
✨Added in v0.26
Upload the system package to the local repository of the appliance.
force | boolean Default: false If force is true, the package is stored regardless of whether it already exists. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Get the package information of the system package for the given version.
version required | string (Package version) Example: v0.25.12 Version of the system package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Delete the system package for the given version if it is available locally on the appliance.
version required | string (Package version) Example: v0.25.12 Version of the system package. |
{- "package": {
- "version": "v0.25.12",
}
}
✨Added in v0.26
Trigger the installation of the scion package with the version specified in the request body.
version required | string (Package version) |
force | boolean Default: false |
skip_signature_verification | boolean Default: false |
{- "version": "v0.25.12",
- "force": false,
- "skip_signature_verification": false
}
{- "install_info": {
- "version": "v0.25.12",
- "install_id": "string",
- "install_status": "in_progress",
- "rollback_id": "string"
}
}
✨Added in v0.26
Trigger the installation of the system package with the version specified in the request body.
version required | string (Package version) |
force | boolean Default: false |
skip_signature_verification | boolean Default: false |
{- "version": "v0.25.12",
- "force": false,
- "skip_signature_verification": false
}
{- "install_info": {
- "version": "v0.25.12",
- "install_id": "string",
- "install_status": "in_progress",
- "rollback_id": "string"
}
}
✨Added in v0.26
Get the status of the installation process of the scion package for the given id.
id required | string (Identifier of the software package installation process.) Identifier of the installation process for the specific scion package version. |
{- "install_info": {
- "version": "v0.25.12",
- "install_id": "string",
- "install_status": "in_progress",
- "rollback_id": "string"
}
}
✨Added in v0.26
Get the status of the installation process of the system package for the given id.
id required | string (Identifier of the software package installation process.) Identifier of the installation process for the specific system package version. |
{- "install_info": {
- "version": "v0.25.12",
- "install_id": "string",
- "install_status": "in_progress",
- "rollback_id": "string"
}
}
✨Added in v0.31
Get the specified signatures.
type required | string |
version required | string |
{- "name": "string",
- "sha256sum": "string",
- "signatures": [
- {
- "public_key": "string",
- "signature": "string",
- "creation_time": "2019-08-24T14:15:22Z"
}
]
}
✨Added in v0.31
Install signatures.
type required | string |
version required | string |
name required | string Name of the signed file |
sha256sum required | string SHA256 hash of the signed file |
required | Array of objects (Signature) A list of signatures |
{- "name": "string",
- "sha256sum": "string",
- "signatures": [
- {
- "public_key": "string",
- "signature": "string",
- "creation_time": "2019-08-24T14:15:22Z"
}
]
}
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.31
Install new public signing keys.
required | Array of objects (PublicKey) a list of public signing keys |
{- "public_keys": [
- {
- "key": "string",
- "fingerprint": "string",
- "creation_time": "2019-08-24T14:15:22Z"
}
]
}
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.32
This endpoint allows the preparation of the installation of a new appliance release. It accepts any json and stores this so that the new appliance version will find it. The new appliance version will validate the configuration and if validation succeeds use that as configuration. This helps to do upgrades where new configuration features can't be automatically migrated or are newly added. For example to migrate to v0.33.1 put the new configuration to /migrations/v0.33/config. Note that if there was a previous configuration it is overwritten.
version required | string (Version without patch) Example: v0.32 Version of the appliance for which the configuration is. |
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.32
Get the configuration that is applied on the migration to version {version}.
version required | string (Version without patch) Example: v0.32 Version of the appliance for which the configuration is. |
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.36
Report the appliance health along with the executed health checks. The health status is based on a set of health checks that are executed. Check the documentation of the individual health checks for more information.
Note that the status is only based on the health checks that are part of the response. If you filter out non-passing health checks, the top level status will be reported as passing.
check_id | Array of strings List of check_id (or check_id prefixes) that should be included in the response. If unset, health checks are not filtered by check_id. |
service_name | Array of strings List of service_name (or service_name prefixes) that should be included in the response. If unset, health checks are not filtered by service_name. |
status | Array of strings (Health Status) Items Enum: "passing" "notice" "degraded" "failing" List of status that should be included in the response. If unset, health checks are not filtered by status. |
{- "health": {
- "status": "passing",
- "checks": [
- {
- "check_id": "string",
- "name": "string",
- "status": "passing",
- "detail": "string",
- "component": "appliance",
- "service_name": "string"
}
]
}
}
{- "gateways": {
- "property1": {
- "probe_address": "string",
- "local_isd_as": "1-ff00:0:110",
- "alive": true,
- "latency": 0,
- "jitter": 0,
- "last_success_time": "2022-04-22 15:50:13.793654 +0000 UTC"
}, - "property2": {
- "probe_address": "string",
- "local_isd_as": "1-ff00:0:110",
- "alive": true,
- "latency": 0,
- "jitter": 0,
- "last_success_time": "2022-04-22 15:50:13.793654 +0000 UTC"
}
}
}
✨Added in v0.35
The graph of planner nodes. The graph is in dot format and can be rendered by graphviz, or one of the online dot-rendering tools.
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
{- "routes": [
- {
- "destination": "string",
- "interface": "string",
- "scope": "string",
- "source": "string",
- "via": "string",
- "gateway": "string",
- "mtu": 0,
- "metric": 0
}
]
}
✨Added in v0.27
Check if the controller notifications are enabled or not. For context: If notifications are enabled, the appliance-controller periodically sends notifications with the latest configuration, which eventually overwrites any manual changes. By default, the controller notifications should be enabled. However, in the case of manual troubleshooting, it may be convenient to temporarily disable the controller notifications.
{- "disabled": true,
- "indefinite": false,
- "deadline": "2022-02-21T10:31:45Z",
- "timeout": "10m"
}
✨Added in v0.27
Enable or disable the appliance-controller notifications. Optionally, a deadline can be provided, either as absolute time or as a relative duration. The deadline indicates until when the appliance-controller notifications should be disabled. If both absolute and relative times are given, the minimum is taken. For context: If notifications are enabled (default), the appliance-controller periodically sends notifications with the latest configuration, which overwrites any manual changes. Note that disabling notifications should only happen when debugging the configuration of the host. It should not be treated as a permanent solution to configuration changes, meaning that eventually the appliance-controller notifications should be re-enabled.
disabled required | boolean Whether the appliance-controller notifications are disabled. |
indefinite | boolean Default: false Whether the appliance-controller notifications are disabled indefinitely. Only one of indefinite, deadline and timeout must be set. |
deadline | string <date-time> Until when appliance-controller notifications are disabled specified as a RFC3339 formatted date-time string. Only one of indefinite, deadline and timeout must be set. |
timeout | string Duration during which the appliance-controller notifications are disabled specified as a duration string. A duration string is a possibly signed sequence of decimal numbers, each with optional fraction and a unit suffix, such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". Only one of indefinite, deadline and timeout must be set. |
{- "disabled": true,
- "indefinite": false,
- "deadline": "2022-02-21T10:31:45Z",
- "timeout": "10m"
}
{- "disabled": true,
- "indefinite": false,
- "deadline": "2022-02-21T10:31:45Z",
- "timeout": "10m"
}
✨Added in v0.34
Triggering a notification will reapply the lastest stored configuration.
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.32
Get a list of all the SCION interfaces configured on the host.
local_isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: local_isd_as=1-ff00:0:110 |
remote_isd_as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: remote_isd_as=1-ff00:0:110 |
interface_id | integer >= 0 |
{- "interfaces": [
- {
- "local": {
- "isd_as": "1-ff00:0:110",
- "address": "string",
- "interface_id": 0
}, - "remote": {
- "isd_as": "1-ff00:0:110",
- "address": "string",
- "interface_id": 0
}, - "relationship": "CHILD",
- "mtu": 0,
- "state": "UP"
}
], - "sibling_interfaces": [
- {
- "mtu": 0,
- "relationship": "CHILD",
- "remote_isd_as": "1-ff00:0:110",
- "local_isd_as": "1-ff00:0:110",
- "local_interface_id": 0,
- "next_hop_address": "string"
}
]
}
✨Added in v0.36
The graph of the planner nodes and dependencies. The graph is in the dot format and can be rendered by graphviz, or one of the online dot-rendering tools.
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.33
Get summary of the SCION tunneling infrastructure.
{- "sessions": [
- {
- "session_id": "string",
- "session_id_legacy": 0,
- "local_isd_as": "1-ff00:0:110",
- "remote_isd_as": "1-ff00:0:110",
- "data_addr": "string",
- "probe_addr": "string",
- "pinned": [
- 0
], - "domain": "string",
- "traffic_matcher": "string",
- "path_filter": "string",
- "healthy": true,
- "encryption": "disabled",
- "paths": [
- {
- "fingerprint": "string",
- "current": true,
- "rejected": true
}
]
}
], - "routing_chains": [
- {
- "routing_chain_id": "string",
- "routing_chain_id_legacy": 0,
- "prefixes": [
- "string"
], - "domain": "string",
- "traffic_matchers": [
- {
- "traffic_policy_id": 0,
- "traffic_matcher": "string",
- "failover_sequence": [
- {
- "path_filter_name": "string",
- "sessions": [
- "string"
], - "sessions_legacy": [
- 0
]
}
], - "selected_session": "string",
- "selected_session_legacy": 0,
- "selected_path": "string"
}
]
}
], - "paths": {
- "property1": {
- "fingerprint": "string",
- "human": "1-ff00:0:110 1>1 1-ff00:0:111",
- "hops": [
- {
- "ifid": 0,
- "isd_as": "1-ff00:0:110"
}
], - "status": "alive",
- "next_hop": "string",
- "expiration": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": 0,
- "jitter": 0,
- "droprate": 0,
- "throughput_pkts": 0,
- "throughput_bytes": 0
}, - "property2": {
- "fingerprint": "string",
- "human": "1-ff00:0:110 1>1 1-ff00:0:111",
- "hops": [
- {
- "ifid": 0,
- "isd_as": "1-ff00:0:110"
}
], - "status": "alive",
- "next_hop": "string",
- "expiration": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": 0,
- "jitter": 0,
- "droprate": 0,
- "throughput_pkts": 0,
- "throughput_bytes": 0
}
}
}
✨Added in v0.32
Get the SCION tunneling domains configuration.
domain | string |
{- "domains": [
- {
- "domain_name": "string",
- "default": true,
- "encryption": "disabled",
- "local_isd_ases": [
- "1-ff00:0:110"
], - "remote_isd_ases": [
- {
- "action": "ACCEPT",
- "isd_as": "1-ff00:0:110"
}
], - "prefixes": {
- "announce_filter": [
- {
- "action": "ACCEPT",
- "prefixes": [
- "string"
]
}
], - "accept_filter": [
- {
- "action": "ACCEPT",
- "prefixes": [
- "string"
]
}
]
}, - "traffic_policies": [
- {
- "traffic_matcher": "string",
- "failover_sequence": [
- "string"
]
}
]
}
]
}
{- "sessions": [
- {
- "local-isd-as": "1-ff00:0:110",
- "remote-isd-as": "1-ff00:0:110",
- "path": "string",
- "peers": [
- {
- "control": "string",
- "data": "string",
- "probe": "string",
- "seccom": "string",
- "interfaces": [
- 0
]
}
], - "last-success": "string",
- "error": "string"
}
]
}
✨Added in v0.33
Returns a list of all SCION paths and their stats.
{- "paths": [
- {
- "path": {
- "fingerprint": "string",
- "human": "1-ff00:0:110 1>1 1-ff00:0:111",
- "hops": [
- {
- "ifid": 0,
- "isd_as": "1-ff00:0:110"
}
], - "status": "alive",
- "next_hop": "string",
- "expiration": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": 0,
- "jitter": 0,
- "droprate": 0,
- "throughput_pkts": 0,
- "throughput_bytes": 0
}
}
]
}
✨Added in v0.32
Returns a list of all SCION paths and their stats filtered by the fingerprints provided in the request body.
fingerprints required | Array of strings List of path fingerprints to search for. |
{- "fingerprints": [
- "string"
]
}
{- "paths": [
- {
- "path": {
- "fingerprint": "string",
- "human": "1-ff00:0:110 1>1 1-ff00:0:111",
- "hops": [
- {
- "ifid": 0,
- "isd_as": "1-ff00:0:110"
}
], - "status": "alive",
- "next_hop": "string",
- "expiration": "2019-08-24T14:15:22Z",
- "mtu": 0,
- "latency": 0,
- "jitter": 0,
- "droprate": 0,
- "throughput_pkts": 0,
- "throughput_bytes": 0
}
}
]
}
✨Added in v0.32
SGRP domains with the associated network prefixes.
domain | string |
{- "domains": {
- "property1": {
- "announced": [
- "string"
], - "received": [
- "string"
]
}, - "property2": {
- "announced": [
- "string"
], - "received": [
- "string"
]
}
}
}
✨Added in v0.32
Known local network prefixes, including their source. These are afterwards filtered according to domain definitions and eventually sent to SGRP peers.
{- "local-prefixes": {
- "static": {
- "prefixes": [
- "string"
]
}, - "static-probed": [
- {
- "next-hop": "string",
- "reachable": true,
- "last-success": "string",
- "prefixes": [
- "string"
], - "error": "string"
}
], - "bgp": {
- "prefixes": [
- "string"
]
}
}
}
✨Added in v0.32
SGRP peers. Peer is a remote SGRP-capable application accessed from a specific local ISD-AS.
local-isd-as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: local-isd-as=1-ff00:0:110 |
remote-isd-as | string (ISD-AS Identifier) ^\d+-([a-f0-9]{1,4}:){2}([a-f0-9]{1,4})|\d+$ Example: remote-isd-as=1-ff00:0:110 |
{- "peers": [
- {
- "local-isd-as": "1-ff00:0:110",
- "remote-isd-as": "1-ff00:0:110",
- "remote-address": "string",
- "announced": [
- "string"
], - "received": [
- "string"
], - "path": "string",
- "last-received": "string",
- "error": "string"
}
]
}
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}
✨Added in v0.33
Present the health of the service along with the executed health checks.
service_name required | string Name of the service to get health of. |
{- "health": {
- "status": "passing",
- "checks": [
- {
- "name": "valid signer available",
- "status": "passing",
- "data": { },
- "reason": "",
- "detail": ""
}
]
}
}
✨Added in v0.33
Present the health of all the services along with the executed health checks.
{- "health": {
- "status": "passing",
- "checks": [
- {
- "service": "router",
- "name": "valid signer available",
- "status": "passing",
- "data": { },
- "reason": "",
- "detail": ""
}
]
}
}
{- "configuration": {
- "asn": 0,
- "router_id": "string",
- "neighbors": [
- {
- "remote_asn": 0,
- "remote_address": "string",
- "timers": {
- "keepalive_interval": 0,
- "hold_time": 0,
- "connect_retry": 0,
- "minimum_advertisement_interval": 0
}
}
], - "networks": [
- "string"
]
}
}
{- "neighbors": [
- {
- "neighbor": "string",
- "remote_as": 0,
- "family": "string",
- "state": "string",
- "uptime": 0,
- "number_of_sent_prefixes": 0,
- "number_of_received_prefixes": 0
}
]
}
✨Added in v0.35
Get the status of the cluster. The status includes for each peer the name, the address, the time of the last synchronization, the status of said synchronization, and if the attempt failed the reason for the failure.
{- "mode": "static",
- "peers": [
- {
- "name": "string",
- "address": "string",
- "last_sync_attempt": "2019-08-24T14:15:22Z",
- "status": "success",
- "error": "string"
}
]
}
✨Added in v0.36
Endpoint that implemenets the interface exposed via the /entries endpoint of the systemd-journal-gatewayd service. By default, all systemd-journal logs are exposed.
See also: https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-gatewayd.service.html
Range | string The range of requested log entries. See systemd-journal-gatewayd documentation. |
Accept | string The format of the log entries (default is text). |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
n | string Default: "" VPP node to trace. |
i | string Default: "" Include only packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
e | string Default: "" Exclude packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
n | string Default: "" VPP node to trace. |
i | string Default: "" Include only packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
e | string Default: "" Exclude packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.34
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.34
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.34
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.38
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
n | string Default: "" VPP node to trace. |
i | string Default: "" Include only packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
e | string Default: "" Exclude packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
n | string Default: "" VPP node to trace. |
i | string Default: "" Include only packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
e | string Default: "" Exclude packets passing through the specified VPP node. Include and exclude parameters are mutually exclusive. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.33
undefined
t | integer Default: 500 Timeout (in ms) for the trace to be stopped. |
p | integer Default: 50 maximum number of packets to return. |
{- "type": "/problem/connection-error",
- "title": "Service Unavailable",
- "status": 503,
- "detail": "Connection to database timed out",
- "instance": "/problem/connection-error#token-info-read-timed-out"
}
✨Added in v0.37
Get the list of licenses present on the appliance.
{- "licenses": [
- {
- "license_id": "string",
- "appliance_id": "39a656c5-b388-4eec-afd3-b3cbf4914ca5",
- "type": {
- "product": "edge",
- "tier": "lite"
}, - "issued": "2019-08-24T14:15:22Z",
- "validity": {
- "effective_date": "2019-08-24T14:15:22Z",
- "final_date": "2019-08-24T14:15:22Z"
}
}
]
}
✨Added in v0.37
Add a new license to the appliance.
The license to be pushed to the appliance.
license required | string The license as a JSON Web signature. |
{- "license": "eyJ0eXAzI1NiJ9.yJpc3MiOiJqb2U.B92K27uhbUJU1p"
}
{- "license_id": "string",
- "appliance_id": "39a656c5-b388-4eec-afd3-b3cbf4914ca5",
- "type": {
- "product": "edge",
- "tier": "lite"
}, - "issued": "2019-08-24T14:15:22Z",
- "validity": {
- "effective_date": "2019-08-24T14:15:22Z",
- "final_date": "2019-08-24T14:15:22Z"
}
}
✨Added in v0.37
Gets the feature set mapping. That defines for the different product tiers what features are available.
{- "version": "string",
- "feature_mapping": {
- "edge": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "core": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "gate": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "other": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}
}
}
✨Added in v0.37
Updates the feature set mapping. That defines for the different product tiers what features are available.
The feature set mapping.
features required | string The feature set as a JSON Web signature. |
{- "features": "eyJ0eXAzI1NiJ9.yJpc3MiOiJqb2U.B92K27uhbUJU1p"
}
{- "version": "string",
- "feature_mapping": {
- "edge": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "core": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "gate": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}, - "other": {
- "lite": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "standard": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "pro": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}, - "legacy": {
- "management": {
- "api_oauth_disallowed": true
}, - "scion_tunneling": {
- "config_disallowed": true,
- "max_remotes": 0,
- "max_path_filters": 0,
- "max_traffic_matchers": 0
}, - "scion": {
- "max_connected_ases": 0,
- "max_links": 0
}, - "lan": {
- "redundancy_disallowed": true
}
}
}
}
}
✨Added in v0.37
Get the data for a license request for this specific appliance. The license request can be used to request a valid license from Anapaya for the given appliance.
{- "version": "string",
- "data": {
- "appliance_id": "39a656c5-b388-4eec-afd3-b3cbf4914ca5",
- "scion_activation_date": "2019-08-24T14:15:22Z",
- "appliance_version": "string",
- "appliance_description": {
- "hostname": "string"
}
}
}
✨Added in v0.37
The status of the software license indicates whether a valid license is present, or whether the device runs in grace period or in restricted mode.
{- "status": "trial-period",
- "expiry": "2019-08-24T14:15:22Z",
- "license": {
- "id": "string",
- "type": {
- "product": "edge",
- "tier": "lite"
}, - "issued": "2019-08-24T14:15:22Z",
- "validity": {
- "effective_date": "2019-08-24T14:15:22Z",
- "final_date": "2019-08-24T14:15:22Z"
}
}, - "enforcer_disabled": true
}
✨Added in v0.37
Get the license with the given ID.
id required | string The license ID. |
{- "license_id": "string",
- "appliance_id": "39a656c5-b388-4eec-afd3-b3cbf4914ca5",
- "type": {
- "product": "edge",
- "tier": "lite"
}, - "issued": "2019-08-24T14:15:22Z",
- "validity": {
- "effective_date": "2019-08-24T14:15:22Z",
- "final_date": "2019-08-24T14:15:22Z"
}
}
✨Added in v0.37
Delete the license with the given ID.
id required | string The license ID. |
{- "title": "The request parameters are invalid.",
- "status": 503,
- "detail": "Connection to database timed out"
}