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`](/config-file-reference/web-ui) 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](/supported-platforms).                                                               |
| `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-file-reference).                      |
| `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"
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

```yaml filename="devices.yaml"
devices:
  - name: New York, NY
    address: 192.0.2.1
    platform: cisco_ios
    credential:
      username: you
      password: your password
    directives:
      - cisco-show-lldp-neighbors
```

## With an SSH Proxy

```yaml filename="devices.yaml"
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
```
