aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/schema.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'os_net_config/schema.yaml')
-rw-r--r--os_net_config/schema.yaml1003
1 files changed, 1003 insertions, 0 deletions
diff --git a/os_net_config/schema.yaml b/os_net_config/schema.yaml
new file mode 100644
index 0000000..5060a34
--- /dev/null
+++ b/os_net_config/schema.yaml
@@ -0,0 +1,1003 @@
+---
+$schema: http://json-schema.org/draft-04/schema
+
+definitions:
+ # base types
+ param:
+ oneOf:
+ - type: object
+ properties:
+ get_param:
+ type: string
+ additionalProperties: False
+ - type: object
+ properties:
+ get_input:
+ type: string
+ additionalProperties: False
+ string_or_param:
+ oneOf:
+ - type: string
+ - $ref: "#/definitions/param"
+ int_or_param:
+ oneOf:
+ - type: integer
+ - $ref: "#/definitions/param"
+ bool_or_param:
+ oneOf:
+ - type: boolean
+ - # also accept strings of boolean values (like oslo_utils.strutils)
+ type: string
+ pattern: "(?i)^(t|true|on|y|yes|1|f|false|off|n|no|0)$"
+ - $ref: "#/definitions/param"
+
+ # IP address and address+prefix types
+ ipv4_address_string:
+ type: string
+ pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}\
+ (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
+ ipv6_address_string:
+ type: string
+ pattern: "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}\
+ |([0-9a-fA-F]{1,4}:){1,7}:\
+ |([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}\
+ |([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}\
+ |([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}\
+ |([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}\
+ |([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}\
+ |[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})\
+ |:((:[0-9a-fA-F]{1,4}){1,7}|:))$"
+ ip_address_string:
+ oneOf:
+ - $ref: "#/definitions/ipv4_address_string"
+ - $ref: "#/definitions/ipv6_address_string"
+ ip_address_string_or_param:
+ oneOf:
+ - $ref: "#/definitions/ip_address_string"
+ - $ref: "#/definitions/param"
+ list_of_ip_address_string_or_param:
+ oneOf:
+ - type: array
+ items:
+ $ref: "#/definitions/ip_address_string_or_param"
+ minItems: 1
+ - $ref: "#/definitions/param"
+
+ ipv4_cidr_string:
+ type: string
+ pattern: "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}\
+ (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\
+ /(3[0-2]|[1-2][0-9]|[0-9])$"
+ ipv6_cidr_string:
+ type: string
+ pattern: "^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}\
+ |([0-9a-fA-F]{1,4}:){1,7}:\
+ |([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}\
+ |([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}\
+ |([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}\
+ |([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}\
+ |([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}\
+ |[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})\
+ |:((:[0-9a-fA-F]{1,4}){1,7}|:))\
+ /(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$"
+ ip_cidr_string:
+ oneOf:
+ - $ref: "#/definitions/ipv4_cidr_string"
+ - $ref: "#/definitions/ipv6_cidr_string"
+ ip_cidr_string_or_param:
+ oneOf:
+ - $ref: "#/definitions/ip_cidr_string"
+ - $ref: "#/definitions/param"
+ - type: object
+ properties:
+ list_join:
+ type: array
+ items:
+ - enum: ["/"]
+ - type: array
+ items:
+ - $ref: "#/definitions/ip_address_string_or_param"
+ - $ref: "#/definitions/int_or_param"
+ required:
+ - list_join
+ additionalProperties: False
+
+ # os-net-config derived types
+ address:
+ type: object
+ properties:
+ ip_netmask:
+ $ref: "#/definitions/ip_cidr_string_or_param"
+ required:
+ - ip_netmask
+ additionalProperties: False
+ list_of_address:
+ type: array
+ items:
+ $ref: "#/definitions/address"
+ minItems: 1
+
+ route:
+ type: object
+ properties:
+ next_hop:
+ $ref: "#/definitions/ip_address_string_or_param"
+ ip_netmask:
+ $ref: "#/definitions/ip_cidr_string_or_param"
+ default:
+ $ref: "#/definitions/bool_or_param"
+ route_options:
+ $ref: "#/definitions/string_or_param"
+ required:
+ - next_hop
+ additionalProperties: False
+ list_of_route:
+ type: array
+ items:
+ $ref: "#/definitions/route"
+ minItems: 1
+
+ nic_mapping:
+ type: ["object", "null"]
+
+ bonding_options:
+ type: string
+
+ ovs_options_string:
+ type: string
+ pattern: "^((?:[a-zA-Z][a-zA-Z0-9: _-]*)=(?:[a-zA-Z0-9._-]+)[ ]*)+$"
+ ovs_options_string_or_param:
+ oneOf:
+ - $ref: "#/definitions/ovs_options_string"
+ - $ref: "#/definitions/param"
+ ovs_single_option_string:
+ type: string
+ pattern: "^([a-zA-Z][a-zA-Z0-9: _-]*)=([a-zA-Z0-9._-]+)$"
+ ovs_options_list:
+ type: array
+ items:
+ $ref: "#/definitions/ovs_single_option_string"
+ minItems: 1
+ ovs_options_list_or_param:
+ oneOf:
+ - $ref: "#/definitions/ovs_options_list"
+ - $ref: "#/definitions/param"
+ ovs_fail_mode:
+ enum: ["standalone", "secure"]
+ ovs_fail_mode_or_param:
+ oneOf:
+ - $ref: "#/definitions/ovs_fail_mode"
+ - $ref: "#/definitions/param"
+ ovs_extra_string:
+ type: string
+ ovs_extra:
+ oneOf:
+ - $ref: "#/definitions/ovs_extra_string"
+ - type: array
+ items:
+ $ref: "#/definitions/ovs_extra_string"
+ minItems: 1
+ ovs_extra_or_param:
+ oneOf:
+ - $ref: "#/definitions/ovs_extra"
+ - $ref: "#/definitions/param"
+ ovs_tunnel_type:
+ enum: ["vxlan", "gre"]
+ ovs_tunnel_type_or_param:
+ oneOf:
+ - $ref: "#/definitions/ovs_tunnel_type"
+ - $ref: "#/definitions/param"
+
+ # os-net-config device types
+ interface:
+ type: object
+ properties:
+ type:
+ enum: ["interface"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ ethtool_opts:
+ $ref: "#/definitions/string_or_param"
+ hotplug:
+ $ref: "#/definitions/bool_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ additionalProperties: False
+
+ vlan:
+ type: object
+ properties:
+ type:
+ enum: ["vlan"]
+ vlan_id:
+ $ref: "#/definitions/int_or_param"
+ device:
+ $ref: "#/definitions/string_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - vlan_id
+ additionalProperties: False
+
+ ovs_bridge:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_bridge"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ - $ref: "#/definitions/linux_bond"
+ - $ref: "#/definitions/ovs_bond"
+ - $ref: "#/definitions/ovs_tunnel"
+ - $ref: "#/definitions/ovs_patch_port"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_string_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ ovs_fail_mode:
+ $ref: "#/definitions/ovs_fail_mode_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ ovs_user_bridge:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_user_bridge"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ - $ref: "#/definitions/ovs_bond"
+ - $ref: "#/definitions/ovs_patch_port"
+ - $ref: "#/definitions/ovs_tunnel"
+ - $ref: "#/definitions/ovs_dpdk_bond"
+ - $ref: "#/definitions/ovs_dpdk_port"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_string_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ ovs_fail_mode:
+ $ref: "#/definitions/ovs_fail_mode_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ ovs_bond:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_bond"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ minItems: 1
+ ovs_options:
+ $ref: "#/definitions/ovs_options_string_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ ovs_patch_port:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_patch_port"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ bridge_name:
+ $ref: "#/definitions/string_or_param"
+ peer:
+ $ref: "#/definitions/string_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_list_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - bridge_name
+ - peer
+ additionalProperties: False
+
+ ovs_tunnel:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_tunnel"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ tunnel_type:
+ $ref: "#/definitions/ovs_tunnel_type_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_list_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - tunnel_type
+ additionalProperties: False
+
+ ovs_dpdk_bond:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_dpdk_bond"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ - $ref: "#/definitions/ovs_dpdk_port"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_string_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ rx_queue:
+ $ref: "#/definitions/int_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ ovs_dpdk_port:
+ type: object
+ properties:
+ type:
+ enum: ["ovs_dpdk_port"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ driver:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ - $ref: "#/definitions/interface"
+ minItems: 1
+ maxItems: 1
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ ovs_options:
+ $ref: "#/definitions/ovs_options_string_or_param"
+ ovs_extra:
+ $ref: "#/definitions/ovs_extra_or_param"
+ rx_queue:
+ $ref: "#/definitions/int_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ vpp_interface:
+ type: object
+ properties:
+ type:
+ enum: ["vpp_interface"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ uio_driver:
+ $ref: "#/definitions/string_or_param"
+ options:
+ $ref: "#/definitions/string_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ additionalProperties: False
+
+ linux_bridge:
+ type: object
+ properties:
+ type:
+ enum: ["linux_bridge"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ - $ref: "#/definitions/linux_bond"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ linux_bond:
+ type: object
+ properties:
+ type:
+ enum: ["linux_bond"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ bonding_options:
+ $ref: "#/definitions/bonding_options"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ linux_team:
+ type: object
+ properties:
+ type:
+ enum: ["team"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ bonding_options:
+ $ref: "#/definitions/bonding_options"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ - members
+ additionalProperties: False
+
+ ivs_bridge:
+ type: object
+ properties:
+ type:
+ enum: ["ivs_bridge"]
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/ivs_interface"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - members
+ additionalProperties: False
+
+ ivs_interface:
+ type: object
+ properties:
+ type:
+ enum: ["ivs_interface"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ vlan_id:
+ $ref: "#/definitions/int_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - vlan_id
+ additionalProperties: False
+
+ nfvswitch_bridge:
+ type: object
+ properties:
+ type:
+ enum: ["nfvswitch_bridge"]
+ members:
+ type: array
+ items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ - $ref: "#/definitions/nfvswitch_internal"
+ options:
+ $ref: "#/definitions/string_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - options
+ - members
+ additionalProperties: False
+
+ nfvswitch_internal:
+ type: object
+ properties:
+ type:
+ enum: ["nfvswitch_internal"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ vlan_id:
+ $ref: "#/definitions/int_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - vlan_id
+ additionalProperties: False
+
+ ib_interface:
+ type: object
+ properties:
+ type:
+ enum: ["ib_interface"]
+ name:
+ $ref: "#/definitions/string_or_param"
+ primary:
+ $ref: "#/definitions/bool_or_param"
+ ethtool_opts:
+ $ref: "#/definitions/string_or_param"
+ # common options:
+ use_dhcp:
+ $ref: "#/definitions/bool_or_param"
+ use_dhcp6:
+ $ref: "#/definitions/bool_or_param"
+ addresses:
+ $ref: "#/definitions/list_of_address"
+ routes:
+ $ref: "#/definitions/list_of_route"
+ mtu:
+ $ref: "#/definitions/int_or_param"
+ nic_mapping:
+ $ref: "#/definitions/nic_mapping"
+ persist_mapping:
+ $ref: "#/definitions/bool_or_param"
+ defroute:
+ $ref: "#/definitions/bool_or_param"
+ dhclient_args:
+ $ref: "#/definitions/string_or_param"
+ dns_servers:
+ $ref: "#/definitions/list_of_ip_address_string_or_param"
+ nm_controlled:
+ $ref: "#/definitions/bool_or_param"
+ required:
+ - type
+ - name
+ additionalProperties: False
+
+type: array
+items:
+ oneOf:
+ - $ref: "#/definitions/interface"
+ - $ref: "#/definitions/vlan"
+ - $ref: "#/definitions/ovs_bridge"
+ - $ref: "#/definitions/ovs_user_bridge"
+ - $ref: "#/definitions/ovs_bond"
+ - $ref: "#/definitions/ovs_patch_port"
+ - $ref: "#/definitions/ovs_tunnel"
+ - $ref: "#/definitions/ovs_dpdk_bond"
+ - $ref: "#/definitions/ovs_dpdk_port"
+ - $ref: "#/definitions/linux_bridge"
+ - $ref: "#/definitions/linux_bond"
+ - $ref: "#/definitions/linux_team"
+ - $ref: "#/definitions/ivs_bridge"
+ - $ref: "#/definitions/ivs_interface"
+ - $ref: "#/definitions/nfvswitch_bridge"
+ - $ref: "#/definitions/nfvswitch_internal"
+ - $ref: "#/definitions/ib_interface"
+ - $ref: "#/definitions/vpp_interface"
+minItems: 1