{
  "service": "axiom",
  "displayName": "Axiom",
  "categories": [
    "Data",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Token",
      "placeholder": "axiom_api_token",
      "description": "Axiom API token used with the Authorization Bearer header. Create or view API tokens from Settings > API tokens in Axiom: https://app.axiom.co/",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://axiom.co",
  "actions": [
    {
      "id": "axiom.create_dataset",
      "service": "axiom",
      "name": "create_dataset",
      "description": "Create an Axiom dataset.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The unique Axiom dataset name."
          },
          "description": {
            "type": "string",
            "description": "The dataset description."
          },
          "edgeDeployment": {
            "type": "string",
            "minLength": 1,
            "description": "The edge deployment assigned to the dataset."
          },
          "kind": {
            "type": "string",
            "enum": [
              "otel:metrics:v1",
              "otel:traces:v1",
              "otel:logs:v1",
              "axiom:events:v1"
            ],
            "description": "The Axiom dataset kind."
          },
          "retentionDays": {
            "type": "integer",
            "description": "The number of days Axiom should retain data in the dataset."
          },
          "useRetentionPeriod": {
            "type": "boolean",
            "description": "Whether the dataset should use a retention period."
          },
          "referrer": {
            "type": "string",
            "minLength": 1,
            "description": "Optional referrer slug sent as the create dataset query parameter."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "The input payload for creating an Axiom dataset."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataset": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "An Axiom dataset resource."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when creating an Axiom dataset."
      }
    },
    {
      "id": "axiom.delete_dataset",
      "service": "axiom",
      "name": "delete_dataset",
      "description": "Delete an Axiom dataset by ID or unique name.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataset_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Axiom dataset ID or unique dataset name."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for deleting an Axiom dataset."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when deleting an Axiom dataset."
      }
    },
    {
      "id": "axiom.get_dataset",
      "service": "axiom",
      "name": "get_dataset",
      "description": "Get an Axiom dataset by ID or unique name.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "dataset_id": {
            "type": "string",
            "minLength": 1,
            "description": "The Axiom dataset ID or unique dataset name."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting an Axiom dataset."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "dataset": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "An Axiom dataset resource."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting an Axiom dataset."
      }
    },
    {
      "id": "axiom.list_datasets",
      "service": "axiom",
      "name": "list_datasets",
      "description": "List Axiom datasets visible to the current token.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Axiom datasets."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "datasets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "An Axiom dataset resource."
            },
            "description": "The datasets returned by Axiom."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Axiom datasets."
      }
    },
    {
      "id": "axiom.run_apl_query",
      "service": "axiom",
      "name": "run_apl_query",
      "description": "Run an Axiom Processing Language query through the global API endpoint.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "apl": {
            "type": "string",
            "minLength": 1,
            "description": "The APL query string to execute."
          },
          "format": {
            "type": "string",
            "enum": [
              "legacy",
              "tabular"
            ],
            "description": "The Axiom query result format."
          },
          "nocache": {
            "type": "boolean",
            "description": "Whether Axiom should bypass cached query results."
          },
          "saveAsKind": {
            "type": "string",
            "minLength": 1,
            "description": "The saved query result kind."
          },
          "dataset_name": {
            "type": "string",
            "minLength": 1,
            "description": "The associated dataset name when saving query results."
          },
          "cursor": {
            "type": "string",
            "minLength": 1,
            "description": "The query cursor returned by a previous Axiom query."
          },
          "endTime": {
            "type": "string",
            "minLength": 1,
            "description": "The query end time as RFC3339 or a relative time expression."
          },
          "includeCursor": {
            "type": "boolean",
            "description": "Whether the query response should include cursors."
          },
          "queryOptions": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Axiom query options passed through to the APL API."
          },
          "startTime": {
            "type": "string",
            "minLength": 1,
            "description": "The query start time as RFC3339 or a relative time expression."
          },
          "variables": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "One Axiom query variable value."
            },
            "description": "Variables inserted into the APL query."
          }
        },
        "additionalProperties": false,
        "required": [
          "apl"
        ],
        "description": "The input payload for running an Axiom APL query."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Axiom query result."
          },
          "datasetNames": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "The dataset names included in the query result."
          },
          "format": {
            "type": "string",
            "description": "The Axiom query result format."
          },
          "status": {
            "type": "object",
            "properties": {
              "blocksCached": {
                "type": "integer",
                "description": "The number of blocks served from cache."
              },
              "blocksExamined": {
                "type": "integer",
                "description": "The number of blocks examined by the query."
              },
              "blocksMatched": {
                "type": "integer",
                "description": "The number of blocks matched by the query."
              },
              "cacheStatus": {
                "type": "integer",
                "description": "The Axiom cache status code for the query."
              },
              "elapsedTime": {
                "type": "integer",
                "description": "The query elapsed time in nanoseconds."
              },
              "isPartial": {
                "type": "boolean",
                "description": "Whether Axiom returned a partial query result."
              },
              "maxBlockTime": {
                "type": "string",
                "description": "The latest block time scanned by the query."
              },
              "maxCursor": {
                "type": "string",
                "description": "The maximum cursor returned by the query."
              },
              "minBlockTime": {
                "type": "string",
                "description": "The earliest block time scanned by the query."
              },
              "minCursor": {
                "type": "string",
                "description": "The minimum cursor returned by the query."
              },
              "numGroups": {
                "type": "integer",
                "description": "The number of groups produced by the query."
              },
              "rowsExamined": {
                "type": "integer",
                "description": "The number of rows examined by the query."
              },
              "rowsMatched": {
                "type": "integer",
                "description": "The number of rows matched by the query."
              }
            },
            "additionalProperties": true,
            "description": "The Axiom query execution status."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when running an Axiom APL query."
      }
    }
  ]
}
