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 90cfe6cbdd4..c33336ca725 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 @@ -861,6 +861,22 @@ router_general: - name: ``` +## Router IGMP Configuration + +### Variables + +| Variable | Type | Required | Default | Value Restrictions | Description | +| -------- | ---- | -------- | ------- | ------------------ | ----------- | +| [router_igmp](## "router_igmp") | Dictionary | | | | Router IGMP Configuration | +| [  ssm_aware](## "router_igmp.ssm_aware") | Boolean | | | | | + +### YAML + +```yaml +router_igmp: + ssm_aware: +``` + ## Sflow ### Variables 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 775d8fc5697..4c93b682223 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 @@ -1 +1 @@ -{"type": "object", "properties": {"access_lists": {"type": "array", "title": "IP Extended Access-Lists (legacy model)", "description": "AVD currently supports 2 different data models for extended ACLs:\n\n- The legacy `access_lists` data model, for compatibility with existing deployments\n- The improved `ip_access_lists` data model, for access to more EOS features\n\nBoth data models can coexists without conflicts, as different keys are used: `access_lists` vs `ip_access_lists`.\nAccess list names must be unique.\n\nThe legacy data model supports simplified ACL definition with `sequence` to `action` mapping:\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ip any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "bgp_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Group Name"}, "vrf": {"type": "string", "title": "VRF"}, "neighbors": {"type": "array", "items": {"type": "string"}, "title": "Neighbors"}, "bgp_maintenance_profiles": {"type": "array", "items": {"type": "string", "title": "Profile Name"}, "title": "Bgp Maintenance Profiles"}}, "required": ["name"], "additionalProperties": false}, "title": "Bgp Groups"}, "class_maps": {"type": "object", "title": "QOS Class-maps", "properties": {"pbr": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Class-Map Name"}, "ip": {"type": "object", "properties": {"access_group": {"type": "string", "title": "Standard Access-List Name"}}, "additionalProperties": false, "title": "Ip"}}, "additionalProperties": false}, "title": "Pbr"}, "qos": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Class-Map Name"}, "vlan": {"type": "integer", "description": "VLAN value(s) or range(s) of VLAN values", "title": "Vlan"}, "cos": {"type": "integer", "description": "CoS value(s) or range(s) of CoS values", "title": "Cos"}, "ip": {"type": "object", "properties": {"access_group": {"type": "string", "title": "IPv4 Access-List Name"}}, "additionalProperties": false, "title": "Ip"}, "ipv6": {"type": "object", "properties": {"access_group": {"type": "string", "title": "IPv6 Access-List Name"}}, "additionalProperties": false, "title": "Ipv6"}}, "additionalProperties": false}, "title": "Qos"}}, "additionalProperties": false}, "community_lists": {"type": "array", "title": "Community Lists (legacy model)", "description": "AVD supports 2 different data models for community lists:\n\n- The legacy `community_lists` data model that can be used for compatibility with the existing deployments.\n- The improved `ip_community_lists` data model.\n\nBoth data models can coexist without conflicts, as different keys are used: `community_lists` vs `ip_community_lists`.\nCommunity list names must be unique.\n\nThe legacy data model supports simplified community list definition that only allows a single action to be defined as string:\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit GSHUT 65123:123\"", "title": "Action"}}, "required": ["name", "action"], "additionalProperties": false}}, "daemons": {"type": "array", "title": "Custom Daemons", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Daemon Name"}, "exec": {"type": "string", "description": "command to run as a daemon\n", "title": "Exec"}, "enabled": {"type": "boolean", "default": true, "title": "Enabled"}}, "required": ["name", "exec"], "additionalProperties": false}}, "event_handlers": {"type": "array", "title": "Event Handlers", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Event Handler Name"}, "action_type": {"type": "string", "title": "Action Type", "description": "Type of action\n", "enum": ["bash", "increment", "log"]}, "action": {"type": "string", "description": "Command to execute\n", "title": "Action"}, "delay": {"type": "integer", "description": "Event-handler delay in seconds\n", "title": "Delay"}, "trigger": {"type": "string", "description": "Configure event trigger condition.\n", "enum": ["on-logging"], "title": "Trigger"}, "regex": {"type": "string", "description": "Regular expression to use for searching log messages. Required for on-logging trigger\n", "title": "Regex"}, "asynchronous": {"type": "boolean", "default": false, "description": "Set the action to be non-blocking.", "title": "Asynchronous"}}, "additionalProperties": false}}, "interface_groups": {"type": "array", "title": "Maintenance Interface Groups", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Interface-Group name"}, "interfaces": {"type": "array", "items": {"type": "string", "description": "Interface Name"}, "title": "Interfaces"}, "bgp_maintenance_profiles": {"type": "array", "items": {"type": "string", "description": "Name of BGP Maintenance Profile"}, "title": "Bgp Maintenance Profiles"}, "interface_maintenance_profiles": {"type": "array", "items": {"type": "string", "description": "Name of Interface Maintenance Profile"}, "title": "Interface Maintenance Profiles"}}, "required": ["name"], "additionalProperties": false}}, "interface_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Interface-Profile Name"}, "commands": {"type": "array", "items": {"type": "string", "description": "EOS CLI interface command\nExample: \"switchport mode access\""}, "title": "Commands"}}, "required": ["name", "commands"], "additionalProperties": false}, "title": "Interface Profiles"}, "ip_community_lists": {"type": "array", "title": "IP Community Lists", "description": "AVD supports 2 different data models for community lists:\n\n- The legacy `community_lists` data model that can be used for compatibility with the existing deployments.\n- The improved `ip_community_lists` data model.\n\nBoth data models can coexist without conflicts, as different keys are used: `community_lists` vs `ip_community_lists`.\nCommunity list names must be unique.\n\nThe improved data model has a better design documented below:\n\ncommunities and regexp MUST not be configured together in the same entry\npossible community strings are (case insensitive):\n - GSHUT\n - internet\n - local-as\n - no-advertise\n - no-export\n - <1-4294967040>\n - aa:nn\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "IP Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"action": {"type": "string", "enum": ["permit", "deny"], "title": "Action"}, "communities": {"type": "array", "items": {"type": "string"}, "description": "If defined, a standard community-list will be configured", "title": "Communities"}, "regexp": {"type": "string", "title": "Regular Expression", "description": "If defined, a regex community-list will be configured"}}, "required": ["action"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_domain_lookup": {"type": "object", "title": "Domain Lookup", "properties": {"source_interfaces": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "description": "Source Interface\n", "title": "Name"}, "vrf": {"type": "string", "title": "VRF"}}, "required": ["name"], "additionalProperties": false}, "title": "Source Interfaces"}}, "additionalProperties": false}, "ip_extcommunity_lists": {"type": "array", "title": "IP Extended Community Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "extcommunities": {"type": "string", "description": "Communities as string\nExample: \"65000:65000\"", "title": "Extcommunities"}}, "required": ["type", "extcommunities"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_extcommunity_lists_regexp": {"type": "array", "title": "IP Extended Community Lists RegExp", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "regexp": {"type": "string", "description": "Regular Expression", "title": "Regexp"}}, "required": ["type", "regexp"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_igmp_snooping": {"type": "object", "title": "IP IGMP Snooping", "properties": {"globally_enabled": {"type": "boolean", "default": true, "title": "Globally Enabled"}, "robustness_variable": {"type": "integer", "title": "Robustness Variable"}, "restart_query_interval": {"type": "integer", "title": "Restart Query Interval"}, "interface_restart_query": {"type": "integer", "title": "Interface Restart Query"}, "fast_leave": {"type": "boolean", "title": "Fast Leave"}, "querier": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "address": {"type": "string", "title": "IP Address"}, "query_interval": {"type": "integer", "title": "Query Interval"}, "max_response_time": {"type": "integer", "title": "Max Response Time"}, "last_member_query_interval": {"type": "integer", "title": "Last Member Query Interval"}, "last_member_query_count": {"type": "integer", "title": "Last Member Query Count"}, "startup_query_interval": {"type": "integer", "title": "Startup Query Interval"}, "startup_query_count": {"type": "integer", "title": "Startup Query Count"}, "version": {"type": "integer", "title": "Version"}}, "additionalProperties": false, "title": "Querier"}, "proxy": {"type": "boolean", "title": "Proxy"}, "vlans": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "title": "VLAN ID"}, "enabled": {"type": "boolean", "title": "Enabled"}, "querier": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "address": {"type": "string", "title": "IP Address"}, "query_interval": {"type": "integer", "title": "Query Interval"}, "max_response_time": {"type": "integer", "title": "Max Response Time"}, "last_member_query_interval": {"type": "integer", "title": "Last Member Query Interval"}, "last_member_query_count": {"type": "integer", "title": "Last Member Query Count"}, "startup_query_interval": {"type": "integer", "title": "Startup Query Interval"}, "startup_query_count": {"type": "integer", "title": "Startup Query Count"}, "version": {"type": "integer", "title": "Version"}}, "additionalProperties": false, "title": "Querier"}, "max_groups": {"type": "integer", "title": "Max Groups"}, "fast_leave": {"type": "boolean", "title": "Fast Leave"}, "proxy": {"type": "boolean", "description": "Global proxy settings should be enabled before enabling per-vlan", "title": "Proxy"}}, "required": ["id"], "additionalProperties": false}, "title": "Vlans"}}, "additionalProperties": false}, "ipv6_access_lists": {"type": "array", "title": "IPv6 Extended Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "IPv6 Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ipv6 any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "ipv6_prefix_lists": {"type": "array", "title": "IPv6 Prefix Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Prefix-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit 1b11:3a00:22b0:0082::/64 eq 128\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "ipv6_standard_access_lists": {"type": "array", "title": "IPv6 Standard Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ipv6 any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "local_users": {"type": "array", "items": {"type": "object", "properties": {"name": {"title": "Username", "type": "string"}, "privilege": {"type": "integer", "minimum": 1, "maximum": 15, "description": "Initial privilege level with local EXEC authorization.\n", "title": "Privilege"}, "role": {"type": "string", "description": "EOS RBAC Role to be assigned to the user such as \"network-admin\" or \"network-operator\"\n", "title": "Role"}, "sha512_password": {"title": "SHA512 Hash of Password", "type": "string", "description": "Must be the hash of the password. By default EOS salts the password with the username, so the simplest is to generate the hash on an EOS device using the same username.\n"}, "no_password": {"type": "boolean", "description": "If set a password will not be configured for this user. \"sha512_password\" MUST not be defined for this user.\n", "title": "No Password"}, "ssh_key": {"title": "SSH Key", "type": "string"}}, "required": ["name"], "additionalProperties": false}, "title": "Local Users"}, "maintenance": {"type": "object", "title": "Maintenance Mode", "properties": {"default_interface_profile": {"type": "string", "description": "Name of default Interface Profile\n", "title": "Default Interface Profile"}, "default_bgp_profile": {"type": "string", "description": "Name of default BGP Profile\n", "title": "Default Bgp Profile"}, "default_unit_profile": {"type": "string", "description": "Name of default Unit Profile\n", "title": "Default Unit Profile"}, "interface_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Name"}, "rate_monitoring": {"type": "object", "properties": {"load_interval": {"type": "integer", "description": "Load Interval in Seconds\n", "title": "Load Interval"}, "threshold": {"type": "integer", "description": "Threshold in kbps\n", "title": "Threshold"}}, "additionalProperties": false, "title": "Rate Monitoring"}, "shutdown": {"type": "object", "properties": {"max_delay": {"type": "integer", "description": "Max delay in seconds\n", "title": "Max Delay"}}, "additionalProperties": false, "title": "Shutdown"}}, "required": ["name"], "additionalProperties": false}, "title": "Interface Profiles"}, "bgp_profiles": {"type": "array", "title": "BGP Profiles", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "BGP Profile Name"}, "initiator": {"type": "object", "properties": {"route_map_inout": {"type": "string", "title": "Route Map"}}, "additionalProperties": false, "title": "Initiator"}}, "required": ["name"], "additionalProperties": false}}, "unit_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Unit Profile Name"}, "on_boot": {"type": "object", "properties": {"duration": {"type": "integer", "minimum": 300, "maximum": 3600, "description": "On-boot in seconds\n", "title": "Duration"}}, "additionalProperties": false, "title": "On Boot"}}, "required": ["name"], "additionalProperties": false}, "title": "Unit Profiles"}, "units": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Unit Name"}, "quiesce": {"type": "boolean", "title": "Quiesce"}, "profile": {"type": "string", "description": "Name of Unit Profile\n", "title": "Profile"}, "groups": {"type": "object", "properties": {"bgp_groups": {"type": "array", "title": "BGP Groups", "items": {"type": "string", "description": "Name of BGP Group\n"}}, "interface_groups": {"type": "array", "items": {"type": "string", "description": "Name of Interface Group"}, "title": "Interface Groups"}}, "additionalProperties": false, "title": "Groups"}}, "required": ["name", "profile"], "additionalProperties": false}, "title": "Units"}}, "additionalProperties": false}, "management_api_http": {"title": "Management HTTP", "type": "object", "properties": {"enable_http": {"type": "boolean", "title": "Enable Http"}, "enable_https": {"type": "boolean", "title": "Enable Https"}, "https_ssl_profile": {"title": "SSL Profile Name", "type": "string"}, "default_services": {"type": "boolean", "description": "Enable default services: capi-doc and tapagg", "title": "Default Services"}, "enable_vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"title": "VRF Name", "type": "string"}, "access_group": {"title": "Standard IPv4 ACL name", "type": "string"}, "ipv6_access_group": {"title": "Standard IPv6 ACL name", "type": "string"}}, "required": ["name"], "additionalProperties": false}, "title": "Enable Vrfs"}, "protocol_https_certificate": {"type": "object", "properties": {"certificate": {"type": "string", "description": "Name of certificate; private key must also be specified", "title": "Certificate"}, "private_key": {"type": "string", "description": "Name of private key; certificate must also be specified", "title": "Private Key"}}, "additionalProperties": false, "title": "Protocol Https Certificate"}}, "additionalProperties": false}, "management_interfaces": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Management Interface Name"}, "description": {"type": "string", "title": "Description"}, "shutdown": {"type": "boolean", "title": "Shutdown"}, "mtu": {"type": "integer", "title": "Mtu"}, "vrf": {"type": "string", "title": "VRF Name"}, "ip_address": {"type": "string", "title": "IPv4_address/Mask"}, "ipv6_enable": {"type": "boolean", "title": "Ipv6 Enable"}, "ipv6_address": {"type": "string", "title": "IPv6_address/Mask"}, "type": {"type": "string", "enum": ["oob", "inband"], "default": "oob", "description": "For documentation purposes only", "title": "Type"}, "gateway": {"type": "string", "description": "IPv4 address of default gateway in management VRF", "title": "Gateway"}, "ipv6_gateway": {"type": "string", "description": "IPv6 address of default gateway in management VRF", "title": "Ipv6 Gateway"}}, "required": ["name", "description", "ip_address", "gateway"], "additionalProperties": false}, "title": "Management Interfaces"}, "management_ssh": {"type": "object", "title": "Management SSH", "properties": {"access_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Standard ACL Name"}, "vrf": {"type": "string", "title": "VRF Name"}}, "additionalProperties": false}, "title": "Access Groups"}, "ipv6_access_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Standard ACL Name"}, "vrf": {"type": "string", "title": "VRF Name"}}, "additionalProperties": false}, "title": "Ipv6 Access Groups"}, "idle_timeout": {"type": "integer", "minimum": 0, "maximum": 86400, "description": "Idle timeout in minutes", "title": "Idle Timeout"}, "cipher": {"description": "Cryptographic ciphers for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Cipher"}, "key_exchange": {"description": "Cryptographic key exchange methods for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Key Exchange"}, "mac": {"description": "Cryptographic MAC algorithms for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Mac"}, "hostkey": {"type": "object", "properties": {"server": {"description": "SSH host key settings", "type": "array", "items": {"type": "string"}, "title": "Server"}}, "additionalProperties": false, "title": "Hostkey"}, "enable": {"description": "Enable SSH daemon", "type": "boolean", "title": "Enable"}, "connection": {"type": "object", "properties": {"limit": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum total number of SSH sessions to device", "title": "Limit"}, "per_host": {"type": "integer", "minimum": 1, "maximum": 20, "description": "Maximum number of SSH sessions to device from a single host", "title": "Per Host"}}, "additionalProperties": false, "title": "Connection"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF Name"}, "enable": {"description": "Enable SSH in VRF", "type": "boolean", "title": "Enable"}}, "required": ["name"], "additionalProperties": false}, "title": "Vrfs"}, "log_level": {"type": "string", "description": "SSH daemon log level", "title": "Log Level"}}, "additionalProperties": false}, "match_list_input": {"type": "object", "title": "Match Lists", "properties": {"string": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Match-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "match_regex": {"type": "string", "title": "Regular Expression"}}, "required": ["sequence", "match_regex"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "String"}}, "additionalProperties": false}, "peer_filters": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Peer-filter Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "match": {"type": "string", "description": "Match as string\nExample: \"as-range 1-100 result accept\"", "title": "Match"}}, "required": ["sequence", "match"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Peer Filters"}, "prefix_lists": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Prefix-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit 10.255.0.0/27 eq 32\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Prefix Lists"}, "route_maps": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Route-map Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "description": {"type": "string", "title": "Description"}, "match": {"type": "array", "description": "List of \"match\" statements", "items": {"type": "string", "description": "Match as string\nExample: \"ip address prefix-list PL-LOOPBACKS-EVPN-OVERLAY\"\n"}, "title": "Match"}, "set": {"type": "array", "description": "List of \"set\" statements", "items": {"type": "string", "description": "Set as string\nExample: \"origin incomplete\"\n"}, "title": "Set"}, "sub_route_map": {"type": "string", "description": "Name of Sub-Route-map", "title": "Sub Route Map"}, "continue": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "sequence_number": {"type": "integer", "title": "Sequence Number"}}, "additionalProperties": false, "title": "Continue"}}, "required": ["sequence", "type"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Route Maps"}, "router_general": {"type": "object", "title": "Router General configuration", "properties": {"router_id": {"type": "object", "properties": {"ipv4": {"type": "string", "title": "IPv4 Address"}, "ipv6": {"type": "string", "title": "IPv6 Address"}}, "additionalProperties": false, "title": "Router Id"}, "nexthop_fast_failover": {"type": "boolean", "default": false, "title": "Nexthop Fast Failover"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Destination-VRF"}, "leak_routes": {"type": "array", "items": {"type": "object", "properties": {"source_vrf": {"type": "string", "title": "Source-VRF"}, "subscribe_policy": {"type": "string", "title": "Route-Map Policy"}}, "additionalProperties": false}, "title": "Leak Routes"}, "routes": {"type": "object", "properties": {"dynamic_prefix_lists": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Dynamic Prefix List Name"}}, "additionalProperties": false}, "title": "Dynamic Prefix Lists"}}, "additionalProperties": false, "title": "Routes"}}, "required": ["name"], "additionalProperties": false}, "title": "Vrfs"}}, "additionalProperties": false}, "sflow": {"type": "object", "title": "Sflow", "properties": {"sample": {"type": "integer", "title": "Sample"}, "dangerous": {"type": "boolean", "title": "Dangerous"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF"}, "destinations": {"type": "array", "items": {"type": "object", "properties": {"destination": {"type": "string", "title": "Sflow Destination IP"}, "port": {"type": "integer", "title": "Port Number"}}, "additionalProperties": false}, "title": "Destinations"}, "source_interface": {"type": "string", "title": "Source Interface"}}, "additionalProperties": false}, "title": "Vrfs"}, "destinations": {"type": "array", "items": {"type": "object", "properties": {"destination": {"type": "string", "title": "Sflow Destination IP"}, "port": {"type": "integer", "title": "Port Number"}}, "additionalProperties": false}, "title": "Destinations"}, "source_interface": {"type": "string", "title": "Source Interface"}, "interface": {"type": "object", "properties": {"disable": {"type": "object", "properties": {"default": {"type": "boolean", "title": "Default"}}, "additionalProperties": false, "title": "Disable"}}, "additionalProperties": false, "title": "Interface"}, "run": {"type": "boolean", "title": "Run"}, "hardware_acceleration": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "sample": {"type": "integer", "title": "Sample"}, "modules": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Name"}, "enabled": {"type": "boolean", "default": true, "title": "Enabled"}}, "additionalProperties": false}, "title": "Modules"}}, "additionalProperties": false, "title": "Hardware Acceleration"}}, "additionalProperties": false}, "standard_access_lists": {"type": "array", "title": "Standard Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ip any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "tcam_profile": {"type": "object", "title": "Hardware TCAM Profiles", "properties": {"system": {"type": "string", "description": "TCAM profile name to activate\n", "title": "System"}, "profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Tcam-Profile Name"}, "config": {"type": "string", "description": "TCAM Profile Config. Since these can be very long, it is often a good idea to import the config from a file.\nExample: \"{{lookup('file', '{{ root_dir }}/inventory/TCAM_TRAFFIC_POLICY.conf')}}\"", "title": "Config"}}, "required": ["name", "config"], "additionalProperties": false}, "title": "Profiles"}}, "additionalProperties": false}, "virtual_source_nat_vrfs": {"type": "array", "title": "Virtual Source NAT", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF Name"}, "ip_address": {"type": "string", "title": "IPv4 Address"}}, "additionalProperties": false}}, "vlan_internal_order": {"type": "object", "title": "Internal VLAN Order", "properties": {"allocation": {"type": "string", "enum": ["ascending", "descending"], "title": "Allocation"}, "range": {"type": "object", "properties": {"beginning": {"type": "integer", "minimum": 1, "maximum": 4094, "title": "Vlan ID"}, "ending": {"type": "integer", "minimum": 1, "maximum": 4094, "title": "Vlan ID"}}, "required": ["beginning", "ending"], "additionalProperties": false, "title": "Range"}}, "required": ["allocation", "range"], "additionalProperties": false}, "vmtracer_sessions": {"type": "array", "title": "VM Tracer Sessions", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Vmtracer Session Name"}, "url": {"type": "string", "title": "URL"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "description": "Type 7 Password Hash", "title": "Password"}, "autovlan_disable": {"type": "boolean", "title": "Autovlan Disable"}, "source_interface": {"type": "string", "title": "Source Interface"}}, "required": ["name"], "additionalProperties": false}}}, "additionalProperties": true} \ No newline at end of file +{"type": "object", "properties": {"access_lists": {"type": "array", "title": "IP Extended Access-Lists (legacy model)", "description": "AVD currently supports 2 different data models for extended ACLs:\n\n- The legacy `access_lists` data model, for compatibility with existing deployments\n- The improved `ip_access_lists` data model, for access to more EOS features\n\nBoth data models can coexists without conflicts, as different keys are used: `access_lists` vs `ip_access_lists`.\nAccess list names must be unique.\n\nThe legacy data model supports simplified ACL definition with `sequence` to `action` mapping:\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ip any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "bgp_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Group Name"}, "vrf": {"type": "string", "title": "VRF"}, "neighbors": {"type": "array", "items": {"type": "string"}, "title": "Neighbors"}, "bgp_maintenance_profiles": {"type": "array", "items": {"type": "string", "title": "Profile Name"}, "title": "Bgp Maintenance Profiles"}}, "required": ["name"], "additionalProperties": false}, "title": "Bgp Groups"}, "class_maps": {"type": "object", "title": "QOS Class-maps", "properties": {"pbr": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Class-Map Name"}, "ip": {"type": "object", "properties": {"access_group": {"type": "string", "title": "Standard Access-List Name"}}, "additionalProperties": false, "title": "Ip"}}, "additionalProperties": false}, "title": "Pbr"}, "qos": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Class-Map Name"}, "vlan": {"type": "integer", "description": "VLAN value(s) or range(s) of VLAN values", "title": "Vlan"}, "cos": {"type": "integer", "description": "CoS value(s) or range(s) of CoS values", "title": "Cos"}, "ip": {"type": "object", "properties": {"access_group": {"type": "string", "title": "IPv4 Access-List Name"}}, "additionalProperties": false, "title": "Ip"}, "ipv6": {"type": "object", "properties": {"access_group": {"type": "string", "title": "IPv6 Access-List Name"}}, "additionalProperties": false, "title": "Ipv6"}}, "additionalProperties": false}, "title": "Qos"}}, "additionalProperties": false}, "community_lists": {"type": "array", "title": "Community Lists (legacy model)", "description": "AVD supports 2 different data models for community lists:\n\n- The legacy `community_lists` data model that can be used for compatibility with the existing deployments.\n- The improved `ip_community_lists` data model.\n\nBoth data models can coexist without conflicts, as different keys are used: `community_lists` vs `ip_community_lists`.\nCommunity list names must be unique.\n\nThe legacy data model supports simplified community list definition that only allows a single action to be defined as string:\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit GSHUT 65123:123\"", "title": "Action"}}, "required": ["name", "action"], "additionalProperties": false}}, "daemons": {"type": "array", "title": "Custom Daemons", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Daemon Name"}, "exec": {"type": "string", "description": "command to run as a daemon\n", "title": "Exec"}, "enabled": {"type": "boolean", "default": true, "title": "Enabled"}}, "required": ["name", "exec"], "additionalProperties": false}}, "event_handlers": {"type": "array", "title": "Event Handlers", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Event Handler Name"}, "action_type": {"type": "string", "title": "Action Type", "description": "Type of action\n", "enum": ["bash", "increment", "log"]}, "action": {"type": "string", "description": "Command to execute\n", "title": "Action"}, "delay": {"type": "integer", "description": "Event-handler delay in seconds\n", "title": "Delay"}, "trigger": {"type": "string", "description": "Configure event trigger condition.\n", "enum": ["on-logging"], "title": "Trigger"}, "regex": {"type": "string", "description": "Regular expression to use for searching log messages. Required for on-logging trigger\n", "title": "Regex"}, "asynchronous": {"type": "boolean", "default": false, "description": "Set the action to be non-blocking.", "title": "Asynchronous"}}, "additionalProperties": false}}, "interface_groups": {"type": "array", "title": "Maintenance Interface Groups", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Interface-Group name"}, "interfaces": {"type": "array", "items": {"type": "string", "description": "Interface Name"}, "title": "Interfaces"}, "bgp_maintenance_profiles": {"type": "array", "items": {"type": "string", "description": "Name of BGP Maintenance Profile"}, "title": "Bgp Maintenance Profiles"}, "interface_maintenance_profiles": {"type": "array", "items": {"type": "string", "description": "Name of Interface Maintenance Profile"}, "title": "Interface Maintenance Profiles"}}, "required": ["name"], "additionalProperties": false}}, "interface_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Interface-Profile Name"}, "commands": {"type": "array", "items": {"type": "string", "description": "EOS CLI interface command\nExample: \"switchport mode access\""}, "title": "Commands"}}, "required": ["name", "commands"], "additionalProperties": false}, "title": "Interface Profiles"}, "ip_community_lists": {"type": "array", "title": "IP Community Lists", "description": "AVD supports 2 different data models for community lists:\n\n- The legacy `community_lists` data model that can be used for compatibility with the existing deployments.\n- The improved `ip_community_lists` data model.\n\nBoth data models can coexist without conflicts, as different keys are used: `community_lists` vs `ip_community_lists`.\nCommunity list names must be unique.\n\nThe improved data model has a better design documented below:\n\ncommunities and regexp MUST not be configured together in the same entry\npossible community strings are (case insensitive):\n - GSHUT\n - internet\n - local-as\n - no-advertise\n - no-export\n - <1-4294967040>\n - aa:nn\n", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "IP Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"action": {"type": "string", "enum": ["permit", "deny"], "title": "Action"}, "communities": {"type": "array", "items": {"type": "string"}, "description": "If defined, a standard community-list will be configured", "title": "Communities"}, "regexp": {"type": "string", "title": "Regular Expression", "description": "If defined, a regex community-list will be configured"}}, "required": ["action"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_domain_lookup": {"type": "object", "title": "Domain Lookup", "properties": {"source_interfaces": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "description": "Source Interface\n", "title": "Name"}, "vrf": {"type": "string", "title": "VRF"}}, "required": ["name"], "additionalProperties": false}, "title": "Source Interfaces"}}, "additionalProperties": false}, "ip_extcommunity_lists": {"type": "array", "title": "IP Extended Community Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "extcommunities": {"type": "string", "description": "Communities as string\nExample: \"65000:65000\"", "title": "Extcommunities"}}, "required": ["type", "extcommunities"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_extcommunity_lists_regexp": {"type": "array", "title": "IP Extended Community Lists RegExp", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Community-list Name"}, "entries": {"type": "array", "items": {"type": "object", "properties": {"type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "regexp": {"type": "string", "description": "Regular Expression", "title": "Regexp"}}, "required": ["type", "regexp"], "additionalProperties": false}, "title": "Entries"}}, "required": ["name", "entries"], "additionalProperties": false}}, "ip_igmp_snooping": {"type": "object", "title": "IP IGMP Snooping", "properties": {"globally_enabled": {"type": "boolean", "default": true, "title": "Globally Enabled"}, "robustness_variable": {"type": "integer", "title": "Robustness Variable"}, "restart_query_interval": {"type": "integer", "title": "Restart Query Interval"}, "interface_restart_query": {"type": "integer", "title": "Interface Restart Query"}, "fast_leave": {"type": "boolean", "title": "Fast Leave"}, "querier": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "address": {"type": "string", "title": "IP Address"}, "query_interval": {"type": "integer", "title": "Query Interval"}, "max_response_time": {"type": "integer", "title": "Max Response Time"}, "last_member_query_interval": {"type": "integer", "title": "Last Member Query Interval"}, "last_member_query_count": {"type": "integer", "title": "Last Member Query Count"}, "startup_query_interval": {"type": "integer", "title": "Startup Query Interval"}, "startup_query_count": {"type": "integer", "title": "Startup Query Count"}, "version": {"type": "integer", "title": "Version"}}, "additionalProperties": false, "title": "Querier"}, "proxy": {"type": "boolean", "title": "Proxy"}, "vlans": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "title": "VLAN ID"}, "enabled": {"type": "boolean", "title": "Enabled"}, "querier": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "address": {"type": "string", "title": "IP Address"}, "query_interval": {"type": "integer", "title": "Query Interval"}, "max_response_time": {"type": "integer", "title": "Max Response Time"}, "last_member_query_interval": {"type": "integer", "title": "Last Member Query Interval"}, "last_member_query_count": {"type": "integer", "title": "Last Member Query Count"}, "startup_query_interval": {"type": "integer", "title": "Startup Query Interval"}, "startup_query_count": {"type": "integer", "title": "Startup Query Count"}, "version": {"type": "integer", "title": "Version"}}, "additionalProperties": false, "title": "Querier"}, "max_groups": {"type": "integer", "title": "Max Groups"}, "fast_leave": {"type": "boolean", "title": "Fast Leave"}, "proxy": {"type": "boolean", "description": "Global proxy settings should be enabled before enabling per-vlan", "title": "Proxy"}}, "required": ["id"], "additionalProperties": false}, "title": "Vlans"}}, "additionalProperties": false}, "ipv6_access_lists": {"type": "array", "title": "IPv6 Extended Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "IPv6 Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ipv6 any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "ipv6_prefix_lists": {"type": "array", "title": "IPv6 Prefix Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Prefix-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit 1b11:3a00:22b0:0082::/64 eq 128\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "ipv6_standard_access_lists": {"type": "array", "title": "IPv6 Standard Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ipv6 any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "local_users": {"type": "array", "items": {"type": "object", "properties": {"name": {"title": "Username", "type": "string"}, "privilege": {"type": "integer", "minimum": 1, "maximum": 15, "description": "Initial privilege level with local EXEC authorization.\n", "title": "Privilege"}, "role": {"type": "string", "description": "EOS RBAC Role to be assigned to the user such as \"network-admin\" or \"network-operator\"\n", "title": "Role"}, "sha512_password": {"title": "SHA512 Hash of Password", "type": "string", "description": "Must be the hash of the password. By default EOS salts the password with the username, so the simplest is to generate the hash on an EOS device using the same username.\n"}, "no_password": {"type": "boolean", "description": "If set a password will not be configured for this user. \"sha512_password\" MUST not be defined for this user.\n", "title": "No Password"}, "ssh_key": {"title": "SSH Key", "type": "string"}}, "required": ["name"], "additionalProperties": false}, "title": "Local Users"}, "maintenance": {"type": "object", "title": "Maintenance Mode", "properties": {"default_interface_profile": {"type": "string", "description": "Name of default Interface Profile\n", "title": "Default Interface Profile"}, "default_bgp_profile": {"type": "string", "description": "Name of default BGP Profile\n", "title": "Default Bgp Profile"}, "default_unit_profile": {"type": "string", "description": "Name of default Unit Profile\n", "title": "Default Unit Profile"}, "interface_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Name"}, "rate_monitoring": {"type": "object", "properties": {"load_interval": {"type": "integer", "description": "Load Interval in Seconds\n", "title": "Load Interval"}, "threshold": {"type": "integer", "description": "Threshold in kbps\n", "title": "Threshold"}}, "additionalProperties": false, "title": "Rate Monitoring"}, "shutdown": {"type": "object", "properties": {"max_delay": {"type": "integer", "description": "Max delay in seconds\n", "title": "Max Delay"}}, "additionalProperties": false, "title": "Shutdown"}}, "required": ["name"], "additionalProperties": false}, "title": "Interface Profiles"}, "bgp_profiles": {"type": "array", "title": "BGP Profiles", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "BGP Profile Name"}, "initiator": {"type": "object", "properties": {"route_map_inout": {"type": "string", "title": "Route Map"}}, "additionalProperties": false, "title": "Initiator"}}, "required": ["name"], "additionalProperties": false}}, "unit_profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Unit Profile Name"}, "on_boot": {"type": "object", "properties": {"duration": {"type": "integer", "minimum": 300, "maximum": 3600, "description": "On-boot in seconds\n", "title": "Duration"}}, "additionalProperties": false, "title": "On Boot"}}, "required": ["name"], "additionalProperties": false}, "title": "Unit Profiles"}, "units": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Unit Name"}, "quiesce": {"type": "boolean", "title": "Quiesce"}, "profile": {"type": "string", "description": "Name of Unit Profile\n", "title": "Profile"}, "groups": {"type": "object", "properties": {"bgp_groups": {"type": "array", "title": "BGP Groups", "items": {"type": "string", "description": "Name of BGP Group\n"}}, "interface_groups": {"type": "array", "items": {"type": "string", "description": "Name of Interface Group"}, "title": "Interface Groups"}}, "additionalProperties": false, "title": "Groups"}}, "required": ["name", "profile"], "additionalProperties": false}, "title": "Units"}}, "additionalProperties": false}, "management_api_http": {"title": "Management HTTP", "type": "object", "properties": {"enable_http": {"type": "boolean", "title": "Enable Http"}, "enable_https": {"type": "boolean", "title": "Enable Https"}, "https_ssl_profile": {"title": "SSL Profile Name", "type": "string"}, "default_services": {"type": "boolean", "description": "Enable default services: capi-doc and tapagg", "title": "Default Services"}, "enable_vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"title": "VRF Name", "type": "string"}, "access_group": {"title": "Standard IPv4 ACL name", "type": "string"}, "ipv6_access_group": {"title": "Standard IPv6 ACL name", "type": "string"}}, "required": ["name"], "additionalProperties": false}, "title": "Enable Vrfs"}, "protocol_https_certificate": {"type": "object", "properties": {"certificate": {"type": "string", "description": "Name of certificate; private key must also be specified", "title": "Certificate"}, "private_key": {"type": "string", "description": "Name of private key; certificate must also be specified", "title": "Private Key"}}, "additionalProperties": false, "title": "Protocol Https Certificate"}}, "additionalProperties": false}, "management_interfaces": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Management Interface Name"}, "description": {"type": "string", "title": "Description"}, "shutdown": {"type": "boolean", "title": "Shutdown"}, "mtu": {"type": "integer", "title": "Mtu"}, "vrf": {"type": "string", "title": "VRF Name"}, "ip_address": {"type": "string", "title": "IPv4_address/Mask"}, "ipv6_enable": {"type": "boolean", "title": "Ipv6 Enable"}, "ipv6_address": {"type": "string", "title": "IPv6_address/Mask"}, "type": {"type": "string", "enum": ["oob", "inband"], "default": "oob", "description": "For documentation purposes only", "title": "Type"}, "gateway": {"type": "string", "description": "IPv4 address of default gateway in management VRF", "title": "Gateway"}, "ipv6_gateway": {"type": "string", "description": "IPv6 address of default gateway in management VRF", "title": "Ipv6 Gateway"}}, "required": ["name", "description", "ip_address", "gateway"], "additionalProperties": false}, "title": "Management Interfaces"}, "management_ssh": {"type": "object", "title": "Management SSH", "properties": {"access_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Standard ACL Name"}, "vrf": {"type": "string", "title": "VRF Name"}}, "additionalProperties": false}, "title": "Access Groups"}, "ipv6_access_groups": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Standard ACL Name"}, "vrf": {"type": "string", "title": "VRF Name"}}, "additionalProperties": false}, "title": "Ipv6 Access Groups"}, "idle_timeout": {"type": "integer", "minimum": 0, "maximum": 86400, "description": "Idle timeout in minutes", "title": "Idle Timeout"}, "cipher": {"description": "Cryptographic ciphers for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Cipher"}, "key_exchange": {"description": "Cryptographic key exchange methods for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Key Exchange"}, "mac": {"description": "Cryptographic MAC algorithms for SSH to use", "type": "array", "items": {"type": "string"}, "title": "Mac"}, "hostkey": {"type": "object", "properties": {"server": {"description": "SSH host key settings", "type": "array", "items": {"type": "string"}, "title": "Server"}}, "additionalProperties": false, "title": "Hostkey"}, "enable": {"description": "Enable SSH daemon", "type": "boolean", "title": "Enable"}, "connection": {"type": "object", "properties": {"limit": {"type": "integer", "minimum": 1, "maximum": 100, "description": "Maximum total number of SSH sessions to device", "title": "Limit"}, "per_host": {"type": "integer", "minimum": 1, "maximum": 20, "description": "Maximum number of SSH sessions to device from a single host", "title": "Per Host"}}, "additionalProperties": false, "title": "Connection"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF Name"}, "enable": {"description": "Enable SSH in VRF", "type": "boolean", "title": "Enable"}}, "required": ["name"], "additionalProperties": false}, "title": "Vrfs"}, "log_level": {"type": "string", "description": "SSH daemon log level", "title": "Log Level"}}, "additionalProperties": false}, "match_list_input": {"type": "object", "title": "Match Lists", "properties": {"string": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Match-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "match_regex": {"type": "string", "title": "Regular Expression"}}, "required": ["sequence", "match_regex"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "String"}}, "additionalProperties": false}, "peer_filters": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Peer-filter Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "match": {"type": "string", "description": "Match as string\nExample: \"as-range 1-100 result accept\"", "title": "Match"}}, "required": ["sequence", "match"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Peer Filters"}, "prefix_lists": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Prefix-list Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"permit 10.255.0.0/27 eq 32\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Prefix Lists"}, "route_maps": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Route-map Name"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "type": {"type": "string", "enum": ["permit", "deny"], "title": "Type"}, "description": {"type": "string", "title": "Description"}, "match": {"type": "array", "description": "List of \"match\" statements", "items": {"type": "string", "description": "Match as string\nExample: \"ip address prefix-list PL-LOOPBACKS-EVPN-OVERLAY\"\n"}, "title": "Match"}, "set": {"type": "array", "description": "List of \"set\" statements", "items": {"type": "string", "description": "Set as string\nExample: \"origin incomplete\"\n"}, "title": "Set"}, "sub_route_map": {"type": "string", "description": "Name of Sub-Route-map", "title": "Sub Route Map"}, "continue": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "sequence_number": {"type": "integer", "title": "Sequence Number"}}, "additionalProperties": false, "title": "Continue"}}, "required": ["sequence", "type"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}, "title": "Route Maps"}, "router_general": {"type": "object", "title": "Router General configuration", "properties": {"router_id": {"type": "object", "properties": {"ipv4": {"type": "string", "title": "IPv4 Address"}, "ipv6": {"type": "string", "title": "IPv6 Address"}}, "additionalProperties": false, "title": "Router Id"}, "nexthop_fast_failover": {"type": "boolean", "default": false, "title": "Nexthop Fast Failover"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Destination-VRF"}, "leak_routes": {"type": "array", "items": {"type": "object", "properties": {"source_vrf": {"type": "string", "title": "Source-VRF"}, "subscribe_policy": {"type": "string", "title": "Route-Map Policy"}}, "additionalProperties": false}, "title": "Leak Routes"}, "routes": {"type": "object", "properties": {"dynamic_prefix_lists": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Dynamic Prefix List Name"}}, "additionalProperties": false}, "title": "Dynamic Prefix Lists"}}, "additionalProperties": false, "title": "Routes"}}, "required": ["name"], "additionalProperties": false}, "title": "Vrfs"}}, "additionalProperties": false}, "router_igmp": {"type": "object", "title": "Router IGMP Configuration", "properties": {"ssm_aware": {"type": "boolean", "title": "Ssm Aware"}}, "additionalProperties": false}, "sflow": {"type": "object", "title": "Sflow", "properties": {"sample": {"type": "integer", "title": "Sample"}, "dangerous": {"type": "boolean", "title": "Dangerous"}, "vrfs": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF"}, "destinations": {"type": "array", "items": {"type": "object", "properties": {"destination": {"type": "string", "title": "Sflow Destination IP"}, "port": {"type": "integer", "title": "Port Number"}}, "additionalProperties": false}, "title": "Destinations"}, "source_interface": {"type": "string", "title": "Source Interface"}}, "additionalProperties": false}, "title": "Vrfs"}, "destinations": {"type": "array", "items": {"type": "object", "properties": {"destination": {"type": "string", "title": "Sflow Destination IP"}, "port": {"type": "integer", "title": "Port Number"}}, "additionalProperties": false}, "title": "Destinations"}, "source_interface": {"type": "string", "title": "Source Interface"}, "interface": {"type": "object", "properties": {"disable": {"type": "object", "properties": {"default": {"type": "boolean", "title": "Default"}}, "additionalProperties": false, "title": "Disable"}}, "additionalProperties": false, "title": "Interface"}, "run": {"type": "boolean", "title": "Run"}, "hardware_acceleration": {"type": "object", "properties": {"enabled": {"type": "boolean", "title": "Enabled"}, "sample": {"type": "integer", "title": "Sample"}, "modules": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Name"}, "enabled": {"type": "boolean", "default": true, "title": "Enabled"}}, "additionalProperties": false}, "title": "Modules"}}, "additionalProperties": false, "title": "Hardware Acceleration"}}, "additionalProperties": false}, "standard_access_lists": {"type": "array", "title": "Standard Access-Lists", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Access-list Name"}, "counters_per_entry": {"type": "boolean", "title": "Counters Per Entry"}, "sequence_numbers": {"type": "array", "items": {"type": "object", "properties": {"sequence": {"type": "integer", "title": "Sequence ID"}, "action": {"type": "string", "description": "Action as string\nExample: \"deny ip any any\"", "title": "Action"}}, "required": ["sequence", "action"], "additionalProperties": false}, "title": "Sequence Numbers"}}, "required": ["name", "sequence_numbers"], "additionalProperties": false}}, "tcam_profile": {"type": "object", "title": "Hardware TCAM Profiles", "properties": {"system": {"type": "string", "description": "TCAM profile name to activate\n", "title": "System"}, "profiles": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Tcam-Profile Name"}, "config": {"type": "string", "description": "TCAM Profile Config. Since these can be very long, it is often a good idea to import the config from a file.\nExample: \"{{lookup('file', '{{ root_dir }}/inventory/TCAM_TRAFFIC_POLICY.conf')}}\"", "title": "Config"}}, "required": ["name", "config"], "additionalProperties": false}, "title": "Profiles"}}, "additionalProperties": false}, "virtual_source_nat_vrfs": {"type": "array", "title": "Virtual Source NAT", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "VRF Name"}, "ip_address": {"type": "string", "title": "IPv4 Address"}}, "additionalProperties": false}}, "vlan_internal_order": {"type": "object", "title": "Internal VLAN Order", "properties": {"allocation": {"type": "string", "enum": ["ascending", "descending"], "title": "Allocation"}, "range": {"type": "object", "properties": {"beginning": {"type": "integer", "minimum": 1, "maximum": 4094, "title": "Vlan ID"}, "ending": {"type": "integer", "minimum": 1, "maximum": 4094, "title": "Vlan ID"}}, "required": ["beginning", "ending"], "additionalProperties": false, "title": "Range"}}, "required": ["allocation", "range"], "additionalProperties": false}, "vmtracer_sessions": {"type": "array", "title": "VM Tracer Sessions", "items": {"type": "object", "properties": {"name": {"type": "string", "title": "Vmtracer Session Name"}, "url": {"type": "string", "title": "URL"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "description": "Type 7 Password Hash", "title": "Password"}, "autovlan_disable": {"type": "boolean", "title": "Autovlan Disable"}, "source_interface": {"type": "string", "title": "Source Interface"}}, "required": ["name"], "additionalProperties": false}}}, "additionalProperties": true} \ No newline at end of file diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml index f8b38227e97..cef238c40fd 100644 --- a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/eos_cli_config_gen.schema.yml @@ -1222,6 +1222,12 @@ keys: name: type: str display_name: Dynamic Prefix List Name + router_igmp: + type: dict + display_name: Router IGMP Configuration + keys: + ssm_aware: + type: bool sflow: type: dict display_name: Sflow diff --git a/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_igmp.schema.yml b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_igmp.schema.yml new file mode 100644 index 00000000000..e32396e9956 --- /dev/null +++ b/ansible_collections/arista/avd/roles/eos_cli_config_gen/schemas/schema_fragments/router_igmp.schema.yml @@ -0,0 +1,11 @@ +# yaml-language-server: $schema=../../../../plugins/plugin_utils/schema/avd_meta_schema.json +# Line above is used by RedHat's YAML Schema vscode extension +# Use Ctrl + Space to get suggestions for every field. Autocomplete will pop up after typing 2 letters. +type: dict +keys: + router_igmp: + type: dict + display_name: Router IGMP Configuration + keys: + ssm_aware: + type: bool