diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtodocumentationschemaconverter.py b/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtodocumentationschemaconverter.py
index a6f9309e835..12ee239bad7 100644
--- a/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtodocumentationschemaconverter.py
+++ b/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtodocumentationschemaconverter.py
@@ -304,10 +304,10 @@ def items(self, schema: dict, indentation: int, var_path: list, table: str):
def required(self, schema: dict, var_name: str, parent_schema: dict):
output = None
- if schema.get("required"):
+ if parent_schema and parent_schema.get("primary_key") == var_name:
+ output = "Required, Unique"
+ elif schema.get("required"):
output = "Required"
- if parent_schema and parent_schema.get("primary_key") == var_name:
- output = "Required, Unique"
return output
def default(self, schema: dict):
diff --git a/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtojsonschemaconverter.py b/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtojsonschemaconverter.py
index 24133e8e9b6..87630902e39 100644
--- a/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtojsonschemaconverter.py
+++ b/ansible_collections/arista/avd/plugins/plugin_utils/schema/avdtojsonschemaconverter.py
@@ -137,10 +137,13 @@ def convert_default(self, default, parent_schema: dict) -> dict:
return {"default": default}
def convert_items(self, items: dict, parent_schema: dict) -> dict:
- output = {"items": {}}
- output["items"] = self.convert_schema(items)
- if (primary_key := parent_schema.get("primary_key")) and output["items"]["type"] == "dict":
- output["items"]["keys"][primary_key]["required"] = True
+ output = {
+ "items": self.convert_schema(items),
+ }
+ if (primary_key := parent_schema.get("primary_key")) and items.get("type") == "dict":
+ output["items"].setdefault("required", [])
+ if primary_key not in output["items"]["required"]:
+ output["items"]["required"].append(primary_key)
return output
def convert_display_name(self, display_name: str, parent_schema: dict) -> dict:
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/Input Variables.md b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/Input Variables.md
index 404e3d93d62..e0bd3c5698b 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/Input Variables.md
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/docs/Input Variables.md
@@ -364,11 +364,11 @@ boot:
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [class_maps](## "class_maps") | Dictionary | | | | |
| [ pbr](## "class_maps.pbr") | List, items: Dictionary | | | | |
-| [ - name](## "class_maps.pbr.[].name") | String | | | | Class-Map Name |
+| [ - name](## "class_maps.pbr.[].name") | String | Required, Unique | | | Class-Map Name |
| [ ip](## "class_maps.pbr.[].ip") | Dictionary | | | | |
| [ access_group](## "class_maps.pbr.[].ip.access_group") | String | | | | Standard Access-List Name |
| [ qos](## "class_maps.qos") | List, items: Dictionary | | | | |
-| [ - name](## "class_maps.qos.[].name") | String | | | | Class-Map Name |
+| [ - name](## "class_maps.qos.[].name") | String | Required, Unique | | | Class-Map Name |
| [ vlan](## "class_maps.qos.[].vlan") | Integer | | | | VLAN value(s) or range(s) of VLAN values |
| [ cos](## "class_maps.qos.[].cos") | Integer | | | | CoS value(s) or range(s) of CoS values |
| [ ip](## "class_maps.qos.[].ip") | Dictionary | | | | |
@@ -798,7 +798,7 @@ errdisable:
| Variable | Type | Required | Default | Value Restrictions | Description |
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [event_handlers](## "event_handlers") | List, items: Dictionary | | | | |
-| [ - name](## "event_handlers.[].name") | String | | | | Event Handler Name |
+| [ - name](## "event_handlers.[].name") | String | Required, Unique | | | Event Handler Name |
| [ action_type](## "event_handlers.[].action_type") | String | | | Valid Values:
- bash
- increment
- log | |
| [ action](## "event_handlers.[].action") | String | | | | Command to execute
|
| [ delay](## "event_handlers.[].delay") | Integer | | | | Event-handler delay in seconds
|
@@ -1584,7 +1584,7 @@ lacp:
| [ vrf](## "lldp.vrf") | String | | | | |
| [ receive_packet_tagged_drop](## "lldp.receive_packet_tagged_drop") | String | | | | |
| [ tlvs](## "lldp.tlvs") | List, items: Dictionary | | | | |
-| [ - name](## "lldp.tlvs.[].name") | String | | | Valid Values:
- link-aggregation
- management-address
- max-frame-size
- med
- port-description
- port-vlan
- power-via-mdi
- system-capabilities
- system-description
- system-name
- vlan-name | |
+| [ - name](## "lldp.tlvs.[].name") | String | Required, Unique | | Valid Values:
- link-aggregation
- management-address
- max-frame-size
- med
- port-description
- port-vlan
- power-via-mdi
- system-capabilities
- system-description
- system-name
- vlan-name | |
| [ transmit](## "lldp.tlvs.[].transmit") | Boolean | | | | |
| [ run](## "lldp.run") | Boolean | | | | |
@@ -1753,7 +1753,7 @@ mac_access_lists:
| [ - name](## "mac_security.profiles.[].name") | String | Required, Unique | | | Profile-Name |
| [ cipher](## "mac_security.profiles.[].cipher") | String | | | Valid Values:
- aes128-gcm
- aes128-gcm-xpn
- aes256-gcm
- aes256-gcm-xpn | |
| [ connection_keys](## "mac_security.profiles.[].connection_keys") | List, items: Dictionary | | | | |
-| [ - id](## "mac_security.profiles.[].connection_keys.[].id") | String | | | | |
+| [ - id](## "mac_security.profiles.[].connection_keys.[].id") | String | Required, Unique | | | |
| [ encrypted_key](## "mac_security.profiles.[].connection_keys.[].encrypted_key") | String | | | | |
| [ fallback](## "mac_security.profiles.[].connection_keys.[].fallback") | Boolean | | | | |
| [ mka](## "mac_security.profiles.[].mka") | Dictionary | | | | |
@@ -2480,9 +2480,9 @@ platform:
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [policy_maps](## "policy_maps") | Dictionary | | | | |
| [ pbr](## "policy_maps.pbr") | List, items: Dictionary | | | | PBR Policy-Maps |
-| [ - name](## "policy_maps.pbr.[].name") | String | | | | Policy-Map Name |
+| [ - name](## "policy_maps.pbr.[].name") | String | Required, Unique | | | Policy-Map Name |
| [ classes](## "policy_maps.pbr.[].classes") | List, items: Dictionary | | | | |
-| [ - name](## "policy_maps.pbr.[].classes.[].name") | String | | | | Class Name |
+| [ - name](## "policy_maps.pbr.[].classes.[].name") | String | Required, Unique | | | Class Name |
| [ index](## "policy_maps.pbr.[].classes.[].index") | Integer | | | | |
| [ drop](## "policy_maps.pbr.[].classes.[].drop") | Boolean | | | | 'drop' and 'set' are mutually exclusive |
| [ set](## "policy_maps.pbr.[].classes.[].set") | Dictionary | | | | Set Nexthop
'drop' and 'set' are mutually exclusive
|
@@ -2490,9 +2490,9 @@ platform:
| [ ip_address](## "policy_maps.pbr.[].classes.[].set.nexthop.ip_address") | String | | | | IPv4 or IPv6 Address |
| [ recursive](## "policy_maps.pbr.[].classes.[].set.nexthop.recursive") | Boolean | | | | |
| [ qos](## "policy_maps.qos") | List, items: Dictionary | | | | QOS Policy-Maps |
-| [ - name](## "policy_maps.qos.[].name") | String | | | | Policy-Map Name |
+| [ - name](## "policy_maps.qos.[].name") | String | Required, Unique | | | Policy-Map Name |
| [ classes](## "policy_maps.qos.[].classes") | List, items: Dictionary | | | | |
-| [ - name](## "policy_maps.qos.[].classes.[].name") | String | | | | Class Name |
+| [ - name](## "policy_maps.qos.[].classes.[].name") | String | Required, Unique | | | Class Name |
| [ set](## "policy_maps.qos.[].classes.[].set") | Dictionary | | | | |
| [ cos](## "policy_maps.qos.[].classes.[].set.cos") | Integer | | | | |
| [ dscp](## "policy_maps.qos.[].classes.[].set.dscp") | String | | | | |
@@ -3108,7 +3108,7 @@ router_multicast:
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [router_ospf](## "router_ospf") | Dictionary | | | | |
| [ process_ids](## "router_ospf.process_ids") | List, items: Dictionary | | | | |
-| [ - id](## "router_ospf.process_ids.[].id") | Integer | | | | OSPF Process ID |
+| [ - id](## "router_ospf.process_ids.[].id") | Integer | Required, Unique | | | OSPF Process ID |
| [ vrf](## "router_ospf.process_ids.[].vrf") | String | | | | VRF Name for OSPF Process |
| [ passive_interface_default](## "router_ospf.process_ids.[].passive_interface_default") | Boolean | | | | |
| [ router_id](## "router_ospf.process_ids.[].router_id") | String | | | | IPv4 Address |
@@ -3118,7 +3118,7 @@ router_multicast:
| [ intra_area](## "router_ospf.process_ids.[].distance.intra_area") | Integer | | | Min: 1
Max: 255 | |
| [ log_adjacency_changes_detail](## "router_ospf.process_ids.[].log_adjacency_changes_detail") | Boolean | | | | |
| [ network_prefixes](## "router_ospf.process_ids.[].network_prefixes") | List, items: Dictionary | | | | |
-| [ - ipv4_prefix](## "router_ospf.process_ids.[].network_prefixes.[].ipv4_prefix") | String | | | | |
+| [ - ipv4_prefix](## "router_ospf.process_ids.[].network_prefixes.[].ipv4_prefix") | String | Required, Unique | | | |
| [ area](## "router_ospf.process_ids.[].network_prefixes.[].area") | String | | | | |
| [ bfd_enable](## "router_ospf.process_ids.[].bfd_enable") | Boolean | | | | |
| [ bfd_adjacency_state_any](## "router_ospf.process_ids.[].bfd_adjacency_state_any") | Boolean | | | | |
@@ -3141,7 +3141,7 @@ router_multicast:
| [ default_information_originate](## "router_ospf.process_ids.[].default_information_originate") | Dictionary | | | | |
| [ always](## "router_ospf.process_ids.[].default_information_originate.always") | Boolean | | | | |
| [ summary_addresses](## "router_ospf.process_ids.[].summary_addresses") | List, items: Dictionary | | | | |
-| [ - prefix](## "router_ospf.process_ids.[].summary_addresses.[].prefix") | String | | | | Summary Prefix Address |
+| [ - prefix](## "router_ospf.process_ids.[].summary_addresses.[].prefix") | String | Required, Unique | | | Summary Prefix Address |
| [ tag](## "router_ospf.process_ids.[].summary_addresses.[].tag") | Integer | | | | |
| [ attribute_map](## "router_ospf.process_ids.[].summary_addresses.[].attribute_map") | String | | | | |
| [ not_advertise](## "router_ospf.process_ids.[].summary_addresses.[].not_advertise") | Boolean | | | | |
@@ -3154,7 +3154,7 @@ router_multicast:
| [ route_map](## "router_ospf.process_ids.[].redistribute.bgp.route_map") | String | | | | Route Map Name |
| [ auto_cost_reference_bandwidth](## "router_ospf.process_ids.[].auto_cost_reference_bandwidth") | Integer | | | | Bandwidth in mbps |
| [ areas](## "router_ospf.process_ids.[].areas") | List, items: Dictionary | | | | |
-| [ - id](## "router_ospf.process_ids.[].areas.[].id") | String | | | | |
+| [ - id](## "router_ospf.process_ids.[].areas.[].id") | String | Required, Unique | | | |
| [ filter](## "router_ospf.process_ids.[].areas.[].filter") | Dictionary | | | | |
| [ networks](## "router_ospf.process_ids.[].areas.[].filter.networks") | List, items: String | | | | |
| [ - <str>](## "router_ospf.process_ids.[].areas.[].filter.networks.[].<str>") | String | | | | IPv4 Prefix |
@@ -3340,13 +3340,13 @@ service_routing_protocols_model:
| [ sample](## "sflow.sample") | Integer | | | | |
| [ dangerous](## "sflow.dangerous") | Boolean | | | | |
| [ vrfs](## "sflow.vrfs") | List, items: Dictionary | | | | |
-| [ - name](## "sflow.vrfs.[].name") | String | | | | |
+| [ - name](## "sflow.vrfs.[].name") | String | Required, Unique | | | |
| [ destinations](## "sflow.vrfs.[].destinations") | List, items: Dictionary | | | | |
-| [ - destination](## "sflow.vrfs.[].destinations.[].destination") | String | | | | Sflow Destination IP |
+| [ - destination](## "sflow.vrfs.[].destinations.[].destination") | String | Required, Unique | | | Sflow Destination IP |
| [ port](## "sflow.vrfs.[].destinations.[].port") | Integer | | | | Port Number |
| [ source_interface](## "sflow.vrfs.[].source_interface") | String | | | | |
| [ destinations](## "sflow.destinations") | List, items: Dictionary | | | | |
-| [ - destination](## "sflow.destinations.[].destination") | String | | | | Sflow Destination IP |
+| [ - destination](## "sflow.destinations.[].destination") | String | Required, Unique | | | Sflow Destination IP |
| [ port](## "sflow.destinations.[].port") | Integer | | | | Port Number |
| [ source_interface](## "sflow.source_interface") | String | | | | |
| [ interface](## "sflow.interface") | Dictionary | | | | |
@@ -3357,7 +3357,7 @@ service_routing_protocols_model:
| [ enabled](## "sflow.hardware_acceleration.enabled") | Boolean | | | | |
| [ sample](## "sflow.hardware_acceleration.sample") | Integer | | | | |
| [ modules](## "sflow.hardware_acceleration.modules") | List, items: Dictionary | | | | |
-| [ - name](## "sflow.hardware_acceleration.modules.[].name") | String | | | | |
+| [ - name](## "sflow.hardware_acceleration.modules.[].name") | String | Required, Unique | | | |
| [ enabled](## "sflow.hardware_acceleration.modules.[].enabled") | Boolean | | True | | |
### YAML
@@ -3410,14 +3410,14 @@ sflow:
| [ name](## "spanning_tree.mst.configuration.name") | String | | | | |
| [ revision](## "spanning_tree.mst.configuration.revision") | Integer | | | | 0-65535 |
| [ instances](## "spanning_tree.mst.configuration.instances") | List, items: Dictionary | | | | |
-| [ - id](## "spanning_tree.mst.configuration.instances.[].id") | Integer | | | | Instance ID |
+| [ - id](## "spanning_tree.mst.configuration.instances.[].id") | Integer | Required, Unique | | | Instance ID |
| [ vlans](## "spanning_tree.mst.configuration.instances.[].vlans") | String | | | | "< vlan_id >, < vlan_id >-< vlan_id >"
Example: 15,16,17,18
|
| [ mst_instances](## "spanning_tree.mst_instances") | List, items: Dictionary | | | | |
-| [ - id](## "spanning_tree.mst_instances.[].id") | String | | | | Instance ID |
+| [ - id](## "spanning_tree.mst_instances.[].id") | String | Required, Unique | | | Instance ID |
| [ priority](## "spanning_tree.mst_instances.[].priority") | Integer | | | | |
| [ no_spanning_tree_vlan](## "spanning_tree.no_spanning_tree_vlan") | String | | | | "< vlan_id >, < vlan_id >-< vlan_id >"
Example: 105,202,505-506
|
| [ rapid_pvst_instances](## "spanning_tree.rapid_pvst_instances") | List, items: Dictionary | | | | |
-| [ - id](## "spanning_tree.rapid_pvst_instances.[].id") | String | | | | "< vlan_id >, < vlan_id >-< vlan_id >"
Example: 105,202,505-506
|
+| [ - id](## "spanning_tree.rapid_pvst_instances.[].id") | String | Required, Unique | | | "< vlan_id >, < vlan_id >-< vlan_id >"
Example: 105,202,505-506
|
| [ priority](## "spanning_tree.rapid_pvst_instances.[].priority") | Integer | | | | |
### YAML
@@ -3540,10 +3540,10 @@ switchport_default:
| [ ipv4](## "system.control_plane.tcp_mss.ipv4") | Integer | | | | Segment size |
| [ ipv6](## "system.control_plane.tcp_mss.ipv6") | Integer | | | | Segment size |
| [ ipv4_access_groups](## "system.control_plane.ipv4_access_groups") | List, items: Dictionary | | | | |
-| [ - acl_name](## "system.control_plane.ipv4_access_groups.[].acl_name") | String | | | | |
+| [ - acl_name](## "system.control_plane.ipv4_access_groups.[].acl_name") | String | Required, Unique | | | |
| [ vrf](## "system.control_plane.ipv4_access_groups.[].vrf") | String | | | | |
| [ ipv6_access_groups](## "system.control_plane.ipv6_access_groups") | List, items: Dictionary | | | | |
-| [ - acl_name](## "system.control_plane.ipv6_access_groups.[].acl_name") | String | | | | |
+| [ - acl_name](## "system.control_plane.ipv6_access_groups.[].acl_name") | String | Required, Unique | | | |
| [ vrf](## "system.control_plane.ipv6_access_groups.[].vrf") | String | | | | |
### YAML
@@ -3713,20 +3713,20 @@ trackers:
| [ counter_per_interface](## "traffic_policies.options.counter_per_interface") | Boolean | | | | |
| [ field_sets](## "traffic_policies.field_sets") | Dictionary | | | | |
| [ ipv4](## "traffic_policies.field_sets.ipv4") | List, items: Dictionary | | | | |
-| [ - name](## "traffic_policies.field_sets.ipv4.[].name") | String | | | | IPv4 Prefix Field Set Name |
+| [ - name](## "traffic_policies.field_sets.ipv4.[].name") | String | Required, Unique | | | IPv4 Prefix Field Set Name |
| [ prefixes](## "traffic_policies.field_sets.ipv4.[].prefixes") | List, items: String | | | | |
| [ - <str>](## "traffic_policies.field_sets.ipv4.[].prefixes.[].<str>") | String | | | | IPv4 Prefix |
| [ ipv6](## "traffic_policies.field_sets.ipv6") | List, items: Dictionary | | | | |
-| [ - name](## "traffic_policies.field_sets.ipv6.[].name") | String | | | | IPv6 Prefix Field Set Name |
+| [ - name](## "traffic_policies.field_sets.ipv6.[].name") | String | Required, Unique | | | IPv6 Prefix Field Set Name |
| [ prefixes](## "traffic_policies.field_sets.ipv6.[].prefixes") | List, items: String | | | | |
| [ - <str>](## "traffic_policies.field_sets.ipv6.[].prefixes.[].<str>") | String | | | | IPv6 Prefix |
| [ ports](## "traffic_policies.field_sets.ports") | List, items: Dictionary | | | | |
-| [ - name](## "traffic_policies.field_sets.ports.[].name") | String | | | | L4 Port Field Set Name |
+| [ - name](## "traffic_policies.field_sets.ports.[].name") | String | Required, Unique | | | L4 Port Field Set Name |
| [ port_range](## "traffic_policies.field_sets.ports.[].port_range") | String | | | | Example: '10,20,80,440-450' |
| [ policies](## "traffic_policies.policies") | List, items: Dictionary | | | | |
-| [ - name](## "traffic_policies.policies.[].name") | String | | | | Traffic Policy Name |
+| [ - name](## "traffic_policies.policies.[].name") | String | Required, Unique | | | Traffic Policy Name |
| [ matches](## "traffic_policies.policies.[].matches") | List, items: Dictionary | | | | |
-| [ - name](## "traffic_policies.policies.[].matches.[].name") | String | | | | Traffic Policy Item |
+| [ - name](## "traffic_policies.policies.[].matches.[].name") | String | Required, Unique | | | Traffic Policy Item |
| [ type](## "traffic_policies.policies.[].matches.[].type") | String | | | Valid Values:
- ipv4
- ipv6 | |
| [ source](## "traffic_policies.policies.[].matches.[].source") | Dictionary | | | | |
| [ prefixes](## "traffic_policies.policies.[].matches.[].source.prefixes") | List, items: String | | | | |
@@ -3742,7 +3742,7 @@ trackers:
| [ fragment](## "traffic_policies.policies.[].matches.[].fragment") | Dictionary | | | | The 'fragment' command is not supported when 'source port'
or 'destination port' command is configured
|
| [ offset](## "traffic_policies.policies.[].matches.[].fragment.offset") | String | | | | Fragment offset range |
| [ protocols](## "traffic_policies.policies.[].matches.[].protocols") | List, items: Dictionary | | | | |
-| [ - protocol](## "traffic_policies.policies.[].matches.[].protocols.[].protocol") | String | | | | |
+| [ - protocol](## "traffic_policies.policies.[].matches.[].protocols.[].protocol") | String | Required, Unique | | | |
| [ src_port](## "traffic_policies.policies.[].matches.[].protocols.[].src_port") | String | | | | Port range |
| [ dst_port](## "traffic_policies.policies.[].matches.[].protocols.[].dst_port") | String | | | | Port range |
| [ src_field](## "traffic_policies.policies.[].matches.[].protocols.[].src_field") | String | | | | L4 port range field set |
@@ -3845,7 +3845,7 @@ traffic_policies:
| Variable | Type | Required | Default | Value Restrictions | Description |
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [virtual_source_nat_vrfs](## "virtual_source_nat_vrfs") | List, items: Dictionary | | | | |
-| [ - name](## "virtual_source_nat_vrfs.[].name") | String | | | | VRF Name |
+| [ - name](## "virtual_source_nat_vrfs.[].name") | String | Required, Unique | | | VRF Name |
| [ ip_address](## "virtual_source_nat_vrfs.[].ip_address") | String | | | | IPv4 Address |
### YAML
@@ -3885,7 +3885,7 @@ vlan_internal_order:
| Variable | Type | Required | Default | Value Restrictions | Description |
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [vlans](## "vlans") | List, items: Dictionary | | | | |
-| [ - id](## "vlans.[].id") | Integer | | | | VLAN ID |
+| [ - id](## "vlans.[].id") | Integer | Required, Unique | | | VLAN ID |
| [ name](## "vlans.[].name") | String | | | | VLAN Name |
| [ state](## "vlans.[].state") | String | | | Valid Values:
- active
- suspend | |
| [ trunk_groups](## "vlans.[].trunk_groups") | List, items: String | | | | |
@@ -3943,7 +3943,7 @@ vmtracer_sessions:
| Variable | Type | Required | Default | Value Restrictions | Description |
| -------- | ---- | -------- | ------- | ------------------ | ----------- |
| [vrfs](## "vrfs") | List, items: Dictionary | | | | |
-| [ - name](## "vrfs.[].name") | String | | | | VRF Name |
+| [ - name](## "vrfs.[].name") | String | Required, Unique | | | VRF Name |
| [ description](## "vrfs.[].description") | String | | | | |
| [ ip_routing](## "vrfs.[].ip_routing") | Boolean | | | | |
| [ ipv6_routing](## "vrfs.[].ipv6_routing") | Boolean | | | | |
diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
index 0da43cecfe7..7ff603f62ed 100644
--- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
+++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.jsonschema.json
@@ -631,7 +631,10 @@
"title": "IP"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "PBR"
},
@@ -680,7 +683,10 @@
"title": "IPv6"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "QOS"
}
@@ -1284,7 +1290,10 @@
"title": "Asynchronous"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Event Handlers"
},
@@ -2402,7 +2411,10 @@
"title": "Transmit"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "TLVs"
},
@@ -2848,7 +2860,10 @@
"title": "Fallback"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Connection Keys"
},
@@ -4328,12 +4343,18 @@
"title": "Set"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Classes"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "PBR"
},
@@ -4382,12 +4403,18 @@
"title": "Set"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Classes"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "QOS"
}
@@ -5672,7 +5699,10 @@
"title": "Area"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "ipv4_prefix"
+ ]
},
"title": "Network Prefixes"
},
@@ -5818,7 +5848,10 @@
"title": "Not Advertise"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "prefix"
+ ]
},
"title": "Summary Addresses"
},
@@ -5941,7 +5974,10 @@
"title": "Default Information Originate"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Areas"
},
@@ -6005,7 +6041,10 @@
"title": "MPLS LDP Sync Default"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Process IDs"
}
@@ -6195,7 +6234,10 @@
"title": "Port"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "destination"
+ ]
},
"title": "Destinations"
},
@@ -6204,7 +6246,10 @@
"title": "Source Interface"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "VRFs"
},
@@ -6224,7 +6269,10 @@
"title": "Port"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "destination"
+ ]
},
"title": "Destinations"
},
@@ -6280,7 +6328,10 @@
"title": "Enabled"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Modules"
}
@@ -6379,7 +6430,10 @@
"title": "VLANs"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Instances"
}
@@ -6406,7 +6460,10 @@
"title": "Priority"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Mst Instances"
},
@@ -6430,7 +6487,10 @@
"title": "Priority"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "Rapid Pvst Instances"
}
@@ -6617,7 +6677,10 @@
"title": "VRF"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "acl_name"
+ ]
},
"title": "IPv4 Access Groups"
},
@@ -6635,7 +6698,10 @@
"title": "VRF"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "acl_name"
+ ]
},
"title": "IPv6 Access Groups"
}
@@ -6929,7 +6995,10 @@
"title": "Prefixes"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "IPv4"
},
@@ -6952,7 +7021,10 @@
"title": "Prefixes"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "IPv6"
},
@@ -6972,7 +7044,10 @@
"title": "Port Range"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Ports"
}
@@ -7120,7 +7195,10 @@
"title": "ICMP Type"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "protocol"
+ ]
},
"title": "Protocols"
},
@@ -7155,7 +7233,10 @@
"title": "Actions"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Matches"
},
@@ -7227,7 +7308,10 @@
"title": "Default Actions"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Policies"
}
@@ -7251,7 +7335,10 @@
"title": "IP Address"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "Virtual Source Nat VRFs"
},
@@ -7356,7 +7443,10 @@
"title": "Tenant"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "id"
+ ]
},
"title": "VLANs"
},
@@ -7427,7 +7517,10 @@
"title": "Tenant"
}
},
- "additionalProperties": false
+ "additionalProperties": false,
+ "required": [
+ "name"
+ ]
},
"title": "VRFs"
}