hyperglass supports collecting output from a generic HTTP endpoint. ## 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. | ### Example #### Basic The following example will send an HTTP POST request to `https://192.0.2/path/to/query/device` with HTTP basic authentication, and will not verify the SSL certificate. ```yaml filename="devices.yaml" copy devices: - name: New York, NY address: 192.0.2.1 http: path: /path/to/query/device method: POST verify_ssl: false basic_auth: username: you password: your password ``` Given the following hyperglass query: | Field | Value | | :------------- | :------------------ | | Query Target | `192.0.2.0/24` | | Query Location | `your_location` | | Query Type | `example_directive` | The body of the request will be: ```json { "query_target": "192.0.2.0/24", "query_location": "your_location", "query_type": "example_directive" } ``` #### Non-HTTPS Request The following example will send an HTTP GET request to `http://192.0.2.1/path/to/query/device`: ```yaml filename="devices.yaml" {6} copy devices: - name: New York, NY address: 192.0.2.1 http: path: /path/to/query/device scheme: http ``` #### Header Authentication The following example will send an HTTP GET request to `https://192.0.2.1/path/to/query/device` with an `Authorization` header: ```yaml filename="devices.yaml" {6-7} copy devices: - name: New York, NY address: 192.0.2.1 http: path: /path/to/query/device headers: Authorization: your special token ```