openapi: 3.1.0
info:
title: Honeycomb Auth Dataset Definitions API
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 Pollinators Slack or to Honeycomb Support.
'
servers:
- url: https://api.honeycomb.io
- url: https://api.eu1.honeycomb.io
tags:
- name: Dataset Definitions
description: 'Dataset definitions describe the fields with special meaning in the Dataset.
Refer to the [Dataset Definitions](https://docs.honeycomb.io/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/configure/environments/manage-api-keys/).
'
paths:
/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
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
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
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
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
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
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
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
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'
components:
headers:
RateLimitPolicy:
description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"X;w=Y\".\nWhere:\n - X is the maximum number of requests allowed in a window\n - Y is the size of the window in seconds\n"
schema:
type: string
example: 100;w=60
RateLimit:
description: "The (draft07) recommended header from the IETF on rate limiting.\nThe value of the header is formatted \"limit=X, remaining=Y, reset=Z\".\nWhere:\n - X is the maximum number of requests allowed in the window\n - Y is the number of requests remaining in the window\n - Z is the number of seconds until the limit resets\n"
schema:
type: string
example: limit=100, remaining=50, reset=60
parameters:
datasetSlug:
name: datasetSlug
description: 'The dataset slug.
'
in: path
required: true
schema:
type: string
schemas:
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'
DatasetDefinition:
type:
- 'null'
- object
required:
- name
properties:
name:
type: string
description: The name of the Column or of the Calculated Field (also called 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 Calculated Fields (also called Derived Columns) when setting Dataset Definitions. Honeycomb does not use this field when updating Dataset definitions.'
enum:
- column
- derived_column
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.
JSONAPIError:
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
Error:
x-tags:
- Errors
type: object
description: A legacy error, containing only a textual description.
properties:
error:
type: string
readOnly: true
responses:
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/JSONAPIError'
NotFound:
description: Not Found
headers:
Ratelimit:
$ref: '#/components/headers/RateLimit'
RateLimitPolicy:
$ref: '#/components/headers/RateLimitPolicy'
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/JSONAPIError'
externalDocs:
url: https://docs.honeycomb.io