Marginalia MCP Server

openapi: 3.1.0 info: title: Honeycomb API x-logo: url: https://docs.honeycomb.io/images/2021-HC-Logo-RGB.svg href: https://www.honeycomb.io/ version: 1.0.0 license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html contact: email: support@honeycomb.io description: > The API allows programmatic management of many resources within Honeycomb. Please report any discrepancies with actual API behavior in <a href="https://docs.honeycomb.io/troubleshoot/community/">Pollinators Slack</a> or to <a href="https://support.honeycomb.io/">Honeycomb Support</a>. externalDocs: url: https://docs.honeycomb.io servers: - url: https://api.honeycomb.io - url: https://api.eu1.honeycomb.io tags: - name: Auth description: > API Keys have various scopes permissions and belong to a specific Team or Environment. Any valid Honeycomb ingest or configuration API Key will work with this endpoint. Learn more about [API keys](https://docs.honeycomb.io/get-started/best-practices/api-keys). These endpoints can be used to validate authentication for a key, to determine what authorizations have been granted to a key, and to determine the Team and Environment that a key belongs to. - name: Boards description: > Boards are a place to pin and save useful queries and graphs you want to retain for later reuse and reference. This API allows you to list, create, update, and delete Boards. ## Authorization The API key must have the **Manage Public Boards** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Burn Alerts description: > This feature is available as part of the [Honeycomb Pro and Enterprise plans](https://www.honeycomb.io/pricing/). Burn Alerts notify you when issues impact your SLO budget. Learn more about [Burn Alerts here](https://docs.honeycomb.io/notify/alert/slos/monitor/). This API allows you to list, create, update, and delete burn alerts. ## Authorization The API key must have the **Manage SLOs** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Columns description: > Columns are fields in the events you send to Honeycomb. This API allows you to list, create, update, and delete columns in a dataset. ## Authorization The API key must have the **Manage Queries and Columns** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Datasets description: > A Dataset represents a collection of related events that come from the same source, or are related to the same source. This API allows you to list, create, and update datasets. ## Authorization The API key must have the **Create Datasets** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Dataset Definitions description: > Dataset definitions describe the fields with special meaning in the Dataset. Refer to the [Dataset Definitions](https://docs.honeycomb.io/get-started/configure/datasets/definitions/) documentation for more information. **Honeycomb automatically creates these Dataset definition fields when the Dataset is created.** Manual creation of Dataset definitions is **not** needed. ## Authorization The API key must have the **Create Datasets** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Derived Columns description: > Derived columns allow you to run queries based on the value of an expression that is derived from the columns in an event. This API allows you to list, create, update, and delete derived columns in a dataset or across a whole environment, paralleling the behavior of the Schema tab within a Dataset's or Environment's Settings UI. ## Authorization The API key must have the **Manage Queries and Columns** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Events description: > The Events API endpoints are the lowest-level way to send Events to Honeycomb. **This should be your last resort!** If unsure where to start when instrumenting an application, read about how to [Send Data to Honeycomb](https://docs.honeycomb.io/send-data/). If you are building a tracing or metrics library, we recommend using [OpenTelemetry](https://docs.honeycomb.io/send-data/opentelemetry/). ## Authorization It is recommended that an Ingest API key is used for sending events. A Configuration API key will work, and must have the **Send Events** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Environments description: | This API allows you to list, create, and update, and delete Environments. - name: Key Management description: > This API allows you to list, create, update, and delete API Keys for a Team. - name: Kinesis Events description: > The Kinesis Events API endpoints allow Honeycomb to process streaming events from Amazon Kinesis. Refer to the [Honeycomb AWS integrations](https://docs.honeycomb.io/integrations/aws/how-aws-integrations-work/) documentation for more information. ## Authorization It is recommended that an Ingest API key is used for sending events. A Configuration API key will work, and must have the **Send Events** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Markers description: > Markers indicate points in time on graphs where interesting things happen, such as deploys or outages. This API allows you to list, create, update, and delete Markers. ## Authorization The API key must have the **Manage Markers** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Marker Settings description: > Marker Settings apply to groups of similar Markers. For example, "deploys" markers appear with the same color on a graph. This API allows you to list, create, update, and delete Marker Settings. ## Authorization The API key must have the **Manage Markers** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Queries description: > Queries in Honeycomb are specifications for queries, and are used to identify queries in other parts of the API - in particular: boards, triggers, and query annotations. This API allows you to create and get query objects. ## Authorization The API key must have the **Manage Queries and Columns** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Query Annotations description: > Query Annotations in Honeycomb allow you to associate names and descriptions to queries to add additional information in collaboration features. This API allows you to list, create, update, and delete Query Annotations. ## Authorization The API key must have the **Manage Queries and Columns** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Query Data description: > This feature is available as part of the [Honeycomb Enterprise plan](https://www.honeycomb.io/pricing/). Query Results are the aggregated data from a Query, similar to what is displayed in graphs or heatmaps within the Honeycomb UI. Receiving results from a Query is a three-step process: Create the Query (or Query Spec), which validates that the query parameters are valid. Creating a query does not actually run the query to get results. Run the query asynchronously by creating a Query Result referencing the Query’s ID. This returns a Query Result ID. Poll the query result endpoint (with the Query Result ID) until the data is ready. Note that many Query Results can be created from a single Query. This is particularly useful when using a relative time_range parameter in the Query. For example, a Query with `time_range: 7200` and no explicit `start_time` or `end_time` can be re-run over and over, with each resulting Query Result containing the most recent 2 hours of data. This is conceptually similar to clicking Run Query in the Honeycomb UI without changing any query parameters. **IMPORTANT API RESTRICTIONS:** To ensure the stability of Honeycomb systems, we have enabled the following API restrictions. These restrictions may change over time. * Query Results can only be created for events with timestamps within the past 7 days. * When creating a Query Result, the time ranges from the Query are truncated according to the following rules. For queries with a time range of: * less than or equal to 6 hours, results are truncated to the nearest 1 minute. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:28:00Z. * greater than 6 hours and less than or equal to 2 days, results are truncated to the nearest 5 minutes. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:25:00Z. * greater than 2 days and less than or equal to 7 days, results are truncated to the nearest 30 minutes. For example, a start/end time of 2021-04-22T05:28:12Z will be truncated to 2021-04-22T05:00:00Z. * Creating a Query Result is rate limited to 10 requests per minute. Status code 429 will be returned when rate limited. * Query Results cannot take longer than 10 seconds to run. ## Authorization The API key must have the **Manage Queries and Columns** and **Run Queries** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Recipients description: > Honeycomb Recipients allow you to define and manage the Recipients that will get notified by a Trigger or Burn Alert. The types of Recipients supported are: PagerDuty, Email, Webhook, Microsoft Teams, and Slack. ## Authorization The API key must have the **Manage Recipients** permission. Recipients are team-wide and NOT environment-specific. API Keys with the **Manage Recipients** permission can modify recipients used by ALL environments for a given team. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: SLOs description: > This feature is available as part of the [Honeycomb Pro and Enterprise plans](https://www.honeycomb.io/pricing). Honeycomb SLOs allow you to define and monitor Service Level Objectives (SLOs) for your organization. This API allows you to list, create, update, and delete SLO objects. ## Authorization The API key must have the **Manage SLOs** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Triggers description: > Triggers let you receive notifications when your data in Honeycomb crosses the thresholds that you configure. The graph on which to alert is as flexible as a Honeycomb query, which helps reduce false positives due to known errors.Triggers fire This API allows you to list, create, update, and delete Triggers. ## Authorization The API key must have the **Manage Triggers** permission. Learn more about [API keys here](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). - name: Errors description: > The Honeycomb API returns standardized error responses, as documented here. paths: /1/auth: get: security: - configuration_key: [] - ingest_key: [] summary: List Authorizations description: > Returns metadata about the API Key used to call the API. Note: a Honeycomb Classic API key will return an empty string for both of the `environment` values. tags: - Auth operationId: getAuth responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Auth' examples: environment: description: Environment API Key value: id: FL_xMM5LapLC type: configuration api_key_access: events: true markers: true triggers: false boards: false queries: false columns: false createDatasets: true slos: false recipients: false privateBoards: false environment: name: Production slug: production team: name: Honeycomb Docs slug: honeycomb-docs classic: description: Classic Environment API Key value: id: A3jatwoWSxA type: configuration api_key_access: events: true markers: true triggers: false boards: false queries: false columns: false createDatasets: false slos: false recipients: false privateBoards: false environment: name: '' slug: '' team: name: Honeycomb Docs slug: honeycomb-docs ingest: description: Ingest API Key value: id: hcxik_01j1824es7n4evcmv81cn392jb type: ingest api_key_access: createDatasets: true environment: name: Production slug: production team: name: Honeycomb Docs slug: honeycomb-docs '401': $ref: '#/components/responses/Unauthorized' default: $ref: '#/components/responses/GenericError' /2/auth: get: security: - bearerAuth: [] summary: List Authorizations V2 description: | Returns metadata about the Management API Key used to call the API. tags: - Auth operationId: getV2Auth responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/AuthV2Response' '401': $ref: '#/components/responses/Unauthorized' /1/boards: post: security: - configuration_key: [] summary: Create a Board description: | Create a Board comprised of one or more Queries. tags: - Boards operationId: createBoard requestBody: content: application/json: schema: $ref: '#/components/schemas/Board' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Board' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Boards description: > Retrieves a list of all non-secret Boards within an environment. **Note**: For Honeycomb Classic users, all boards within Classic will be returned. tags: - Boards operationId: listBoards responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Board' '401': $ref: '#/components/responses/Unauthorized' default: $ref: '#/components/responses/GenericError' /1/boards/{boardId}: parameters: - name: boardId description: The unique identifier (ID) of a Board. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Board description: Get a single Board by ID. tags: - Boards operationId: getBoard responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Board' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Board description: > Update a Board by specifying its ID and full details. **Note**: Queries can be added to, removed from, and re-ordered by updating the board itself. It is not possible to reference individual queries via the API. tags: - Boards operationId: updateBoard requestBody: content: application/json: schema: $ref: '#/components/schemas/Board' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Board' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Board description: Delete a public Board by specifying its ID. tags: - Boards operationId: deleteBoard responses: '204': description: Success - no Content '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/burn_alerts/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' post: security: - configuration_key: [] summary: Create a Burn Alert description: | Create a Burn Alert in a specified dataset against a specified SLO. tags: - Burn Alerts operationId: createBurnAlert requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateBurnAlertRequest' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/BurnAlertDetailResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Burn Alerts for an SLO description: > Get all burn alerts associated with the SLO specified in the `slo_id` query param. It is not currently possible to retrieve all burn alerts for a dataset, environment, or team. tags: - Burn Alerts operationId: listBurnAlertsBySlo parameters: - in: query name: slo_id schema: type: string description: >- For use with the list endpoint to retrieve all burn alerts for a specified SLO. required: true responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/BurnAlertListResponse' example: - id: fS7vfB81Wcy alert_type: exhaustion_time description: Use this runbook (link) if this alert fires. triggered: true exhaustion_minutes: 120 slo: id: 2LBq9LckbcA created_at: '2022-09-22T17:32:11Z' updated_at: '2022-10-22T17:32:11Z' - id: gT7wgC82Xcz alert_type: budget_rate description: Use this runbook (link) if this alert fires. triggered: true budget_rate_window_minutes: 60 budget_rate_decrease_threshold_per_million: 1000 slo: id: 2LBq9LckbcA created_at: '2022-09-22T17:32:11Z' updated_at: '2022-10-22T17:32:11Z' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' /1/burn_alerts/{datasetSlug}/{burnAlertId}: parameters: - $ref: '#/components/parameters/datasetSlug' - name: burnAlertId description: The unique identifier (ID) of a Burn Alert. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Burn Alert description: | Get a single Burn Alert by ID. tags: - Burn Alerts operationId: getBurnAlert responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/BurnAlertDetailResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Burn Alert description: | Update a Burn Alert by specifying its ID and full details. tags: - Burn Alerts operationId: updateBurnAlert requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateBurnAlertRequest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/BurnAlertDetailResponse' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Burn Alert description: Delete a Burn Alert by specifying its ID. tags: - Burn Alerts operationId: deleteBurnAlert responses: '204': description: Success - no content '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/datasets: post: security: - configuration_key: [] summary: Create a Dataset description: > Create a Dataset in the environment associated with your API key. If a Dataset already exists by that name (or slug), then the existing dataset will be returned. tags: - Datasets operationId: createDataset requestBody: description: > The dataset will be created within the environment associated with your API key. content: application/json: schema: $ref: '#/components/schemas/DatasetCreationPayload' required: true responses: '200': description: OK - Dataset already exists content: application/json: schema: $ref: '#/components/schemas/Dataset' '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Dataset' example: name: MyDataset! slug: mydataset- description: A nice description of my dataset expand_json_depth: 3 created_at: '2022-07-21T18:39:23Z' last_written_at: null regular_columns_count: 0 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' example: error: we could not create a dataset with that name '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Datasets description: > Lists all Datasets for an environment. **Note**: For Honeycomb Classic users, all datasets in Classic are returned. tags: - Datasets operationId: listDatasets responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Dataset' example: - name: my dataset! description: my dataset described! slug: my-dataset- expand_json_depth: 2 created_at: '2022-07-21T18:39:23Z' last_written_at: '2022-07-22T19:52:00Z' regular_columns_count: 12 - name: another dataset description: '' slug: another-dataset expand_json_depth: 0 created_at: '2022-07-21T18:39:23Z' last_written_at: '2022-07-22T19:52:00Z' regular_columns_count: 98 '401': $ref: '#/components/responses/Unauthorized' default: $ref: '#/components/responses/GenericError' /1/datasets/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' get: security: - configuration_key: [] summary: Get a Dataset description: | Get a single Dataset by slug. tags: - Datasets operationId: getDataset responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Dataset' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Dataset description: > Deletes the Dataset. This is an irreversible operation. It may take several minutes for the deletion process to complete. **WARNING**: This endpoint will allow anyone with an API key that has the manage dataset permission to delete any dataset in the environment (or any dataset in the whole team for Classic customers). Datasets with Deletion Protection enabled cannot be deleted. To delete a Dataset with Deletion Protection enabled, first disable Deletion Protection by updating the Dataset with `settings.delete_protected = false`. tags: - Datasets operationId: deleteDataset responses: '202': description: Deleted content: application/json: {} '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Dataset description: | Update a Dataset's settings. tags: - Datasets operationId: updateDataset requestBody: description: > Update a Dataset's settings. All fields must be specified, as omitting one will have the effect of reverting the setting to the default. content: application/json: schema: $ref: '#/components/schemas/DatasetUpdatePayload' example: expand_json_depth: 3 description: my updated description settings: delete_protected: false responses: '200': description: Updated content: application/json: schema: $ref: '#/components/schemas/Dataset' example: name: My Dataset! slug: my-dataset- description: my updated description settings: delete_protected: false expand_json_depth: 3 created_at: '2022-07-21T18:39:23Z' last_written_at: '2022-09-22T17:32:03Z' regular_columns_count: 100 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /1/batch/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' post: security: - configuration_key: [] - ingest_key: [] summary: Create Events description: > Supports batch creation of events. Dataset names are case insensitive. `POST` requests to "MyDatasET" will land in the same dataset as "mydataset". Names may contain URL-encoded spaces or other special characters, but not URL-encoded slashes. For example, "My%20Dataset" will show up in the UI as "My Dataset". The first event received for a dataset determines the casing of the displayed name. All subsequent variations in casing will use the originally specified case. tags: - Events operationId: createEvents parameters: - in: header name: Content-Encoding description: > Included when sending events in a file. Size limitations may be addressed by compressing request bodies with gzip or zstd compression. Be sure to set the Content-Encoding to gzip or zst. schema: type: string enum: - gzip - zst example: gzip requestBody: description: > The array should contain one or more JSON objects representing Events. Each Event contains its payload under the `data` key. Values of `time` and/or `samplerate` can be included as well. The JSON payload should have the structure: `[{ "data": { "key1": "value1", "key2": 2.0 } }, ... ]` Size limitations may be addressed by compressing request bodies with `gzip` or `zstd` compression. An empty `202` response indicates that the event has been queued for processing. content: application/octet-stream: schema: type: string format: binary application/json: schema: type: array items: $ref: '#/components/schemas/BatchEvent' example: - time: '2006-01-02T15:04:05.99Z' samplerate: 1 data: method: GET endpoint: /foo shard: users duration_ms: 32 - time: '2006-01-02T15:04:05.99Z' data: some_other_key: value duration_ms: 40 required: true responses: '200': description: Enqueued for processing content: application/json: schema: type: array items: type: object properties: status: type: number error: type: string example: - status: 202 - status: 400 error: Request body should not be empty. - status: 400 error: Event has too many columns. - status: 400 error: Request body is malformed and cannot be read. '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' examples: not-empty: description: The body is empty, or blank. value: error: Request body should not be empty. dataset-too-many-columns: description: The dataset has reached the maximum number of columns. value: error: Dataset has too many columns. malformed-request: description: The API failed to decode the body as JSON. value: error: Request body is malformed and cannot be read. too-large: description: The body is too large. value: error: Request body is too large. '401': $ref: '#/components/responses/Unauthorized' '403': description: Dropped due to administrative throttling content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Event dropped due to administrative throttling '404': $ref: '#/components/responses/NotFound' '429': description: Dropped due to rate limiting content: application/json: schema: $ref: '#/components/schemas/Error' examples: rate-limiting: value: error: Request dropped due to rate limiting. deny-list: value: error: Event dropped due to administrative denylist /1/dataset_definitions/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' patch: security: - configuration_key: [] summary: Set or Update Dataset Definitions description: > Set or update one or more definitions for a Dataset. **Note**: While the PATCH payload can include the `column_type`, Honeycomb does not use this field when updating Dataset Definitions. tags: - Dataset Definitions operationId: patchDatasetDefinitions requestBody: description: > The PATCH payload takes a map of Dataset definition type to Dataset definition. Fields not defined in the request are not modified on the server. **Note**: In order to **CLEAR** a column of a Dataset definition set the column’s name field to an empty string. content: application/json: schema: $ref: '#/components/schemas/DatasetDefinitions' examples: setting: description: Set the duration_ms definition. value: duration_ms: name: duration_we_send column_type: derived_column clearing: description: Clear the definitions. value: error: name: '' link_trace_id: name: '' required: true responses: '200': description: Dataset Definitions have been updated content: application/json: schema: $ref: '#/components/schemas/DatasetDefinitions' example: duration_ms: name: duration_ms column_type: column error: null name: null parent_id: null route: null service_name: null span_id: name: my_span_id column_type: column span_kind: null annotation_type: null link_trace_id: null link_span_id: null status: null trace_id: null user: null log_severity: null log_message: null '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/DetailedError' example: status: 400 type: https://api.honeycomb.io/problems/unparseable title: The request body could not be parsed. detail: could not parse request body error: could not parse request body '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': description: 422 Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/Error' example: error: 'The following columns were not found: duration_we_send' get: security: - configuration_key: [] summary: Get all Dataset Definitions description: > Get all definitions for a Dataset. The response returns an object with a Dataset Definition for each set Dataset Definition type. tags: - Dataset Definitions operationId: listDatasetDefinitions responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DatasetDefinitions' example: duration_ms: name: duration_ms column_type: column error: null name: null parent_id: null route: null service_name: null span_id: name: my_span_id column_type: column span_kind: null annotation_type: null link_trace_id: null link_span_id: null status: null trace_id: null user: null log_severity: null log_message: null '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /1/events/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' post: security: - configuration_key: [] - ingest_key: [] summary: Create an Event description: > Using this endpoint for anything more than testing is highly discouraged. Sending events in batches will be much more efficient and should be preferred if at all possible. tags: - Events operationId: createEvent parameters: - in: header name: X-Honeycomb-Event-Time description: The Event's timestamp. Optional. Defaults to server time. schema: type: integer - in: header name: X-Honeycomb-Samplerate description: Optional. Defaults to 1. schema: type: integer requestBody: description: > The request body is limited to raw (potentially compressed) size of 100KB. The maximum number of distinct columns (fields) allowed in an event is `2000`. content: application/json: schema: $ref: '#/components/schemas/Event' example: method: GET endpoint: /foo shard: users duration_ms: 32 required: true responses: '200': description: Enqueued for processing '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' examples: not-empty: description: The body is empty, or blank. value: error: Request body should not be empty. dataset-too-many-columns: description: The dataset has reached the maximum number of columns. value: error: Dataset has too many columns. events-too-many-columns: description: The event has reached the maximum number of columns. value: error: Event has too many columns. malformed-request: description: The API failed to decode the body as JSON. value: error: Request body is malformed and cannot be read. too-large: description: The body is too large. value: error: Request body is too large. '401': $ref: '#/components/responses/Unauthorized' '403': description: Dropped due to administrative throttling content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Event dropped due to administrative throttling '404': $ref: '#/components/responses/NotFound' '429': description: Dropped due to rate limiting content: application/json: schema: $ref: '#/components/schemas/Error' examples: rate-limiting: value: error: Request dropped due to rate limiting. deny-list: value: error: Event dropped due to administrative denylist /1/kinesis_events/{datasetSlug}: parameters: - in: header name: X-Amz-Firehose-Request-Id description: | AWS Request ID associated with the Kinesis Firehose. schema: type: string required: true example: 33658b45-a8f1-4007-92e8-f601ae33db14 - $ref: '#/components/parameters/datasetSlug' post: summary: Create Kinesis Events description: > This endpoint processes events and metrics coming from AWS through Kinesis Firehose. tags: - Kinesis Events operationId: createKinesisEvents security: - firehose_access_key: [] requestBody: description: > The request body expected from Amazon Kinesis Firehose. Events and metrics have the same shape but the base64 encoded data blob for metrics is expected to be Protowire-encoded as well. CloudWatch Logs data coming through Amazon Kinesis Firehose is expected to have a gzip Content-Encoding. content: application/json: schema: $ref: '#/components/schemas/KinesisEvent' required: true responses: '200': description: Events queued for processing content: application/json: schema: $ref: '#/components/schemas/KinesisResponse' '401': $ref: '#/components/responses/Unauthorized' default: $ref: '#/components/responses/GenericError' /1/markers/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Marker description: > Create a Marker in the specified dataset. To create an environment marker, use the `__all__` keyword and an API key associated with the desired environment. tags: - Markers operationId: createMarker requestBody: description: | The marker body can include as many of the Marker fields as desired. content: application/json: schema: $ref: '#/components/schemas/Marker' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List All Markers description: | Lists all Markers for a dataset. tags: - Markers operationId: getMarker responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Marker' example: - created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 - created_at: '2016-08-14T05:39:42Z' updated_at: '2016-08-14T05:39:42Z' start_time: 1471040808 message: 'frontend deploy #123' type: deploy id: c2b52fa0 '401': $ref: '#/components/responses/Unauthorized' default: $ref: '#/components/responses/GenericError' /1/markers/{datasetSlug}/{markerId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: markerId description: The unique identifier (ID) of a Marker. in: path required: true schema: type: string put: security: - configuration_key: [] summary: Update a Marker description: > Update a Marker in the specified dataset. To update an environment marker, use the `__all__` keyword and an API key associated with the desired environment. tags: - Markers operationId: updateMarker requestBody: description: > If an existing field is not included in the payload, it will be erased. content: application/json: schema: $ref: '#/components/schemas/Marker' required: true responses: '200': description: Updated content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Marker tags: - Markers operationId: deleteMarker responses: '200': description: | Success The deleted Marker will be in the body of the response. content: application/json: schema: $ref: '#/components/schemas/Marker' example: created_at: '2016-08-13T05:39:42Z' updated_at: '2016-08-13T05:39:42Z' start_time: 1471040808 message: 'backend deploy #123' type: deploy id: d1c84ec0 '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/marker_settings/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Marker Setting tags: - Marker Settings operationId: createMarkerSetting requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' required: true responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' get: security: - configuration_key: [] summary: Get a Marker Setting tags: - Marker Settings operationId: listMarkerSettings responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/MarkerSetting' '404': $ref: '#/components/responses/NotFound' /1/marker_settings/{datasetSlug}/{id}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: id description: The unique identifier (ID) of a marker setting. in: path required: true schema: type: string put: security: - configuration_key: [] summary: Update a Marker Setting description: | A marker setting's `type` may not be changed after creation. tags: - Marker Settings operationId: updateMarkerSettings requestBody: content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' example: type: deploy color: '#1fa297' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/MarkerSetting' example: type: deploy color: '#1fa297' id: gwAHiE5TS4j created_at: '2022-09-15T05:39:42Z' updated_at: '2022-12-20T08:10:05Z' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' delete: security: - configuration_key: [] summary: Delete a Marker Setting tags: - Marker Settings operationId: deleteMarkerSettings responses: '204': description: Success '404': $ref: '#/components/responses/NotFound' /1/queries/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Query description: > Create a query from a specification. DOES NOT run the query to retrieve results. tags: - Queries operationId: createQuery requestBody: content: application/json: schema: $ref: '#/components/schemas/Query' examples: Simple Query: value: calculations: - op: COUNT orders: - op: COUNT order: descending time_range: 7200 Query With Filter and Group By: value: calculations: - op: COUNT breakdowns: - user_agent filters: - op: '>=' column: response.status_code value: 400 orders: - op: COUNT order: descending time_range: 7200 required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Query' examples: Simple Query: value: id: abc3419d calculations: - op: COUNT orders: - op: COUNT order: descending time_range: 7200 Query With Filter and Group By: value: id: xyz321a calculations: - op: COUNT breakdowns: - user_agent filters: - op: '>=' column: response.status_code value: 400 orders: - op: COUNT order: descending time_range: 7200 '400': $ref: '#/components/responses/BadRequest' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' /1/queries/{datasetSlug}/{queryId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: queryId description: The unique identifier (ID) of a query. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Query description: | Retrieve a query by its ID. tags: - Queries operationId: getQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Query' example: id: abc3419d breakdowns: - user_agent calculations: - op: COUNT orders: - op: COUNT order: descending limit: 10 time_range: 7200 end_time: 1676467828 '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' /1/query_annotations/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Query Annotation description: | Create a Query Annotation for the specified query ID. tags: - Query Annotations operationId: createQueryAnnotation requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryAnnotation' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/QueryAnnotation' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' examples: invalid-query-id: description: The query ID is invalid. value: error: Query ID included in body is invalid '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: List Query Annotations description: | List all Query Annotations in the specified dataset. tags: - Query Annotations operationId: listQueryAnnotations responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/QueryAnnotation' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/query_annotations/{datasetSlug}/{queryAnnotationId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: queryAnnotationId description: The unique identifier (ID) of the annotation. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Query Annotation description: | Get a Query Annotation by its ID. tags: - Query Annotations operationId: getQueryAnnotation responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/QueryAnnotation' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update a Query Annotation description: > Update a Query Annotation by specifying its ID. The Query ID associated with the Query Annotation cannot be updated. Partial updates are not supported. tags: - Query Annotations operationId: updateQueryAnnotation requestBody: content: application/json: schema: $ref: '#/components/schemas/QueryAnnotation' example: name: My Updated Annotation description: A nice description of My Update Annotation query_id: mabAMpSPDjH id: sGUnkBHgRFN created_at: '2022-10-26T21:36:04Z' updated_at: '2022-12-16T10:44:08Z' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/QueryAnnotation' example: name: My Updated Annotation description: A nice description of My Update Annotation query_id: mabAMpSPDjH '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' examples: update-includes-bad-id: description: >- The ID in the URL and the ID in the request body do not match. value: error: Query annotation id included in body does not match URL invalid-query-id: description: The query ID is invalid. value: error: Query id included in body is invalid cannot-update-query-id: description: The query ID cannot be updated. value: error: queries in annotations cannot be changed query-not-in-dataset: description: The query ID does not exist in the specified dataset. value: error: Query is not in the dataset '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete a Query Annotation description: | Delete a Query Annotation by specifying its ID. tags: - Query Annotations operationId: deleteQueryAnnotation responses: '204': description: Success - no content '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/query_results/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Query Result description: > Kick off processing of a Query to then get back the Query Results. Once the Query Result has been created, the query will be run asynchronously, allowing the result data to be fetched from the GET query result endpoint. Only the last 7 days of data can be queried. Any queries with a `start_time`, `end_time`, or `time_range` older than last 7 days will result in a `400` error response. tags: - Query Data operationId: createQueryResult requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateQueryResultRequest' required: true responses: '201': description: Created headers: Location: schema: type: string description: >- The Location header will contain the URL where the results can be fetched. example: >- https://api.honeycomb.io/1/query_results/test-via-curl/HprJhV1fYyr content: application/json: schema: $ref: '#/components/schemas/QueryResult' examples: Simple Query: value: query: calculations: - op: COUNT orders: - op: COUNT order: descending limit: 10000 time_range: 7200 complete: false id: dfg456 links: query_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456 graph_image_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456/snapshot Query with Filter and Group By: value: query: calculations: - op: COUNT breakdowns: - user_agent filters: - op: '>=' column: response.status_code value: 400 orders: - op: COUNT order: descending limit: 10000 time_range: 7200 complete: false id: hij678a links: query_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/hij678a graph_image_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/hij678a/snapshot '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' /1/query_results/{datasetSlug}/{queryResultId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: queryResultId description: The unique identifier (ID) of the query result. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get Query Result description: > Get the Query Result details for a specific Query Result ID. This endpoint is used to fetch the results of a query that had previously been created. It is recommended to follow the Location header included in the Create Query Result output, but the URL can also be constructed manually with the &lt;query-result-id&gt;. tags: - Query Data operationId: getQueryResult responses: '200': description: Success headers: Last-Modified: schema: type: string description: >- The Last-Modified response HTTP header contains a date and time when the origin server believes the resource was last modified. example: Mon, 02 Jan 2006 15:04:05 GMT Cache-Control: schema: type: string description: >- The max-age=N response directive indicates that the response remains fresh until N seconds after the response is generated. example: private, max-age=86400 content: application/json: schema: $ref: '#/components/schemas/QueryResultDetails' examples: Simple Query: value: query: calculations: - op: COUNT orders: - op: COUNT order: descending limit: 10000 time_range: 7200 complete: true id: dfg456 data: series: [] results: - data: COUNT: 20769 links: query_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456 graph_image_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/dfg456/snapshot Query with Filter and Group By: value: query: calculations: - op: COUNT breakdowns: - user_agent filters: - op: '>=' column: response.status_code value: 400 orders: - op: COUNT order: descending limit: 10000 time_range: 7200 complete: false id: hij678a data: series: [] results: - data: COUNT: 2728 user_agent: Mozilla/5.0 (X11; Linux x86_64) - data: COUNT: 4 user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) - data: COUNT: 7 user_agent: >- Mozilla/5.0 (Linux; Android 7.1.2; AFTMM Build/NS6265; wv) links: query_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/hij678a graph_image_url: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/hij678a/snapshot '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/recipients: post: security: - configuration_key: [] summary: Create a Recipient description: > Unlike many resources, Recipients are not linked to a specific Environment or Dataset. The Recipient will be created for the Team associated with your API key. The `details` fields will vary depending on the `type` of Recipient. Use the drop-down to view the specific fields for each `type` value. Before Slack Recipients can be created, the Slack OAuth flow in the Integration Center must be completed. tags: - Recipients operationId: createRecipient requestBody: content: application/json: schema: $ref: '#/components/schemas/Recipient' required: true responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipient' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationFailed' get: security: - configuration_key: [] summary: List all Recipients description: | Retrieve all recipients for a team. tags: - Recipients operationId: listRecipients responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/Recipient' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: error: unknown API key - check your credentials /1/recipients/{recipientId}: parameters: - $ref: '#/components/parameters/recipientId' get: security: - configuration_key: [] summary: Get a single Recipient description: | Retrieve a Recipient by recipient ID. tags: - Recipients operationId: getRecipient responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipient' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: security: - configuration_key: [] summary: Update a Recipient description: > Update a Recipient by specifying the recipient ID and full recipient details. (Partial PUT is not supported.) Updates to the Recipient Type is not supported. For example, changing an existing Recipient from PagerDuty to Email is not allowed. **Important**: Modifying an existing recipient will change the destination of all triggers/burn alerts that use that recipient. tags: - Recipients operationId: updateRecipient requestBody: content: application/json: schema: $ref: '#/components/schemas/Recipient' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Recipient' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/ValidationFailed' delete: security: - configuration_key: [] summary: Delete a Recipient description: > Delete a recipient by specifying the recipient ID. A Recipient can only be deleted if it is NOT in use by any Triggers or Burn Alerts associated to the team. tags: - Recipients operationId: deleteRecipient responses: '204': description: Success - no content '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: error: unknown API key - check your credentials '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /1/slos/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' post: security: - configuration_key: [] summary: Create an SLO description: | Create an SLO on the provided dataset tags: - SLOs operationId: createSlo requestBody: content: application/json: schema: $ref: '#/components/schemas/SLO' required: true responses: '201': description: Success - SLO created content: application/json: schema: $ref: '#/components/schemas/SLO' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' get: security: - configuration_key: [] summary: Get all SLOs description: Get all SLOs for a dataset tags: - SLOs operationId: listSlos responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/SLO' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/slos/{datasetSlug}/{sloId}: parameters: - $ref: '#/components/parameters/datasetSlug' - name: sloId description: Unique identifier (ID) of the SLO. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get an SLO description: | Get an SLO by ID. tags: - SLOs operationId: getSlo parameters: - in: query name: detailed schema: type: boolean description: > Allows SLO reporting data (`budget_remaining` and `compliance`) to be returned when retrieving a single SLO. This feature is available as part of the [Honeycomb Enterprise plan](https://www.honeycomb.io/pricing/). required: false allowEmptyValue: true example: '' responses: '200': description: Success content: application/json: schema: anyOf: - $ref: '#/components/schemas/SLO' - $ref: '#/components/schemas/SLODetailedResponse' examples: get-slo: description: Get an SLO by ID value: id: bZ1aRHAUsjG name: My SLO description: My SLO description sli: alias: my-sli time_period_days: 30 target_per_million: 989900 reset_at: '2022-10-15T13:53:11Z' created_at: '2022-09-15T05:39:42Z' updated_at: '2022-12-20T08:10:05Z' get-slo-detailed: description: Get SLO by ID with detailed response value: id: bZ1aRHAUsjG name: My SLO description: My SLO description sli: alias: my-sli time_period_days: 30 target_per_million: 989900 compliance: 95.39 budget_remaining: 7.73 reset_at: '2022-10-15T13:53:11Z' created_at: '2022-09-15T05:39:42Z' updated_at: '2022-12-20T08:10:05Z' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' put: security: - configuration_key: [] summary: Update an SLO description: | Update an SLO by specifying its ID and full SLO details. tags: - SLOs operationId: updateSlo requestBody: description: | Partial updates are not supported. content: application/json: schema: $ref: '#/components/schemas/SLO' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/SLO' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' default: $ref: '#/components/responses/GenericError' delete: security: - configuration_key: [] summary: Delete an SLO description: | Delete an SLO by specifying its ID. tags: - SLOs operationId: deleteSlo responses: '204': description: Success - no content '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/triggers/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' get: security: - configuration_key: [] summary: List All Triggers description: | List all triggers on the provided dataset. tags: - Triggers operationId: listTriggers responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/TriggerResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' post: security: - configuration_key: [] summary: Create a Trigger description: | Create a trigger on the provided dataset. tags: - Triggers operationId: createTrigger requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateTriggerRequest' required: true responses: '201': description: Success - trigger created headers: Location: schema: type: string description: Relative path to fetch this trigger via API. content: application/json: schema: $ref: '#/components/schemas/TriggerResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '413': $ref: '#/components/responses/PayloadTooLarge' '422': $ref: '#/components/responses/UnprocessableEntity' /1/triggers/{datasetSlug}/{triggerId}: parameters: - $ref: '#/components/parameters/datasetSlug' - name: triggerId description: The unique identifier (ID) of a Trigger. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Trigger description: | Fetch details for a single Trigger by Trigger ID. tags: - Triggers operationId: getTrigger responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/TriggerResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: security: - configuration_key: [] summary: Update a Trigger description: > Update a trigger by specifying the trigger ID and the same fields used when creating a new trigger. tags: - Triggers operationId: updateTrigger requestBody: content: application/json: schema: $ref: '#/components/schemas/TriggerResponse' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/TriggerResponse' '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/UnprocessableEntity' delete: security: - configuration_key: [] summary: Delete a Trigger description: > Delete a trigger by specifying the trigger ID. The body of the DELETE request should be empty. tags: - Triggers operationId: deleteTrigger responses: '204': description: Success - no content '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /1/recipients/{recipientId}/triggers: parameters: - $ref: '#/components/parameters/recipientId' get: security: - configuration_key: [] summary: Get Triggers Associated with a Recipient description: > List all triggers that will alert a given Recipient. **Important:** This request will return all Triggers associated with the specific Recipient across your entire Honeycomb team rather than being scoped to a dataset or environment. tags: - Triggers operationId: listTriggersWithRecipient responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/TriggerResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' default: $ref: '#/components/responses/GenericError' /1/derived_columns/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' post: security: - configuration_key: [] summary: Create a Derived Column description: > Create a derived column. Derived columns allow you to run queries based on the value of an expression that is derived from the columns in an event. tags: - Derived Columns operationId: createDerivedColumn requestBody: content: application/json: schema: $ref: '#/components/schemas/DerivedColumn' required: true responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/DerivedColumn' example: id: yUheCUmgZ8p alias: one description: just one expression: INT(1) created_at: '2022-07-26T22:38:04Z' updated_at: '2022-11-16T17:34:01Z' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' get: security: - configuration_key: [] summary: List all Derived Columns description: >- Get all the Derived Columns in a dataset or environment. With the `?alias=X` query parameter, can return a single derived column by its `alias`. tags: - Derived Columns operationId: listDerivedColumns parameters: - name: alias description: The derived column `alias`. in: query schema: type: string responses: '200': description: > When listing all columns, an array of DerivedColumn objects will be returned. When using `key_name`, will return a single DerivedColumn object if found. content: application/json: schema: oneOf: - $ref: '#/components/schemas/DerivedColumnList' - $ref: '#/components/schemas/DerivedColumn' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /1/derived_columns/{datasetSlug}/{derivedColumnId}: parameters: - $ref: '#/components/parameters/datasetSlugOrAll' - name: derivedColumnId description: Unique identifier (ID) of a derived column. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Derived Column tags: - Derived Columns operationId: getDerivedColumn responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DerivedColumn' example: id: yUheCUmgZ8p alias: one description: just one expression: INT(1) created_at: '2022-07-26T22:38:04Z' updated_at: '2022-11-16T17:34:01Z' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: security: - configuration_key: [] summary: Update a Derived Column description: | Update a derived column. tags: - Derived Columns operationId: updateDerivedColumn requestBody: content: application/json: schema: $ref: '#/components/schemas/DerivedColumn' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/DerivedColumn' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' delete: security: - configuration_key: [] summary: Delete a Derived Column description: > Delete a derived column. **Note**: A Derived Column used by a SLO, Trigger, or Board cannot be deleted without removing or modifying the SLO, Trigger, or Board first. tags: - Derived Columns operationId: deleteDerivedColumn responses: '204': description: Success - no content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /1/columns/{datasetSlug}: parameters: - $ref: '#/components/parameters/datasetSlug' post: security: - configuration_key: [] summary: Create a Column description: | Create a column by providing corresponding details for that type. tags: - Columns operationId: createColumn requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateColumn' required: true responses: '201': description: Success content: application/json: schema: $ref: '#/components/schemas/Column' example: id: yUheCUmgZ8p key_name: my_column hidden: false description: An integer column type: integer last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Key name cannot be blank '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '422': $ref: '#/components/responses/UnprocessableEntity' get: security: - configuration_key: [] summary: List all Columns description: Get all the Columns in a dataset tags: - Columns operationId: listColumns parameters: - name: key_name description: the column key name in: query schema: type: string responses: '200': description: > When listing all columns, an array of Column objects will be returned. When using `key_name`, will return a single Column object if found. content: application/json: schema: oneOf: - $ref: '#/components/schemas/ColumnList' - $ref: '#/components/schemas/Column' examples: list-of-columns: description: Lists all columns. value: - id: yUheCUmgZ8p key_name: my_column hidden: false description: '' type: integer last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' - id: yUheCUmgZ8q key_name: other_column hidden: false description: '' type: string last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' get-column-by-key-name: description: Get back column details for a key name value: id: yUheCUmgZ8p key_name: my_column hidden: false description: '' type: integer last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /1/columns/{datasetSlug}/{columnId}: parameters: - $ref: '#/components/parameters/datasetSlug' - name: columnId description: Unique identifier (ID) of a column. in: path required: true schema: type: string get: security: - configuration_key: [] summary: Get a Column tags: - Columns operationId: getColumn responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Column' example: id: yUheCUmgZ8p key_name: my_column hidden: false description: '' type: integer last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: error: >- The id provided in the URL is malformed - we expected a 12-char base58-safe string. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: security: - configuration_key: [] summary: Update a Column description: | Update a column tags: - Columns operationId: updateColumn requestBody: content: application/json: schema: $ref: '#/components/schemas/Column' required: true responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Column' example: id: yUheCUmgZ8p key_name: my_column hidden: false description: '' type: string last_written: '2022-07-26T22:38:05Z' created_at: '2022-07-26T22:38:04Z' updated_at: '2022-07-26T22:38:04Z' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Key name cannot be blank '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' delete: security: - configuration_key: [] summary: Delete a Column description: > Delete a column. **Note**: Deleted columns are no longer queryable, but data in existing permalinks (query results and trace views) will remain stored and available at those links. tags: - Columns operationId: deleteColumn responses: '204': description: Success - no content '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' /2/teams/{teamSlug}/api-keys: parameters: - $ref: '#/components/parameters/teamSlug' get: security: - bearerAuth: - api-keys:read tags: - Key Management summary: List all API Keys operationId: listApiKeys parameters: - $ref: '#/components/parameters/PaginationCursor' - $ref: '#/components/parameters/PaginationSize' responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyListResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' post: security: - bearerAuth: - api-keys:write tags: - Key Management summary: Create an API Key description: > This creates an API Key, which will return the API Key components in the response. The Key ID will be found at `data.id` and the Key Secret will be found at `data.attributes.secret`. For security reasons the Key Secret will only be available during creation so make sure to save it. To use a newly-created Ingest Key it should be passed in the `X-Honeycomb-Team` header with the API Key's ID and secret concatenated (and with no separator). For example, `X-Honeycomb-Team: hcxik_1234567890123456789012345612345678901234567890123456789012` Check out our [best practices for API Keys](https://docs.honeycomb.io/get-started/best-practices/api-keys/#ingest-keys). operationId: createApiKey requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyCreateRequest' responses: '201': description: Created headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyCreateResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '413': $ref: '#/components/responses/PayloadTooLarge' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' /2/teams/{teamSlug}/api-keys/{ID}: parameters: - $ref: '#/components/parameters/teamSlug' - $ref: '#/components/parameters/ID' get: security: - bearerAuth: - api-keys:read tags: - Key Management summary: Get an API Key operationId: getApiKey responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' patch: security: - bearerAuth: - api-keys:write tags: - Key Management summary: Update an API Key operationId: updateApiKey requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyUpdateRequest' responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/ApiKeyResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '413': $ref: '#/components/responses/PayloadTooLarge' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' delete: security: - bearerAuth: - api-keys:write tags: - Key Management summary: Delete an API Key description: >- This deletes and immediately deactivates the API Key. This is an irreversible operation. operationId: deleteApiKey responses: '204': description: No Content headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' /2/teams/{teamSlug}/environments: parameters: - $ref: '#/components/parameters/teamSlug' get: security: - bearerAuth: - environments:read tags: - Environments summary: List all Environments operationId: listEnvironments parameters: - $ref: '#/components/parameters/PaginationCursor' - $ref: '#/components/parameters/PaginationSize' responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/EnvironmentListResponse' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' post: security: - bearerAuth: - environments:write tags: - Environments summary: Create an Environment operationId: createEnvironment requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/CreateEnvironmentRequest' responses: '201': description: Created headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/EnvironmentResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '413': $ref: '#/components/responses/PayloadTooLarge' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' /2/teams/{teamSlug}/environments/{ID}: parameters: - $ref: '#/components/parameters/teamSlug' - $ref: '#/components/parameters/ID' get: security: - bearerAuth: - environments:read tags: - Environments summary: Get an Environment operationId: getEnvironment responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/EnvironmentResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' patch: security: - bearerAuth: - environments:write tags: - Environments summary: Update an Environment operationId: updateEnvironment requestBody: required: true content: application/vnd.api+json: schema: $ref: '#/components/schemas/UpdateEnvironmentRequest' responses: '200': description: Success headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' content: application/vnd.api+json: schema: $ref: '#/components/schemas/EnvironmentResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '413': $ref: '#/components/responses/PayloadTooLarge' '415': $ref: '#/components/responses/UnsupportedMediaType' '422': $ref: '#/components/responses/ValidationFailed' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' delete: security: - bearerAuth: - environments:write tags: - Environments summary: Delete an Environment description: > This deletes and immediately deactivates the Environment. This is an irreversible operation. Environments with Deletion Protection enabled cannot be deleted. To delete an Environment with Deletion Protection enabled, first disable Deletion Protection by updating the Environment with `settings.delete_protected = false`. operationId: deleteEnvironment responses: '204': description: No Content headers: Ratelimit: $ref: '#/components/headers/RateLimit' RateLimitPolicy: $ref: '#/components/headers/RateLimitPolicy' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '409': $ref: '#/components/responses/Conflict' '429': $ref: '#/components/responses/RateLimited' '500': $ref: '#/components/responses/InternalError' components: parameters: datasetSlug: name: datasetSlug description: | The dataset slug. in: path required: true schema: type: string datasetSlugOrAll: name: datasetSlug description: > The dataset slug or use `__all__` for endpoints that support environment-wide operations. in: path required: true schema: type: string recipientId: name: recipientId description: Unique identifier (ID) of a Recipient. in: path required: true schema: type: string teamSlug: name: teamSlug description: The slug of the Team in: path required: true schema: type: string ID: name: ID description: A unique identifier in: path required: true schema: type: string PaginationCursor: name: page[next] description: > The string value of the `next` attribute from a previous result page. The cursor value must be empty or omitted for the first request of a cursor-paginated query. in: query schema: type: string example: eyxJjcmAVhdGVkX PaginationSize: name: page[size] description: The number of entries to include per response. Maximum in: query schema: type: number minimum: 1 maximum: 100 default: 20 example: 10 headers: RateLimit: description: | The (draft07) recommended header from the IETF on rate limiting. The value of the header is formatted "limit=X, remaining=Y, reset=Z". Where: - X is the maximum number of requests allowed in the window - Y is the number of requests remaining in the window - Z is the number of seconds until the limit resets schema: type: string example: limit=100, remaining=50, reset=60 RateLimitPolicy: description: | The (draft07) recommended header from the IETF on rate limiting. The value of the header is formatted "X;w=Y". Where: - X is the maximum number of requests allowed in a window - Y is the size of the window in seconds schema: type: string example: 100;w=60 RetryAfter: description: > The RFC7231 header used to indicate when a client should retry requests in UTC time. schema: type: string example: '2024-03-22T18:37:83Z' ETag: description: > The ETag header is a response header that allows a client to cache the response. If the client has a cached copy of the pipeline configuration, it can provide the ETag value of the cached copy in the If-None-Match header. If the configuration has not changed since the client last fetched it, the server will respond with a 304 Not Modified status code. schema: type: string responses: InternalError: description: InternalError content: application/problem+json: schema: $ref: '#/components/schemas/DetailedError' application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Error' examples: deny-management-apis: description: Team cannot access management APIs. value: error: >- Your team has been denied access to Management APIs, please contact support to be unblocked. application/problem+json: schema: $ref: '#/components/schemas/DetailedError' application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' NotFound: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Error' example: error: dataset not found application/problem+json: schema: $ref: '#/components/schemas/DetailedError' example: status: 404 type: https://api.honeycomb.io/problems/not-found title: The requested resource cannot be found. error: Dataset not found detail: Dataset not found application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' Conflict: description: Conflict content: application/json: schema: $ref: '#/components/schemas/Error' example: error: dataset not found application/problem+json: schema: $ref: '#/components/schemas/DetailedError' example: status: 409 type: https://api.honeycomb.io/problems/conflict title: >- Request could not be completed due to a conflict with the current state of the target resource. error: A resource by that name already exists. application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' PayloadTooLarge: description: The provided request body was over the maximum allowed size. content: application/json: schema: $ref: '#/components/schemas/DetailedError' example: status: 413 type: https://api.honeycomb.io/problems/payload-too-large title: Request body is too large. error: Body size is larger than maximum size of 100000 bytes UnsupportedMediaType: description: The provided request body had an invalid Content-Type. content: application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' Unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Error' example: error: unknown API key - check your credentials application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' UnprocessableEntity: description: Invalid request content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: > The provided request body was invalid. Most APIs will return a DetailedError for this condition, explaining what went wrong, but some older APIs only return a GenericError. content: application/problem+json: schema: $ref: '#/components/schemas/DetailedError' examples: DetailedError: value: status: 400 type: https://api.honeycomb.io/problems/unparseable title: The request body could not be parsed. error: invalid gzip data application/json: schema: $ref: '#/components/schemas/Error' examples: GenericError: value: error: invalid Query data ValidationFailed: description: Validation Failed content: application/problem+json: schema: $ref: '#/components/schemas/ValidationError' example: status: 422 type: https://api.honeycomb.io/problems/validation-failed error: The provided input is invalid. title: The provided input is invalid type_detail: - field: type code: invalid description: 'type: must be a valid value' application/json: schema: $ref: '#/components/schemas/Error' application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' GenericError: description: Error content: application/json: schema: $ref: '#/components/schemas/Error' RateLimited: description: RateLimited headers: Retry-After: $ref: '#/components/headers/RetryAfter' content: application/json: schema: $ref: '#/components/schemas/Error' example: error: Rate Limited application/vnd.api+json: schema: $ref: '#/components/schemas/JSONAPIErrors' schemas: Error: x-tags: - Errors type: object description: A legacy error, containing only a textual description. properties: error: type: string readOnly: true JSONAPIErrors: x-tags: - Errors type: object description: A JSONAPI-formatted error message. properties: errors: type: array items: type: object readOnly: true required: - id - code properties: id: type: string readOnly: true status: type: string readOnly: true code: type: string readOnly: true title: type: string readOnly: true detail: type: string readOnly: true source: type: object readOnly: true properties: pointer: type: string readOnly: true header: type: string readOnly: true parameter: type: string readOnly: true DetailedError: x-tags: - Errors description: An RFC7807 'Problem Detail' formatted error message. type: object required: - error - status - type - title properties: error: type: string readOnly: true default: something went wrong! status: type: number readOnly: true description: The HTTP status code of the error. type: type: string readOnly: true description: Type is a URI used to uniquely identify the type of error. title: type: string readOnly: true description: >- Title is a human-readable summary that explains the `type` of the problem. detail: type: string readOnly: true description: The general, human-readable error message. instance: type: string readOnly: true description: The unique identifier (ID) for this specific error. ValidationError: x-tags: - Errors allOf: - $ref: '#/components/schemas/DetailedError' - type: object properties: status: type: number readOnly: true default: 422 type: type: string readOnly: true default: https://api.honeycomb.io/problems/validation-failed title: type: string readOnly: true default: The provided input is invalid. type_detail: type: array items: type: object properties: field: type: string readOnly: true code: type: string readOnly: true enum: - invalid - missing - incorrect_type - already_exists description: type: string readOnly: true BatchEvent: type: object properties: data: type: object allOf: - $ref: '#/components/schemas/Event' time: type: string description: > Should be in RFC3339 high precision format (for example, YYYY-MM-DDTHH:MM:SS.mmmZ). May be a Unix epoch (seconds since 1970) with second or greater precision (for example, 1452759330927). Optional. If not set, defaults to the time that the API receives the event. samplerate: type: integer description: > An integer representing the denominator in the fraction 1/n when client-side sampling has been applied. Optional. If not set, defaults to `1`, meaning "not sampled". Refer to [Sampling](https://docs.honeycomb.io/manage-data-volume/sample/sampled-data-in-honeycomb/) for more detail. Event: type: object additionalProperties: minItems: 1 maxItems: 2000 description: > A collection of key-value properties that represent the Event. Honeycomb supports basic data types for the values of each Event attribute. ### Limits - 2,000 fields per event. The entire event must be less than 100KB of uncompressed JSON. - String Fields: Each string field has a maximum length of 64KB. - Number Fields: Integers and Floats are both 64-bit. type: - string - number - boolean Auth: type: object required: - id - type - api_key_access - environment - team properties: id: type: string description: Unique identifier (ID) of the API Key. type: type: string enum: - configuration - ingest description: The type of API Key. api_key_access: type: object properties: events: type: boolean default: false markers: type: boolean default: false triggers: type: boolean default: false boards: type: boolean default: false queries: type: boolean default: false columns: type: boolean default: false createDatasets: type: boolean default: false slos: type: boolean default: false recipients: type: boolean default: false privateBoards: type: boolean default: false environment: type: object properties: name: type: string description: >- The name of the Environment. Will be empty for Classic environments. slug: type: string description: >- The slug of the Environment. Will be empty for Classic environments. team: type: object properties: name: type: string slug: type: string Board: type: object required: - name properties: name: type: string description: The name of the Board. minLength: 1 maxLength: 255 example: My Board description: type: string description: A description of the Board. minLength: 0 maxLength: 1024 example: A board created via the API style: type: string description: >- All boards are displayed visually in the UI. The field can still be sent, but it will have no functional effect in the UI. default: visual deprecated: true column_layout: type: string description: The number of columns to layout on the board. enum: - multi - single default: multi queries: type: array items: $ref: '#/components/schemas/BoardQuery' slos: type: array description: A list of SLO IDs to add to the board items: type: string minLength: 0 maxLength: 24 example: - BGfyxhFto - dF1URaPGL - oSxbG7eiA links: type: object readOnly: true properties: board_url: type: string example: >- https://ui.honeycomb.io/myteam/environments/myenvironment/board/2NeeaE9bBLd id: type: string readOnly: true description: Unique identifier (ID), returned in response bodies. example: 2NeeaE9bBLd BoardQuery: type: object properties: caption: type: string description: >- Descriptive text to contextualize the value of the Query within the Board. maxLength: 1023 example: context for this query graph_settings: type: object description: > A map of boolean values to control the display settings for the Query on the Board. Unspecified values are assumed to be `false`. properties: hide_markers: type: boolean default: false log_scale: type: boolean default: false omit_missing_values: type: boolean default: false stacked_graphs: type: boolean default: false utc_xaxis: type: boolean default: false overlaid_charts: type: boolean default: false query_style: type: string description: How the query should be displayed on the board. enum: - graph - table - combo default: graph dataset: type: string description: > The Dataset to Query. Required if using the deprecated `query`. Does not support the Environment-wide `__all__` value. Environment-wide queries must be specified by `query_id`. Note: this field can take either `name` ("My Dataset") or `slug` ("my_dataset"); the response will always use the name. example: My Dataset query_id: type: string description: > The ID of a Query object. Cannot be used with `query`. Query IDs can be retrieved from the UI or from the Query API. example: abc1234e query: type: - 'null' - object description: | An inline Query Specification. Cannot be used with `query_id`. writeOnly: true deprecated: true query_annotation_id: type: string description: > The ID of a Query Annotation that provides a name and description for the Query. The Query Annotation must apply to the `query_id` or `query` specified. example: e4c24a35 ColumnList: type: array items: $ref: '#/components/schemas/Column' DerivedColumn: type: object required: - id - alias - expression - created_at - updated_at properties: id: type: string readOnly: true description: Unique identifier (ID), returned in response bodies. alias: type: string description: >- The human-readable name of the derived column, as it will be referenced when building queries. minLength: 1 maxLength: 255 expression: type: string description: > The expression to evaluate to construct this derived column's value. Refer to the [Derived Column Reference](https://docs.honeycomb.io/reference/derived-column-formula/). minLength: 1 maxLength: 4095 description: type: string description: >- A human-readable description for the derived column that displays in the UI. default: '' maxLength: 255 created_at: type: string readOnly: true description: ISO8601 formatted time when the column was created. updated_at: type: string readOnly: true description: ISO8601 formatted time when the column was updated. DerivedColumnList: type: array items: $ref: '#/components/schemas/DerivedColumn' CreateColumn: type: object required: - key_name properties: key_name: type: string description: Name of the Column. example: my_column minLength: 1 maxLength: 255 type: type: string default: string enum: - string - float - integer - boolean description: Type of the data that the Column will contain. example: integer description: type: string description: Column description. maxLength: 255 example: An integer column hidden: type: boolean default: false description: >- If `true`, the column is excluded from autocomplete and raw data field lists. id: type: string readOnly: true description: Unique identifier (ID), returned in response bodies. last_written: type: string readOnly: true description: >- ISO8601 formatted time the column was last written to (received event data). created_at: type: string readOnly: true description: ISO8601 formatted time the column was created. updated_at: type: string readOnly: true description: ISO8601 formatted time the column was updated. Column: allOf: - $ref: '#/components/schemas/CreateColumn' properties: key_name: readOnly: true DatasetDefinition: type: - 'null' - object required: - name properties: name: type: string description: >- The name of the Column or Derived Column to map to this Dataset Definition Type. An empty string clears the mapping, potentially reverting to a default mapping. minLength: 0 maxLength: 255 column_type: type: string readOnly: true description: >- Optional: `column` for regular columns and `derived_column` for derived columns when setting Dataset Definitions. Honeycomb does not use this field when updating Dataset definitions. enum: - column - derived_column DatasetDefinitions: type: object description: > Dataset Definitions describe the fields with special meaning in the Dataset. properties: span_id: description: The unique identifier (ID) for each span. allOf: - $ref: '#/components/schemas/DatasetDefinition' trace_id: description: The ID of the trace this span belongs to. allOf: - $ref: '#/components/schemas/DatasetDefinition' parent_id: description: >- The Parent Span ID - The ID of this span's parent span, the call location the current span was called from. allOf: - $ref: '#/components/schemas/DatasetDefinition' name: description: The name of the function or method where the span was created. allOf: - $ref: '#/components/schemas/DatasetDefinition' service_name: description: The name of the instrumented service. allOf: - $ref: '#/components/schemas/DatasetDefinition' duration_ms: description: Span Duration - How much time the span took, in milliseconds. allOf: - $ref: '#/components/schemas/DatasetDefinition' span_kind: description: >- Metadata: Kind - The kind of Span. For example, `client` or `server`. The use of this field to identify Span Events and Links is deprecated. Use the field Metadata: Annotation Type. allOf: - $ref: '#/components/schemas/DatasetDefinition' annotation_type: description: >- Metadata: Annotation Type - The type of span annotation. For example, `span_event` or `link`. This lets Honeycomb visualize this type of event differently in a trace. Do not use this field for other purposes. allOf: - $ref: '#/components/schemas/DatasetDefinition' link_span_id: description: >- Metadata: Link Span ID - Links let you tie traces and spans to one another. The Link Span ID lets you link to a different span (when used with Link Trace ID). allOf: - $ref: '#/components/schemas/DatasetDefinition' link_trace_id: description: >- Metadata: Link Trace ID - Links let you tie traces and spans to one another. The Link Trace Id lets you link to a different trace or a different span in the same trace (when used with Link Span ID). allOf: - $ref: '#/components/schemas/DatasetDefinition' error: description: Use a Boolean or String to indicate error. allOf: - $ref: '#/components/schemas/DatasetDefinition' status: description: Indicates the success, failure, or other status of a request. allOf: - $ref: '#/components/schemas/DatasetDefinition' route: description: The HTTP URL or equivalent route processed by the request. allOf: - $ref: '#/components/schemas/DatasetDefinition' user: description: The user making the request in the system. allOf: - $ref: '#/components/schemas/DatasetDefinition' log_severity: description: >- Severity level of the event (also known as log level). Supported values: trace, debug, info, warn, error, fatal, unspecified. allOf: - $ref: '#/components/schemas/DatasetDefinition' log_message: description: >- A value containing the log event message. Can be a human-readable string message (including multi-line) describing the event in a free form. allOf: - $ref: '#/components/schemas/DatasetDefinition' Dataset: type: object description: > Datasets are a collection of events from a specific source or related source. required: - name properties: name: type: string description: The name of the dataset. example: My Dataset! minLength: 1 maxLength: 255 description: type: string default: '' description: A description for the dataset. example: A nice description of my dataset minLength: 0 maxLength: 1024 settings: type: object properties: delete_protected: type: boolean description: If true, the dataset cannot be deleted. expand_json_depth: type: integer description: The maximum unpacking depth of nested JSON fields. example: 3 default: 0 minimum: 0 maximum: 10 slug: type: string example: my-dataset- description: The 'slug' of the dataset to be used in URLs. readOnly: true regular_columns_count: type: - 'null' - integer description: > The total number of unique fields for this Dataset. The value will be null if the dataset does not contain any fields yet. example: 100 readOnly: true last_written_at: type: - 'null' - string description: > The ISO8601-formatted time when the dataset last received event data. The value will be null if no data has been received yet. example: '2022-07-21T18:39:23Z' readOnly: true created_at: type: string description: The ISO8601-formatted time when the dataset was created. example: '2022-09-22T17:32:11Z' readOnly: true DatasetCreationPayload: type: object description: an object to send to the Dataset API via PUT required: - name properties: name: type: string description: The name of the dataset. minLength: 1 maxLength: 255 description: type: string default: '' description: A description for the dataset. example: A nice description of my dataset minLength: 0 maxLength: 1024 expand_json_depth: type: integer description: The maximum unpacking depth of nested JSON fields. example: 3 default: 0 minimum: 0 maximum: 10 DatasetUpdatePayload: type: object description: an object to send to the Dataset API via PUT required: - description - expand_json_depth properties: description: type: string default: '' description: A description for the dataset. example: A nice description of my dataset minLength: 0 maxLength: 1024 expand_json_depth: type: integer description: The maximum unpacking depth of nested JSON fields. example: 3 default: 0 minimum: 0 maximum: 10 settings: type: object properties: delete_protected: type: boolean description: If true, the dataset cannot be deleted. KinesisEvent: type: object properties: requestId: type: string timestamp: type: integer records: type: array items: $ref: '#/components/schemas/KinesisEventRecord' KinesisEventRecord: type: object properties: data: type: string description: Base64 encoded Kinesis record from AWS KinesisResponse: type: object properties: requestId: type: string timestamp: type: integer errorMessage: type: string Marker: type: object properties: start_time: type: integer description: >- Indicates the time the Marker should be placed. If missing, defaults to the time the request arrives. Expressed in Unix Time. example: 1471040808 end_time: type: integer description: >- Specifies end time, and allows a Marker to be recorded as representing a time range, such as a 5 minute deploy. Expressed in Unix Time. example: 1668453920 message: type: string description: A message to describe this specific Marker. example: 'backend deploy #123' type: type: string description: >- Groups similar Markers. For example, `deploys`. All Markers of the same type appear with the same color on the graph. Refer to the [Marker Settings](/api/marker-settings/) API for altering the color of each type. example: deploy url: type: string description: >- A target for the marker. Clicking the marker text will take you to this URL. example: http://link-to-build.here id: type: string description: A 6 character hexadecimal string assigned on Marker creation. readOnly: true created_at: type: string description: The ISO8601-formatted time when the Marker was created. readOnly: true updated_at: type: string description: The ISO8601-formatted time when the Marker was updated. readOnly: true color: type: string description: >- Color can be assigned to Markers using the Marker Settings endpoint. This field will be populated when List All Markers is called. readOnly: true MarkerSetting: type: object required: - type - color properties: type: type: string description: > Groups similar Markers. For example, 'deploys'. All Markers of the same type appears with the same color on the graph. example: deploy color: type: string description: > Color to use for display of this marker type. Specified as hexadecimal RGB. For example, "#F96E11". example: '#7b1fa2' id: type: string description: The unique identifier (ID) for the Marker Setting. readOnly: true example: gwAHiE5TS4j created_at: type: string description: The ISO8601-formatted time when the Marker Setting was created. readOnly: true example: '2022-09-15T05:39:42Z' updated_at: type: - 'null' - string description: The ISO8601-formatted time when the Marker Setting was updated. readOnly: true example: '2022-12-15T04:25:14Z' NotificationRecipient: type: object properties: id: type: string type: deprecated: true description: > One of the allowed Recipient types. Deprecated: Use the Recipients API first, then pass the Recipient ID. allOf: - $ref: '#/components/schemas/RecipientType' target: type: string deprecated: true description: > The target of the notification. For example, the specific Slack channel or email address. For Recipients of `type = "webhook"` or `type = "msteams_workflow"`, this will be the Name in the UI and `webhook_name` in the Recipients API. Deprecated: Use the Recipients API first, then pass the Recipient ID. details: $ref: '#/components/schemas/NotificationRecipientDetails' NotificationRecipientDetails: type: object properties: pagerduty_severity: description: > When using a Recipient of `type = "pagerduty"`, the severity of the alert can be specified. type: string default: critical enum: - critical - error - warning - info FilterOp: type: string enum: - '=' - '!=' - '>' - '>=' - < - <= - starts-with - does-not-start-with - ends-with - does-not-end-with - exists - does-not-exist - contains - does-not-contain - in - not-in HavingOp: type: string enum: - '=' - '!=' - '>' - '>=' - < - <= HavingCalculateOp: type: string enum: - COUNT - CONCURRENCY - SUM - AVG - COUNT_DISTINCT - MAX - MIN - P001 - P01 - P05 - P10 - P20 - P25 - P50 - P75 - P80 - P90 - P95 - P99 - P999 - RATE_AVG - RATE_SUM - RATE_MAX QueryOp: type: string enum: - COUNT - CONCURRENCY - SUM - AVG - COUNT_DISTINCT - HEATMAP - MAX - MIN - P001 - P01 - P05 - P10 - P20 - P25 - P50 - P75 - P80 - P90 - P95 - P99 - P999 - RATE_AVG - RATE_SUM - RATE_MAX Query: type: object properties: id: type: string readOnly: true breakdowns: type: array default: - user_agent maxItems: 100 items: type: string description: the columns by which to break events down into groups calculations: type: array description: the calculations to return as a time series and summary table maxItems: 100 items: type: object required: - op properties: op: allOf: - $ref: '#/components/schemas/QueryOp' - default: COUNT column: type: - 'null' - string description: the name of the column filters: type: array maxItems: 100 required: - column - op items: type: object required: - op properties: op: $ref: '#/components/schemas/FilterOp' column: type: - 'null' - string value: anyOf: - type: 'null' - type: integer - type: number - type: string - type: boolean - type: array description: the filters with which to restrict the considered events filter_combination: type: string default: AND enum: - AND - OR description: set to "OR" to match ANY filter in the filter list granularity: type: integer minimum: 1 description: > The time resolution of the query's graph, in seconds. Given a query time range T, valid values (T/1000...T/10). orders: type: array maxItems: 100 items: type: object properties: column: type: string op: $ref: '#/components/schemas/QueryOp' order: type: string default: ascending enum: - ascending - descending description: > The terms on which to order the query results. Each term must appear in either the `breakdowns` field or the `calculations` field. limit: type: integer default: 100 minimum: 1 maximum: 10000 description: > The maximum number of unique groups returned in 'results'. Aggregating many unique groups across a large time range is computationally expensive, and too high a limit with too many unique groups may cause queries to fail completely. Limiting the results to only the needed values can significantly speed up queries. The normal allowed maximum value when creating a query is 1_000. When running 'disable_series' queries, this can be overridden to be up to 10_000, so the maximum value returned from the API when fetching a query may be up to 10_000. start_time: type: integer minimum: 1 default: 1676399428 description: > Absolute start time of query, in seconds since UNIX epoch. Must be <= `end_time`. end_time: type: integer minimum: 1 default: 1676467828 description: Absolute end time of query, in seconds since UNIX epoch. time_range: type: integer minimum: 1 default: 7200 description: > Time range of query in seconds. Can be used with either `start_time` (seconds after `start_time`), `end_time` (seconds before `end_time`), or without either (seconds before now). havings: type: array description: > The Having clause allows you to filter on the results table. This operation is distinct from the Where clause, which filters the underlying events. Order By allows you to order the results, and Having filters them. maxItems: 100 items: type: object required: - calculate_op properties: calculate_op: allOf: - $ref: '#/components/schemas/HavingCalculateOp' column: type: - 'null' - string description: The name of the column to filter against op: allOf: - $ref: '#/components/schemas/HavingOp' value: type: number default: 10 QueryAnnotation: type: object description: >- A Query Annotation consists of a name and description associated with a query to add context when collaborating. required: - name - query_id properties: name: type: string description: A name for the Query. example: My Named Query minLength: 1 maxLength: 80 description: type: string description: A description of the Query. example: A nice description of My Named Query maxLength: 280 query_id: type: string description: > The ID of the Query that the annotation describes. **Note**: Once created, it is NOT possible to change the query ID associated with an annotation. It is possible to have multiple annotations associated with a Query. example: mabAMpSPDjH id: type: string description: The unique identifier (ID) of a Query Annotation. readOnly: true example: sGUnkBHgRFN created_at: type: string format: date-time description: ISO8601 formatted time when the Query Annotation was created. example: '2022-10-26T21:36:04Z' readOnly: true updated_at: type: string format: date-time description: ISO8601 formatted time when the Query Annotation was updated. example: '2022-12-04T08:14:26Z' readOnly: true CreateQueryResultRequest: type: object description: A Query Result is created with the Query ID. required: - query_id properties: query_id: type: string writeOnly: true description: > The ID of a query returned from the [Queries endpoint](/api/queries/). example: mabAMpSPDjH disable_series: type: boolean writeOnly: true description: > If true, will disable calculation and return of the full time-series data, usually included in the 'series' response field, instead only returning the summarized 'results'. limit: type: integer writeOnly: true maximum: 10000 description: > If 'disable_series' is true, then a limit may optionally be given, which will override the limit normally associated with the query. Unlike normal query results which are limited to 1_000 results, 'disable_series' results may have a limit of up to 10_000. If 'disable_series' is false, then this field will be ignored. QueryResult: type: object description: A Query Result is created with the Query ID. properties: query: readOnly: true allOf: - $ref: '#/components/schemas/Query' id: type: string description: The unique identifier (ID) of a Query Result. readOnly: true example: sGUnkBHgRFN complete: type: boolean description: >- Indicates if the query results are available yet or not. For example, is the query still being processed or complete? readOnly: true example: false links: type: object description: >- An object containing UI links to the query result and query result graph readOnly: true properties: query_url: type: string example: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/HprJhV1fYy graph_image_url: type: string example: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/HprJhV1fYy/snapshot QueryResultsData: type: object description: Query result details properties: data: type: object examples: - COUNT: 1 P99(duration_ms): 210 name: TestGoogleCallbackLogin test.classname: github.com/honeycombio/hound/cmd/poodle/handlers test.status: passed - COUNT: 77481 P99(duration_ms): 857.0309715273646 name: TestGoogleCallbackLogin test.classname: github.com/honeycombio/hound/cmd/poodle/handlers test.status: passed additionalProperties: type: - string - boolean - number QueryResultsSeries: type: object allOf: - $ref: '#/components/schemas/QueryResultsData' properties: time: type: string example: '2021-04-09T14:16:00Z' QueryResultDetails: type: object description: > Query Results for the Query ID. The response body will be a JSON object with "complete": true and the results populated once the query is complete. The response body will contain caching headers to indicate that once complete, and the Query Result may be cached, as it will not change. properties: query: readOnly: true allOf: - $ref: '#/components/schemas/Query' id: type: string description: The unique identifier (ID) of a Query Result readOnly: true example: sGUnkBHgRFN complete: type: boolean description: >- Indicates if the query results are available yet or not. For example, is the query still being processed or complete? readOnly: true example: true data: type: object description: An object containing the query result data properties: series: type: array description: >- Timeseries data from the query result (equivalent to the graph data in the Honeycomb UI) items: $ref: '#/components/schemas/QueryResultsSeries' results: type: array description: >- Query results data (equivalent to the Overview in the Honeycomb UI below the graph) items: $ref: '#/components/schemas/QueryResultsData' links: type: object description: >- An object containing UI links to the query result and query result graph properties: query_url: type: string description: A link to the query result in the Honeycomb UI example: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/HprJhV1fYy graph_image_url: type: string description: A direct link to the graph image from the query result example: >- https://ui.honeycomb.io/myteam/datasets/test-via-curl/result/HprJhV1fYy/snapshot RecipientType: type: string description: One of the supported Recipient Types enum: - pagerduty - email - slack - webhook - msteams - msteams_workflow PagerDutyRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - pagerduty - type: object properties: details: type: object required: - pagerduty_integration_name - pagerduty_integration_key description: Specific schema for the Pagerduty Recipient Type properties: pagerduty_integration_name: type: string description: A name for this Integration. example: Example PagerDuty Service pagerduty_integration_key: type: string description: Pagerduty Integration Key. example: 7zOwh1edS8xHGcwfb2bA4sqY8E6PJzSK minLength: 32 maxLength: 32 EmailRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - email - type: object properties: details: type: object required: - email_address description: Specific schema for the Email Recipient Type properties: email_address: type: string description: Email address to notify. example: notify-me@example-email.com SlackRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - slack - type: object properties: details: type: object required: - slack_channel description: Specific schema for the Slack Recipient Type. properties: slack_channel: type: string description: Slack channel to notify. example: '#alerts-channel' MSTeamsRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - msteams - type: object deprecated: true properties: details: type: object required: - webhook_name - webhook_url description: >- Specific schema for the MS Teams Recipient Type. Now deprecated, please use the `msteams_workflow` type instead. properties: webhook_name: type: string description: A name for this recipient. example: My Teams Channel webhook_url: type: string description: Incoming webhook URL of an Teams instance. example: https://yourco.webhook.office.com/webhook/xxxx MSTeamsWorkflowRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - msteams_workflow - type: object properties: details: type: object required: - webhook_name - webhook_url description: Specific schema for the MS Teams Workflow Recipient Type. properties: webhook_name: type: string maxLength: 255 description: A name for this recipient. example: My Teams Channel webhook_url: type: string maxLength: 2048 description: Incoming webhook URL of an Teams instance. example: >- https://test-123.westus.logic.azure.com:443/workflows/54321/triggers/manual/paths/invoke WebhookRecipient: allOf: - $ref: '#/components/schemas/RecipientProperties' - type: object properties: type: type: string enum: - webhook - type: object properties: details: type: object required: - webhook_name - webhook_url description: Specific schema for the Webhook Recipient Type properties: webhook_name: type: string maxLength: 255 description: A name for this Integration. example: Example webhook webhook_url: type: string description: Webhook URL. maxLength: 2048 example: https://webhook.example.com webhook_secret: type: string description: Webhook secret. maxLength: 255 example: secret Recipient: discriminator: propertyName: type mapping: pagerduty: '#/components/schemas/PagerDutyRecipient' email: '#/components/schemas/EmailRecipient' slack: '#/components/schemas/SlackRecipient' webhook: '#/components/schemas/WebhookRecipient' msteams: '#/components/schemas/MSTeamsRecipient' msteams_workflow: '#/components/schemas/MSTeamsWorkflowRecipient' oneOf: - $ref: '#/components/schemas/PagerDutyRecipient' - $ref: '#/components/schemas/EmailRecipient' - $ref: '#/components/schemas/SlackRecipient' - $ref: '#/components/schemas/WebhookRecipient' - $ref: '#/components/schemas/MSTeamsRecipient' - $ref: '#/components/schemas/MSTeamsWorkflowRecipient' RecipientProperties: type: object properties: id: type: string readOnly: true example: yUheCUmgZ8p created_at: type: string format: date-time description: ISO8601 formatted time the Recipient was created. example: '2022-07-26T22:38:04Z' readOnly: true updated_at: type: string format: date-time description: ISO8601 formatted time the Recipient was updated. example: '2022-07-26T22:38:04Z' readOnly: true type: $ref: '#/components/schemas/RecipientType' BaseTrigger: type: object properties: id: type: string readOnly: true description: The unique identifier (ID) for this Trigger. name: type: string description: > A short, human-readable name for this Trigger, which will be displayed in the UI and when the trigger fires. minLength: 1 maxLength: 120 description: type: string description: | A longer description, displayed on the Trigger's detail page. maxLength: 1023 threshold: type: object required: - op - value description: > The threshold over which the trigger will fire, specified as both an operator and a value. properties: op: type: string enum: - '>' - '>=' - < - <= value: type: number exceeded_limit: type: integer description: > The number of times the threshold must be met before an alert is sent. default: 1 minimum: 1 maximum: 5 frequency: type: integer description: > The interval in seconds in which to check the results of the query’s calculation against the threshold. Cannot be more than 4 times the query's duration (i.e. `duration <= frequency*4`). See [A Caveat on Time](https://docs.honeycomb.io/investigate/collaborate/share-query/define-query-json/#a-caveat-on-time) for more information on specifying a query's duration. minimum: 60 maximum: 86400 multipleOf: 60 default: 900 alert_type: type: string description: > How often to fire an alert when a trigger threshold is crossed. - `on_change` sends a trigger notification when the result of the specified calculation crosses the threshold. The trigger resolves only when the result of the query no longer satisfies the threshold condition. - `on_true` keeps sending a trigger notification at current frequency when and while the threshold is met. (This reflects the same behavior as the "Send an alert every time a threshold is met" checkbox in the Honeycomb UI.) enum: - on_change - on_true default: on_change disabled: type: boolean default: false description: > If true, the trigger will not be evaluated and alerts will not be sent. triggered: type: boolean readOnly: true description: > If true, the trigger has crossed its specified threshold without resolving. recipients: type: array description: > A list of [Recipients](/api/recipients/) to notify when the Trigger fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' evaluation_schedule_type: type: string description: > The schedule type used by the trigger. The default is frequency, where the trigger runs at the specified frequency. The window type means that the trigger will run at the specified frequency, but only in the time window specified in the evaluation_schedule field. enum: - frequency - window evaluation_schedule: type: object description: > A schedule that determines when the trigger is run. When the time is within the scheduled window, the trigger will be run at the specified frequency. Outside of the window, the trigger will not be run. required: - window properties: window: type: object description: > Window start/end times and days of the week are calculated in UTC. If the end time is the same as or earlier than the start time, the end time is treated as being in the following day. required: - days_of_week - start_time - end_time properties: days_of_week: type: array minItems: 1 maxItems: 7 items: type: string enum: - sunday - monday - tuesday - wednesday - thursday - friday - saturday start_time: type: string description: A UTC time in HH:mm format (13:00) example: '14:00' pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ end_time: type: string description: A UTC time in HH:mm format (13:00) example: '21:00' pattern: ^([0-1]?[0-9]|2[0-3]):[0-5][0-9]$ created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true TriggerWithInlineQuery: allOf: - $ref: '#/components/schemas/BaseTrigger' - type: object properties: query: type: object description: > A query ID or an inline query that is a strict subset of a Query Specification. properties: {} TriggerWithQueryReference: allOf: - $ref: '#/components/schemas/BaseTrigger' - type: object properties: query_id: type: string description: > The ID of a Query that meets the criteria for being used as a Trigger, per above. CreateTriggerRequest: oneOf: - $ref: '#/components/schemas/TriggerWithInlineQuery' - $ref: '#/components/schemas/TriggerWithQueryReference' TriggerResponse: allOf: - $ref: '#/components/schemas/TriggerWithInlineQuery' - $ref: '#/components/schemas/TriggerWithQueryReference' SLO: type: object required: - name - time_period_days - target_per_million - sli properties: id: type: string readOnly: true name: type: string description: The name of the SLO. minLength: 1 maxLength: 120 example: My SLO description: type: string description: A nice description of the SLO's intent and context. minLength: 0 maxLength: 1023 example: SLO to ensure requests succeed and are fast sli: type: object description: >- Reference to the [Derived Column](/api/derived-columns/) used as the indicator of event success. required: - alias properties: alias: type: string description: The alias of the derived column. minLength: 1 maxLength: 255 example: alias: error_sli time_period_days: type: integer description: The time period, in days, over which the SLO will be evaluated. minimum: 1 example: 30 target_per_million: type: integer description: >- The number of events out of one million (1,000,000) that you expected qualified events to succeed. minimum: 0 maximum: 999999 example: 990000 reset_at: type: - 'null' - string format: date-time description: >- The ISO8601-formatted time the SLO was last reset. The value will be `null` if the SLO has not yet been reset. readOnly: true example: 2022-011-11T09:53:04Z created_at: type: string description: The ISO8601-formatted time when the SLO was created. format: date-time readOnly: true example: '2022-09-22T17:32:11Z' updated_at: type: string format: date-time description: The ISO8601-formatted time when the SLO was updated. readOnly: true example: '2022-10-31T15:08:11Z' SLODetailedResponse: allOf: - $ref: '#/components/schemas/SLO' type: object properties: compliance: type: number description: > Reporting data to express historical compliance of the SLO. Only included when the `?detailed` query param is passed. format: double readOnly: true example: 95.39 budget_remaining: type: number description: > Reporting data to express how much error budget remains for the time period of the SLO. Only included when the `?detailed` query param is passed. format: double readOnly: true example: 7.73 BurnAlertListResponse: anyOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlertListResponse' - $ref: '#/components/schemas/BudgetRateBurnAlertListResponse' BurnAlertDetailResponse: anyOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlertDetailResponse' - $ref: '#/components/schemas/BudgetRateBurnAlertDetailResponse' CreateBurnAlertRequest: anyOf: - $ref: '#/components/schemas/CreateExhaustionTimeBurnAlertRequest' - $ref: '#/components/schemas/CreateBudgetRateBurnAlertRequest' UpdateBurnAlertRequest: anyOf: - $ref: '#/components/schemas/UpdateExhaustionTimeBurnAlertRequest' - $ref: '#/components/schemas/UpdateBudgetRateBurnAlertRequest' BurnAlertSharedParams: type: object properties: id: type: string description: Unique identifier (ID) of a Burn alert. readOnly: true example: fS7vfB81Wcy description: type: string description: A description of the Burn Alert. maxLength: 1023 example: Use this runbook if this alert fires. triggered: type: boolean description: > Indicates if the Burn Alert has been triggered. This field is read-only and is set to `true` when the alert is triggered. readOnly: true example: false created_at: type: string format: date-time description: The ISO8601-formatted time when the Burn Alert was created. readOnly: true example: '2022-09-22T17:32:11Z' updated_at: type: string format: date-time description: The ISO8601-formatted time when the Burn Alert was updated. readOnly: true example: '2022-10-31T15:08:11Z' ExhaustionTimeBurnAlert: title: Exhaustion Time allOf: - $ref: '#/components/schemas/BurnAlertSharedParams' - type: object properties: alert_type: type: string description: > One of the supported alert types: 1. `exhaustion_time`: Notifies when you are about to run out of SLO budget within a specified number of hours. 1. `budget_rate`: Notifies when budget drops by at least a specified percentage within a defined time window. default: exhaustion_time enum: - exhaustion_time - budget_rate example: exhaustion_time exhaustion_minutes: type: integer minimum: 0 description: > Required when `alert_type` is `exhaustion_time`. Must not be specified when `alert_type` is `budget_rate`. Amount of time (in minutes) left until your projected SLO budget is exhausted. The alert will fire when this exhaustion threshold is reached. example: 120 ExhaustionTimeBurnAlertListResponse: allOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlert' - type: object properties: slo: type: object description: Details about the SLO associated with the burn alert. properties: id: type: string description: Unique identifier (ID) of a SLO. example: id: 2LBq9LckbcA ExhaustionTimeBurnAlertDetailResponse: title: Exhaustion Time allOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlertListResponse' - type: object properties: recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com CreateExhaustionTimeBurnAlertRequest: allOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlert' - type: object required: - slo - recipients properties: slo: type: object description: Details about the SLO associated with the burn alert. required: - id properties: id: type: string description: Unique identifier (ID) of a SLO. example: id: 2LBq9LckbcA recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com UpdateExhaustionTimeBurnAlertRequest: allOf: - $ref: '#/components/schemas/ExhaustionTimeBurnAlert' - type: object required: - recipients properties: recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com BudgetRateBurnAlert: title: Budget Rate allOf: - $ref: '#/components/schemas/BurnAlertSharedParams' - type: object required: - alert_type - budget_rate_window_minutes - budget_rate_decrease_threshold_per_million properties: alert_type: type: string description: > One of the supported alert types: 1. `exhaustion_time`: Notifies when you are about to run out of SLO budget within a specified number of hours. 1. `budget_rate`: Notifies when budget drops by at least a specified percentage within a defined time window. default: exhaustion_time enum: - exhaustion_time - budget_rate example: budget_rate budget_rate_window_minutes: type: integer minimum: 60 description: > Required when `alert_type` is `budget_rate`. Must not be specified when `alert_type` is `exhaustion_time`. Time period (in minutes) over which a budget rate will be calculated. Must be no greater than the associated SLO's time period. example: 120 budget_rate_decrease_threshold_per_million: type: integer minimum: 1 maximum: 1000000 description: > Required when `alert_type` is `budget_rate`. Must not be specified when `alert_type` is `exhaustion_time`. The percent the budget has decreased over the budget rate window, represented as a value out of one million. The alert will fire when this budget decrease threshold is reached. See the table below for some example conversions from desired budget decrease percent to the representation as a value out of one million | Desired percent | Value per million | |-----------------|-------------------| | 0.001% | 1 | | 1% | 10,000 | | 5% | 50,000 | | 99.99% | 999,900 | example: 1000 BudgetRateBurnAlertListResponse: title: Budget Rate allOf: - $ref: '#/components/schemas/BudgetRateBurnAlert' - type: object properties: slo: type: object description: Details about the SLO associated with the burn alert. properties: id: type: string description: Unique identifier (ID) of a SLO. example: id: 2LBq9LckbcA BudgetRateBurnAlertDetailResponse: allOf: - $ref: '#/components/schemas/BudgetRateBurnAlertListResponse' - type: object properties: recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com CreateBudgetRateBurnAlertRequest: allOf: - $ref: '#/components/schemas/BudgetRateBurnAlert' - type: object required: - slo - recipients properties: slo: type: object description: Details about the SLO associated with the burn alert. required: - id properties: id: type: string description: Unique identifier (ID) of a SLO. example: id: 2LBq9LckbcA recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com UpdateBudgetRateBurnAlertRequest: title: Budget Rate allOf: - $ref: '#/components/schemas/BudgetRateBurnAlert' - type: object required: - recipients properties: recipients: type: array minItems: 1 description: > A list of [Recipients](/api/recipients/) to notify when an alert fires. Using `type`+`target` is deprecated. First, create the Recipient via the Recipients API, and then specify the ID. items: $ref: '#/components/schemas/NotificationRecipient' example: - id: abcd123 type: email target: alerts@example.com IngestKeyAttributes: type: object allOf: - $ref: '#/components/schemas/IngestKeyType' - $ref: '#/components/schemas/ApiKeyBaseAttributes' ApiKeyBaseAttributes: type: object required: - name properties: name: type: string description: A human-readable name for the API Key example: us-west-2 collectors key maxLength: 100 disabled: type: boolean description: Whether the API Key is disabled default: false example: false permissions: type: object description: The permissions granted to this API Key properties: create_datasets: type: boolean description: Whether this API Key can create new Datasets default: false timestamps: type: object readOnly: true properties: created: type: string format: date-time description: The ISO8601-formatted time when the API Key was created. readOnly: true example: '2022-09-22T17:32:11Z' updated: type: string format: date-time description: The ISO8601-formatted time when the API Key was updated. readOnly: true example: '2022-10-31T15:08:11Z' ApiKeyTypes: type: object properties: key_type: type: string description: The type of API Key enum: - ingest example: ingest IngestKeyType: type: object required: - key_type properties: key_type: type: string description: The type of API Key enum: - ingest example: ingest UserRelationship: type: object required: - data properties: data: type: object required: - id - type properties: id: type: string description: | The ID of this user. examples: - hcxus_01hzqr5g7jg9qz40xtgx7rjwj0 type: type: string enum: - users CreatorRelationship: type: object readOnly: true description: The User who initially created this resource. allOf: - $ref: '#/components/schemas/UserRelationship' EditorRelationship: type: object readOnly: true description: The User who last edited this resource. allOf: - $ref: '#/components/schemas/UserRelationship' EnvironmentRelationship: type: object required: - data description: The Environment this object is associated with. properties: data: type: object required: - id - type properties: id: type: string description: The ID of the Environment this object is associated with. example: hxenv_12345678901234567890123456 type: type: string enum: - environments TeamRelationship: type: object required: - team properties: team: type: object required: - data properties: data: type: object required: - id - type properties: id: type: string description: The ID of the Team this object is associated with example: hxctm_12345678901234567890123456 type: type: string enum: - teams ApiKeyObject: type: object properties: id: type: string readOnly: true description: The unique identifier of the API Key example: hcxik_12345678901234567890123456 type: type: string readOnly: true enum: - api-keys attributes: $ref: '#/components/schemas/ApiKeyAttributes' relationships: type: object required: - environment - creator - editor properties: environment: $ref: '#/components/schemas/EnvironmentRelationship' creator: $ref: '#/components/schemas/CreatorRelationship' editor: $ref: '#/components/schemas/EditorRelationship' links: type: object properties: self: type: string description: The URL of this resource readOnly: true example: /2/teams/my-team/api-keys/hcxik_12345678901234567890123456 ApiKeyAttributes: type: object allOf: - $ref: '#/components/schemas/ApiKeyTypes' - $ref: '#/components/schemas/ApiKeyBaseAttributes' IncludedResource: type: object properties: id: type: string readOnly: true description: The unique identifier of the resource example: hcxen_01hznmeqrcq8rz533xrvtc6mk0 type: type: string readOnly: true example: environments attributes: type: object readOnly: true example: name: Production slug: production ApiKeyResponse: type: object required: - data properties: data: $ref: '#/components/schemas/ApiKeyObject' ApiKeyCreateRequest: type: object required: - data properties: data: type: object required: - type - attributes - relationships properties: type: type: string enum: - api-keys attributes: $ref: '#/components/schemas/IngestKeyAttributes' relationships: type: object required: - environment properties: environment: $ref: '#/components/schemas/EnvironmentRelationship' example: data: type: api-keys attributes: name: my ingest key key_type: ingest permissions: create_datasets: true relationships: environment: data: id: hcxen_12345678901234567890123456 type: environments ApiKeyCreateResponse: type: object required: - data properties: data: type: object required: - id - type - attributes - relationships - links properties: id: type: string readOnly: true description: The unique identifier of the API Key example: hcxik_12345678901234567890123456 type: type: string readOnly: true enum: - api-keys attributes: allOf: - $ref: '#/components/schemas/IngestKeyAttributes' - type: object properties: secret: type: string description: >- The API Key secret. This is the only time it will be returned. readOnly: true example: '12345678901234567890123456789' relationships: type: object required: - environment - creator - editor properties: environment: $ref: '#/components/schemas/EnvironmentRelationship' creator: $ref: '#/components/schemas/CreatorRelationship' editor: $ref: '#/components/schemas/EditorRelationship' links: type: object properties: self: type: string description: The URL of this resource readOnly: true example: /2/teams/my-team/api-keys/hcxik_12345678901234567890123456 ApiKeyUpdateRequest: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string description: The unique identifier of the API Key example: hcxik_12345678901234567890123456 type: type: string enum: - api-keys attributes: type: object properties: name: type: string description: A human-readable name for the API Key example: updated key name enabled: type: boolean description: Whether the API Key is enabled example: false ApiKeyListResponse: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/ApiKeyObject' links: $ref: '#/components/schemas/PaginationLinks' CreateEnvironmentRequest: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - environments attributes: type: object required: - name properties: name: type: string maxLength: 255 description: type: string maxLength: 255 color: $ref: '#/components/schemas/EnvironmentColor' UpdateEnvironmentRequest: type: object required: - data properties: data: type: object required: - id - type - attributes properties: id: type: string type: type: string enum: - environments attributes: type: object properties: description: type: string maxLength: 255 color: $ref: '#/components/schemas/EnvironmentColor' settings: type: object properties: delete_protected: type: boolean description: If true, the environment cannot be deleted. EnvironmentColor: type: string enum: - blue - green - gold - red - purple - lightBlue - lightGreen - lightGold - lightRed - lightPurple Environment: type: object required: - id - type - links - attributes properties: id: type: string type: type: string enum: - environments links: type: object required: - self properties: self: type: string attributes: type: object required: - name - description - color - slug - settings properties: name: type: string description: type: string color: description: > 'classic' color is used only for auto-created Classic environments and cannot be set on any other environment. Classic environments cannot be set to any other color. oneOf: - $ref: '#/components/schemas/EnvironmentColor' - type: string enum: - classic slug: type: string settings: type: object required: - delete_protected properties: delete_protected: type: boolean description: If true, the environment cannot be deleted. EnvironmentResponse: type: object required: - data properties: data: $ref: '#/components/schemas/Environment' EnvironmentListResponse: type: object required: - data properties: data: type: array items: $ref: '#/components/schemas/Environment' links: $ref: '#/components/schemas/PaginationLinks' AuthV2Response: type: object required: - data properties: included: type: array items: $ref: '#/components/schemas/IncludedResource' example: - id: hcxtm_12345678901234567890123456 type: teams attributes: name: My Team slug: my-team data: type: object required: - id - type - attributes properties: id: type: string readOnly: true description: The unique identifier of the API Key making the request example: hcxik_12345678901234567890123456 type: type: string readOnly: true enum: - api-keys relationships: type: object readOnly: true allOf: - $ref: '#/components/schemas/TeamRelationship' attributes: type: object readOnly: true properties: name: type: string description: A human-readable name for the API Key example: mgmt write key key_type: type: string description: The type of API Key enum: - management disabled: type: boolean description: Whether the API Key is disabled default: false scopes: type: array description: The scopes assigned to this API Key example: - api-keys:write timestamps: type: object properties: created: type: string format: date-time description: The ISO8601-formatted time when the API Key was created. readOnly: true example: '2022-09-22T17:32:11Z' updated: type: string format: date-time description: The ISO8601-formatted time when the API Key was updated. readOnly: true example: '2022-10-31T15:08:11Z' PaginationLinks: type: object description: Links to iterate through the pages of results. required: - next properties: next: type: - string - 'null' description: The URL for the next page of results. readOnly: true example: /2/teams/my-team/api-keys?page[after]=3025fa645ad1100d&page[size]=10 securitySchemes: configuration_key: type: apiKey name: X-Honeycomb-Team in: header description: > A Honeycomb Configuration Key is required to use this API. A Configuration Key can be found in the API Keys section of the environment configuration, which can be found under Environment Settings -> API Keys -> Configuration tab. Check out our documentation to [find your API Keys](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/#find-api-keys). More information can be found in [Manage Environments](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). ingest_key: type: apiKey name: X-Honeycomb-Team in: header description: > A Honeycomb Ingest Key is required to use this API. The Ingest Key is the concatenation of the Ingest Key ID and the Ingest Key Secret. For security reasons the Ingest Key Secret will only be available during creation of the Ingest Key while the Ingest Key ID will always be available. More information can be found in [Manage Environments](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). firehose_access_key: type: apiKey name: X-Amz-Firehose-Access-Key in: header description: > A Honeycomb Ingest Key is recommended for use with this API, though a Configuration key will work. More information can be found in [Manage Environments](https://docs.honeycomb.io/get-started/configure/environments/manage-api-keys/). bearerAuth: type: http scheme: bearer description: > A Honeycomb Management Key is required to use this API. The token should be passed in the "Authorization" header, and the secret should be prefixed with "Bearer " followed by the API Key's ID and secret, separated by a colon. For example, `Authorization: Bearer hcxmk_12345678901234567890123456:12345678901234567890123456789012` More information can be found in the [Manage API Keys documentation](https://docs.honeycomb.io/get-started/configure/teams/manage-api-keys/). bearerFormat: HONEYCOMB_KEY_ID:HONEYCOMB_KEY_SECRET