Each configured device may have the following parameters: | Parameter | Type | Default Value | Description | | :------------------ | :-------------- | :------------ | :---------------------------------------------------------------------------------------------------------------------------------------- | | `name` | String | | Display name of the device. | | `description` | String | | Description of the device, displayed as a subtle label. | | `avatar` | String | | Path to an avatar/logo image for this site. Used when [`web.location_display_mode`](configuration/config/web-ui.mdx) is set to `gallery`. | | `address` | String | | IPv4 address, IPv6 address, or hostname of the device. | | `group` | String | | Group name, used to visually group devices in the UI. | | `port` | Number | | TCP port on which to connect to the device. | | `platform` | String | | Device platform/OS. Must be a [supported platform](platforms.mdx). | | `structured_output` | Boolean | `true` | Disable structured output for a device that supports it. | | `directives` | List of Strings | | Enable referenced directives configured in the [directives config file](configuration/directives.mdx). | | `driver` | String | netmiko | Specify which driver to use for this device. Currently, only `netmiko` is supported. | | `driver_config` | Mapping | | Mapping/dict of options to pass to the connection driver. | | `attrs` | Mapping | | Mapping/dict of variables, as referenced in configured directives. | | `credential` | Mapping | | Mapping/dict of a [credential configuration](#credential-onfiguration). | | `http` | Mapping | | Mapping/dict of HTTP client options, if this device is connected via HTTP. | | `proxy` | Mapping | | Mapping/dict of SSH proxy to use for this device's requests. | ## Credential Configuration | Parameter | Type | Default Value | Description | | :-------------------- | :----- | :------------ | :----------------------------------------------------- | | `credential.username` | String | | Username to use for authentication to the device. | | `credential.password` | String | | Password to use for authentication to the device. | | `credential.key` | String | | Path to SSH key used for authentication to the device. | ## SSH Proxy Configuration | Parameter | Type | Default Value | Description | | :----------------- | :------ | :------------ | :---------------------------------------------------------------------- | | `proxy.address` | String | | IPv4 address, IPv6 address, or hostname of SSH proxy. | | `proxy.port` | Number | 22 | TCP port to use for connecting to the SSH proxy. | | `proxy.platform` | String | linux_ssh | Currently, only `linux_ssh` is supported. | | `proxy.credential` | Mapping | | Mapping/dict of a [credential configuration](#credential-onfiguration). | ## HTTP Configuration | Parameter | Type | Default Value | Description | | :---------------------- | :------ | :------------ | :--------------------------------------------------------------------------------------------------------------------- | | `http.attribute_map` | Mapping | | Mapping/dict of hyperglass query fields as keys, and hyperglass query field replacements as values. | | `http.basic_auth` | Mapping | | If basic authentication is required, provide a mapping/dict containing the basic authentication username and password. | | `http.body_format` | String | json | Body format, options are `json` `yaml` `xml` `text` | | `http.follow_redirects` | Boolean | `false` | Follow HTTP redirects from server. | | `http.headers` | Mapping | | Mapping/dict of http headers to append to requests. | | `http.method` | String | GET | HTTP method to use for requests. | | `http.path` | String | / | HTTP URI/Path. | | `http.query` | Mapping | | Mapping/Dict of URL Query Parameters. | | `http.retries` | Number | 0 | Number of retries to perform before request failure. | | `http.scheme` | String | https | HTTP schema, must be `http` or `https` | | `http.source` | String | | Request source IP address. | | `http.ssl_ca` | String | | Path to SSL CA certificate file for SSL validation. | | `http.ssl_client` | String | | Path to client SSL certificates for request. | | `http.timeout` | Number | 5 | Request timeout in seconds. | | `http.verify_ssl` | Boolean | `true` | If `false`, invalid certificates for HTTPS hosts will be ignored. | # Examples ## Simple ```yaml filename="devices.yaml" copy devices: - name: New York, NY address: 192.0.2.1 platform: cisco_ios credential: username: you password: your password - name: San Francisco, CA address: 192.0.2.2 platform: juniper credential: username: you password: your password ``` ## With Directives In this example, an additional directive `cisco-show-lldp-neighbors` is added to the built-in directives. ```yaml filename="devices.yaml" copy {8-9} devices: - name: New York, NY address: 192.0.2.1 platform: cisco_ios credential: username: you password: your password directives: - cisco-show-lldp-neighbors ``` ## Disable Built-in Directives In this example, _only_ the `cisco-show-lldp-neighbors` directive will be available. Built-in directives are disabled. ```yaml filename="devices.yaml" copy {8-10} devices: - name: New York, NY address: 192.0.2.1 platform: cisco_ios credential: username: you password: your password directives: - builtin: false - cisco-show-lldp-neighbors ``` ## Enable Specifc Built-in Directives In this example, only specified built-in directives are made available. ```yaml filename="devices.yaml" copy {8-9} devices: - name: New York, NY address: 192.0.2.1 platform: cisco_ios credential: username: you password: your password directives: - builtin: [bgp_route, traceroute] ``` ## With an SSH Proxy ```yaml filename="devices.yaml" copy {8-12} devices: - name: New York, NY address: 192.0.2.1 platform: cisco_ios credential: username: you password: your password proxy: address: 192.0.0.123 credential: username: your proxy's username password: your proxy's password ```