{
  "service": "stormboard",
  "displayName": "Stormboard",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "stormboard_api_key",
      "description": "Stormboard API key used with the X-API-Key header. Find it on the API tab of your Stormboard account.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://stormboard.com",
  "actions": [
    {
      "id": "stormboard.get_profile",
      "service": "stormboard",
      "name": "get_profile",
      "description": "Get the Stormboard profile associated with the provided API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "profile": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The Stormboard user ID."
              },
              "firstname": {
                "type": "string",
                "description": "The user's first name."
              },
              "lastname": {
                "type": "string",
                "description": "The user's last name."
              },
              "username": {
                "type": "string",
                "description": "The username returned by Stormboard."
              },
              "email": {
                "type": "string",
                "description": "The email address returned by Stormboard."
              },
              "team": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Raw Stormboard object."
              }
            },
            "additionalProperties": true,
            "description": "A Stormboard profile object."
          }
        },
        "additionalProperties": false,
        "required": [
          "profile"
        ],
        "description": "Stormboard profile response."
      }
    },
    {
      "id": "stormboard.get_storm",
      "service": "stormboard",
      "name": "get_storm",
      "description": "Get the details and setup for one Stormboard Storm.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for a Stormboard Storm read action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "storm": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer",
                "description": "The Storm ID returned by Stormboard."
              },
              "title": {
                "type": "string",
                "description": "The Storm title returned by Stormboard."
              },
              "closed": {
                "type": "boolean",
                "description": "Whether the Storm is closed."
              },
              "team": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Raw Stormboard object."
              }
            },
            "additionalProperties": true,
            "description": "A Stormboard Storm record."
          }
        },
        "additionalProperties": false,
        "required": [
          "storm"
        ],
        "description": "Stormboard Storm detail response."
      }
    },
    {
      "id": "stormboard.get_storm_access",
      "service": "stormboard",
      "name": "get_storm_access",
      "description": "Check the current account's access level for one Stormboard Storm.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for a Stormboard Storm read action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "access": {
            "type": "object",
            "properties": {
              "administrator": {
                "type": "boolean",
                "description": "Whether the current account is an administrator in the Storm."
              },
              "type": {
                "type": "string",
                "description": "The access type returned by Stormboard."
              }
            },
            "additionalProperties": false,
            "required": [
              "administrator",
              "type"
            ],
            "description": "Stormboard access level."
          }
        },
        "additionalProperties": false,
        "required": [
          "access"
        ],
        "description": "Stormboard Storm access response."
      }
    },
    {
      "id": "stormboard.list_storm_connectors",
      "service": "stormboard",
      "name": "list_storm_connectors",
      "description": "List line connectors in one Stormboard Storm.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for a Stormboard Storm read action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connectors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The connector ID returned by Stormboard."
                },
                "from": {
                  "type": "integer",
                  "description": "The source idea ID."
                },
                "to": {
                  "type": "integer",
                  "description": "The target idea ID."
                },
                "label": {
                  "type": "string",
                  "description": "The connector label."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard line connector record."
            },
            "description": "Connectors returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "connectors"
        ],
        "description": "Stormboard connector list response."
      }
    },
    {
      "id": "stormboard.list_storm_ideas",
      "service": "stormboard",
      "name": "list_storm_ideas",
      "description": "List ideas in one Stormboard Storm, optionally filtering by last modified timestamp.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          },
          "lastModifiedMin": {
            "type": "string",
            "description": "Only return ideas modified since this ISO 8601 timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for listing ideas in a Stormboard Storm."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "ideas": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The idea ID returned by Stormboard."
                },
                "type": {
                  "type": "string",
                  "description": "The Stormboard idea type."
                },
                "data": {
                  "description": "The idea data returned by Stormboard."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard idea record."
            },
            "description": "Ideas returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "ideas"
        ],
        "description": "Stormboard idea list response."
      }
    },
    {
      "id": "stormboard.list_storm_tags",
      "service": "stormboard",
      "name": "list_storm_tags",
      "description": "List tags that have been created in one Stormboard Storm.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for a Stormboard Storm read action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "tags": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The tag ID returned by Stormboard."
                },
                "name": {
                  "type": "string",
                  "description": "The tag name."
                },
                "type": {
                  "type": "string",
                  "description": "The tag type."
                },
                "status": {
                  "type": "string",
                  "description": "The tag status."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard tag record."
            },
            "description": "Tags returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "tags"
        ],
        "description": "Stormboard tag list response."
      }
    },
    {
      "id": "stormboard.list_storm_users",
      "service": "stormboard",
      "name": "list_storm_users",
      "description": "List participants in one Stormboard Storm.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stormId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Stormboard Storm ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "stormId"
        ],
        "description": "Input for a Stormboard Storm read action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "firstname": {
                  "type": "string",
                  "description": "The participant first name."
                },
                "lastname": {
                  "type": "string",
                  "description": "The participant last name."
                },
                "email": {
                  "type": "string",
                  "description": "The participant email."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard participant record."
            },
            "description": "Participants returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "users"
        ],
        "description": "Stormboard participant list response."
      }
    },
    {
      "id": "stormboard.list_storms",
      "service": "stormboard",
      "name": "list_storms",
      "description": "List Stormboard Storms visible to the current account with optional team, folder, status, title, ordering, and pagination filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team": {
            "type": "integer",
            "minimum": 1,
            "description": "Filter Storm results by a team ID."
          },
          "folder": {
            "type": "integer",
            "minimum": 1,
            "description": "Filter Storm results by a dashboard folder ID."
          },
          "needle": {
            "type": "string",
            "minLength": 1,
            "description": "Filter Storm results based on Storm title."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "open",
              "closed"
            ],
            "description": "Filter Storms by status."
          },
          "start": {
            "type": "integer",
            "minimum": 0,
            "description": "Start the Storm list at this index."
          },
          "order": {
            "type": "string",
            "enum": [
              "activity",
              "alpha",
              "frequency",
              "starred"
            ],
            "description": "Order Storm results by this value."
          },
          "results": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of Storm results to return. Stormboard allows up to 100."
          }
        },
        "additionalProperties": false,
        "description": "Query parameters for listing Stormboard Storms."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "hasMore": {
            "type": "boolean",
            "description": "Whether Stormboard has more Storm results available."
          },
          "storms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "The Storm ID returned by Stormboard."
                },
                "title": {
                  "type": "string",
                  "description": "The Storm title returned by Stormboard."
                },
                "closed": {
                  "type": "boolean",
                  "description": "Whether the Storm is closed."
                },
                "team": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Raw Stormboard object."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard Storm record."
            },
            "description": "Storms returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "hasMore",
          "storms"
        ],
        "description": "Stormboard Storm list response."
      }
    },
    {
      "id": "stormboard.list_template_categories",
      "service": "stormboard",
      "name": "list_template_categories",
      "description": "List Stormboard template categories.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "categories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The Stormboard template category ID."
                },
                "name": {
                  "type": "string",
                  "description": "The category name returned by Stormboard."
                }
              },
              "additionalProperties": true,
              "description": "A Stormboard template category."
            },
            "description": "Template categories returned by Stormboard."
          }
        },
        "additionalProperties": false,
        "required": [
          "categories"
        ],
        "description": "Stormboard template category list response."
      }
    },
    {
      "id": "stormboard.list_templates",
      "service": "stormboard",
      "name": "list_templates",
      "description": "List Stormboard templates, optionally limited to one template category.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "category": {
            "type": "string",
            "minLength": 1,
            "description": "The Stormboard template category ID."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Stormboard templates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "templates": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Templates returned by Stormboard, grouped by source."
          }
        },
        "additionalProperties": false,
        "required": [
          "templates"
        ],
        "description": "Stormboard template list response."
      }
    }
  ]
}
