{"openapi":"3.0.0","info":{"description":"A public and stable API for interacting with axiom services","title":"Axiom","termsOfService":"http://axiom.co/terms","contact":{"name":"Axiom support team","url":"https://axiom.co","email":"hello@axiom.co"},"license":{"name":"Apache 2.0","url":"https://www.apache.org/licenses/LICENSE-2.0.html"},"version":"2.0.0"},"servers":[{"url":"https://api.axiom.co/v2/"}],"paths":{"/annotations":{"get":{"description":"Lists annotations in the organization. Filter by `datasets`, or by a time range with both `start` and `end` at most 100 days apart. Without filters, returns all annotations.","tags":["annotations"],"operationId":"getAnnotations","parameters":[{"description":"Optional: Filter for dataset names.","name":"datasets","in":"query","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Optional: Filter for events after this date. Use RFC3339 time format.","name":"start","in":"query","schema":{"type":"string"}},{"description":"Optional: Filter for events before this date. Use RFC3339 time format.","name":"end","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Annotations.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Annotation"}}}}},"400":{"description":"Invalid `start` or `end`, only one of them set, `end` before `start`, or a range longer than 100 days."}},"security":[{"Auth":["annotations|read"]}]},"post":{"description":"Creates an annotation on one or more existing datasets. If you omit `time`, Axiom uses the time of the request. `time` can't be in the future.","tags":["annotations"],"operationId":"createAnnotation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewAnnotation"}}},"required":true},"responses":{"201":{"description":"Created annotation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Annotation"}}}},"400":{"description":"Invalid annotation, for example an unknown dataset, a `time` in the future, or an `endTime` before `time`."}},"security":[{"Auth":["annotations|create"]}]}},"/annotations/{id}":{"get":{"description":"Retrieves an annotation by its ID.","tags":["annotations"],"operationId":"getAnnotation","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"200":{"description":"Annotation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Annotation"}}}},"400":{"description":"Invalid annotation ID."},"404":{"description":"Annotation not found."}},"security":[{"Auth":["annotations|read"]}]},"put":{"description":"Updates an annotation. Only the fields you include change. Omitted or empty fields keep their current values, so you can't clear a field.","tags":["annotations"],"operationId":"updateAnnotation","parameters":[{"$ref":"#/components/parameters/id"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatedAnnotation"}}},"required":true},"responses":{"200":{"description":"Updated annotation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Annotation"}}}},"400":{"description":"Invalid annotation ID or the updated annotation is invalid."},"404":{"description":"Annotation not found."}},"security":[{"Auth":["annotations|update"]}]},"delete":{"description":"Deletes an annotation by its ID.","tags":["annotations"],"operationId":"deleteAnnotation","parameters":[{"$ref":"#/components/parameters/id"}],"responses":{"204":{"description":"Annotation deleted."},"400":{"description":"Invalid annotation ID."},"404":{"description":"Annotation not found."}},"security":[{"Auth":["annotations|delete"]}]}},"/datasets":{"get":{"description":"Lists the datasets you can read, including datasets shared with your organization, sorted by name. Returns all matching datasets in one response without pagination.","tags":["Datasets"],"summary":"Get list of datasets","operationId":"getDatasets","parameters":[{"description":"Exclude resolved label objects from each dataset response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}},{"description":"Return datasets assigned every specified label ID.","name":"labelIds","in":"query","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500,"uniqueItems":true}}],"responses":{"200":{"description":"Datasets you can read.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Dataset"},"example":[{"created":"2020-01-01T00:00:00Z","description":"This is an example dataset","id":"example-dataset","name":"example-dataset","updatedAt":"2020-01-01T00:00:00Z","who":"John Doe"},{"created":"2020-02-01T00:00:00Z","description":"This is an example dataset","id":"example-dataset-2","name":"example-dataset-2","updatedAt":"2020-02-01T00:00:00Z","who":"Foo Bar"}]}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"}},"security":[{"Auth":[]}],"x-axiom-preview":true},"post":{"description":"Creates a dataset. The `name` must be unique in your organization, and `retentionDays` can't exceed the retention window of your plan.","tags":["Datasets"],"summary":"Create dataset","operationId":"createDataset","parameters":[{"description":"Referrer slug","name":"referrer","in":"query","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDataset"}}},"required":true},"responses":{"200":{"description":"Created dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"400":{"description":"Invalid or reserved `name`, invalid `kind`, `retentionDays` longer than your plan allows, unsupported `edgeDeployment`, or dataset limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"409":{"description":"A dataset with this name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}}},"security":[{"Auth":["datasets|create"]}],"x-axiom-preview":true}},"/datasets/{dataset_id}":{"get":{"description":"Retrieves a dataset by its name.","tags":["Datasets"],"summary":"Get dataset by ID","operationId":"getDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}},{"description":"Exclude resolved label objects from the dataset response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}}],"responses":{"200":{"description":"Dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":[]}],"x-axiom-preview":true},"put":{"description":"Updates the `description` and `retentionDays` of a dataset. Both values are replaced, so omitting `description` clears it, and omitting `retentionDays` or setting it to `0` applies your plan's default retention.","tags":["Datasets"],"summary":"Update dataset","operationId":"updateDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataset"}}},"required":true},"responses":{"200":{"description":"Updated dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dataset"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["datasets|update"]}],"x-axiom-preview":true},"delete":{"description":"Deletes a dataset and queues the permanent deletion of its data. For a dataset shared with your organization, removes it from your organization only. Returns the ID of the deletion job.","tags":["Datasets"],"summary":"Delete dataset","operationId":"deleteDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Dataset deleted and data deletion job created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateResponse"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["datasets|delete"]}],"x-axiom-preview":true}},"/datasets/{dataset_id}/trim":{"post":{"description":"Queues a job that deletes data older than `maxDuration` from an events, logs, or metrics dataset, and returns the job ID. Deletion runs asynchronously.","tags":["datasets"],"summary":"Trim dataset by duration","operationId":"trimDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrimOptions"}}},"required":true},"responses":{"200":{"description":"Job created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateResponse"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["trim|update"]}],"x-axiom-preview":true}},"/datasets/{dataset_id}/vacuum":{"post":{"description":"Queues a job that rebuilds the field schema of a dataset from its stored events, removing fields that no longer occur in any event. Doesn't delete events. You can vacuum each dataset once per hour.","tags":["datasets"],"operationId":"vacuumDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Vacuum job queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobCreateResponse"}}}},"400":{"description":"The dataset is a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"The dataset was vacuumed less than an hour ago. Retry after the time in `Retry-After`.","headers":{"Retry-After":{"description":"The GMT date/time at which the current rate limit window resets.\n","schema":{"type":"string"}}}}},"security":[{"Auth":["vacuum|update"]}]}},"/datasets/{dataset_id}/delete-fields":{"post":{"description":"Queues the deletion of the listed fields from the dataset schema. Deleted values stay in storage but can't be queried, and ingesting a deleted field again recreates it. You can delete fields once every 5 minutes per dataset.","tags":["datasets"],"summary":"Delete fields from a dataset","operationId":"deleteDatasetFields","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDatasetFieldsRequest"}}},"required":true},"responses":{"202":{"description":"Field deletion queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDatasetFieldsResult"}}}},"400":{"description":"Empty `fields`, a field that isn't in the schema, a system field or map field, a locked schema, or a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"429":{"description":"Fields were deleted from this dataset less than 5 minutes ago. Retry after the time in `Retry-After`.","headers":{"Retry-After":{"description":"The GMT date/time at which the current rate limit window resets.\n","schema":{"type":"string"}}}}},"security":[{"Auth":["vacuum|update"]}],"x-axiom-preview":true}},"/datasets/{dataset_id}/fields":{"get":{"description":"Lists the fields in the schema of a dataset with their type, unit, description, and hidden setting. Not supported for metrics datasets.","tags":["datasets"],"operationId":"getFieldsForDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Fields in the dataset.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DatasetField"}}}}},"400":{"description":"The dataset is a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["datasets|read"]}]}},"/datasets/{dataset_id}/fields/{field_id}":{"get":{"description":"Retrieves a field in the schema of a dataset by its name. Not supported for metrics datasets.","tags":["datasets"],"operationId":"getFieldForDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"field_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetField"}}}},"400":{"description":"The dataset is a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"description":"The dataset doesn't exist or the field isn't in its schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}}},"security":[{"Auth":["datasets|read"]}]},"put":{"description":"Updates the `unit`, `description`, and `hidden` settings of a field. All three are replaced, so omitted values are cleared. The `name` and `type` in the body are ignored.","tags":["datasets"],"operationId":"updateFieldForDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"field_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetField"}}},"required":true},"responses":{"200":{"description":"Updated field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetField"}}}},"400":{"description":"A metrics dataset or a dataset managed by Axiom.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"description":"The dataset doesn't exist or the field isn't in its schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}}},"security":[{"Auth":["datasets|update"]}]},"delete":{"description":"Queues the deletion of a field from the dataset schema. Deleted values stay in storage but can't be queried, and ingesting the field again recreates it. You can delete fields once every 5 minutes per dataset.","tags":["datasets"],"summary":"Delete a field from a dataset","operationId":"deleteFieldForDataset","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"field_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"202":{"description":"Field deletion queued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDatasetFieldsResult"}}}},"400":{"description":"A system field or map field, a locked schema, or a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"description":"The dataset doesn't exist or the field isn't in its schema.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"429":{"description":"Fields were deleted from this dataset less than 5 minutes ago. Retry after the time in `Retry-After`.","headers":{"Retry-After":{"description":"The GMT date/time at which the current rate limit window resets.\n","schema":{"type":"string"}}}}},"security":[{"Auth":["vacuum|update"]}],"x-axiom-preview":true}},"/datasets/{dataset_id}/mapfields":{"get":{"description":"Lists the names of the fields configured as map fields in a dataset.","tags":["datasets"],"operationId":"getMapFields","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Map field names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapFields"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["datasets|read"]}],"x-axiom-not-suspended":true},"put":{"description":"Replaces the list of map fields in a dataset. Fields you leave out of the list stop being map fields. Not supported for metrics datasets.","tags":["datasets"],"operationId":"updateMapFields","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapFields"}}},"description":"A list of MapField-names","required":true},"responses":{"200":{"description":"Map field names after the update.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapFields"}}}},"400":{"description":"Empty, invalid, or duplicate field name, or a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["datasets|update"]}],"x-axiom-not-suspended":true},"post":{"description":"Configures a field as a map field. Events you ingest afterward store the field's nested keys inside the map, while previously ingested events keep their structure. Not supported for metrics datasets.","tags":["datasets"],"operationId":"createMapField","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapField"}}},"required":true},"responses":{"200":{"description":"Created map field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapField"}}}},"400":{"description":"Empty or invalid field name, or a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"},"409":{"description":"The field is already a map field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}}},"security":[{"Auth":["datasets|update"]}],"x-axiom-not-suspended":true}},"/datasets/{dataset_id}/mapfields/{map_field_name}":{"delete":{"description":"Removes a field from the map fields of a dataset. The field itself and its ingested data aren't deleted. Not supported for metrics datasets.","tags":["datasets"],"operationId":"deleteMapField","parameters":[{"name":"dataset_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"map_field_name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Map field removed. No response body."},"400":{"description":"The dataset is a metrics dataset.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"description":"The dataset doesn't exist or the field isn't a map field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasetsError"}}}}},"security":[{"Auth":["datasets|update"]}],"x-axiom-not-suspended":true}},"/monitors":{"get":{"description":"Lists monitors in the organization, sorted by name. Only returns monitors that query at least one dataset visible to the caller. Labels are resolved unless `exclude=labels`.","tags":["Monitors"],"operationId":"getMonitors","parameters":[{"description":"Exclude resolved label objects from each monitor response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}},{"description":"Return monitors assigned every specified label ID.","name":"labelIds","in":"query","style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500,"uniqueItems":true}}],"responses":{"200":{"description":"Monitors visible to the caller.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MonitorWithId"}}}}},"400":{"$ref":"#/components/responses/BadRequestError"}},"security":[{"Auth":["monitors|read"]}],"x-axiom-preview":true},"post":{"description":"Creates a monitor. Axiom runs the monitor's query once before saving it and rejects the request if the query fails, for example because it's invalid or references a dataset that doesn't exist.","tags":["Monitors"],"operationId":"createMonitor","requestBody":{"$ref":"#/components/requestBodies/Monitor"},"responses":{"200":{"description":"Created monitor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorWithId"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}},"security":[{"Auth":["monitors|create"]}],"x-axiom-preview":true}},"/monitors/{id}":{"get":{"description":"Retrieves a monitor by ID. Returns `404` if the monitor doesn't exist or the caller can't query its datasets. Labels are resolved unless `exclude=labels`.","tags":["Monitors"],"operationId":"getMonitor","parameters":[{"description":"Monitor ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}},{"description":"Exclude resolved label objects from the monitor response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}}],"responses":{"200":{"description":"Monitor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorWithId"}}}},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["monitors|read"]}]},"put":{"description":"Replaces a monitor's configuration with the request body, so omitted fields reset to their defaults. Axiom runs the new query once before saving, and the update clears the monitor's current alert state.","tags":["Monitors"],"operationId":"updateMonitor","parameters":[{"description":"Monitor ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/Monitor"},"responses":{"200":{"description":"Updated monitor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorWithId"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["monitors|update"]}],"x-axiom-preview":true},"delete":{"description":"Permanently deletes a monitor and removes its label assignments. The caller needs query access to the monitor's datasets.","tags":["Monitors"],"operationId":"deleteMonitor","parameters":[{"description":"Monitor ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Monitor deleted."},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["monitors|delete"]}],"x-axiom-preview":true}},"/monitors/{id}/history":{"get":{"description":"Lists the notifications sent for the monitor between `startTime` and `endTime`. Each delivery is a separate item: one per notifier, and one per recipient for email notifiers. Failed deliveries are included. State changes that sent no notification, for example while the monitor had no notifiers, aren't listed. The caller needs query access to the monitor's datasets.","tags":["Monitors"],"operationId":"getMonitorHistory","parameters":[{"description":"Monitor ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}},{"description":"Start of the time range (RFC 3339).","name":"startTime","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"description":"End of the time range (RFC 3339). Must not be before `startTime`.","name":"endTime","in":"query","required":true,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Notifications sent in the time range.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertHistory"}}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["monitors|read"]}],"x-axiom-preview":true}},"/notifiers":{"get":{"description":"Lists all notifiers in the organization, sorted by name. Labels are resolved unless `exclude=labels`.","tags":["Monitors"],"operationId":"getNotifiers","parameters":[{"description":"Exclude resolved label objects from each notifier response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}}],"responses":{"200":{"description":"Notifiers in the organization.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotifierWithId"}}}}}},"security":[{"Auth":["notifiers|read"]}],"x-axiom-preview":true},"post":{"description":"Creates a notifier. Set exactly one channel under `properties`, such as `slack`, `email`, or `webhook`. Returns `400` if the channel type isn't enabled for your organization.","tags":["Monitors"],"operationId":"createNotifier","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Notifier"}}},"description":"Notifier configuration details","required":true},"responses":{"200":{"description":"Created notifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotifierWithId"}}}},"400":{"$ref":"#/components/responses/BadRequestError"}},"security":[{"Auth":["notifiers|create"]}],"x-axiom-preview":true}},"/notifiers/{id}":{"get":{"description":"Retrieves a notifier by ID. Labels are resolved unless `exclude=labels`.","tags":["Monitors"],"operationId":"getNotifier","parameters":[{"description":"Notifier ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}},{"description":"Exclude resolved label objects from the notifier response. The labelIds field is still returned.","name":"exclude","in":"query","schema":{"type":"string","enum":["labels"]}}],"responses":{"200":{"description":"Notifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotifierWithId"}}}},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["notifiers|read"]}],"x-axiom-preview":true},"put":{"description":"Replaces a notifier's name, channel `properties`, and `disabledUntil` with the request body, so omitted fields are cleared. Label assignments are unchanged.","tags":["Monitors"],"operationId":"updateNotifier","parameters":[{"description":"Notifier ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Notifier"}}},"required":true},"responses":{"200":{"description":"Updated notifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotifierWithId"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["notifiers|update"]}],"x-axiom-preview":true},"delete":{"description":"Permanently deletes a notifier and removes its label assignments. Returns `400` if any monitor still uses the notifier.","tags":["Monitors"],"operationId":"deleteNotifier","parameters":[{"description":"Notifier ID.","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Notifier deleted."},"400":{"$ref":"#/components/responses/BadRequestError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["notifiers|delete"]}],"x-axiom-preview":true}},"/orgs":{"get":{"description":"Lists the organizations the authenticated user is a member of. Requires a personal access token (PAT). Organizations that enforce SAML sign-in are omitted unless the PAT is SAML-authenticated.\n","tags":["orgs"],"operationId":"getOrgs","responses":{"200":{"description":"Organizations the user is a member of.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Org"}}}}}},"security":[{"Auth":[]}],"x-axiom-no-org-required":true},"post":{"description":"Creates an organization on the Personal plan with the authenticated user as its owner. Requires a personal access token (PAT).\n","tags":["orgs"],"operationId":"createOrg","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostOrg"}}},"required":true},"responses":{"200":{"description":"Created organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"400":{"description":"Invalid name or edge deployment, or the user has reached the maximum number of organizations.\n"}},"security":[{"Auth":[]}],"x-axiom-no-org-required":true}},"/orgs/{id}":{"get":{"description":"Retrieves an organization the authenticated user is a member of, including its plan and license limits. Requires a personal access token (PAT).\n","tags":["orgs"],"operationId":"getOrg","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"404":{"description":"Organization not found, or the user isn't a member of it."}},"security":[{"Auth":[]}]},"put":{"description":"Renames an organization and returns the updated organization. Requires a personal access token (PAT) of an owner of the organization.\n","tags":["orgs"],"operationId":"updateOrg","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrg"}}},"required":true},"responses":{"200":{"description":"Updated organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Org"}}}},"400":{"description":"Invalid name."},"403":{"description":"The user isn't an owner of the organization."}},"security":[{"Auth":[]}]}},"/orgs/provision":{"post":{"description":"Creates a temporary organization for an automated agent and returns a full-permission API token and a claim URL. The organization is deleted after 24 hours unless a human claims it. Doesn't require authentication and is rate limited per client IP.\n","tags":["orgs"],"summary":"Provision a temporary organization for an agent","operationId":"provisionOrg","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionOrg"}}},"required":true},"responses":{"200":{"description":"Provisioned organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionOrgResponse"}}}},"400":{"description":"Invalid name or edge deployment."},"429":{"description":"Rate limit exceeded, either for the client IP or for all callers. Retry later with backoff.\n"}},"security":[]}},"/rbac/roles":{"get":{"description":"Lists the custom roles in the organization with their capabilities and the IDs of users assigned each role directly. Built-in roles such as `axiom-admin` aren't included.","tags":["rbac"],"summary":"List all roles","operationId":"listRoles","responses":{"200":{"description":"Custom roles in the organization.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleWithID"}}}}}},"security":[{"Auth":["rbac|read"]}]},"post":{"description":"Creates a custom role. Requires an Enterprise plan or the RBAC add-on. The name must be unique and can't start with `axiom-`. The `members` field is ignored; assign users with the Update user role endpoint.","tags":["rbac"],"summary":"Create role","operationId":"createRole","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"description":"The role's name, description, and capabilities","required":true},"responses":{"200":{"description":"The created role.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleWithID"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"}},"security":[{"Auth":["rbac|create"]}]}},"/rbac/roles/{id}":{"get":{"description":"Retrieves a custom role by ID with its capabilities and the IDs of users assigned the role directly. Built-in role IDs such as `axiom-admin` return `404`.","tags":["rbac"],"summary":"Get role by ID","operationId":"getRoleById","parameters":[{"description":"Unique identifier of the role to retrieve","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The role.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleWithID"}}}},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|read"]}]},"put":{"description":"Replaces a custom role's name, description, and capabilities. Capabilities you omit are removed, and the `members` field is ignored. Requires an Enterprise plan or the RBAC add-on.","tags":["rbac"],"summary":"Update role","operationId":"updateRole","parameters":[{"description":"Unique identifier of the role to update","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Role"}}},"description":"The role's new name, description, and capabilities","required":true},"responses":{"200":{"description":"The updated role.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleWithID"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|create"]}]},"delete":{"description":"Permanently deletes a custom role. Users assigned the role get the `none` role, and the role is removed from all groups. Requires an Enterprise plan or the RBAC add-on.","tags":["rbac"],"summary":"Delete role","operationId":"deleteRole","parameters":[{"description":"Unique identifier of the role to delete","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The role was deleted."},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|create"]}]}},"/rbac/groups":{"get":{"description":"Lists all groups in the organization with the role IDs and user IDs assigned to each group.","tags":["rbac"],"summary":"List all groups","operationId":"listGroups","responses":{"200":{"description":"Groups in the organization.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GroupWithID"}}}}}},"security":[{"Auth":["rbac|read"]}]},"post":{"description":"Creates a group whose members get the group's roles. Requires an Enterprise plan or the RBAC add-on. The name must be unique, every role ID must exist, and you can't add yourself as a member.","tags":["rbac"],"summary":"Create group","operationId":"createGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"The group's name, description, roles, and members","required":true},"responses":{"200":{"description":"The created group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupWithID"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"}},"security":[{"Auth":["rbac|create"]}]}},"/rbac/groups/{id}":{"get":{"description":"Retrieves a group by ID with its role IDs, member user IDs, and whether it's managed by your identity provider (`isManaged`).","tags":["rbac"],"summary":"Get group by ID","operationId":"getGroupById","parameters":[{"description":"Unique identifier of the group to retrieve","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupWithID"}}}},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|read"]}]},"put":{"description":"Replaces a group's name, description, roles, and members. Fields you omit are cleared, and members of managed groups aren't changed. Requires an Enterprise plan or the RBAC add-on.","tags":["rbac"],"summary":"Update group","operationId":"updateGroup","parameters":[{"description":"Unique identifier of the group to update","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}},"description":"The group's new name, description, roles, and members","required":true},"responses":{"200":{"description":"The updated group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupWithID"}}}},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|create"]}]},"delete":{"description":"Permanently deletes a group. Members lose the roles the group granted but keep their own role, and dashboards the group owned are shared with everyone. Managed groups can't be deleted. Requires an Enterprise plan or the RBAC add-on.","tags":["rbac"],"summary":"Delete group","operationId":"deleteGroup","parameters":[{"description":"Unique identifier of the group to delete","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The group was deleted."},"400":{"$ref":"#/components/responses/BadRequestError"},"403":{"$ref":"#/components/responses/ForbiddenError"},"404":{"$ref":"#/components/responses/NotFoundError"}},"security":[{"Auth":["rbac|create"]}]}},"/apl-starred-queries":{"get":{"description":"Lists saved APL queries on datasets you can read, sorted by name. Use `who` to choose whose queries to return, and `limit` and `offset` to paginate.","tags":["starred"],"operationId":"getStarredQueries","parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"description":"Return only queries saved on this dataset.","name":"dataset","in":"query","schema":{"type":"string"}},{"description":"- If the value of `who` is your own user ID, the request returns queries saved by the authenticated user.\n- If the value of `who` is `team`, the request returns queries saved by other users in the organization. For example, `&who=team`.\n- If the value of `who` is `all`, the request returns queries saved by all users in the organization, including the authenticated user. For example, `&who=all`.\n- Any other value returns `400`. This includes another user's ID, and omitting `who` when you authenticate with a personal access token.","name":"who","in":"query","schema":{"type":"string"}},{"description":"Return only queries whose name contains this string. Case-insensitive.","name":"qs","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Saved queries.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StarredQueryWithId"}}}}},"400":{"description":"Invalid `who`."},"404":{"description":"You can't read the dataset in `dataset`."}},"security":[{"Auth":["starredQueries|read"]}]},"post":{"description":"Saves an APL query for the authenticated user. Axiom sets `who` to the caller and `kind` to `apl`. If you omit `dataset`, Axiom uses the alphabetically first dataset that `query.apl` references.","tags":["starred"],"operationId":"createStarred","requestBody":{"$ref":"#/components/requestBodies/StarredQuery"},"responses":{"200":{"description":"Created saved query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarredQueryWithId"}}}},"400":{"description":"Missing `name`, or no `dataset` given and none found in `query.apl`."},"403":{"description":"You don't have permission to create saved queries on the dataset."}},"security":[{"Auth":["starredQueries|create"]}]}},"/apl-starred-queries/{id}":{"get":{"description":"Retrieves a saved query by its ID.","tags":["starred"],"operationId":"getStarred","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saved query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarredQueryWithId"}}}},"404":{"description":"Saved query not found, or you can't read its dataset."}},"security":[{"Auth":["starredQueries|read"]}]},"put":{"description":"Replaces the `name`, `dataset`, `query`, and `metadata` of a saved query. With a personal access token, you can only update queries you saved.","tags":["starred"],"operationId":"updateStarred","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/StarredQuery"},"responses":{"200":{"description":"Updated saved query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarredQueryWithId"}}}},"400":{"description":"Missing `name`, or no `dataset` given and none found in `query.apl`."},"401":{"description":"The saved query belongs to another user."},"403":{"description":"You don't have permission to update saved queries on the current or new dataset."},"404":{"description":"Saved query not found."}},"security":[{"Auth":["starredQueries|update"]}]},"delete":{"description":"Deletes a saved query by its ID. With a personal access token, you can only delete queries you saved.","tags":["starred"],"operationId":"deleteStarred","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Saved query deleted."},"401":{"description":"The saved query belongs to another user."},"403":{"description":"You don't have permission to delete saved queries on the query's dataset."},"404":{"description":"Saved query not found."}},"security":[{"Auth":["starredQueries|delete"]}]}},"/tokens":{"get":{"description":"Lists the organization's active API tokens. Expired tokens, personal access tokens, and token secret values aren't included.\n","tags":["tokens"],"operationId":"getAPITokens","responses":{"200":{"description":"Active API tokens.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/APIToken"}}}}}},"security":[{"Auth":["apiTokens|read"]}]},"post":{"description":"Creates an API token and returns its secret `token` value, which you can't retrieve again. You can only grant capabilities you have yourself. If you omit `expiresAt`, the token doesn't expire.\n","tags":["tokens"],"operationId":"createAPIToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIToken"}}},"required":true},"responses":{"200":{"description":"Created API token, including its secret `token` value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPITokenResponse"}}}},"400":{"description":"No capability set, an invalid capability, or a capability the caller doesn't have.\n"}},"security":[{"Auth":["apiTokens|create"]}],"x-axiom-not-suspended":true}},"/tokens/{id}":{"get":{"description":"Retrieves an active API token by ID. The response doesn't include the token's secret value.\n","tags":["tokens"],"operationId":"getAPIToken","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"API token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIToken"}}}},"404":{"description":"API token not found or expired."}},"security":[{"Auth":["apiTokens|read"]}]},"delete":{"description":"Permanently deletes an API token so it can no longer authenticate requests.\n","tags":["tokens"],"operationId":"deleteAPIToken","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"API token deleted."},"404":{"description":"API token not found or expired."}},"security":[{"Auth":["apiTokens|delete"]}]}},"/tokens/{id}/regenerate":{"post":{"description":"Creates a new API token with the existing token's capabilities, or with those in `newToken`, and returns its secret value. The existing token keeps working until `existingTokenExpiresAt`; set it to the current time to revoke it immediately.\n","tags":["tokens"],"operationId":"regenerateAPIToken","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateAPIToken"}}}},"responses":{"200":{"description":"New API token, including its secret `token` value.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPITokenResponse"}}}},"400":{"description":"Missing `existingTokenExpiresAt`, expiry set in both `newTokenExpiresAt` and `newToken.expiresAt`, or invalid capabilities in `newToken`.\n"},"404":{"description":"API token not found or expired."}},"security":[{"Auth":["apiTokens|update"]}],"x-axiom-not-suspended":true}},"/user":{"get":{"description":"Retrieves the user who owns the personal access token (PAT) used to authenticate. API tokens aren't supported. The response includes `role` only when the `X-AXIOM-ORG-ID` header is set.\n","tags":["Users"],"operationId":"getCurrentUser","responses":{"200":{"description":"Current user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"403":{"description":"The request was authenticated with an API token, or the user isn't a member of the organization in `X-AXIOM-ORG-ID`.\n"}},"security":[{"Auth":[]}],"x-axiom-no-org-required":true,"x-axiom-preview":true},"put":{"description":"Updates the name of the user who owns the personal access token (PAT) used to authenticate. API tokens aren't supported. The response doesn't include `role`.\n","tags":["Users"],"operationId":"updateCurrentUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCurrentUserRequest"}}},"required":true},"responses":{"200":{"description":"Updated user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid name, or the request was authenticated with an API token."}},"security":[{"Auth":[]}],"x-axiom-no-org-required":true,"x-axiom-preview":true}},"/users":{"get":{"description":"Lists all members of the organization, including each member's role.\n","tags":["Users"],"operationId":"getUsers","responses":{"200":{"description":"Organization members.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}}}},"security":[{"Auth":["users|read"]}],"x-axiom-preview":true},"post":{"description":"Adds a user to the organization with the given role and sends them an invite email. If the email address already belongs to an Axiom account, Axiom keeps its existing name. API tokens can't assign the `owner` role.\n","tags":["Users"],"operationId":"createUser","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserRequest"}}},"required":true},"responses":{"200":{"description":"Added user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"Invalid email address, the user is already a member, or the organization has reached its user limit.\n"},"403":{"description":"Insufficient permissions, or the caller isn't allowed to assign the `owner` role.\n"},"404":{"description":"Role not found."}},"security":[{"Auth":["users|create"]}],"x-axiom-no-org-required":true,"x-axiom-not-suspended":true,"x-axiom-preview":true}},"/users/{id}":{"get":{"description":"Retrieves a member of the organization by user ID, including their role.\n","tags":["Users"],"operationId":"getUser","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"User.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"404":{"description":"User not found."}},"security":[{"Auth":["users|read"]}],"x-axiom-preview":true},"delete":{"description":"Removes a user from the organization without deleting their Axiom account. You can't remove the organization's last member. With a personal access token (PAT), only owners can remove an owner.\n","tags":["Users"],"operationId":"removeUserFromOrg","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"User removed from the organization."}},"security":[{"Auth":["users|delete"]}],"x-axiom-preview":true}},"/users/{id}/role":{"put":{"description":"Changes the role of a member of the organization and returns the updated user. You can't change your own role. Only owners using a personal access token (PAT) can assign `owner` or change an owner's role.\n","tags":["Users"],"operationId":"updateUserRole","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRoleRequest"}}},"required":true},"responses":{"200":{"description":"Updated user.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"403":{"description":"Insufficient permissions, you tried to change your own role, or the caller isn't allowed to assign or change the `owner` role.\n"},"404":{"description":"User or role not found."}},"security":[{"Auth":["users|update"]}],"x-axiom-preview":true}},"/vfields":{"get":{"description":"Lists the virtual fields of a dataset, ordered by creation time.","tags":["vfields"],"operationId":"getVirtualFields","parameters":[{"description":"Name of the dataset","name":"dataset","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Virtual fields.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VirtualFieldWithId"}}}}},"404":{"description":"You can't read the dataset."}},"security":[{"Auth":["virtualFields|read"]}]},"post":{"description":"Creates a virtual field on a dataset. Axiom sets its ID to `<dataset>.<name>`, so the name must be unique within the dataset. `expression` must be a valid APL expression.","tags":["vfields"],"operationId":"createVirtualField","requestBody":{"$ref":"#/components/requestBodies/VirtualField"},"responses":{"200":{"description":"Created virtual field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualFieldWithId"}}}},"400":{"description":"Missing `dataset`, `name`, or `expression`, an invalid `name`, or an expression that doesn't parse."},"403":{"description":"You don't have permission to create virtual fields on the dataset."},"404":{"description":"You can't read the dataset."},"409":{"description":"A virtual field with this name already exists on the dataset."}},"security":[{"Auth":["virtualFields|create"]}]}},"/vfields/{id}":{"get":{"description":"Retrieves a virtual field by its ID.","tags":["vfields"],"operationId":"getVirtualField","parameters":[{"description":"ID of the virtual field in the form `<dataset>.<name>`","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Virtual field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualFieldWithId"}}}},"404":{"description":"Virtual field not found, or you can't read its dataset."}},"security":[{"Auth":["virtualFields|read"]}]},"put":{"description":"Replaces all fields of a virtual field. Omitted optional fields are cleared. The ID doesn't change, even if you change `name` or `dataset`.","tags":["vfields"],"operationId":"updateVirtualField","parameters":[{"description":"ID of the virtual field in the form `<dataset>.<name>`","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/VirtualField"},"responses":{"200":{"description":"Updated virtual field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualFieldWithId"}}}},"400":{"description":"Missing `dataset`, `name`, or `expression`, an invalid `name`, or an expression that doesn't parse."},"403":{"description":"You don't have permission to update virtual fields on the current or new dataset."},"404":{"description":"Virtual field not found."}},"security":[{"Auth":["virtualFields|update"]}]},"delete":{"description":"Deletes a virtual field by its ID.","tags":["vfields"],"operationId":"deleteVirtualField","parameters":[{"description":"ID of the virtual field in the form `<dataset>.<name>`","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Virtual field deleted."},"403":{"description":"You don't have permission to delete virtual fields on the dataset."},"404":{"description":"Virtual field not found, or you can't read its dataset."}},"security":[{"Auth":["virtualFields|delete"]}]}},"/views":{"get":{"description":"Lists the views in the organization, including views shared with it by other organizations.","tags":["views"],"operationId":"getViews","responses":{"200":{"description":"Views.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/View"}}}}}},"security":[{"Auth":["views|read"]}]},"post":{"description":"Creates a view, a named APL query that you can query like a dataset. Axiom derives `datasets` from `aplQuery`. The name can't match an existing dataset or view, and the query can't reference views or use wildcards.","tags":["views"],"operationId":"createView","requestBody":{"$ref":"#/components/requestBodies/View"},"responses":{"200":{"description":"Created view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/View"}}}},"400":{"description":"Invalid view, for example an APL parse error, a name that's already in use, or a query that references a view or datasets in different regions."},"403":{"description":"You don't have query access to a dataset that `aplQuery` references."}},"security":[{"Auth":["views|create"]}]}},"/views/{id}":{"get":{"description":"Retrieves a view by its name.","tags":["views"],"operationId":"getView","parameters":[{"description":"Name of the view","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"View.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/View"}}}},"403":{"description":"You don't have query access to the view's dataset."},"404":{"description":"View not found."}},"security":[{"Auth":["views|read"]}]},"put":{"description":"Replaces the `aplQuery` and `description` of a view, identified by its name. Axiom ignores `name` and `datasets` in the body and derives `datasets` from the new query.","tags":["views"],"operationId":"updateView","parameters":[{"description":"Name of the view","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/View"},"responses":{"200":{"description":"Updated view.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/View"}}}},"403":{"description":"You don't have query access to the view's current or new datasets."},"404":{"description":"View not found."}},"security":[{"Auth":["views|update"]}]},"delete":{"description":"Deletes a view by its name.","tags":["views"],"operationId":"deleteView","parameters":[{"description":"Name of the view","name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"View deleted."},"403":{"description":"You don't have query access to the view's dataset."},"404":{"description":"View not found."}},"security":[{"Auth":["views|delete"]}]}},"/dashboards":{"get":{"tags":["dashboards"],"summary":"List dashboards","description":"Lists dashboards visible to the caller, sorted by name and paginated with `limit` and `offset`. Labels are resolved unless `exclude=labels`.","operationId":"listDashboards","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/Limit"},{"$ref":"#/components/parameters/Offset"},{"name":"exclude","in":"query","description":"Exclude resolved label objects from each dashboard response. The labelIds field is still returned.","schema":{"type":"string","enum":["labels"]}},{"name":"labelIds","in":"query","description":"Return dashboards assigned every specified label ID.","schema":{"type":"array","minItems":1,"maxItems":500,"uniqueItems":true,"items":{"type":"string"}},"style":"form","explode":false}],"responses":{"200":{"description":"Dashboards visible to the caller.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DashboardResource"}}}}},"400":{"description":"Invalid label filter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}},"post":{"tags":["dashboards"],"summary":"Create dashboard","description":"Creates a dashboard and generates a `uid` if you don't set one. If a dashboard with the `uid` already exists, updates it and returns `200`, which requires the current `version` or `overwrite: true`.","operationId":"createDashboard","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpsertRequest"}}}},"responses":{"200":{"description":"Updated dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardWriteResponse"}}}},"201":{"description":"Created dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardWriteResponse"}}}},"400":{"description":"Invalid dashboard payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"409":{"description":"Dashboard already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"412":{"description":"Version conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}}},"/dashboards/uid/{uid}":{"get":{"tags":["dashboards"],"summary":"Get dashboard","description":"Retrieves a dashboard by UID, including its current `version`. Labels are resolved unless `exclude=labels`.","operationId":"getDashboard","security":[{"bearerAuth":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}},{"name":"exclude","in":"query","description":"Exclude resolved label objects from the dashboard response. The labelIds field is still returned.","schema":{"type":"string","enum":["labels"]}}],"responses":{"200":{"description":"Dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardResource"}}}},"404":{"description":"Dashboard not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}},"put":{"tags":["dashboards"],"summary":"Update dashboard","description":"Replaces the dashboard document for the UID. Set `version` to the current version, or `overwrite: true` to skip the check; a stale `version` returns `412`. Creates the dashboard and returns `201` if the UID doesn't exist.","operationId":"updateDashboard","security":[{"bearerAuth":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpsertRequest"}}}},"responses":{"200":{"description":"Updated dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardWriteResponse"}}}},"201":{"description":"Created dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardWriteResponse"}}}},"400":{"description":"Invalid dashboard payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"409":{"description":"Dashboard already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"412":{"description":"Version conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}},"delete":{"tags":["dashboards"],"summary":"Delete dashboard","description":"Permanently deletes a dashboard by UID and removes its label assignments. Returns `404` if the dashboard doesn't exist or the caller can't manage it.","operationId":"deleteDashboard","security":[{"bearerAuth":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Dashboard deleted"},"404":{"description":"Dashboard not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}}},"/dashboards/uid/{uid}/charts/{chartId}":{"patch":{"tags":["dashboards"],"summary":"Patch dashboard chart","description":"Applies a JSON merge patch to one chart in a dashboard. Set `version` to the dashboard's current version, or `overwrite: true` to skip the check; a stale `version` returns `412`.","operationId":"patchDashboardChart","security":[{"bearerAuth":[]}],"parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string"}},{"name":"chartId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardChartPatchRequest"}}}},"responses":{"200":{"description":"Updated dashboard","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardWriteResponse"}}}},"400":{"description":"Invalid dashboard chart patch","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"404":{"description":"Dashboard or chart not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}},"412":{"description":"Version conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardError"}}}}}}}},"components":{"parameters":{"Limit":{"name":"limit","in":"query","schema":{"type":"integer","format":"int64","minimum":1,"maximum":1000,"default":100}},"Offset":{"name":"offset","in":"query","schema":{"type":"integer","format":"int64","minimum":0,"default":0}},"id":{"description":"Unique ID of the annotation","name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^ann_"}}},"responses":{"BadRequestError":{"description":"Bad request","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"example":{"code":400,"message":"Bad request"}}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"example":{"code":403,"message":"Forbidden"}}}}},"NotFoundError":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"example":{"code":404,"message":"Not found"}}}}}},"requestBodies":{"Repo":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Repo"}}},"required":true},"View":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/View"}}},"required":true},"DashboardUpsertRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DashboardUpsertRequest"}}},"required":true},"StarredQuery":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StarredQuery"}}},"required":true},"Monitor":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Monitor"}}},"required":true},"VirtualField":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VirtualField"}}},"required":true}},"securitySchemes":{"Auth":{"description":"Authenticate using an API token or personal access token (PAT). Include the token as a Bearer token: `Authorization: Bearer <token>`. For more information, see [Tokens](/reference/tokens).","type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://accounts.google.com/o/oauth2/v2/auth","tokenUrl":"https://www.googleapis.com/oauth2/v4/token","scopes":{}}}},"Shared":{"type":"apiKey","name":"tk","in":"query"},"bearerAuth":{"type":"http","scheme":"bearer","description":"Authenticate using an API token or personal access token (PAT). Include the token as a Bearer token: `Authorization: Bearer <token>`. For more information, see [Tokens](/reference/tokens)."}},"schemas":{"APIToken":{"type":"object","required":["id","name","datasetCapabilities","orgCapabilities"],"properties":{"apiLastUsed":{"description":"When the token was last used on an API other than ingest","type":"string","format":"date-time","readOnly":true,"nullable":true},"auditIdentity":{"description":"Audit identity of the token","type":"string","readOnly":true},"datasetCapabilities":{"$ref":"#/components/schemas/datasetCapabilities"},"description":{"description":"Description of the token","type":"string"},"expiresAt":{"description":"Expiration date of the token (ISO 8601 format)","type":"string","format":"date-time","readOnly":true,"nullable":true},"id":{"description":"ID of the token","type":"string"},"ingestLastUsed":{"description":"When the token was last used to ingest","type":"string","format":"date-time","readOnly":true,"nullable":true},"name":{"description":"Name of the token","type":"string"},"orgCapabilities":{"$ref":"#/components/schemas/orgCapabilities"},"samlAuthenticated":{"type":"boolean"},"viewCapabilities":{"$ref":"#/components/schemas/viewCapabilities"}}},"APLRequestWithOptions":{"type":"object","required":["apl"],"properties":{"apl":{"type":"string"},"cursor":{"type":"string"},"defaultLimit":{"type":"integer","format":"int64"},"defaultOrder":{"type":"array","items":{"$ref":"#/components/schemas/APLRequestWithOptionsDefaultOrder"}},"endTime":{"type":"string"},"includeCursor":{"type":"boolean"},"includeCursorField":{"type":"boolean"},"libraries":{"type":"array","items":{"type":"string"}},"queryOptions":{"$ref":"#/components/schemas/QueryOptions"},"startTime":{"type":"string"},"variables":{"type":"object"}}},"APLRequestWithOptionsDefaultOrder":{"type":"object","properties":{"desc":{"type":"boolean"},"field":{"type":"string"}}},"AggInfo":{"description":"AggInfo captures information about an aggregation","type":"object","properties":{"args":{"description":"Args specifies any non-field arguments for the aggregation. Fx. [10] for topk(players, 10).","type":"array","items":{}},"fields":{"description":"Fields specifies the names of the fields this aggregation is computed on.\nFx [\"players\"] for topk(players, 10)","type":"array","items":{"type":"string"}},"name":{"description":"Name is the system name of the aggregation, which is the string form of aggregation.Type.\nIf the aggregation is aliased, the alias is stored in the parent FieldInfo","type":"string"}}},"AlertHistory":{"description":"A notification sent for a monitor.","type":"object","required":["name","checkId","timestamp","state"],"properties":{"checkId":{"description":"ID of the monitor","type":"string","example":"QgOLFXIvK0ZbYf3tZE"},"name":{"description":"Title of the notification: `Triggered: ` or `Resolved: ` followed by the monitor name","type":"string","example":"Triggered: High CPU usage"},"state":{"description":"`open` if the notification reported that the monitor triggered, `closed` if it reported that the monitor resolved","type":"string","enum":["open","closed"],"example":"open"},"timestamp":{"description":"Time the delivery was recorded, after any retries","type":"string","format":"date-time","example":"2024-03-20T15:30:00Z"}}},"Annotation":{"type":"object","required":["id","time","datasets","type"],"properties":{"datasets":{"description":"array<string> of dataset names for which the annotation appears on charts","type":"array","minItems":1,"items":{"type":"string","minLength":1}},"description":{"description":"Explanation of the event the annotation marks on the charts","type":"string","maxLength":512},"endTime":{"description":"End time of the annotation","type":"string","format":"date-time","nullable":true},"id":{"$ref":"#/components/schemas/AnnotationID"},"time":{"description":"Time the annotation marks on the charts. If you don't include this field, Axiom assigns the time of the API request to the annotation.","type":"string","format":"date-time"},"title":{"description":"Summary of the annotation that appears on the charts","type":"string","maxLength":256},"type":{"description":"Type of the event marked by the annotation. Use only alphanumeric characters or hyphens. For example, \"production-deployment\".","type":"string","maxLength":256,"pattern":"^[a-z0-9-]+$"},"url":{"description":"URL relevant for the event marked by the annotation. For example, link to GitHub pull request.","type":"string","maxLength":512}},"example":{"datasets":["my-dataset"],"description":"Deploy new feature to the sales form","endTime":"2024-02-06T11:39:28.382Z","id":"ann_123","time":"2024-02-06T10:39:28.382Z","title":"Production deployment","type":"deploy","url":"https://example.com"}},"AnnotationID":{"type":"string","x-go-type":{"import":{"package":"github.com/axiomhq/axiom/pkg/core/ids"},"type":"AnnotationID"}},"AplDeletionRequest":{"type":"object","required":["apl","commit"],"properties":{"Modules":{"description":"Key-value pairs of module names and module sources. Axiom will make modules available for this query later.","type":"object","additionalProperties":{"type":"string"}},"apl":{"type":"string"},"commit":{"type":"boolean"},"endTime":{"type":"string"},"startTime":{"description":"start and end time for the query, these must be specified as RFC3339 strings\nor using relative time expressions (e.g. now-1h, now-1d, now-1w, etc)","type":"string"},"variables":{"description":"Variables is an optional set of additional variables that are inserted into the APL","type":"object","additionalProperties":{}}}},"AplDeletionResponse":{"type":"object","required":["rowsMatched","rowsDeleted"],"properties":{"blocksMatched":{"type":"integer","format":"uint64"},"dryRun":{"type":"boolean"},"firstMatchedEvent":{"description":"these are timestamps","type":"string"},"lastMatchedEvent":{"type":"string"},"rowsDeleted":{"type":"integer","format":"uint64"},"rowsMatched":{"type":"integer","format":"uint64"}}},"AplModuleDefinition":{"type":"object","properties":{"constant":{"$ref":"#/components/schemas/Constant"},"description":{"description":"The description of the apl module definition.","type":"string"},"id":{"description":"The unique identifier for the object.","type":"string"},"lookup":{"$ref":"#/components/schemas/Lookup"},"name":{"description":"The name of the apl module definition.","type":"string"},"namespace":{"description":"The namespace of the APL module definition.","type":"string"},"type":{"description":"The type of the object.","type":"string","enum":["REGEX","CONSTANT","LOOKUP"]}}},"AplQueryError":{"type":"object","properties":{"code":{"description":"Status is the http status code associated with this error","type":"integer"},"detail":{"$ref":"#/components/schemas/AplQueryErrorDetail"},"message":{"description":"a formatted user-facing error message","type":"string"}}},"AplQueryErrorDetail":{"type":"object","properties":{"column":{"description":"Column is the column associated with this compile type error","type":"integer","format":"int64"},"compileErrorCode":{"description":"CompileErrorCode is a special error code that is only available for Compile Errors\nIt is an integer value that can be used to identify the error","type":"integer","format":"int64","enum":[1,2,16,17,32,33,34]},"errorType":{"description":"Error Type is an integer value indicating the kind of error","type":"integer","format":"int64","enum":[1,2,3,4]},"line":{"description":"Line is the line associated with this compile type error","type":"integer","format":"int64"},"message":{"description":"Message is the raw error message without any formatting","type":"string"}}},"AplRequest":{"type":"object","required":["apl"],"properties":{"apl":{"type":"string"},"variables":{"type":"object","additionalProperties":{}}}},"AplResult":{"type":"object","required":["status","tables"],"properties":{"status":{"$ref":"#/components/schemas/Status"},"tables":{"description":"Tables hold the result data for a query","type":"array","items":{"$ref":"#/components/schemas/Table"}}}},"BucketInfo":{"description":"The standard mode of operation for Kirby is to create buckets on the _time column,","type":"object","title":"BucketInfo captures information about how a grouped query is sorted into buckets.","properties":{"field":{"description":"Field specifies the field used to create buckets on. Normally this would be _time.","type":"string"},"size":{"description":"An integer or float representing the fixed bucket size.\nWhen the bucket field is _time this value is in nanoseconds."}}},"Changes":{"type":"object","required":["collections"],"properties":{"collections":{"description":"Map of collection name to the RFC3339 time of its last change.","type":"object","additionalProperties":{"type":"string","format":"date-time"}}}},"ClaudeCodeConfig":{"description":"Claude Code routine. Axiom sends a fixed text body when the monitor fires.","type":"object","required":["routineId","token"],"properties":{"routineId":{"description":"Routine ID from a Claude Code API trigger","type":"string","example":"trig_01ABCDEFGHJKLMNOPQRSTUVW"},"token":{"description":"Bearer token for the routine","type":"string"}}},"Constant":{"type":"object","properties":{"value":{"description":"Constant value of any type"}}},"CreateAPIToken":{"type":"object","required":["name"],"properties":{"datasetCapabilities":{"$ref":"#/components/schemas/datasetCapabilities"},"description":{"description":"Description of the token","type":"string"},"expiresAt":{"description":"Expiration date of the token (ISO 8601 format)","type":"string","format":"date-time","nullable":true},"name":{"description":"Name of the token","type":"string"},"orgCapabilities":{"$ref":"#/components/schemas/orgCapabilities"},"viewCapabilities":{"$ref":"#/components/schemas/viewCapabilities"}}},"CreateAPITokenResponse":{"type":"object","allOf":[{"$ref":"#/components/schemas/APIToken"},{"type":"object","properties":{"token":{"type":"string","x-go-name":"Value"}}}]},"CreateDataset":{"type":"object","required":["name"],"properties":{"description":{"description":"Dataset description","type":"string","default":""},"edgeDeployment":{"description":"Edge deployment of the dataset","type":"string","x-omitempty":true},"kind":{"description":"The kind of the dataset","type":"string","default":"axiom:events:v1","enum":["otel:metrics:v1","otel:traces:v1","otel:logs:v1","axiom:events:v1"],"example":"axiom:events:v1"},"name":{"description":"Dataset unique name","type":"string"},"retentionDays":{"description":"Number of days to retain data in the dataset","type":"integer","x-omitempty":false},"useRetentionPeriod":{"description":"Ignored. Axiom derives this value from `retentionDays`.","type":"boolean","x-omitempty":false}},"example":{"description":"string","kind":"axiom:events:v1","name":"string","retentionDays":30}},"CreateUserRequest":{"description":"Object representing a new user creation request","type":"object","required":["name","email","role"],"properties":{"email":{"description":"Email address of the new user","type":"string","example":"jane.doe@example.com"},"name":{"description":"Full name of the new user","type":"string","example":"Jane Doe"},"role":{"description":"Role to assign to the new user","type":"string","example":"member"}}},"CursorConfig":{"description":"Cursor automation webhook. Axiom sends a fixed context body when the monitor fires.","type":"object","required":["webhookUrl","token"],"properties":{"token":{"description":"Bearer token for the automation webhook","type":"string"},"webhookUrl":{"description":"Automation webhook URL from a Cursor automation","type":"string","example":"https://api2.cursor.sh/automations/webhook/00000000-0000-0000-0000-000000000000"}}},"CustomNotifierConfig":{"description":"Configuration for custom webhook notifications with flexible headers and body template.\nSupports variable substitution in the body template using {{.Variable}} syntax.\n","type":"object","required":["url","body"],"properties":{"body":{"description":"Template for the webhook body, supports variable substitution","type":"string","example":"{\"alert\": \"{{.AlertName}}\", \"severity\": \"{{.Severity}}\", \"message\": \"{{.Message}}\"}"},"headers":{"description":"HTTP headers to include in the request","type":"object","additionalProperties":{"type":"string"},"example":{"Content-Type":"application/json","X-API-Version":"1.0"}},"secretHeaders":{"description":"Sensitive HTTP headers (tokens, keys) that should be masked in logs","type":"object","additionalProperties":{"type":"string"},"example":{"Authorization":"Bearer {{token}}"}},"url":{"description":"Custom webhook endpoint URL","type":"string","example":"https://api.custom-service.com/alerts"}}},"DashboardChartPatchDocument":{"type":"object","additionalProperties":true},"DashboardChartPatchRequest":{"type":"object","required":["chart"],"properties":{"chart":{"$ref":"#/components/schemas/DashboardChartPatchDocument","description":"JSON merge patch applied to the existing chart. If id is present, it must match the chartId path parameter."},"message":{"type":"string"},"overwrite":{"type":"boolean","default":false},"version":{"description":"Required when overwrite is false.","type":"integer","format":"int64"}}},"DashboardDocument":{"type":"object","additionalProperties":true,"$ref":"#/components/schemas/Dashboard"},"DashboardError":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"currentVersion":{"type":"integer","format":"int64"},"message":{"type":"string"},"reason":{"type":"string"},"uid":{"type":"string"}}},"DashboardID":{"type":"string","x-go-type":{"import":{"package":"github.com/axiomhq/axiom/pkg/core/ids"},"type":"DashboardID"}},"DashboardResource":{"type":"object","required":["uid","id","version","dashboard","createdAt","updatedAt","createdBy","updatedBy","labelIds"],"properties":{"createdAt":{"type":"string","format":"date-time"},"createdBy":{"type":"string"},"dashboard":{"$ref":"#/components/schemas/DashboardDocument"},"id":{"type":"string"},"labelIds":{"type":"array","items":{"$ref":"#/components/schemas/LabelID"}},"labels":{"type":"array","items":{"$ref":"#/components/schemas/Label"},"x-omitempty":true},"uid":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"updatedBy":{"type":"string"},"version":{"type":"integer","format":"int64"}}},"DashboardUpsertRequest":{"type":"object","required":["dashboard"],"properties":{"dashboard":{"$ref":"#/components/schemas/DashboardDocument"},"message":{"type":"string"},"overwrite":{"type":"boolean","default":false},"uid":{"description":"Stable external dashboard identifier (org-scoped unique).","type":"string"},"version":{"description":"Required for updates when overwrite is false.","type":"integer","format":"int64"}}},"DashboardVariable":{"description":"A variable defines an APL variable that is available to a dashboard","type":"object","required":["name","kind"],"properties":{"default":{"description":"If set, should be the default value for this variable in the dashboard","type":"object"},"kind":{"description":"A kind allows for different kinds of variables to be treated differently depending on what they are used for. A refless kind indicates that it's just a plain variable and we can not derive possible values from it A datadog kind indicates that we will use the ref value as a lookup against a datadog tag\n","type":"string","enum":["refless","datadog"]},"name":{"type":"string"},"ref":{"description":"The ref value indicates where this variable can derive its values from","type":"string"},"values":{"description":"Values is an indication of possible values for this variable, it may not be all the possible values just known quantities","type":"array","items":{"type":"object"},"x-omitempty":true}}},"DashboardWriteResponse":{"type":"object","required":["status","dashboard"],"properties":{"dashboard":{"$ref":"#/components/schemas/DashboardResource"},"overwritten":{"type":"boolean"},"status":{"type":"string","enum":["created","updated"]}}},"Dataset":{"type":"object","required":["id","name","description","created","updatedAt","who","kind","labelIds"],"properties":{"canWrite":{"description":"Whether this dataset has write access","type":"boolean"},"created":{"description":"The RFC3339-formatted time when the dataset was created.","type":"string","format":"date-time"},"description":{"description":"Dataset description","type":"string"},"edgeDeployment":{"description":"Edge deployment of the dataset","type":"string","x-omitempty":true},"edgeDeploymentUrl":{"description":"URL of the edge deployment","type":"string","x-omitempty":true},"id":{"description":"Dataset ID","type":"string"},"kind":{"description":"The kind of the dataset","type":"string","default":"axiom:events:v1","enum":["otel:metrics:v1","otel:traces:v1","otel:logs:v1","axiom:events:v1"],"example":"axiom:events:v1"},"labelIds":{"description":"IDs of labels assigned to this dataset.","type":"array","items":{"$ref":"#/components/schemas/LabelID"}},"labels":{"description":"Resolved labels assigned to this dataset.","type":"array","items":{"$ref":"#/components/schemas/Label"},"x-omitempty":true},"mapFields":{"type":"array","items":{"type":"string"}},"name":{"description":"Unique dataset name","type":"string"},"reclaimableFields":{"description":"Number of unused fields a vacuum can reclaim, when the dataset is a vacuum candidate","type":"integer","format":"int64","x-omitempty":false},"retentionDays":{"description":"Number of days to retain data in the dataset","type":"integer","x-omitempty":false},"sharedByOrg":{"description":"ID of the org that shared this resource, if it's shared","type":"string"},"updatedAt":{"description":"The RFC3339-formatted time when the dataset was last updated.","type":"string","format":"date-time"},"useRetentionPeriod":{"description":"Whether to use the retention period","type":"boolean","x-omitempty":false},"vacuumCandidate":{"description":"Whether the dataset has unused fields that a vacuum can reclaim","type":"boolean","x-omitempty":false},"who":{"description":"Name of the dataset creator","type":"string"}},"example":{"created":"2022-07-20T02:35:14.137Z","description":"string","id":"string","kind":"axiom:events:v1","name":"string","updatedAt":"2022-07-20T02:35:14.137Z","who":"string"}},"DatasetField":{"type":"object","required":["name","type"],"properties":{"description":{"description":"Description of the field","type":"string"},"hidden":{"description":"Whether the field is hidden","type":"boolean"},"name":{"description":"Name of the field","type":"string"},"type":{"description":"Type of the field","type":"string"},"unit":{"description":"Unit of the field","type":"string"}}},"DatasetSchemaHealth":{"type":"object","required":["fieldCount"],"properties":{"active30d":{"description":"Fields with a non-null value in the last 30 days. Omitted if presence stats fail.","type":"integer","format":"int64","nullable":true},"fieldCount":{"description":"Number of fields in the dataset catalog.","type":"integer","format":"int64","x-omitempty":false},"fieldLimit":{"description":"Organization field limit. Null when the org has no field cap.","type":"integer","format":"int64","x-omitempty":false,"nullable":true},"growth":{"description":"Fields first registered in each window. Fields with no firstSeen are skipped.","type":"object","required":["7d","30d"],"properties":{"30d":{"description":"Fields first registered in the last 30 days.","type":"integer","format":"int64","x-go-name":"ThirtyDay","x-omitempty":false},"7d":{"description":"Fields first registered in the last 7 days.","type":"integer","format":"int64","x-go-name":"SevenDay","x-omitempty":false}},"x-omitempty":false},"headroom":{"description":"fieldLimit minus fieldCount. Can be negative. Null when fieldLimit is null.","type":"integer","format":"int64","x-omitempty":false,"nullable":true},"inactive30d":{"description":"Fields with no non-null value in the last 30 days. Omitted if presence stats fail.","type":"integer","format":"int64","nullable":true},"topGrowthSources":{"description":"Parent paths with the most fields first registered in the last 7 days.","type":"array","items":{"$ref":"#/components/schemas/DatasetSchemaHealthGrowthSource"},"x-omitempty":false}}},"DatasetSchemaHealthGrowthSource":{"type":"object","required":["prefix","newFields7d"],"properties":{"newFields7d":{"description":"Fields first registered under this prefix in the last 7 days.","type":"integer","format":"int64","x-omitempty":false},"prefix":{"description":"Parent dotted path of the new fields.","type":"string"}}},"DatasetUnusedFields":{"type":"object","required":["fieldCount","unused"],"properties":{"fieldCount":{"description":"Number of fields in the dataset catalog.","type":"integer","format":"int64","x-omitempty":false},"unused":{"description":"Catalog fields with a name or type absent from blocks.","type":"array","items":{"$ref":"#/components/schemas/UnusedField"},"x-omitempty":false}}},"DatasetsError":{"type":"object","properties":{"code":{"description":"HTTP status code.","type":"integer"},"message":{"description":"Error message.","type":"string"}},"example":{"code":400,"message":"Vacuuming a metrics dataset is not supported"}},"DeleteDatasetFieldsRequest":{"type":"object","required":["fields"],"properties":{"fields":{"type":"array","items":{"type":"string"}}},"example":{"fields":["field1","field2"]}},"DeleteDatasetFieldsResult":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string"},"x-omitempty":false},"jobId":{"type":"string"}},"example":{"fields":["field1","field2"]}},"DiscordConfig":{"description":"Configuration for Discord notifications using bot token","properties":{"discordChannel":{"description":"Discord channel ID to send notifications","type":"string","example":"123456789012345678"},"discordToken":{"description":"Discord bot token for authentication","type":"string","example":"Bot 123456789012345678"}}},"DiscordWebhookConfig":{"description":"Configuration for Discord notifications using webhooks","properties":{"discordWebhookUrl":{"description":"Discord webhook URL","type":"string","example":"https://discord.com/api/webhooks/123456789012345678/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}},"EdgeDeployment":{"type":"object","required":["id","instanceName","deploymentType","cloud","domain","description"],"properties":{"cloud":{"description":"Edge deployment cloud","type":"string"},"deploymentType":{"description":"Edge deployment type","type":"string"},"description":{"description":"Edge deployment description","type":"string"},"domain":{"description":"Edge deployment domain","type":"string"},"environmentDefault":{"description":"Whether the edge deployment is the default for the environment","type":"boolean"},"id":{"description":"Unique edge deployment identifier","type":"string"},"instanceName":{"description":"Human-readable edge deployment name","type":"string"}}},"EdgeDeployments":{"type":"object","required":["axiom"],"properties":{"axiom":{"type":"array","items":{"$ref":"#/components/schemas/EdgeDeployment"}}}},"EmailConfig":{"description":"Configuration for email notifications","properties":{"emails":{"description":"List of email addresses to receive notifications","type":"array","items":{"type":"string"},"example":["oncall@example.com","alerts@example.com"]}}},"FieldInfo":{"type":"object","title":"FieldInfo captures information about a field used in the tabular result format. See Table.","properties":{"agg":{"$ref":"#/components/schemas/AggInfo"},"name":{"type":"string"},"type":{"type":"string"}}},"Group":{"description":"Defines a group of users for organizational purposes","type":"object","required":["name"],"properties":{"description":{"description":"Detailed description of the group's purpose and scope","type":"string"},"isManaged":{"description":"Whether the group is synced from your identity provider. You can't delete a managed group or change its members.","type":"boolean","readOnly":true},"members":{"description":"List of user IDs that are assigned to this group","type":"array","items":{"type":"string"}},"name":{"description":"Unique name identifier for the group","type":"string"},"roles":{"description":"IDs of the roles assigned to the group. Use a custom role ID or a built-in role ID: `axiom-owner`, `axiom-admin`, `axiom-user`, `axiom-read-only`, or `axiom-none`.","type":"array","items":{"type":"string"}}}},"GroupInfo":{"type":"object","title":"GroupInfo captures information about a grouping clause in the tabular result format. See Table.","properties":{"name":{"type":"string"}}},"GroupWithID":{"description":"Extends the base Group type to include a unique identifier","allOf":[{"$ref":"#/components/schemas/Group"},{"type":"object","required":["id"],"properties":{"id":{"description":"Unique identifier for the group","type":"string"}}}]},"IdentifyAPITokenRequest":{"type":"object","required":["token"],"properties":{"token":{"description":"The raw token value to identify","type":"string"}}},"IdentifyAPITokenResponse":{"type":"object","required":["name","createdAt"],"properties":{"createdAt":{"description":"When the token was created (ISO 8601 format)","type":"string","format":"date-time"},"createdBy":{"description":"User ID or token ID of the creator","type":"string"},"description":{"description":"Description of the token","type":"string"},"name":{"description":"Name of the token","type":"string"}}},"Job":{"type":"object","required":["jobID"],"properties":{"createdAt":{"type":"string","format":"date-time"},"datasetCanonicalID":{"type":"string"},"datasetID":{"type":"string"},"error":{"type":"string"},"jobID":{"type":"string"},"lastUpdatedAt":{"type":"string","format":"date-time"},"metadata":{"type":"object","additionalProperties":true},"numUpdates":{"type":"integer"},"orgID":{"type":"string"},"progress":{"type":"integer"},"source":{"type":"string"},"type":{"type":"string"}},"x-go-type":{"import":{"package":"github.com/axiomhq/axiom/pkg/foundations/common/jobs"},"type":"Job"}},"JobCreateResponse":{"type":"object","required":["jobID"],"properties":{"jobID":{"type":"string"}},"x-go-type":{"import":{"alias":"corejobs","package":"github.com/axiomhq/axiom/pkg/core/common/jobs"},"type":"CreateResponse"}},"Label":{"type":"object","required":["id","name","color"],"properties":{"color":{"$ref":"#/components/schemas/LabelColor"},"description":{"type":"string","nullable":true},"id":{"$ref":"#/components/schemas/LabelID"},"name":{"type":"string"}}},"LabelAssignedResource":{"type":"object","required":["type"],"properties":{"dataset":{"description":"Set only for frontend-generated integration dashboards.","type":"string"},"id":{"description":"Uses the same public identifier as LabelAssignmentTarget.id.","type":"string"},"templateId":{"description":"Set only for frontend-generated integration dashboards.","type":"string"},"type":{"type":"string","enum":["dashboard","integration_dashboard","dataset","monitor","notifier"]}}},"LabelAssignmentResult":{"type":"object","required":["target","labelIds"],"properties":{"labelIds":{"type":"array","items":{"$ref":"#/components/schemas/LabelID"}},"target":{"$ref":"#/components/schemas/LabelAssignmentTarget"}}},"LabelAssignmentTarget":{"description":"A resource that supports organization labels. Single-identifier targets use id; frontend-generated integration dashboards use templateId and dataset.","type":"object","required":["type"],"properties":{"dataset":{"description":"Required only for frontend-generated integration dashboards and rejected for other target types. Use the current dataset name. Assignments use the underlying dataset instance, so permanent deletion and recreation do not restore old labels.","type":"string"},"id":{"description":"Public identifier for the resource. Use the dashboard UID for a dashboard, the dataset name for a dataset, and the ID returned by the monitor, notifier, or backend-provided integration dashboard APIs.","type":"string"},"templateId":{"description":"Stable frontend-owned template key for a frontend-generated integration dashboard, such as k8s.stats. Requires dataset and rejects id. Whitespace and control characters are rejected.","type":"string","maxLength":128},"type":{"type":"string","enum":["dashboard","integration_dashboard","dataset","monitor","notifier"]}}},"LabelAssignmentsQuery":{"type":"object","required":["targets"],"properties":{"targets":{"type":"array","maxItems":500,"minItems":1,"uniqueItems":true,"items":{"$ref":"#/components/schemas/LabelAssignmentTarget"}}}},"LabelAssignmentsReplace":{"type":"object","required":["target","labelIds"],"properties":{"labelIds":{"type":"array","maxItems":500,"uniqueItems":true,"items":{"$ref":"#/components/schemas/LabelID"}},"target":{"$ref":"#/components/schemas/LabelAssignmentTarget"}}},"LabelColor":{"type":"object","required":["type","name"],"properties":{"name":{"type":"string","enum":["red","coral","orange","amber","yellow","lime","green","teal","blue","iris","purple","pink"]},"type":{"type":"string","enum":["palette"]}}},"LabelDetails":{"type":"object","required":["id","name","color","resources_count","assigned_resources"],"properties":{"assigned_resources":{"type":"array","items":{"$ref":"#/components/schemas/LabelAssignedResource"}},"color":{"$ref":"#/components/schemas/LabelColor"},"description":{"type":"string","nullable":true},"id":{"$ref":"#/components/schemas/LabelID"},"name":{"type":"string"},"resources_count":{"$ref":"#/components/schemas/LabelResourcesCount"}}},"LabelID":{"type":"string","x-go-type":{"import":{"package":"github.com/axiomhq/axiom/pkg/core/ids"},"type":"LabelID"}},"LabelResourcesCount":{"type":"object","required":["dashboards","monitors","datasets","notifiers","total"],"properties":{"dashboards":{"type":"integer","format":"int64"},"datasets":{"type":"integer","format":"int64"},"monitors":{"type":"integer","format":"int64"},"notifiers":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"LabelSummary":{"type":"object","required":["id","name","color","resources_count"],"properties":{"color":{"$ref":"#/components/schemas/LabelColor"},"description":{"type":"string","nullable":true},"id":{"$ref":"#/components/schemas/LabelID"},"name":{"type":"string"},"resources_count":{"$ref":"#/components/schemas/LabelResourcesCount"}}},"LabelUpdate":{"type":"object","required":["name"],"properties":{"color":{"$ref":"#/components/schemas/LabelColor"},"description":{"type":"string","maxLength":512,"nullable":true},"name":{"type":"string","maxLength":128,"minLength":1}}},"License":{"type":"object","required":["id","tier","issuer","issuedTo","issuedAt","validFrom","monthlyIngestGb","monthlyQueryGbHours","apiRateLimitPerSecond","maxUsers","maxDatasets","maxMonitors","maxFields","maxEndpoints","maxQueryWindowSeconds","maxAuditWindowSeconds","withAuths","features","billingPeriodStart","billingPeriodEnd","defaultEdgeDeployment","edgeDeployments"],"properties":{"apiRateLimitPerSecond":{"type":"integer","format":"uint64"},"billingPeriodEnd":{"type":"string","format":"date-time"},"billingPeriodStart":{"type":"string","format":"date-time"},"defaultEdgeDeployment":{"type":"string","x-omitempty":true},"edgeDeployments":{"type":"array","items":{"type":"string"},"x-omitempty":true},"expiresAt":{"type":"string","format":"date-time","nullable":true},"features":{"type":"object","additionalProperties":{"type":"boolean"}},"id":{"type":"string"},"issuedAt":{"type":"string","format":"date-time"},"issuedTo":{"type":"string"},"issuer":{"type":"string"},"maxAuditWindowSeconds":{"type":"integer","format":"uint64"},"maxDatasets":{"type":"integer","format":"uint64"},"maxEndpoints":{"type":"integer","format":"uint64"},"maxFields":{"type":"integer","format":"uint64"},"maxMonitors":{"type":"integer","format":"uint64"},"maxQueryWindowSeconds":{"type":"integer","format":"uint64"},"maxUsers":{"type":"integer","format":"uint64"},"monthlyIngestGb":{"type":"integer","format":"uint64"},"monthlyQueryGbHours":{"type":"integer","format":"uint64"},"storageAllowanceGB":{"type":"integer","format":"uint64"},"tier":{"type":"string","enum":["personal","teamMonthlyAws","axiomCloud","teamPlus","enterprise","comped","accelerator"]},"validFrom":{"type":"string","format":"date-time"},"withAuths":{"type":"array","items":{"type":"string"}}}},"Lookup":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"array","items":{}}},"schema":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"MapField":{"description":"A map field, described by a name","type":"object","required":["name"],"properties":{"name":{"type":"string"}},"example":{"name":"fieldname"}},"MapFields":{"description":"A list of map field names","type":"array","items":{"type":"string"},"example":["field1","field2"]},"Message":{"type":"object","required":["priority","count","message","code"],"properties":{"code":{"type":"string"},"count":{"type":"integer","format":"int64"},"message":{"type":"string"},"priority":{"type":"string","enum":["trace","debug","info","warn","error","fatal"]}}},"MicrosoftTeamsConfig":{"description":"Configuration for Microsoft Teams notifications","properties":{"microsoftTeamsUrl":{"description":"Microsoft Teams webhook URL","type":"string","example":"https://outlook.office.com/webhook/123456789/IncomingWebhook/..."}}},"Monitor":{"description":"Configuration for a monitoring rule. Monitors can be configured to:\n- Check threshold values (e.g., CPU usage > 90%)\n- Match specific events in logs\n- Detect anomalies based on historical patterns\nEach monitor runs on a specified interval and can trigger notifications through configured notifiers.\n","type":"object","required":["name","type"],"properties":{"alertOnNoData":{"description":"Whether to alert when no data is received","type":"boolean","example":true},"aplQuery":{"description":"APL (Axiom Processing Language) query string used for monitoring.\nThis query defines what data to analyze and how to process it.\nAt least one of aplQuery or mplQuery must be provided.\n","type":"string","example":"| where severity = 'error' | count() > 100"},"columnName":{"description":"Name of the column to monitor","type":"string","example":"cpu_usage"},"compareDays":{"description":"Number of days to compare for anomaly detection","type":"number","format":"int64","maximum":7,"example":7},"description":{"description":"Detailed description of the monitor's purpose","type":"string","example":"Monitors CPU usage and alerts when it exceeds 90%"},"disabled":{"description":"Whether the monitor is currently disabled","type":"boolean","example":false},"disabledUntil":{"description":"Timestamp until when the monitor should remain disabled","type":"string","format":"date-time","example":"2024-04-01T00:00:00Z","nullable":true},"intervalMinutes":{"description":"How frequently the monitor should run, in minutes.\nMinimum value is 1 minute.\n","type":"integer","format":"int64","minimum":1,"example":5},"mplQuery":{"description":"MPL (Metrics Processing Language) query string for metrics-based monitoring.\nUse this as an alternative to aplQuery for metrics datasets.\nAt least one of aplQuery or mplQuery must be provided.\n","type":"string","example":"test-metrics:http_request_duration_seconds"},"name":{"description":"Name of the monitor","type":"string","example":"Production CPU Monitor"},"notifierIds":{"description":"List of notifier IDs that will receive alerts.\nNotifiers can be email, Slack, webhook endpoints, etc.\n","type":"array","items":{"type":"string"},"example":["z0NfJw64aKagPOBBIJ"]},"notifyByGroup":{"description":"Whether to group notifications","type":"boolean","example":false},"notifyEveryRun":{"description":"Whether to send notifications on every check","type":"boolean","example":false},"operator":{"description":"Comparison operator for threshold checks:\n- Below: Trigger when value < threshold\n- BelowOrEqual: Trigger when value <= threshold\n- Above: Trigger when value > threshold\n- AboveOrEqual: Trigger when value >= threshold\n- AboveOrBelow: Trigger when value is outside a range\n","type":"string","enum":["Below","BelowOrEqual","Above","AboveOrEqual","AboveOrBelow"],"example":"Above"},"rangeMinutes":{"description":"Time window to evaluate in each check, in minutes.\nFor example, \"last 5 minutes of data\"\n","type":"integer","format":"int64","minimum":1,"example":5},"resolvable":{"description":"Whether the alert can be manually resolved","type":"boolean","example":true},"secondDelay":{"description":"Delay in seconds before triggering the alert","type":"number","format":"int64","maximum":86400,"example":300},"skipResolved":{"description":"Whether to skip resolved alerts","type":"boolean","example":false},"threshold":{"description":"Threshold value for triggering the alert","type":"number","format":"double","x-omitempty":false,"example":90},"tolerance":{"description":"Tolerance percentage for anomaly detection","type":"number","maximum":100,"example":10},"triggerAfterNPositiveResults":{"description":"Number of positive results needed before triggering","type":"number","format":"int64","example":2},"triggerFromNRuns":{"description":"Number of consecutive check runs that must fail before triggering an alert.\nUse this to avoid alerting on temporary spikes.\n","type":"number","format":"int64","example":3},"type":{"description":"Type of monitoring check to perform:\n- Threshold: Compares a numeric value against a threshold\n- MatchEvent: Looks for specific events or patterns\n- AnomalyDetection: Identifies unusual patterns based on historical data\n","type":"string","enum":["Threshold","MatchEvent","AnomalyDetection"],"example":"Threshold"}}},"MonitorWithId":{"description":"Monitor configuration with its unique identifier","allOf":[{"$ref":"#/components/schemas/Monitor"},{"type":"object","required":["id","labelIds"],"properties":{"createdAt":{"description":"Timestamp when the monitor was created","type":"string","format":"date-time","example":"2024-03-20T10:00:00Z"},"createdBy":{"description":"ID of the user who created the monitor","type":"string","example":"usr_789xyz"},"datasets":{"description":"Dataset names referenced by the monitor query.","type":"array","items":{"type":"string"},"example":["production-logs"]},"id":{"description":"Unique identifier for the monitor","type":"string","example":"QgOLFXIvK0ZbYf3tZE"},"labelIds":{"description":"IDs of labels assigned to this monitor.","type":"array","items":{"$ref":"#/components/schemas/LabelID"}},"labels":{"description":"Resolved labels assigned to this monitor.","type":"array","items":{"$ref":"#/components/schemas/Label"},"x-omitempty":true},"lastError":{"description":"Most recent error encountered while evaluating the monitor.","type":"string"},"updatedAt":{"description":"Timestamp when the monitor was last updated","type":"string","format":"date-time","example":"2024-03-20T10:30:00Z"}}}]},"NewAnnotation":{"type":"object","required":["datasets","type"],"properties":{"datasets":{"description":"array<string> of dataset names for which the annotation appears on charts","type":"array","items":{"type":"string"}},"description":{"description":"Explanation of the event the annotation marks on the charts","type":"string","maxLength":512},"endTime":{"description":"End time of the annotation","type":"string","format":"date-time"},"time":{"description":"Time the annotation marks on the charts. If you don't include this field, Axiom assigns the time of the API request to the annotation.","type":"string","format":"date-time"},"title":{"description":"Summary of the annotation that appears on the charts","type":"string","maxLength":256},"type":{"description":"Type of the event marked by the annotation. Use only alphanumeric characters or hyphens. For example, \"production-deployment\".","type":"string","maxLength":256,"pattern":"^[a-z0-9-]+$"},"url":{"description":"URL relevant for the event marked by the annotation. For example, link to GitHub pull request.","type":"string","maxLength":512}}},"NewLabel":{"type":"object","required":["name"],"properties":{"color":{"$ref":"#/components/schemas/LabelColor"},"description":{"type":"string","maxLength":512,"nullable":true},"name":{"type":"string","maxLength":128,"minLength":1}}},"Notifier":{"description":"Configuration for a notification channel. Notifiers can be configured for various services like:\n- Slack\n- Email\n- PagerDuty\n- OpsGenie\n- Discord\n- Microsoft Teams\n- Custom Webhooks\n- Cursor\n- Claude Code\n","type":"object","required":["name","properties"],"properties":{"createdAt":{"description":"Timestamp when the notifier was created","type":"string","format":"date-time","readOnly":true,"example":"2024-01-15T10:30:00Z"},"createdBy":{"description":"Email or ID of the user who created the notifier","type":"string","readOnly":true,"example":"alice@example.com"},"disabledUntil":{"description":"ISO timestamp until which the notifier is disabled (null if enabled)","type":"string","example":"2024-03-20T15:00:00Z"},"name":{"description":"Human-readable name for the notifier","type":"string","example":"Production Slack Alerts"},"properties":{"$ref":"#/components/schemas/NotifierProperties"},"updatedAt":{"description":"Timestamp when the notifier was last updated","type":"string","format":"date-time","readOnly":true,"example":"2024-01-15T11:00:00Z"}}},"NotifierProperties":{"description":"Configuration options for different notification channels. Only one channel should be configured per notifier.","properties":{"claudeCode":{"$ref":"#/components/schemas/ClaudeCodeConfig"},"cursor":{"$ref":"#/components/schemas/CursorConfig"},"customWebhook":{"$ref":"#/components/schemas/CustomNotifierConfig"},"discord":{"$ref":"#/components/schemas/DiscordConfig"},"discordWebhook":{"$ref":"#/components/schemas/DiscordWebhookConfig"},"email":{"$ref":"#/components/schemas/EmailConfig"},"microsoftTeams":{"$ref":"#/components/schemas/MicrosoftTeamsConfig"},"opsgenie":{"$ref":"#/components/schemas/OpsGenieConfig"},"pagerduty":{"$ref":"#/components/schemas/PagerDutyConfig"},"slack":{"$ref":"#/components/schemas/SlackConfig"},"webhook":{"$ref":"#/components/schemas/WebhookConfig"}}},"NotifierWithId":{"description":"Notifier configuration with its unique identifier","allOf":[{"$ref":"#/components/schemas/Notifier"},{"type":"object","required":["labelIds"],"properties":{"id":{"description":"Unique identifier for the notifier","type":"string","example":"z0NfJw64aKagPOBBIJ"},"labelIds":{"description":"IDs of labels assigned to this notifier.","type":"array","items":{"$ref":"#/components/schemas/LabelID"}},"labels":{"description":"Resolved labels assigned to this notifier.","type":"array","items":{"$ref":"#/components/schemas/Label"},"x-omitempty":true}}}]},"OTELResponse":{"type":"string","format":"binary"},"OpsGenieConfig":{"description":"Configuration for OpsGenie integration","properties":{"apiKey":{"description":"OpsGenie API key for authentication","type":"string","example":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"},"isEU":{"description":"Whether to use EU region endpoints","type":"boolean","example":true}}},"Order":{"type":"object","required":["desc","field"],"properties":{"desc":{"type":"boolean"},"field":{"type":"string"}},"additionalProperties":false},"Org":{"type":"object","required":["id","name","plan","planCreated","lastUsageSync","paymentStatus","license","primaryEmail"],"properties":{"defaultEdgeDeployment":{"type":"string"},"firstFailedPayment":{"type":"string"},"id":{"type":"string"},"lastUsageSync":{"type":"string"},"license":{"$ref":"#/components/schemas/License"},"metaCreated":{"type":"string"},"metaModified":{"type":"string"},"metaVersion":{"type":"string"},"name":{"type":"string"},"paymentStatus":{"type":"string","enum":["na","failed","success","blocked"]},"plan":{"type":"string","enum":["personal","teamMonthlyAws","axiomCloud","teamPlus","enterprise","comped","accelerator"]},"planCreated":{"type":"string"},"primaryEmail":{"type":"string"},"role":{"type":"string"}}},"OrgPreview":{"type":"object","required":["name","defaultEdgeDeployment","expiresAt","datasetCount","ingestedBytes"],"properties":{"datasetCount":{"description":"Number of datasets currently in the organization.","type":"integer","format":"int64"},"defaultEdgeDeployment":{"description":"The edge deployment (region) the organization was created in.","type":"string"},"expiresAt":{"description":"When the temporary organization expires and becomes eligible for deletion.","type":"string","format":"date-time"},"ingestedBytes":{"description":"Bytes ingested into the organization over the past 24 hours.","type":"integer","format":"int64"},"name":{"type":"string"}}},"PagerDutyConfig":{"description":"Configuration for PagerDuty integration","properties":{"routingKey":{"description":"PagerDuty integration key for routing alerts","type":"string","example":"1234567890abcdef1234567890abcdef"},"token":{"description":"PagerDuty API token for additional functionality","type":"string","example":"u+1234567890abcdef1234567890abcdef"}}},"PostOrg":{"type":"object","required":["name"],"properties":{"edgeDeployment":{"description":"The default edge deployment of the organization.","type":"string"},"name":{"type":"string"}}},"ProvisionOrg":{"type":"object","properties":{"edgeDeployment":{"description":"Optional edge deployment (region) the organization is created in. If omitted, the environment's default region is used.\n","type":"string"},"name":{"description":"Optional display name for the organization. If omitted, a name is auto-generated and the owner can rename it later.\n","type":"string"}}},"ProvisionOrgResponse":{"type":"object","required":["id","name","defaultEdgeDeployment","expiresAt","claimUrl","token"],"properties":{"claimUrl":{"description":"URL a human follows to claim ownership of the temporary org.","type":"string"},"defaultEdgeDeployment":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"id":{"type":"string"},"name":{"type":"string"},"token":{"description":"Full-permission API token the agent uses to create datasets, ingest, and query. Returned once and never retrievable again.\n","type":"string"}}},"QueryOptions":{"type":"object","properties":{"disableCache":{"type":"boolean"},"disableStats":{"type":"boolean"},"disableTrace":{"type":"boolean"},"maxDataPoints":{"type":"integer","format":"int64"},"maxSeries":{"type":"integer","format":"int64"},"noAggregation":{"type":"boolean"},"noFill":{"type":"boolean"},"noInterpolation":{"type":"boolean"},"priority":{"type":"string","enum":["low","medium","high"]},"resolution":{"type":"string"},"displayNull":{"type":"string","enum":["auto","null","span","zero",""],"description":"Controls how empty intervals are rendered in time series charts. `auto` infers from the query, `null` leaves gaps, `span` connects adjacent points, `zero` fills with zero."},"overlayCharts":{"$ref":"#/components/schemas/BooleanString","description":"When enabled, charts are overlaid on a single chart instead of stacked separately."},"shownColumns":{"type":"string","maxLength":10000},"timeSeriesVariant":{"type":"string","enum":["area","bars","line","lines",""]},"timeSeriesView":{"type":"string","enum":["charts","resultsTable","charts|resultsTable",""]}},"additionalProperties":false},"RangeInfo":{"type":"object","title":"RangeInfo specifies the window a query was restricted to.","properties":{"end":{"description":"End is the ending time the query is limited by.\nQueries are restricted to the interval (start,end).","type":"string","format":"date-time"},"field":{"description":"Field specifies the field name on which the query range was restricted. Normally _time","type":"string"},"start":{"description":"Start is the starting time the query is limited by.\nQueries are restricted to the interval (start,end).","type":"string","format":"date-time"}}},"RegenerateAPIToken":{"type":"object","required":["existingTokenExpiresAt"],"properties":{"existingTokenExpiresAt":{"description":"Expiration date of the existing token (ISO 8601 format)","type":"string","format":"date-time"},"newToken":{"$ref":"#/components/schemas/CreateAPIToken"},"newTokenExpiresAt":{"description":"Expiration date of the new token (ISO 8601 format)","type":"string","format":"date-time","nullable":true}}},"Repo":{"type":"object","properties":{"createdBy":{"description":"UUID of the user or system that created the object.","type":"string","format":"uuid"},"data":{"description":"Data specific to the type of repo object.","type":"string"},"global":{"description":"Indicates whether the object is global.","type":"boolean"},"id":{"description":"The unique identifier for the object.","type":"string"},"resourceId":{"description":"The unique identifier for the associated resource object.","type":"string"},"type":{"description":"The type of the object.","type":"string","enum":["PACKAGE","DATASET","MONITOR","DASHBOARD","VIRTUAL_FIELD","APL_MODULE_DEFINITION","VIEW"]}}},"Role":{"description":"Defines a role and its associated permissions within the system","type":"object","required":["name"],"properties":{"datasetCapabilities":{"$ref":"#/components/schemas/roleDatasetCapabilities"},"description":{"description":"Detailed description of the role's purpose and scope","type":"string"},"members":{"description":"IDs of users assigned this role directly. Returned in responses and ignored in requests. To assign a role to a user, use the Update user role endpoint.","type":"array","items":{"type":"string"}},"name":{"description":"Unique name identifier for the role","type":"string"},"orgCapabilities":{"$ref":"#/components/schemas/roleOrgCapabilities"},"viewCapabilities":{"$ref":"#/components/schemas/roleViewCapabilities"}}},"RoleWithID":{"description":"Extends the base Role type to include a unique identifier","allOf":[{"$ref":"#/components/schemas/Role"},{"type":"object","required":["id"],"properties":{"id":{"description":"Unique identifier for the role","type":"string"}}}]},"ShareRequest":{"type":"object","properties":{"canWrite":{"type":"boolean"},"expiryDate":{"description":"Optional time which the link will expire","type":"string","format":"date-time"},"organizationIds":{"description":"Optional list of organization IDs to restrict access to the shared link.","type":"array","items":{"type":"string"}},"type":{"description":"The type of the object.","type":"string","enum":["PACKAGE","DATASET","MONITOR","DASHBOARD","VIRTUAL_FIELD","REGEX","QUERY","CONSTANT","MAPPING","VIEW"]}}},"ShareResponse":{"type":"object","properties":{"canWrite":{"type":"boolean"},"expiryDate":{"description":"Optional time which the link will expire","type":"string","format":"date-time"},"id":{"description":"The unique identifier for the object.","type":"string"},"organizationIds":{"description":"Optional list of organization IDs with access to the shared link.","type":"array","items":{"type":"string"}},"organizationNames":{"description":"Optional list of organization names associated with the ids.","type":"array","items":{"type":"string"}},"shareableLink":{"description":"The URL that can be used to access the shared repo.","type":"string"},"token":{"type":"string"},"type":{"description":"The type of the object.","type":"string","enum":["PACKAGE","DATASET","MONITOR","DASHBOARD","VIRTUAL_FIELD","REGEX","QUERY","VIEW"]}}},"SlackConfig":{"description":"Configuration for Slack notifications using incoming webhooks","properties":{"slackUrl":{"description":"Slack incoming webhook URL","type":"string","example":"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"}}},"SlackEvent":{"type":"object","required":["token","team_id","api_app_id","event","type","event_id","event_time"],"properties":{"api_app_id":{"description":"ID of the Slack app that the event is for","type":"string"},"event":{"type":"object","required":["type","user","ts","channel"],"properties":{"channel":{"description":"Channel ID where the event occurred","type":"string"},"text":{"description":"Text content of the event","type":"string"},"ts":{"description":"Timestamp of when the event occurred","type":"string"},"type":{"description":"Type of the event","type":"string"},"user":{"description":"ID of the user who triggered the event","type":"string"}}},"event_id":{"description":"Unique identifier for the event","type":"string"},"event_time":{"description":"Timestamp of when the event was dispatched","type":"integer","format":"int64"},"team_id":{"description":"ID of the team where the event originated","type":"string"},"token":{"description":"Verification token to validate the event is from Slack","type":"string"},"type":{"description":"Type of the event callback","type":"string"}}},"SourceInfo":{"description":"Result sources will typically be the names of a datasets that were searched,\nbut may be expanded to other things in the future.","type":"object","title":"SourceInfo specifies the provenance of a results Table.","properties":{"name":{"type":"string"}}},"StarredQuery":{"type":"object","required":["kind","name","who","query","metadata"],"properties":{"dataset":{"type":"string"},"kind":{"type":"string","enum":["apl"]},"metadata":{"type":"object","additionalProperties":{"type":"string"}},"name":{"type":"string"},"query":{"$ref":"#/components/schemas/APLRequestWithOptions"},"who":{"type":"string"}}},"StarredQueryWithId":{"type":"object","allOf":[{"$ref":"#/components/schemas/StarredQuery"},{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}]},"Status":{"type":"object","required":["elapsedTimeNs","isCached","isEstimated","rowsExamined","rowsMatched"],"properties":{"elapsedTimeNs":{"type":"integer","format":"int64"},"isCached":{"type":"boolean"},"isEstimated":{"type":"boolean"},"maxCursor":{"description":"Row id of the newest row, as seen server side.\nMay be higher than what the results include if the server scanned more data than included in the results.\nCan be used to efficiently resume time-sorted non-aggregating queries (ie filtering only).","type":"string"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Message"}},"minCursor":{"description":"Row id of the oldest row, as seen server side.\nMay be lower than what the results include if the server scanned more data than included in the results.\nCan be used to efficiently resume time-sorted non-aggregating queries (ie filtering only).","type":"string"},"rowsExamined":{"type":"integer","format":"uint64"},"rowsMatched":{"type":"integer","format":"uint64"}}},"Table":{"type":"object","title":"Table defines the schema for query results.","properties":{"buckets":{"$ref":"#/components/schemas/BucketInfo"},"columns":{"description":"Columns contain a series of arrays with the raw result data.\nThe columns here line up with the fields in the Fields array.","type":"array","items":{"type":"array","items":{}}},"fields":{"description":"Fields contain information about the fields included in these results.\nThe order of the fields match up with the order of the data in Columns.","type":"array","items":{"$ref":"#/components/schemas/FieldInfo"}},"groups":{"description":"Groups specifies which grouping operations has been performed on the results.","type":"array","items":{"$ref":"#/components/schemas/GroupInfo"}},"name":{"description":"Name is the name assigned to this table. Defaults to \"0\". The name \"_totals\" is reserved for system use.","type":"string"},"order":{"description":"Order echoes the ordering clauses that was used to sort the results.","type":"array","items":{"$ref":"#/components/schemas/Order"}},"range":{"$ref":"#/components/schemas/RangeInfo"},"sources":{"description":"Sources contain the names of the datasets that contributed data to these results.","type":"array","items":{"$ref":"#/components/schemas/SourceInfo"}}}},"TokenInfo":{"type":"object","properties":{"expiryDate":{"description":"Optional time which the link will expire","type":"string","format":"date-time"},"ownerEmail":{"description":"Email of the owner.","type":"string"},"resourceId":{"description":"The unique identifier for the associated resource object.","type":"string"},"resourceType":{"description":"The type of the resource.","type":"string"}}},"TrimOptions":{"type":"object","required":["maxDuration"],"properties":{"maxDuration":{"type":"string","example":"1h"}},"example":{"maxDuration":"1h"}},"UnusedField":{"type":"object","required":["name","types"],"properties":{"name":{"description":"Catalog field name.","type":"string"},"types":{"description":"Catalog types that are not stored in blocks.","type":"array","items":{"type":"string"},"x-omitempty":false}}},"UpdateCurrentUserRequest":{"description":"Object representing a user update request","type":"object","required":["name"],"properties":{"name":{"description":"New name for the user","type":"string","example":"John Smith"}}},"UpdateDataset":{"type":"object","properties":{"description":{"type":"string"},"retentionDays":{"description":"Number of days to retain data in the dataset","type":"integer","x-omitempty":false},"useRetentionPeriod":{"description":"Ignored. Axiom derives this value from `retentionDays`.","type":"boolean","x-omitempty":false}},"example":{"description":"string","retentionDays":30}},"UpdateOrg":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"UpdateUserRoleRequest":{"description":"Object representing a user's role update request","type":"object","required":["role"],"properties":{"role":{"description":"Role identifier to assign to the user","type":"string","example":"admin"}}},"UpdatedAnnotation":{"type":"object","properties":{"datasets":{"description":"array<string> of dataset names for which the annotation appears on charts","type":"array","items":{"type":"string","minLength":1}},"description":{"description":"Explanation of the event the annotation marks on the charts","type":"string","maxLength":512},"endTime":{"description":"End time of the annotation","type":"string","format":"date-time"},"time":{"description":"Time the annotation marks on the charts. If you don't include this field, Axiom assigns the time of the API request to the annotation.","type":"string","format":"date-time"},"title":{"description":"Summary of the annotation that appears on the charts","type":"string","maxLength":256},"type":{"description":"Type of the event marked by the annotation. Use only alphanumeric characters or hyphens. For example, \"production-deployment\".","type":"string","maxLength":256,"pattern":"^[a-z0-9-]+$"},"url":{"description":"URL relevant for the event marked by the annotation. For example, link to GitHub pull request.","type":"string","maxLength":512}}},"User":{"description":"Represents a user in the system","type":"object","required":["id","name","email","role"],"properties":{"email":{"description":"User's email address","type":"string","example":"john.doe@example.com"},"id":{"description":"Unique identifier for the user","type":"string","example":"usr_123456789"},"name":{"description":"User's full name","type":"string","example":"John Doe"},"role":{"$ref":"#/components/schemas/UserDetailsRole"}}},"UserDetailsRole":{"description":"Detailed information about a user's role","type":"object","required":["id","name"],"properties":{"id":{"description":"Unique identifier for the role","type":"string","example":"role_123456789"},"name":{"description":"Human-readable name of the role","type":"string","example":"Organization Admin"}}},"View":{"type":"object","required":["name","aplQuery"],"properties":{"aplQuery":{"description":"APL query that defines the view","type":"string"},"datasets":{"description":"Datasets the view queries. Axiom derives this from `aplQuery` and ignores it in requests.","type":"array","items":{"type":"string"}},"description":{"type":"string"},"name":{"description":"Name of the view. Use it as the view ID and to query the view like a dataset.","type":"string"},"sharedByOrg":{"description":"ID of the org that shared this resource, if it's shared","type":"string"},"sharedByOrgName":{"description":"The name of the org that shared this resource, if it's shared","type":"string"}}},"VirtualField":{"type":"object","required":["dataset","name","expression"],"properties":{"dataset":{"type":"string"},"description":{"type":"string"},"expression":{"type":"string"},"name":{"description":"Name of the virtual field. Use letters, digits, underscores, and hyphens, starting and ending with a letter or digit.","type":"string"},"type":{"type":"string"},"unit":{"type":"string"}}},"VirtualFieldWithId":{"allOf":[{"$ref":"#/components/schemas/VirtualField"},{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}]},"WebhookConfig":{"description":"Configuration for simple webhook notifications","properties":{"url":{"description":"Webhook endpoint URL","type":"string","example":"https://api.example.com/webhooks/alerts"}}},"datasetCapabilities":{"type":"object","additionalProperties":{"properties":{"ingest":{"description":"Ingest capability","type":"array","items":{"type":"string","enum":["create"]},"x-omitempty":true},"query":{"description":"Query capability","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"share":{"description":"Sharing dataset capability","type":"array","items":{"type":"string","enum":["create","read","delete"]},"x-omitempty":true},"starredQueries":{"description":"Starred queries capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"trim":{"description":"Data Trimming and Deletion capability","type":"array","items":{"type":"string","enum":["update"]},"x-omitempty":true},"vacuum":{"description":"Field Vacuuming capability","type":"array","items":{"type":"string","enum":["update"]},"x-omitempty":true},"virtualFields":{"description":"Virtual fields capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true}}}},"orgCapabilities":{"type":"object","properties":{"annotations":{"description":"Annotations capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"apiTokens":{"description":"API tokens capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"auditLog":{"description":"Audit Log capability","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"billing":{"description":"Billing capability","type":"array","items":{"type":"string","enum":["read","update"]},"x-omitempty":true},"dashboards":{"description":"Dashboards capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"datasets":{"description":"Datasets capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"endpoints":{"description":"Endpoints capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"integrations":{"description":"Integrations capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"labels":{"description":"Labels capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"monitors":{"description":"Monitors capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"notifiers":{"description":"Notifiers capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"rbac":{"description":"Access control capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"sharedAccessKeys":{"description":"Shared access keys capability","type":"array","items":{"type":"string","enum":["read","update"]},"x-omitempty":true},"users":{"description":"Users capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"views":{"description":"Views capability","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true}}},"roleDatasetCapabilities":{"description":"Defines the available permissions for dataset operations","type":"object","additionalProperties":{"properties":{"ingest":{"description":"Controls the ability to ingest data into datasets","type":"array","items":{"type":"string","enum":["create"]},"x-omitempty":true},"query":{"description":"Controls the ability to query and read data from datasets","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"share":{"description":"Controls the ability to share datasets with other users","type":"array","items":{"type":"string","enum":["create","read","delete"]},"x-omitempty":true},"starredQueries":{"description":"Controls the management of starred/saved queries","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"trim":{"description":"Controls data trimming and deletion operations","type":"array","items":{"type":"string","enum":["update"]},"x-omitempty":true},"vacuum":{"description":"Controls field vacuuming operations for storage optimization","type":"array","items":{"type":"string","enum":["update"]},"x-omitempty":true},"virtualFields":{"description":"Controls the management of virtual fields in datasets","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true}}}},"roleOrgCapabilities":{"description":"Defines organization-wide permissions and capabilities","type":"object","properties":{"annotations":{"description":"Controls the management of annotations across the organization","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"apiTokens":{"description":"Controls the management of API tokens for authentication","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"auditLog":{"description":"Controls access to organization audit logs","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"billing":{"description":"Controls access to billing information and settings","type":"array","items":{"type":"string","enum":["read","update"]},"x-omitempty":true},"dashboards":{"description":"Controls the management of organization dashboards","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"datasets":{"description":"Controls the management of organization datasets","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"endpoints":{"description":"Controls the management of API endpoints","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"integrations":{"description":"Controls the management of third-party integrations","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"labels":{"description":"Controls the management of labels","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"monitors":{"description":"Controls the management of monitoring","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"notifiers":{"description":"Controls the management of notification settings","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"rbac":{"description":"Controls access to role-based access control settings","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"sharedAccessKeys":{"description":"Controls the management of shared access keys","type":"array","items":{"type":"string","enum":["read","update"]},"x-omitempty":true},"users":{"description":"Controls user management within the organization","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true},"views":{"description":"Controls the management of data views","type":"array","items":{"type":"string","enum":["create","read","update","delete"]},"x-omitempty":true}}},"roleViewCapabilities":{"description":"Defines the available permissions for view operations","type":"object","additionalProperties":{"properties":{"query":{"description":"Controls the ability to query and read data from views","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"share":{"description":"Controls the ability to share views with other users","type":"array","items":{"type":"string","enum":["create","read","delete"]},"x-omitempty":true}}}},"viewCapabilities":{"type":"object","additionalProperties":{"properties":{"query":{"description":"Query capability","type":"array","items":{"type":"string","enum":["read"]},"x-omitempty":true},"share":{"description":"Sharing view capability","type":"array","items":{"type":"string","enum":["create","read","delete"]},"x-omitempty":true}}}},"Dashboard":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"owner":{"$ref":"#/components/schemas/Owner"},"description":{"type":"string","maxLength":1000},"charts":{"maxItems":200,"type":"array","items":{"$ref":"#/components/schemas/Chart"}},"layout":{"maxItems":200,"type":"array","items":{"$ref":"#/components/schemas/LayoutItem"}},"sections":{"maxItems":1000,"type":"array","items":{"$ref":"#/components/schemas/Section"}},"refreshTime":{"type":"integer","enum":[0,15,60,300]},"schemaVersion":{"$ref":"#/components/schemas/SchemaVersion"},"against":{"type":"string","enum":["-1h","-3h","-6h","-12h","-1d","-3d","-7d","-1w","-2w","-3w","-30d","-60d","-90d"],"description":"Relative time comparison offset. Compares the current time window against a previous period offset by this duration. Mutually exclusive with `againstTimestamp` — setting one clears the other. Use an empty string or omit to disable comparison."},"againstTimestamp":{"$ref":"#/components/schemas/DatetimeString","description":"Absolute or relative timestamp to compare against. Mutually exclusive with `against` — setting one clears the other. Accepts ISO 8601, `now-{duration}` (e.g. `now-1h`), or epoch milliseconds as a string."},"timeWindowStart":{"$ref":"#/components/schemas/TimeWindowStart"},"timeWindowEnd":{"$ref":"#/components/schemas/TimeWindowEnd"},"uid":{"$ref":"#/components/schemas/DashboardUID"}},"required":["name","owner","charts","layout","refreshTime","schemaVersion","timeWindowStart","timeWindowEnd"],"additionalProperties":false},"Owner":{"type":"string","description":"User ID of the dashboard owner. Use `X-AXIOM-EVERYONE` to make the dashboard accessible to all users in the organization."},"Chart":{"oneOf":[{"$ref":"#/components/schemas/TimeSeriesChart"},{"$ref":"#/components/schemas/HeatmapChart"},{"$ref":"#/components/schemas/LogStreamChart"},{"$ref":"#/components/schemas/PieChart"},{"$ref":"#/components/schemas/ScatterChart"},{"$ref":"#/components/schemas/TableChart"},{"$ref":"#/components/schemas/TopKChart"},{"$ref":"#/components/schemas/StatisticChart"},{"$ref":"#/components/schemas/GaugeChart"},{"$ref":"#/components/schemas/NoteChart"},{"$ref":"#/components/schemas/MonitorListChart"},{"$ref":"#/components/schemas/SmartFilterChart"},{"$ref":"#/components/schemas/SpacerChart"},{"$ref":"#/components/schemas/VisualizeChart"}]},"TimeSeriesChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["TimeSeries"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/TimeSeriesChartQuery"}},"required":["id","type","query"],"additionalProperties":false,"title":"Timeseries"},"ChartId":{"type":"string","minLength":1,"maxLength":200},"ChartModified":{"type":"integer","minimum":0,"maximum":9007199254740991},"ChartNumSeries":{"type":"integer","minimum":0,"maximum":9007199254740991},"ChartHideHeader":{"type":"boolean"},"SectionId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"OverrideDashboardTimeRange":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"OverrideDashboardCompareAgainst":{"type":"boolean"},"TimeSeriesChartQuery":{"anyOf":[{"$ref":"#/components/schemas/TimeSeriesNonMetricsAplQuery"},{"$ref":"#/components/schemas/TimeSeriesNativeMplQuery"}],"title":"ChartQuery"},"AplString":{"type":"string","minLength":1,"maxLength":500000},"DatetimeString":{"type":"string","maxLength":100,"description":"A datetime value. Accepts ISO 8601 (e.g. `2024-01-02T00:00:00.000Z`), relative time using `now-{duration}` where duration is a number followed by `s` (seconds), `m` (minutes), `h` (hours), `d` (days), or `w` (weeks) (e.g. `now-1h`, `now-7d`), a Unix epoch millisecond timestamp as a string (e.g. `1704067200000`), or an empty string to clear the value."},"TimeSeriesQueryOptions":{"type":"object","properties":{"displayNull":{"type":"string","enum":["auto","null","span","zero",""],"description":"Controls how empty intervals are rendered in time series charts. `auto` infers from the query, `null` leaves gaps, `span` connects adjacent points, `zero` fills with zero."},"overlayCharts":{"$ref":"#/components/schemas/BooleanString","description":"When enabled, charts are overlaid on a single chart instead of stacked separately."},"shownColumns":{"type":"string","maxLength":10000},"timeSeriesVariant":{"type":"string","enum":["area","bars","line","lines",""]},"timeSeriesView":{"type":"string","enum":["charts","resultsTable","charts|resultsTable",""]}},"additionalProperties":false},"BooleanString":{"type":"string","enum":["true","false",""]},"QueryVariables":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":10000},{"type":"number"},{"type":"boolean"},{"type":"string","nullable":true,"enum":[null]}]}},"QueryLibraries":{"nullable":true,"maxItems":50,"type":"array","items":{"type":"string","minLength":1,"maxLength":200,"pattern":"^[a-zA-Z0-9._/@-]+$"}},"DefaultLimit":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":1000000},"DefaultOrder":{"nullable":true,"maxItems":50,"type":"array","items":{"$ref":"#/components/schemas/DefaultOrderItem"}},"DefaultOrderItem":{"type":"object","properties":{"field":{"type":"string","maxLength":200},"desc":{"type":"boolean"}},"additionalProperties":false},"MaxBinAutoGroups":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":10000},"QueryRegion":{"type":"string","maxLength":100,"pattern":"^cloud\\.[a-z0-9-]+\\.[a-z0-9-]+$"},"Resolution":{"type":"string","maxLength":50},"IncludeCursorField":{"type":"boolean"},"TimeSeriesNonMetricsAplQuery":{"type":"object","properties":{"apl":{"$ref":"#/components/schemas/AplString"},"queryOptions":{"$ref":"#/components/schemas/TimeSeriesQueryOptions"}},"required":["apl"],"additionalProperties":false,"title":"APL"},"TimeSeriesNativeMplQuery":{"type":"object","properties":{"mpl":{"$ref":"#/components/schemas/MplString"},"queryOptions":{"$ref":"#/components/schemas/TimeSeriesQueryOptions"}},"required":["mpl"],"additionalProperties":false,"title":"MPL"},"MplString":{"type":"string","minLength":1,"maxLength":500000,"title":"MplString"},"Aggregation":{"type":"object","properties":{"alias":{"type":"string"},"argument":{},"field":{"type":"string"},"op":{"type":"string"}},"required":["field","op"],"additionalProperties":false},"Filter":{"type":"object","properties":{"caseSensitive":{"nullable":true,"type":"boolean"},"children":{"nullable":true,"type":"array","items":{"$ref":"#/components/schemas/Filter"}},"field":{"type":"string"},"op":{"type":"string","enum":["and","or","==","not","!=","exists","not-exists",">",">=","<","<=","starts-with","not-starts-with","ends-with","not-ends-with","contains","not-contains","has","not-has","regexp","not-regexp"]},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"nullable":true}},"required":["field","op"],"additionalProperties":false},"Projection":{"type":"object","properties":{"alias":{"type":"string"},"field":{"type":"string"}},"required":["field"],"additionalProperties":false},"AggChartOptsString":{"type":"string","maxLength":100000},"VirtualColumn":{"type":"object","properties":{"alias":{"type":"string"},"expr":{"type":"string"}},"required":["alias","expr"],"additionalProperties":false},"ChartMetadata":{"type":"object","properties":{"requires":{"nullable":true,"type":"array","items":{"type":"object","properties":{"dataset":{"type":"string","maxLength":200},"fields":{"type":"array","items":{"type":"string","maxLength":500}}},"required":["dataset","fields"],"additionalProperties":false}},"noData":{"type":"object","properties":{"coverName":{"type":"string","maxLength":200},"iconName":{"type":"string","maxLength":200},"iconColor":{"type":"string","maxLength":200},"message":{"type":"string","maxLength":1000},"buttonLabel":{"type":"string","maxLength":200},"buttonLink":{"type":"string","maxLength":2000}},"additionalProperties":false},"zeroData":{"type":"object","properties":{"coverName":{"type":"string","maxLength":200},"iconName":{"type":"string","maxLength":200},"iconColor":{"type":"string","maxLength":200},"message":{"type":"string","maxLength":1000},"buttonLabel":{"type":"string","maxLength":200},"buttonLink":{"type":"string","maxLength":2000}},"additionalProperties":false}},"additionalProperties":false},"HeatmapChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Heatmap"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/HeatmapChartQuery"},"colorScheme":{"type":"string","enum":["Blue","Orange","Red","Purple","Teal","Yellow","Green","Pink","Grey","Brown"]}},"required":["id","type","query"],"additionalProperties":false,"title":"Heatmap"},"HeatmapChartQuery":{"anyOf":[{"$ref":"#/components/schemas/HeatmapNonMetricsAplQuery"},{"$ref":"#/components/schemas/HeatmapNativeMplQuery"}],"title":"ChartQuery"},"HeatmapQueryOptions":{"type":"object","properties":{"timeSeriesView":{"type":"string","enum":["charts","resultsTable","charts|resultsTable",""]}},"additionalProperties":false},"HeatmapNonMetricsAplQuery":{"type":"object","properties":{"apl":{"$ref":"#/components/schemas/AplString"},"queryOptions":{"$ref":"#/components/schemas/HeatmapQueryOptions"}},"required":["apl"],"additionalProperties":false,"title":"APL"},"HeatmapNativeMplQuery":{"type":"object","properties":{"mpl":{"$ref":"#/components/schemas/MplString"},"queryOptions":{"$ref":"#/components/schemas/HeatmapQueryOptions"}},"required":["mpl"],"additionalProperties":false,"title":"MPL"},"LogStreamChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["LogStream"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"},"tableSettings":{"$ref":"#/components/schemas/TableSettings"}},"required":["id","type","query"],"additionalProperties":false,"title":"Log stream"},"SimpleChartQuery":{"anyOf":[{"$ref":"#/components/schemas/SimpleNonMetricsAplQuery"},{"$ref":"#/components/schemas/SimpleNativeMplQuery"}],"title":"ChartQuery"},"SimpleNonMetricsAplQuery":{"type":"object","properties":{"apl":{"$ref":"#/components/schemas/AplString"}},"required":["apl"],"additionalProperties":false,"title":"APL"},"SimpleNativeMplQuery":{"type":"object","properties":{"mpl":{"$ref":"#/components/schemas/MplString"}},"required":["mpl"],"additionalProperties":false,"title":"MPL"},"TableSettings":{"type":"object","properties":{"columns":{"maxItems":500,"type":"array","items":{"$ref":"#/components/schemas/ColumnSetting"}},"settings":{"$ref":"#/components/schemas/DatasetStreamSettings"}},"additionalProperties":false},"ColumnSetting":{"oneOf":[{"type":"string","maxLength":500},{"$ref":"#/components/schemas/AdvancedColumnSetting"}]},"AdvancedColumnSetting":{"type":"object","properties":{"name":{"type":"string","maxLength":500},"width":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991}},"required":["name"],"additionalProperties":false},"DatasetStreamSettings":{"type":"object","properties":{"fontSize":{"type":"string","maxLength":20,"pattern":"^\\d+px$"},"highlightSeverity":{"type":"boolean"},"showRaw":{"type":"boolean"},"showEvent":{"type":"boolean"},"showTimestamp":{"type":"boolean"},"wrapLines":{"type":"boolean"},"hideNulls":{"type":"boolean"},"fitColumns":{"type":"boolean"}},"additionalProperties":false},"PieChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Pie"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"}},"required":["id","type","query"],"additionalProperties":false,"title":"Pie"},"ScatterChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Scatter"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"}},"required":["id","type","query"],"additionalProperties":false,"title":"Scatter"},"TableChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Table"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"},"tableSettings":{"$ref":"#/components/schemas/TableSettings"}},"required":["id","type","query"],"additionalProperties":false,"title":"Table"},"TopKChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["TopK"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"}},"required":["id","type","query"],"additionalProperties":false,"title":"Top list"},"StatisticChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Statistic"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"},"colorScheme":{"type":"string","enum":["Blue","Orange","Red","Purple","Teal","Yellow","Green","Pink","Grey","Brown"]},"customUnits":{"type":"string","maxLength":200},"showChart":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"hideValue":{"type":"boolean"},"chartHeight":{"anyOf":[{"type":"string","maxLength":100},{"type":"number"}]},"errorThreshold":{"type":"string","enum":["Above","AboveOrEqual","Below","BelowOrEqual","AboveOrBelow"]},"errorThresholdValue":{"type":"string","maxLength":100},"warningThreshold":{"type":"string","enum":["Above","AboveOrEqual","Below","BelowOrEqual","AboveOrBelow"]},"warningThresholdValue":{"type":"string","maxLength":100},"invertTheme":{"type":"boolean"},"background":{"$ref":"#/components/schemas/CssColor"},"textColor":{"$ref":"#/components/schemas/CssColor"},"labelColor":{"$ref":"#/components/schemas/CssColor"},"chartFillColor":{"$ref":"#/components/schemas/CssColor"},"okColorProps":{"$ref":"#/components/schemas/StatisticChartColorProps"},"warningColorProps":{"$ref":"#/components/schemas/StatisticChartColorProps"},"errorColorProps":{"$ref":"#/components/schemas/StatisticChartColorProps"}},"required":["id","type","query"],"additionalProperties":false,"title":"Statistic"},"CssColor":{"type":"string","maxLength":200},"StatisticChartColorProps":{"type":"object","properties":{"background":{"$ref":"#/components/schemas/CssColor"},"chartFillColor":{"$ref":"#/components/schemas/CssColor"},"labelColor":{"$ref":"#/components/schemas/CssColor"},"textColor":{"$ref":"#/components/schemas/CssColor"}},"additionalProperties":false},"GaugeChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Gauge"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"},"segments":{"minItems":1,"maxItems":100,"type":"array","items":{"$ref":"#/components/schemas/GaugeChartSegment"}},"colorScale":{"type":"string","enum":["green-to-red","red-to-green"]},"showRing":{"type":"boolean"},"labelMode":{"type":"string","enum":["none","boundaries","intervals"]},"showSparkline":{"type":"boolean"},"scaleToTimeRange":{"type":"boolean"},"scaleBaseDurationMs":{"type":"number","minimum":0,"exclusiveMinimum":true},"customUnits":{"type":"string","maxLength":200}},"required":["id","type","query","segments"],"additionalProperties":false,"title":"Gauge"},"GaugeChartSegment":{"type":"object","properties":{"from":{"type":"number"},"to":{"type":"number"}},"required":["from","to"],"additionalProperties":false},"NoteChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Note"]},"text":{"type":"string","minLength":1,"maxLength":100000},"variant":{"type":"string","enum":["default"]}},"required":["id","type","text"],"additionalProperties":false,"title":"Note"},"MonitorListChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["MonitorList"]},"name":{"type":"string","minLength":1,"maxLength":500},"selectedMonitors":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":200}},"columns":{"$ref":"#/components/schemas/MonitorListColumns"}},"required":["id","type","selectedMonitors","columns"],"additionalProperties":false,"title":"Monitor list"},"MonitorListColumns":{"type":"object","properties":{"status":{"type":"boolean"},"history":{"type":"boolean"},"dataset":{"type":"boolean"},"type":{"type":"boolean"},"notifiers":{"type":"boolean"}},"required":["status","history","dataset","type","notifiers"],"additionalProperties":false},"SmartFilterChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["SmartFilter"]},"name":{"type":"string","minLength":1,"maxLength":500},"filters":{"minItems":1,"maxItems":50,"type":"array","items":{"$ref":"#/components/schemas/SmartFilterConfig"}},"logo":{"$ref":"#/components/schemas/LogoUrl"},"logoDark":{"$ref":"#/components/schemas/LogoUrl"}},"required":["id","type","filters"],"additionalProperties":false,"title":"Filter bar"},"SmartFilterConfig":{"anyOf":[{"$ref":"#/components/schemas/SmartFilterSearch"},{"$ref":"#/components/schemas/SmartFilterSelect"}]},"SmartFilterSearch":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/SmartFilterId"},"name":{"$ref":"#/components/schemas/SmartFilterName"},"active":{"$ref":"#/components/schemas/SmartFilterActive"},"type":{"type":"string","enum":["search"]}},"required":["id","name","type"],"additionalProperties":false,"title":"SmartFilterSearch"},"SmartFilterId":{"type":"string","maxLength":200},"SmartFilterName":{"type":"string","maxLength":200},"SmartFilterActive":{"type":"boolean"},"SmartFilterSelect":{"anyOf":[{"$ref":"#/components/schemas/SmartFilterSelectList"},{"$ref":"#/components/schemas/SmartFilterSelectQuery"}],"title":"SmartFilterSelect"},"SmartFilterSelectList":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/SmartFilterId"},"name":{"$ref":"#/components/schemas/SmartFilterName"},"active":{"$ref":"#/components/schemas/SmartFilterActive"},"options":{"$ref":"#/components/schemas/SmartFilterOptions"},"type":{"type":"string","enum":["select"]},"selectType":{"type":"string","enum":["list"]}},"required":["id","name","type","selectType"],"additionalProperties":false,"title":"SmartFilterSelectList"},"SmartFilterOptions":{"anyOf":[{"maxItems":200,"type":"array","items":{"$ref":"#/components/schemas/SmartFilterOption"}},{"type":"string","nullable":true,"enum":[null]},{"type":"string","enum":[""]}]},"SmartFilterOption":{"type":"object","properties":{"key":{"type":"string","maxLength":500},"value":{"type":"string","maxLength":10000},"default":{"type":"boolean"},"unset":{"type":"boolean"}},"required":["key","value"],"additionalProperties":false},"SmartFilterSelectQuery":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/SmartFilterId"},"name":{"$ref":"#/components/schemas/SmartFilterName"},"active":{"$ref":"#/components/schemas/SmartFilterActive"},"options":{"description":"Pre-defined options merged with the dynamic options returned by `query` at runtime. Typically used to seed a default option (for example an \"All\" entry with `unset: true`) so the filter has a sensible initial selection before — or independent of — query results.","allOf":[{"anyOf":[{"maxItems":200,"type":"array","items":{"$ref":"#/components/schemas/SmartFilterOption"}},{"type":"string","nullable":true,"enum":[null]},{"type":"string","enum":[""]}]}]},"type":{"type":"string","enum":["select"]},"selectType":{"type":"string","enum":["query"]},"query":{"$ref":"#/components/schemas/SmartFilterQuery"}},"required":["id","name","type","selectType"],"additionalProperties":false,"title":"SmartFilterSelectQuery"},"SmartFilterQuery":{"anyOf":[{"$ref":"#/components/schemas/SmartFilterAplQuery"},{"$ref":"#/components/schemas/SmartFilterNativeMplQuery"}],"title":"SmartFilterQuery"},"SmartFilterAplQuery":{"type":"object","properties":{"apl":{"type":"string","minLength":1,"maxLength":500000,"description":"APL query that returns the list of options for the filter dropdown. The result must contain a `key` column and a `value` column — Axiom interprets each row as a `{ key, value }` pair for an option. Use `distinct` to collapse the source field to unique values, then `project` to expose the `key` and `value` columns.\n\nExample:\n```\n['dataset-name'] | distinct field_name | project key=field_name, value=field_name\n```"}},"required":["apl"],"additionalProperties":false,"title":"APL"},"SmartFilterNativeMplQuery":{"type":"object","properties":{"mpl":{"type":"string","minLength":1,"maxLength":500000,"description":"MPL query that returns the list of options for the filter dropdown. The query must group by exactly one tag — Axiom uses each distinct value of that tag as both the key and the value of an option. Use `align using last` to simplify the query.\n\nExample:\n```\ndataset:metric | align using last | group by tag using count\n```"}},"required":["mpl"],"additionalProperties":false,"title":"MPL"},"SmartFilterDatasetId":{"type":"string","maxLength":200},"NonMetricsAplQuery":{"type":"object","properties":{"apl":{"$ref":"#/components/schemas/AplString"},"queryOptions":{"$ref":"#/components/schemas/QueryOptions"}},"required":["apl"],"additionalProperties":false,"title":"APL"},"LogoUrl":{"type":"string","maxLength":2000},"SpacerChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Spacer"]},"name":{"type":"string","minLength":1,"maxLength":500},"variant":{"type":"string","enum":["transparent","dashed","solid"]}},"required":["id","type"],"additionalProperties":false,"title":"Spacer"},"VisualizeChart":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ChartId"},"sectionId":{"$ref":"#/components/schemas/SectionId"},"type":{"type":"string","enum":["Visualize"]},"name":{"type":"string","minLength":1,"maxLength":500},"query":{"$ref":"#/components/schemas/SimpleChartQuery"},"visualization":{"$ref":"#/components/schemas/VisualizeConfiguration"}},"required":["id","type","query","visualization"],"additionalProperties":false,"title":"Visualize"},"VisualizeConfiguration":{"oneOf":[{"$ref":"#/components/schemas/ScatterVisualization"},{"$ref":"#/components/schemas/BarVisualization"},{"$ref":"#/components/schemas/HorizontalBarVisualization"},{"$ref":"#/components/schemas/HistogramVisualization"},{"$ref":"#/components/schemas/FrequencyBarVisualization"},{"$ref":"#/components/schemas/VisualizeHeatmap"}]},"ScatterVisualization":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["scatter"]},"bindings":{"$ref":"#/components/schemas/ScatterVisualizationBindings"},"settings":{"$ref":"#/components/schemas/ScatterVisualizationSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Scatter"},"VisualizeConfigurationVersion":{"type":"number","enum":[1]},"ScatterVisualizationBindings":{"type":"object","properties":{"x":{"$ref":"#/components/schemas/VisualizeAxisColumnRef"},"y":{"$ref":"#/components/schemas/VisualizeNumericColumnRef"},"series":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"}},"required":["x","y"],"additionalProperties":false},"VisualizeAxisColumnRef":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":500},"type":{"$ref":"#/components/schemas/VisualizeAxisFieldType"}},"required":["name","type"],"additionalProperties":false},"VisualizeAxisFieldType":{"type":"string","enum":["datetime","integer","float"]},"VisualizeNumericColumnRef":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":500},"type":{"$ref":"#/components/schemas/VisualizeNumericFieldType"}},"required":["name","type"],"additionalProperties":false},"VisualizeNumericFieldType":{"type":"string","enum":["integer","float"]},"VisualizeCategoricalColumnRef":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":500},"type":{"$ref":"#/components/schemas/VisualizeCategoricalFieldType"}},"required":["name","type"],"additionalProperties":false},"VisualizeCategoricalFieldType":{"type":"string","enum":["string","boolean"]},"ScatterVisualizationSettings":{"type":"object","properties":{"colors":{"$ref":"#/components/schemas/VisualizeColorSettings"},"xAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"},"yAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"},"legend":{"$ref":"#/components/schemas/VisualizeLegendSettings"}},"additionalProperties":false},"VisualizeColorSettings":{"type":"object","properties":{"palette":{"type":"string","enum":["axiom","polychrome"]},"assignment":{"type":"string","enum":["series-name","series-order"]}},"required":["palette","assignment"],"additionalProperties":false},"VisualizeAxisSettings":{"type":"object","properties":{"scale":{"type":"string","enum":["linear","log"]},"range":{"type":"string","enum":["fit","includeZero"]}},"required":["scale","range"],"additionalProperties":false},"VisualizeLegendSettings":{"type":"object","properties":{"position":{"type":"string","enum":["none","bottom","right"]}},"required":["position"],"additionalProperties":false},"BarVisualization":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["bar"]},"bindings":{"$ref":"#/components/schemas/BarVisualizationBindings"},"settings":{"$ref":"#/components/schemas/VisualizeBarSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Bar"},"BarVisualizationBindings":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"},"value":{"$ref":"#/components/schemas/VisualizeNumericColumnRef"},"series":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"}},"required":["category","value"],"additionalProperties":false},"VisualizeBarSettings":{"oneOf":[{"$ref":"#/components/schemas/VisualizeStandardAggregationSettings"},{"$ref":"#/components/schemas/VisualizePercentileAggregationSettings"}]},"VisualizeStandardAggregationSettings":{"type":"object","properties":{"aggregation":{"$ref":"#/components/schemas/VisualizeStandardAggregation"},"categoryLimit":{"$ref":"#/components/schemas/VisualizeCategoryLimit"},"colors":{"$ref":"#/components/schemas/VisualizeColorSettings"},"yAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"},"legend":{"$ref":"#/components/schemas/VisualizeLegendSettings"}},"required":["aggregation","categoryLimit"],"additionalProperties":false},"VisualizeStandardAggregation":{"type":"string","enum":["avg","sum","count","min","max"]},"VisualizeCategoryLimit":{"type":"integer","minimum":1,"maximum":100},"VisualizePercentileAggregationSettings":{"type":"object","properties":{"aggregation":{"type":"string","enum":["percentile"]},"percentile":{"$ref":"#/components/schemas/VisualizePercentile"},"categoryLimit":{"$ref":"#/components/schemas/VisualizeCategoryLimit"},"colors":{"$ref":"#/components/schemas/VisualizeColorSettings"},"yAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"},"legend":{"$ref":"#/components/schemas/VisualizeLegendSettings"}},"required":["aggregation","percentile","categoryLimit"],"additionalProperties":false},"VisualizePercentile":{"type":"number","minimum":0,"maximum":100},"HorizontalBarVisualization":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["horizontalBar"]},"bindings":{"$ref":"#/components/schemas/HorizontalBarVisualizationBindings"},"settings":{"$ref":"#/components/schemas/VisualizeBarSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Horizontal bar"},"HorizontalBarVisualizationBindings":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"},"value":{"$ref":"#/components/schemas/VisualizeNumericColumnRef"},"series":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"}},"required":["category","value"],"additionalProperties":false},"HistogramVisualization":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["histogram"]},"bindings":{"$ref":"#/components/schemas/HistogramVisualizationBindings"},"settings":{"$ref":"#/components/schemas/HistogramVisualizationSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Histogram"},"HistogramVisualizationBindings":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/VisualizeNumericColumnRef"}},"required":["value"],"additionalProperties":false},"HistogramVisualizationSettings":{"type":"object","properties":{"binCount":{"$ref":"#/components/schemas/VisualizeBinCount"},"colors":{"$ref":"#/components/schemas/VisualizeColorSettings"},"yAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"}},"required":["binCount"],"additionalProperties":false},"VisualizeBinCount":{"type":"integer","minimum":1,"maximum":200},"FrequencyBarVisualization":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["frequencyBar"]},"bindings":{"$ref":"#/components/schemas/FrequencyBarVisualizationBindings"},"settings":{"$ref":"#/components/schemas/FrequencyBarVisualizationSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Frequency bar"},"FrequencyBarVisualizationBindings":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"}},"required":["category"],"additionalProperties":false},"FrequencyBarVisualizationSettings":{"type":"object","properties":{"categoryLimit":{"$ref":"#/components/schemas/VisualizeCategoryLimit"},"colors":{"$ref":"#/components/schemas/VisualizeColorSettings"},"yAxis":{"$ref":"#/components/schemas/VisualizeAxisSettings"}},"required":["categoryLimit"],"additionalProperties":false},"VisualizeHeatmap":{"type":"object","properties":{"version":{"$ref":"#/components/schemas/VisualizeConfigurationVersion"},"type":{"type":"string","enum":["heatmap"]},"bindings":{"$ref":"#/components/schemas/VisualizeHeatmapBindings"},"settings":{"$ref":"#/components/schemas/VisualizeHeatmapSettings"}},"required":["version","type","bindings","settings"],"additionalProperties":false,"title":"Heatmap"},"VisualizeHeatmapBindings":{"type":"object","properties":{"x":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"},"y":{"$ref":"#/components/schemas/VisualizeCategoricalColumnRef"}},"required":["x","y"],"additionalProperties":false},"VisualizeHeatmapSettings":{"type":"object","properties":{"categoryLimit":{"$ref":"#/components/schemas/VisualizeCategoryLimit"}},"required":["categoryLimit"],"additionalProperties":false},"LayoutItem":{"type":"object","properties":{"i":{"$ref":"#/components/schemas/ChartId"},"x":{"type":"integer","minimum":0,"maximum":11},"y":{"nullable":true,"type":"integer","minimum":0,"maximum":9007199254740991},"w":{"type":"integer","minimum":1,"maximum":12},"h":{"type":"integer","minimum":1,"maximum":100},"minW":{"type":"integer","minimum":1,"maximum":12},"minH":{"type":"number","minimum":0.5,"maximum":100},"maxW":{"type":"integer","minimum":1,"maximum":12},"maxH":{"type":"integer","minimum":1,"maximum":100},"static":{"type":"boolean"}},"required":["i","x","y","w","h"],"additionalProperties":false},"Section":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/SectionId"},"title":{"type":"string","minLength":1,"maxLength":200},"defaultCollapsed":{"type":"boolean"}},"required":["id","title"],"additionalProperties":false},"SchemaVersion":{"type":"integer","enum":[2]},"TimeWindowStart":{"type":"string","minLength":1,"maxLength":100,"description":"Start of the dashboard time range. Use `qr-now-{duration}` for a quick range relative to now, where duration is a number followed by `s` (seconds), `m` (minutes), `h` (hours), `d` (days), or `w` (weeks). Examples: `qr-now-5m`, `qr-now-1h`, `qr-now-7d`. Alternatively, use a Unix epoch millisecond timestamp as a string (e.g. `1704067200000`)."},"TimeWindowEnd":{"type":"string","minLength":1,"maxLength":100,"description":"End of the dashboard time range. Use `qr-now` for a rolling window that tracks the current time (pair with a `qr-now-{duration}` start), or a Unix epoch millisecond timestamp as a string (e.g. `1704153600000`)."},"Overrides":{"type":"object","properties":{"rowHeight":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991}},"additionalProperties":false},"DashboardUID":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,128}$","description":"Optional dashboard UID. Must contain only letters, numbers, underscores, or hyphens, with length 1-128 when provided."},"DashboardOutput":{"$ref":"#/components/schemas/DashboardResource"}}},"security":[{"bearerAuth":[]}]}