{
  "service": "fluxguard",
  "displayName": "Fluxguard",
  "categories": [
    "Data",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "FLUXGUARD_API_KEY",
      "description": "Fluxguard API key sent in the x-api-key header. Create it from your Fluxguard organization settings: https://app.fluxguard.com/settings?tab=org"
    }
  ],
  "homepageUrl": "https://fluxguard.com/",
  "actions": [
    {
      "id": "fluxguard.add_page",
      "service": "fluxguard",
      "name": "add_page",
      "description": "Add a URL as a monitored Fluxguard page.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The absolute URL that Fluxguard should monitor.",
            "format": "uri"
          },
          "siteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site ID.",
            "pattern": "\\S"
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard session ID.",
            "pattern": "\\S"
          },
          "nickname": {
            "type": "string",
            "minLength": 1,
            "description": "A nickname for the monitored site or page.",
            "pattern": "\\S"
          },
          "categoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Fluxguard category ID.",
              "pattern": "\\S"
            },
            "description": "Fluxguard site category IDs to assign while creating a site.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "The input payload for adding a Fluxguard monitored page."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "siteId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The site ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "sessionId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The session ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "additionalProperties": true,
                "description": "The raw object returned by Fluxguard."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard add-page response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when adding a Fluxguard page."
      }
    },
    {
      "id": "fluxguard.create_category",
      "service": "fluxguard",
      "name": "create_category",
      "description": "Create a Fluxguard site category.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site category name.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for creating a Fluxguard site category."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Fluxguard category ID."
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The category name when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The category type when returned, such as site or page."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "additionalProperties": true,
                "description": "The raw object returned by Fluxguard."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard category object."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when creating a Fluxguard site category."
      }
    },
    {
      "id": "fluxguard.delete_page",
      "service": "fluxguard",
      "name": "delete_page",
      "description": "Delete a Fluxguard monitored page and its captured versions.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site ID.",
            "pattern": "\\S"
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard session ID.",
            "pattern": "\\S"
          },
          "pageId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard page ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for deleting a Fluxguard monitored page."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "ok": {
                "type": "boolean",
                "description": "Whether the Fluxguard operation completed successfully."
              },
              "raw": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The raw object returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard operation result."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when deleting a Fluxguard monitored page."
      }
    },
    {
      "id": "fluxguard.delete_site",
      "service": "fluxguard",
      "name": "delete_site",
      "description": "Delete a Fluxguard monitored site and its associated data.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for deleting a Fluxguard site."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "ok": {
                "type": "boolean",
                "description": "Whether the Fluxguard operation completed successfully."
              },
              "raw": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The raw object returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard operation result."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when deleting a Fluxguard site."
      }
    },
    {
      "id": "fluxguard.delete_webhook",
      "service": "fluxguard",
      "name": "delete_webhook",
      "description": "Delete the Fluxguard account webhook.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for deleting a Fluxguard webhook."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "ok": {
                "type": "boolean",
                "description": "Whether the Fluxguard operation completed successfully."
              },
              "raw": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The raw object returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard operation result."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when deleting a Fluxguard webhook."
      }
    },
    {
      "id": "fluxguard.get_account",
      "service": "fluxguard",
      "name": "get_account",
      "description": "Get account attributes for the authenticated Fluxguard organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for getting a Fluxguard account."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "account": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Fluxguard account or organization ID when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The account status when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "additionalProperties": true,
                "description": "The raw object returned by Fluxguard."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard account response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Fluxguard account."
      }
    },
    {
      "id": "fluxguard.get_page",
      "service": "fluxguard",
      "name": "get_page",
      "description": "Get Fluxguard data for a monitored page.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site ID.",
            "pattern": "\\S"
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard session ID.",
            "pattern": "\\S"
          },
          "pageId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard page ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for getting a Fluxguard monitored page."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "siteId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The site ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "sessionId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The session ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "pageId": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The page ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The monitored page URL when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "additionalProperties": true,
                "description": "The raw object returned by Fluxguard."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard monitored page response."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Fluxguard monitored page."
      }
    },
    {
      "id": "fluxguard.get_sample_webhook",
      "service": "fluxguard",
      "name": "get_sample_webhook",
      "description": "Get a sample Fluxguard webhook payload for the authenticated account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for getting a Fluxguard sample webhook."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sample": {
            "type": "object",
            "additionalProperties": true,
            "description": "The sample webhook payload returned by Fluxguard."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when getting a Fluxguard sample webhook."
      }
    },
    {
      "id": "fluxguard.initiate_crawl",
      "service": "fluxguard",
      "name": "initiate_crawl",
      "description": "Initiate a Fluxguard crawl for a monitored session.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "siteId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard site ID.",
            "pattern": "\\S"
          },
          "sessionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Fluxguard session ID.",
            "pattern": "\\S"
          }
        },
        "additionalProperties": false,
        "description": "The input payload for initiating a Fluxguard crawl."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "type": "object",
            "properties": {
              "ok": {
                "type": "boolean",
                "description": "Whether the Fluxguard operation completed successfully."
              },
              "raw": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The raw object returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard operation result."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when initiating a Fluxguard crawl."
      }
    },
    {
      "id": "fluxguard.list_categories",
      "service": "fluxguard",
      "name": "list_categories",
      "description": "List Fluxguard account categories.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Fluxguard categories."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Fluxguard category ID."
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The category name when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The category type when returned, such as site or page."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw object returned by Fluxguard."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Fluxguard category object."
            },
            "description": "The categories returned by Fluxguard."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "The raw object returned by Fluxguard."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Fluxguard categories."
      }
    },
    {
      "id": "fluxguard.list_webhooks",
      "service": "fluxguard",
      "name": "list_webhooks",
      "description": "List Fluxguard webhooks configured for the authenticated account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for listing Fluxguard webhooks."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "webhooks": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The webhook ID returned by Fluxguard."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The webhook URL returned by Fluxguard."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "additionalProperties": true,
                  "description": "The raw object returned by Fluxguard."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Fluxguard webhook object."
            },
            "description": "The webhooks returned by Fluxguard."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when listing Fluxguard webhooks."
      }
    },
    {
      "id": "fluxguard.upsert_webhook",
      "service": "fluxguard",
      "name": "upsert_webhook",
      "description": "Create or replace the Fluxguard account webhook.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The webhook URL that Fluxguard should notify.",
            "format": "uri"
          },
          "siteCategoryIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Fluxguard site category ID.",
              "pattern": "\\S"
            },
            "description": "Fluxguard site category IDs to associate with the webhook.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "description": "The input payload for creating or replacing a Fluxguard webhook."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "webhook": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The webhook ID returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The webhook URL returned by Fluxguard."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "additionalProperties": true,
                "description": "The raw object returned by Fluxguard."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Fluxguard webhook object."
          }
        },
        "additionalProperties": false,
        "description": "The response returned when creating or replacing a Fluxguard webhook."
      }
    }
  ]
}
