{"id":15022540,"url":"https://github.com/puppetlabs/netdev_stdlib","last_synced_at":"2025-12-11T21:39:38.989Z","repository":{"id":54521596,"uuid":"8821213","full_name":"puppetlabs/netdev_stdlib","owner":"puppetlabs","description":"Netdev is a vendor-neutral network abstraction framework maintained by Puppet, Inc","archived":false,"fork":false,"pushed_at":"2025-02-04T02:07:46.000Z","size":251,"stargazers_count":31,"open_issues_count":3,"forks_count":24,"subscribers_count":171,"default_branch":"master","last_synced_at":"2025-03-29T05:09:01.042Z","etag":null,"topics":["module"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/puppetlabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2013-03-16T16:01:18.000Z","updated_at":"2024-06-22T03:49:46.000Z","dependencies_parsed_at":"2022-08-13T18:31:08.884Z","dependency_job_id":null,"html_url":"https://github.com/puppetlabs/netdev_stdlib","commit_stats":null,"previous_names":["netdevops/puppet-netdev-stdlib"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fnetdev_stdlib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fnetdev_stdlib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fnetdev_stdlib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/puppetlabs%2Fnetdev_stdlib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/puppetlabs","download_url":"https://codeload.github.com/puppetlabs/netdev_stdlib/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247117770,"owners_count":20886440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["module"],"created_at":"2024-09-24T19:58:05.676Z","updated_at":"2025-12-11T21:39:33.933Z","avatar_url":"https://github.com/puppetlabs.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Network Device Standard Library\n\n[![Build Status][buildstatus]][travis]\n\n# Overview\n\nThis module implements the type specification for the network device support\nprogram.  The goal of this module is to provide the Puppet types for writing\nprovider implementations of these types for a specific network device model.\n\nThe modules supports legacy Puppet and [Resource API](https://github.com/puppetlabs/puppet-resource_api) versions of the types.\n\nBoth versions of the types perform the same in the catalog, but stricter type checking is enabled with RSAPI versions.\n\nOnly one version can be loaded into an environment at a time.  On the master, RSAPI version of the types will always be loaded when Resource API gem is present.  This will be the default behavior in future versions of Puppet.\n\nOn the agent, legacy types will be loaded if the operatingsystem is `aristaeos or ios_xr`, otherwise RSAPI version is loaded.\n\n# Reference Information\n\nThe following reference material is useful when developing providers for the\ntypes implemented in this module.\n\n * [Resource API](https://github.com/puppetlabs/puppet-resource_api)\n * [Puppet Types and Providers by Dan Bode \u0026 Nan Liu][book]\n * [Custom Types Documentation][types doc]\n * [Seriously, What is this Provider Doing?][gary provider] Useful for an\n   in-depth explanation of the instances class method for each provider.\n\n# Reference\n## Resource types\n* [`banner`](#banner): Configure banners for network devices\n* [`network_dns`](#network_dns): Configure DNS settings for network devices\n* [`network_interface`](#network_interface): Manage physical network interfaces, e.g. Ethernet1\n* [`network_snmp`](#network_snmp): Manage snmp location, contact and enable SNMP on the device\n* [`network_trunk`](#network_trunk): Ethernet logical (switch-port) interface.  Configures VLAN trunking.\n* [`network_vlan`](#network_vlan): Manage VLAN's.  Layer-2 VLAN's are managed by this resource type.\n* [`ntp_auth_key`](#ntp_auth_key): NTP Authentication keys\n* [`ntp_config`](#ntp_config): Global configuration for the NTP system\n* [`ntp_server`](#ntp_server): Specify an NTP server\n* [`port_channel`](#port_channel): Network Device Link Aggregation Group\n* [`radius`](#radius): Enable or disable radius functionality\n* [`radius_global`](#radius_global): Configure global radius settings\n* [`radius_server`](#radius_server): Configure a radius server\n* [`radius_server_group`](#radius_server_group): Configure a radius server group\n* [`snmp_community`](#snmp_community): Manage the SNMP community\n* [`snmp_notification`](#snmp_notification): Enable or disable notification groups and events\n* [`snmp_notification_receiver`](#snmp_notification_receiver): Manage an SNMP notification receiver\n* [`snmp_user`](#snmp_user): Set the SNMP contact name\n* [`syslog_facility`](#syslog_facility): Configure severity levels for global syslog facilities\n* [`syslog_server`](#syslog_server): Configure a remote syslog server for logging\n* [`syslog_settings`](#syslog_settings): Configure global syslog settings\n* [`tacacs`](#tacacs): Enable or disable tacacs functionality\n* [`tacacs_global`](#tacacs_global): Configure global tacacs settings\n* [`tacacs_server`](#tacacs_server): Configure a tacacs server\n* [`tacacs_server_group`](#tacacs_server_group): Configure a tacacs server group\n* [`vrf`](#vrf): Configure a VRF\n\n## Deprecated resource types\nThe following types have been replaced by [`network_dns`](#network_dns)\n* [`domain_name`](#domain_name): Default domain name to append to the device hostname\n* [`name_server`](#name_server): Configure the resolver to use the specified DNS server\n* [`search_domain`](#search_domain): DNS suffix to search for FQDN entries\n\n#### banner\n\nSet various banners on the device, for example motd.\n\n##### attributes\n\nThe following attributes are available in the `banner` type.\n\n###### `name`\n\nnamevar\n\nThe friendly name for banner settings, it is set to default.\n\nDefault value: default.\n\n###### `motd`\n\nThe MOTD banner.\n\n###### `login`\n\nThe Login banner.\n\n###### `exec`\n\nThe EXEC banner.\n\n#### domain_name\n\nDeprecated - Default domain name to append to the device hostname.\n\n\n##### Properties\n\nThe following properties are available in the `domain_name` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n##### Parameters\n\nThe following parameters are available in the `domain_name` type.\n\n###### `name`\n\nnamevar\n\nThe domain name of the device.\n\n\n#### name_server\n\nDeprecated - Configure the resolver to use the specified DNS server.\n\n\n##### Properties\n\nThe following properties are available in the `name_server` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n##### Parameters\n\nThe following parameters are available in the `name_server` type.\n\n###### `name`\n\nnamevar\n\nThe hostname or address of the DNS server.\n\n\n#### network_dns\n\nConfigure DNS settings for network devices.\n\n\n##### Properties\n\nThe following properties are available in the `network_dns` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `domain`\n\nThe default domain name to add to the device hostname.\n\n###### `hostname`\n\nThe hostname of the device\n\n###### `search`\n\nArray of DNS suffixes to search for FQDN entries.\n\n###### `servers`\n\nArray of DNS servers to use for name resolution.\n\n##### Parameters\n\nThe following parameters are available in the `network_dns` type.\n\n###### `name`\n\nnamevar\n\nName, generally \"settings\". Not used to manage the resource.\n\n\n#### network_interface\n\nManage physical network interfaces, for example, Ethernet1.\n\n\n##### Properties\n\nThe following properties are available in the `network_interface` type.\n\n###### `enable`\n\nValid values: `true`, `false`\n\nEnable the interface, true or false.\n\n###### `description`\n\nInterface physical port description.\n\n###### `mtu`\n\nInterface Maximum Transmission Unit in bytes.\n\n###### `speed`\n\nValid values: auto, 1g, 10g, 40g, 56g, 100g, 100m, 10m.\n\nLink speed [auto*|10m|100m|1g|10g|40g|56g|100g].\n\n###### `duplex`\n\nValid values: auto, full, half.\n\nDuplex mode [auto*|full|half].\n\n##### Parameters\n\nThe following parameters are available in the `network_interface` type.\n\n###### `name`\n\nnamevar\n\nInterface Name, for example, Ethernet1.\n\n\n#### network_snmp\n\nManage snmp location. Contact and enable SNMP on the device.\n\n\n##### Properties\n\nThe following properties are available in the `network_snmp` type.\n\n###### `enable`\n\nValid values: `true`, `false`\n\nEnable or disable SNMP functionality [true|false].\n\n###### `contact`\n\nThe contact name for this device.\n\n###### `location`\n\nThe location of this device.\n\n##### Parameters\n\nThe following parameters are available in the `network_snmp` type.\n\n###### `name`\n\nnamevar\n\nThe name of the Puppet resource — not used to manage the device.\n\n\n#### network_trunk\n\nEthernet logical (switch-port) interface.  Configures VLAN trunking.\n\n\n##### Properties\n\nThe following properties are available in the `network_trunk` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `encapsulation`\n\nValid values: dot1q, isl, negotiate, none.\n\nThe vlan-tagging encapsulation protocol, usually dot1q.\n\n###### `mode`\n\nValid values: access, trunk, dynamic_auto, dynamic_desirable.\n\nThe L2 interface mode, enables or disables trunking.\n\n###### `untagged_vlan`\n\nVLAN used for untagged VLAN traffic. a.k.a Native VLAN.\n\n###### `tagged_vlans`\n\nArray of VLAN names used for tagged packets.\n\n###### `pruned_vlans`\n\nArray of VLAN ID numbers used for VLAN pruning.\n\n##### Parameters\n\nThe following parameters are available in the `network_trunk` type.\n\n###### `name`\n\nnamevar\n\nThe switch interface name, for example, Ethernet1.\n\n\n#### network_vlan\n\nManage VLAN's.  Layer-2 VLAN's are managed by this resource type.\n\n\n##### Properties\n\nThe following properties are available in the `network_vlan` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `vlan_name`\n\nThe VLAN name, for example, VLAN100.\n\n###### `shutdown`\n\nValid values: `true`, `false`\n\nVLAN shutdown if true, not shutdown if false.\n\n###### `description`\n\nThe VLAN Description, for example, 'Engineering'.\n\n##### Parameters\n\nThe following parameters are available in the `network_vlan` type.\n\n###### `id`\n\nThe VLAN ID, for example, 100.\n\n\n#### ntp_auth_key\n\nNTP Authentication keys.\n\n\n##### Properties\n\nThe following properties are available in the `ntp_auth_key` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `algorithm`\n\nValid values: md5, sha1, sha256.\n\nHash algorithm [md5|sha1|sha256].\n\n###### `mode`\n\nPassword mode [0 (plain) | 7 (encrypted)].\n\n###### `password`\n\nPassword text\n\n##### Parameters\n\nThe following parameters are available in the `ntp_auth_key` type.\n\n###### `name`\n\nnamevar\n\nAuthentication key ID.\n\n\n#### ntp_config\n\nGlobal configuration for the NTP system.\n\n\n##### Properties\n\nThe following properties are available in the `ntp_config` type.\n\n###### `authenticate`\n\nValid values: `true`, `false`.\n\nNTP authentication enabled [true|false].\n\n###### `source_interface`\n\nThe source interface for the NTP system.\n\n###### `trusted_key`\n\nArray of global trusted-keys. Contents can be a String or Integers.\n\n##### Parameters\n\nThe following parameters are available in the `ntp_config` type.\n\n###### `name`\n\nnamevar\n\nResource name — not used to configure the device.\n\n\n#### ntp_server\n\nSpecify an NTP server.\n\n\n##### Properties\n\nThe following properties are available in the `ntp_server` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `key`\n\nAuthentication key ID.\n\n###### `maxpoll`\n\nThe maximul poll interval.\n\n###### `minpoll`\n\nThe minimum poll interval.\n\n###### `prefer`\n\nValid values: `true`, `false`.\n\nPrefer this NTP server [true|false].\n\n###### `source_interface`\n\nThe source interface used to reach the NTP server.\n\n###### `vrf`\n\nThe VRF instance this server is bound to.\n\n##### Parameters\n\nThe following parameters are available in the `ntp_server` type.\n\n###### `name`\n\nnamevar\n\nThe hostname or address of the NTP server.\n\n\n#### port_channel\n\nNetwork Device Link Aggregation Group.\n\n\n##### Properties\n\nThe following properties are available in the `port_channel` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `id`\n\nChannel Group ID, for example, 10.\n\n###### `description`\n\nPort Channel description.\n\n###### `mode`\n\nValid values: active, passive, disabled.\n\nLACP mode [ passive | active | disabled* ]\n\n###### `interfaces`\n\nArray of Physical Interfaces.\n\n###### `minimum_links`\n\nNumber of active links required for LAG to be up.\n\n###### `speed`\n\nValid values: auto, 1g, 10g, 40g, 56g, 100g, 100m, 10m.\n\nLink speed [auto*|10m|100m|1g|10g|40g|56g|100g].\n\n###### `duplex`\n\nValid values: auto, full, half.\n\nDuplex mode [auto*|full|half].\n\n###### `flowcontrol_send`\n\nValid values: desired, on, off.\n\nFlow control (send) [desired|on|off].\n\n###### `flowcontrol_receive`\n\nValid values: desired, on, off.\n\nFlow control (receive) [desired|on|off].\n\n##### Parameters\n\nThe following parameters are available in the `port_channel` type.\n\n###### `name`\n\nnamevar\n\nLAG Name.\n\n###### `force`\n\nValid values: `true`, `false`\n\nForce configuration (true / false).\n\n\n#### radius\n\nEnable or disable radius functionality.\n\n\n##### Properties\n\nThe following properties are available in the `radius` type.\n\n###### `enable`\n\nValid values: `true`, `false`\n\nEnable or disable radius functionality [true|false].\n\n##### Parameters\n\nThe following parameters are available in the `radius` type.\n\n###### `name`\n\nnamevar\n\nResource name — not used to manage the device.\n\n\n#### radius_global\n\nConfigure global radius settings.\n\n\n##### Properties\n\nThe following properties are available in the `radius_global` type.\n\n###### `enable`\n\nValid values: `true`, `false`.\n\nEnable or disable radius functionality [true|false].\n\n###### `key`\n\nEncryption key (plaintext or in hash form depending on key_format).\n\n###### `key_format`\n\nEncryption key format [0-7].\n\n###### `retransmit_count`\n\nHow many times to retransmit or 'unset' (Cisco Nexus only)\n\n###### `source_interface`\n\nThe source interface used for RADIUS packets (array of strings for multiple).\n\n###### `timeout`\n\nNumber of seconds before the timeout period ends or 'unset' (Cisco Nexus only)f\n\n###### `vrf`\n\nThe VRF associated with source_interface (array of strings for multiple).\n\n##### Parameters\n\nThe following parameters are available in the `radius_global` type.\n\n###### `name`\n\nnamevar\n\nResource identifier — not used to manage the device.\n\n\n#### radius_server\n\nConfigure a radius server.\n\n\n##### Properties\n\nThe following properties are available in the `radius_server` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `hostname`\n\nThe hostname or address of the radius server.\n\n###### `auth_port`\n\nPort number to use for authentication.\n\n###### `acct_port`\n\nPort number to use for accounting.\n\n###### `key`\n\nEncryption key (plaintext or in hash form depending on key_format).\n\n###### `key_format`\n\nEncryption key format [0-7].\n\n###### `group`\n\nServer group associated with this server.\n\n###### `deadtime`\n\nNumber of minutes to ignore an unresponsive server.\n\n###### `timeout`\n\nNumber of seconds before the timeout period ends.\n\n###### `vrf`\n\nInterface to send syslog data from, for example, \"management\".\n\n###### `source_interface`\n\nSource interface to send syslog data from, for example, \"ethernet 2/1\".\n\n###### `retransmit_count`\n\nHow many times to retransmit.\n\n###### `accounting_only`\n\nValid values: `true`, `false`.\n\nEnable this server for accounting only.\n\n###### `authentication_only`\n\nValid values: `true`, `false`.\n\nEnable this server for authentication only.\n\n##### Parameters\n\nThe following parameters are available in the `radius_server` type.\n\n###### `name`\n\nnamevar\n\nThe name of the radius server.\n\n\n#### radius_server_group\n\nConfigure a radius server group.\n\n\n##### Properties\n\nThe following properties are available in the `radius_server_group` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `servers`\n\nArray of servers associated with this group.\n\n##### Parameters\n\nThe following parameters are available in the `radius_server_group` type.\n\n###### `name`\n\nnamevar\n\nThe name of the radius server group.\n\n\n#### search_domain\n\nDeprecated - DNS suffix to search for FQDN entries.\n\n\n##### Properties\n\nThe following properties are available in the `search_domain` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n##### Parameters\n\nThe following parameters are available in the `search_domain` type.\n\n###### `name`\n\nnamevar\n\nThe search domain to configure in the resolver.\n\n\n#### snmp_community\n\nManage the SNMP community.\n\n\n##### Properties\n\nThe following properties are available in the `snmp_community` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `group`\n\nThe SNMP group for this community.\n\n###### `acl`\n\nThe ACL name to associate with this community string.\n\n##### Parameters\n\nThe following parameters are available in the `snmp_community` type.\n\n###### `name`\n\nnamevar\n\nThe name of the community, for example, \"public\" or \"private\".\n\n\n#### snmp_notification\n\nEnable or disable notification groups and events.\n\n\n##### Properties\n\nThe following properties are available in the `snmp_notification` type.\n\n###### `enable`\n\nValid values: `true`, `false`.\n\nEnable or disable the notification [true|false].\n\n##### Parameters\n\nThe following parameters are available in the `snmp_notification` type.\n\n###### `name`\n\nnamevar\n\nThe notification name or \"all\" for all notifications.\n\n\n#### snmp_notification_receiver\n\nManage an SNMP notification receiver.\n\n\n##### Properties\n\nThe following properties are available in the `snmp_notification_receiver` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `port`\n\nSNMP UDP port number.\n\n###### `username`\n\n\n\n###### `version`\n\nValid values: v1, v2, v3.\n\nSNMP version [v1|v2|v3].\n\n###### `type`\n\nValid values: traps, informs.\n\nThe type of receiver [traps|informs].\n\n###### `security`\n\nValid values: auth, noauth, priv.\n\nSNMPv3 security mode.\n\n###### `vrf`\n\nInterface to send SNMP data from, for example, \"management\".\n\n###### `source_interface`\n\nSource interface to send SNMP data from, for example, \"ethernet 2/1\".\n\n##### Parameters\n\nThe following parameters are available in the `snmp_notification_receiver` type.\n\n###### `name`\n\nnamevar\n\nHostname or IP address of the receiver.\n\n\n#### snmp_user\n\nSet the SNMP contact name.\n\n\n##### Properties\n\nThe following properties are available in the `snmp_user` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `version`\n\nValid values: v1, v2, v2c, v3.\n\nSNMP version [v1|v2|v2c|v3].\n\n###### `roles`\n\nA list of roles associated with this SNMP user.\n\n###### `auth`\n\nValid values: md5, sha.\n\nAuthentication mode [md5|sha].\n\n###### `password`\n\nCleartext password for the user.\n\n###### `privacy`\n\nValid values: aes128, des\n\nPrivacy encryption method [aes128|des].\n\n###### `private_key`\n\nPrivate key in hexadecimal string.\n\n###### `engine_id`\n\nNecessary if the SNMP engine is encrypting data.\n\n##### Parameters\n\nThe following parameters are available in the `snmp_user` type.\n\n###### `name`\n\nnamevar\n\nThe name of the SNMP user.\n\n###### `localized_key`\n\nValid values: `true`, `false`\n\nIf true, password needs to be a hexadecimal value.\n\n###### `enforce_privacy`\n\nValid values: `true`, `false`\n\nIf true, message encryption is enforced.\n\n\n#### syslog_facility\n\nConfigure severity levels for global syslog facilities.\n\n\n##### Properties\n\nThe following properties are available in the `syslog_facility` type.\n\n###### `level`\n\nSyslog severity level to log.\n\n##### Parameters\n\nThe following parameters are available in the `syslog_facility` type.\n\n###### `name`\n\nnamevar\n\nGlobal facility to manage\n\n\n#### syslog_server\n\nConfigure a remote syslog server for logging.\n\n\n##### Properties\n\nThe following properties are available in the `syslog_server` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `port`\n\nPort number of remote syslog server.\n\n###### `severity_level`\n\nSyslog severity level to log.\n\n###### `vrf`\n\nInterface to send syslog data from, for example, \"management\".\n\n###### `source_interface`\n\nSource interface to send syslog data from, for example, \"ethernet 2/1\".\n\n##### Parameters\n\nThe following parameters are available in the `syslog_server` type.\n\n###### `name`\n\nnamevar\n\nThe hostname or address of the remote syslog server.\n\n\n#### syslog_settings\n\nConfigure global syslog settings.\n\n\n##### Properties\n\nThe following properties are available in the `syslog_settings` type.\n\n###### `enable`\n\nValid values: `true`, `false`.\n\nEnable or disable syslog logging [true|false].\n\n###### `console`\n\nConsole logging severity level [0-7] or 'unset'.\n\n###### `monitor`\n\nMonitor (terminal) logging severity level [0-7] or 'unset'.\n\n###### `source_interface`\n\nSource interface to send syslog data from, for example, \"ethernet 2/1\" (array of strings for multiple).\n\n###### `time_stamp_units`\n\nValid values: seconds, milliseconds.\n\nThe unit to log time values in.\n\n###### `vrf`\n\nThe VRF associated with source_interface (array of strings for multiple).\n\n###### `logfile_severity_level`\n\nLogfile severity level [0-7] or 'unset'\n\n###### `logfile_name`\n\nLogfile file name to use or 'unset'\n\n###### `logfile_size`\n\nLogging file maximum size or 'unset'\n\n###### `buffered_severity_level`\n\nBuffered log severity level [0-7] or 'unset'\n\n###### `buffered_size`\n\nLogging buffer size or 'unset'\n\n##### Parameters\n\nThe following parameters are available in the `syslog_settings` type.\n\n###### `name`\n\nnamevar\n\nResource name — not used to configure the device.\n\n\n#### tacacs\n\nEnable or disable tacacs functionality.\n\n\n##### Properties\n\nThe following properties are available in the `tacacs` type.\n\n###### `enable`\n\nValid values: `true`, `false`.\n\nEnable or disable tacacs functionality [true|false].\n\n##### Parameters\n\nThe following parameters are available in the `tacacs` type.\n\n###### `name`\n\nnamevar\n\nResource name — not used to manage the device.\n\n\n#### tacacs_global\n\nConfigure global tacacs settings.\n\n\n##### Properties\n\nThe following properties are available in the `tacacs_global` type.\n\n###### `enable`\n\nValid values: `true`, `false`.\n\nEnable or disable radius functionality [true|false].\n\n###### `key`\n\nEncryption key (plaintext or in hash form depending on key_format).\n\n###### `key_format`\n\nEncryption key format [0-7].\n\n###### `retransmit_count`\n\nHow many times to retransmit or 'unset' (Cisco Nexus only)\n\n###### `source_interface`\n\nThe source interface used for TACACS packets (array of strings for multiple).\n\n###### `timeout`\n\nNumber of seconds before the timeout period ends or 'unset' (Cisco Nexus only)\n\n###### `vrf`\n\nThe VRF associated with source_interface (array of strings for multiple).\n\n###### `directed_request`\n\nValid values: `true`, `false`.\n\nWhether to allow users to specify tacacs server to use with `@server'.\n\n##### Parameters\n\nThe following parameters are available in the `tacacs_global` type.\n\n###### `name`\n\nnamevar\n\nResource identifier — not used to manage the device.\n\n\n#### tacacs_server\n\nConfigure a tacacs server.\n\n\n##### Properties\n\nThe following properties are available in the `tacacs_server` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present.\n\n###### `hostname`\n\nThe hostname or address of the tacacs server.\n\n###### `single_connection`\n\nValid values: `true`, `false`\n\nEnable or disable session multiplexing [true|false].\n\n###### `vrf`\n\nSpecifies the VRF instance used to communicate with the server.\n\n###### `port`\n\nThe port of the tacacs server.\n\n###### `key`\n\nEncryption key (plaintext or in hash form depending on key_format).\n\n###### `key_format`\n\nEncryption key format [0-7].\n\n###### `timeout`\n\nNumber of seconds before the timeout period ends.\n\n###### `group`\n\nServer group associated with this server.\n\n##### Parameters\n\nThe following parameters are available in the `tacacs_server` type.\n\n###### `name`\n\nnamevar\n\nThe name of the tacacs server group.\n\n\n#### tacacs_server_group\n\nConfigure a tacacs server group.\n\n\n##### Properties\n\nThe following properties are available in the `tacacs_server_group` type.\n\n###### `ensure`\n\nValid values: present, absent.\n\nThe basic property that the resource should be in.\n\nDefault value: present\n\n###### `servers`\n\nArray of servers associated with this group.\n\n###### `source_interface`\n\nThe source interface used for TACACS packets.\n\n###### `vrf`\n\nThe VRF associated with source_interface.\n\n##### Parameters\n\nThe following parameters are available in the `tacacs_server_group` type.\n\n###### `name`\n\nnamevar\n\nThe name of the tacacs server group.\n\n#### vrf\n\nConfigure a VRF.\n\n##### Parameters\n\nThe following parameters are available in the `vrf` type.\n\n###### `name`\n\nnamevar\n\nThe name of the VRF.\n\n##### `route_distinguisher`\n\nOptional[String]\n\nAddress qualifier for the VRF, used to amintain uniqueness among identical routes.\n\n##### `route_target`\n\nOptional[Array[Tuple[Enum[\"export\", \"import\", \"both\"], String]]]\n\nAddress qualifier for the VRF, used to share routes between multiple VRFs.\n\n##### `import_map`\n\nOptional[String]\n\nAssociates a route map with the VRF.\n\n# Getting Started for Development\n\nThis section describes how to get started developing providers for the types\nimplemented in this module.\n\nFirst, configure a Ruby development environment.  There are multiple ways to\naccomplish this task including [rvm][rvm], [rbenv][rbenv], and\n[crossfader][crossfader].  This module has been developed using\n[crossfader][crossfader], a pre-packaged build of multiple Ruby versions\nspecifically designed for developing and extending Puppet.\n\n## Install Crossfader\n\nPlease follow the [Crossfader Quick Start][crossfader quick start] instructions\nto get started with crossfader on Mac OS X.\n\n## Set the ruby environment\n\nOnce crossfader is installed, select the version of Ruby currently shipping\nwith Puppet Enterprise.  At the time of writing this is currently Ruby\n1.9.3-p484.  Information on the current version of Ruby shipping with Puppet\nEnterprise is available at [Puppet Enterprise Software Components][pe\ncomponents].\n\n    $ eval \"$(crossfader --ruby 1.9.3-p484 --gemset netdev shellinit)\"\n\nOnce initialized, verify the environment is using the specified version of ruby\nwith the `gem env` command.\n\n    $ gem env\n    RubyGems Environment:\n      - RUBYGEMS VERSION: 1.8.23\n      - RUBY VERSION: 1.9.3 (2013-11-22 patchlevel 484) [x86_64-darwin13.0.0]\n      - INSTALLATION DIRECTORY: /opt/crossfader/versions/ruby/1.9.3-p484/gemsets/netdev/ruby/1.9.1\n      - RUBY EXECUTABLE: /opt/crossfader/versions/ruby/1.9.3-p484/bin/ruby\n      - EXECUTABLE DIRECTORY: /opt/crossfader/versions/ruby/1.9.3-p484/gemsets/netdev/ruby/1.9.1/bin\n      - RUBYGEMS PLATFORMS:\n        - ruby\n        - x86_64-darwin-13\n      - GEM PATHS:\n         - /opt/crossfader/versions/ruby/1.9.3-p484/gemsets/netdev/ruby/1.9.1\n         - /opt/crossfader/versions/ruby/1.9.3-p484/gemsets/global/ruby/1.9.1\n         - /opt/crossfader/versions/ruby/1.9.3-p484/lib/ruby/gems/1.9.1\n         - /Users/jeff/.gem/ruby/1.9.1\n      - GEM CONFIGURATION:\n         - :update_sources =\u003e true\n         - :verbose =\u003e true\n         - :benchmark =\u003e false\n         - :backtrace =\u003e false\n         - :bulk_threshold =\u003e 1000\n      - REMOTE SOURCES:\n         - http://rubygems.org/\n\n## Clone the Repository\n\nClone this repository into your local development workspace.\n\n    $ git clone https://github.com/puppetlabs/netdev_stdlib\n    Cloning into 'netdev_stdlib'...\n    remote: Counting objects: 595, done.\n    remote: Compressing objects: 100% (172/172), done.\n    remote: Total 595 (delta 264), reused 587 (delta 261)\n    Receiving objects: 100% (595/595), 76.83 KiB | 0 bytes/s, done.\n    Resolving deltas: 100% (264/264), done.\n    Checking connectivity... done.\n\n## Install dependencies\n\nThe types depend primarily on Puppet which itself has a set of dependencies.\nAll of these additional software components should be installed using bundler\nwhen developing the types and providers.\n\n    $ cd netdev_stdlib/\n    $ bundle install --path .bundle/gems/\n    Fetching gem metadata from https://rubygems.org/.........\n    Resolving dependencies...\n    Installing rake (10.1.1)\n    Installing CFPropertyList (2.2.8)\n    Installing ast (2.0.0)\n    Installing slop (3.6.0)\n    Installing parser (2.2.0.pre.4)\n    Installing astrolabe (1.3.0)\n    Installing timers (1.1.0)\n    Installing celluloid (0.15.2)\n    Installing coderay (1.1.0)\n    Installing diff-lcs (1.2.5)\n    Installing docile (1.1.5)\n    Installing facter (2.2.0)\n    Installing ffi (1.9.3)\n    Installing formatador (0.2.5)\n    Installing rb-fsevent (0.9.4)\n    Installing rb-inotify (0.9.5)\n    Installing listen (2.7.9)\n    Installing lumberjack (1.0.9)\n    Installing method_source (0.8.2)\n    Installing pry (0.10.1)\n    Installing thor (0.19.1)\n    Installing guard (2.6.1)\n    Installing rspec-core (2.13.1)\n    Installing rspec-expectations (2.13.0)\n    Installing rspec-mocks (2.13.1)\n    Installing rspec (2.13.0)\n    Installing guard-rspec (3.1.0)\n    Installing powerpack (0.0.9)\n    Installing rainbow (2.0.0)\n    Installing ruby-progressbar (1.5.1)\n    Installing rubocop (0.26.0)\n    Installing guard-rubocop (1.1.0)\n    Installing json_pure (1.8.1)\n    Installing hiera (1.3.4)\n    Installing metaclass (0.0.4)\n    Installing mocha (1.1.0)\n    Installing multi_json (1.10.1)\n    Installing yard (0.8.7.4)\n    Installing pry-doc (0.6.0)\n    Installing rgen (0.6.6)\n    Installing puppet (3.6.2)\n    Installing puppet-lint (1.0.1)\n    Installing puppet-syntax (1.3.0)\n    Installing rspec-puppet (1.0.1)\n    Installing puppetlabs_spec_helper (0.8.1)\n    Installing simplecov-html (0.8.0)\n    Installing simplecov (0.9.0)\n    Using bundler (1.3.6)\n    Your bundle is complete!\n    It was installed into ./.bundle/gems\n    bundle install --path .bundle/gems/  7.74s user 1.99s system 45% cpu 21.569 total\n\n## Run the spec tests\n\nBefore starting development of the types or providers, make sure the current\nbranch is known-good by automatically validating expected behavior against\nactual behavior.\n\n    $ bundle exec rspec spec/\n    .........................................\n    Finished in 2.43 seconds\n    1213 examples, 0 failures\n    Coverage report generated for Unit Tests to /netdev_stdlib/coverage/. 512 / 519 LOC (98.65%) covered.\n    bundle exec rspec spec  3.59s user 0.27s system 99% cpu 3.896 total\n\n## Test Driven Development\n\nIf the types are being changed, the spec tests may be automatically run in\nresponse to file system change events using guard.\n\n    $ bundle exec guard\n    16:52:13 - INFO - Guard is using Tmux to send notifications.\n    16:52:13 - INFO - Guard is using TerminalTitle to send notifications.\n    16:52:13 - INFO - Guard::RSpec is running\n    16:52:13 - INFO - Inspecting Ruby code style of all files\n    16:52:16 - INFO - Guard is now watching at '/netdev_stdlib'\n    [1] guard(main)\u003e\n\n# Implementing a provider\n\nFor a platform named `foo`, the following section describes how to implement a\nmodule containing providers for the `netdev_stdlib` types.\n\nThe basic process for implementing providers for these types are as follows.\nFirst, create a parent directory for use as the module directory.  This parent\ndirectory will contain the `netdev_stdlib` module and the `netdev_stdlib_foo`\nmodule.  For example, `/workspace/netdev/`.\n\nClone the `netdev_stdlib` into the module directory, for example\n`/workspace/netdev/netdev_stdlib` and install dependencies using bundler as\ndescribed in Getting Started for Development.\n\n## Generate the Provider Module\n\nWith a current working directory of the type module, generate the provider\nmodule using `puppet module generate`:\n\n    $ cd /workspace/netdev/netdev_stdlib/\n    $ bundle exec puppet module generate acme-netdev_stdlib_foo\n    We need to create a metadata.json file for this module.  Please answer the\n    following questions; if the question is not applicable to this module, feel free\n    to leave it blank.\n\n    Puppet uses Semantic Versioning (semver.org) to version modules.\n    What version is this module?  [0.1.0]\n    --\u003e 0.1.0\n\n    Who wrote this module?  [acme]\n    --\u003e acme\n\n    What license does this module code fall under?  [Apache 2.0]\n    --\u003e\n\n    How would you describe this module in a single sentence?\n    --\u003e Acme Foo platform providers for the Network Device Standard Library types\n\n    Where is this module's source code repository?\n    --\u003e https://github.com/acme/netdev_stdlib_foo\n\n    Where can others go to learn more about this module?  [https://github.com/acme/netdev_stdlib_foo]\n    --\u003e\n\n    Where can others go to file issues about this module?  [https://github.com/acme/netdev_stdlib_foo/issues]\n    --\u003e\n\n    ----------------------------------------\n    {\n      \"name\": \"acme-netdev_stdlib_foo\",\n      \"version\": \"0.1.0\",\n      \"author\": \"acme\",\n      \"summary\": \"Acme Foo platform providers for the Network Device Standard Library types\",\n      \"license\": \"Apache 2.0\",\n      \"source\": \"https://github.com/acme/netdev_stdlib_foo\",\n      \"project_page\": \"https://github.com/acme/netdev_stdlib_foo\",\n      \"issues_url\": \"https://github.com/acme/netdev_stdlib_foo/issues\",\n      \"dependencies\": [\n        {\n          \"name\": \"puppetlabs-stdlib\",\n          \"version_range\": \"\u003e= 1.0.0\"\n        }\n      ]\n    }\n    ----------------------------------------\n\n    About to generate this metadata; continue? [n/Y]\n\n    Notice: Generating module at /workspace/serious/src/modules/netdev/test/netdev_stdlib/acme-netdev_stdlib_foo...\n    Notice: Populating ERB templates...\n    Finished; module generated in acme-netdev_stdlib_foo.\n    acme-netdev_stdlib_foo/manifests\n    acme-netdev_stdlib_foo/manifests/init.pp\n    acme-netdev_stdlib_foo/metadata.json\n    acme-netdev_stdlib_foo/Rakefile\n    acme-netdev_stdlib_foo/README.md\n    acme-netdev_stdlib_foo/spec\n    acme-netdev_stdlib_foo/spec/classes\n    acme-netdev_stdlib_foo/spec/classes/init_spec.rb\n    acme-netdev_stdlib_foo/spec/spec_helper.rb\n    acme-netdev_stdlib_foo/tests\n    acme-netdev_stdlib_foo/tests/init.pp\n\nMove the skeleton into the module directory:\n\n    $ mv acme-netdev_stdlib_foo ../netdev_stdlib_foo\n    $ cd ../netdev_stdlib_foo\n\n## Express the dependencies\n\nThe provider module has the same dependencies as the type module and so it is\neasiest to simply copy the dependency information from the `netdev_stdlib`\ntype.\n\n    $ cp ../netdev_stdlib/{Gem,Guard}file .\n\nInstall the dependencies:\n\n    $ bundle install --path .bundle/gems/\n\n## Configure RSpec\n\nPuppet Providers are generally tested with RSpec.  Copy the spec helper, which\ninitializes RSpec for module testing.\n\n    $ cp ../netdev_stdlib/spec/spec_helper.rb spec/\n\nRemove the rspec-puppet generated example for a puppet class.\n\n    $ rm ./spec/classes/init_spec.rb\n\nTest that rspec runs:\n\n    $ bundle exec rspec spec/\n    No examples found.\n    Finished in 0.00004 seconds\n    0 examples, 0 failures\n\n## Mocking\n\nThe device API used by the provider should be modeled as a utility class in\n`PuppetX::NetDev::FooApi` class, located at `lib/puppet_x/net_dev/foo_api.rb`.\nInstance methods of this API class are suitable for mocking network based API\ncalls in the spec tests.  For REST API's the response data from the resource\nrequest should be serialized into a fixtures directory.  These fixtures are\ntherefore able to be updated as API responses are changed or added over time.\n\nFor more information on rspec, please see https://github.com/rspec/rspec\n\n# License\n\nCopyright 2014-2018 [Puppet, Inc.][puppet]\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License.  You may obtain a copy of the\nLicense at\n\n[http://www.apache.org/licenses/LICENSE-2.0][license]\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied.  See the License for the\nspecific language governing permissions and limitations under the License.\n\n[book]: http://shop.oreilly.com/product/0636920026860.do\n[license]: http://www.apache.org/licenses/LICENSE-2.0\n[travis]: https://travis-ci.org/puppetlabs/netdev_stdlib/builds\n[puppet]: https://puppet.com\n[types doc]: https://docs.puppetlabs.com/guides/custom_types.html\n[gary provider]: http://garylarizza.com/blog/2013/12/15/seriously-what-is-this-provider-doing/\n[crossfader]: http://github.com/puppetlabs/crossfader\n[crossfader quick start]: https://github.com/puppetlabs/crossfader#quick-start-install\n[rvm]: http://rvm.io/\n[rbenv]: https://github.com/sstephenson/rbenv\n[pe components]: https://docs.puppetlabs.com/pe/latest/install_what_and_where.html#puppet-enterprise-software-components\n[buildstatus]: https://travis-ci.org/puppetlabs/netdev_stdlib.svg?branch=master\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fnetdev_stdlib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpuppetlabs%2Fnetdev_stdlib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpuppetlabs%2Fnetdev_stdlib/lists"}