{
  "service": "hookdeck",
  "displayName": "Hookdeck",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "HOOKDECK_API_KEY",
      "description": "Hookdeck API key sent as a Bearer token. Find it in your Hookdeck project secrets settings."
    }
  ],
  "homepageUrl": "https://hookdeck.com",
  "actions": [
    {
      "id": "hookdeck.create_connection",
      "service": "hookdeck",
      "name": "create_connection",
      "description": "Create a Hookdeck connection and optionally create or bind its source and destination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "source": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck source input object."
          },
          "destination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck destination input object."
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Hookdeck rule input object."
            },
            "description": "Rules to attach to the Hookdeck connection."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "The input payload for creating a Hookdeck connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connection": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A normalized Hookdeck connection."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection",
          "raw"
        ],
        "description": "The Hookdeck create connection response."
      }
    },
    {
      "id": "hookdeck.create_destination",
      "service": "hookdeck",
      "name": "create_destination",
      "description": "Create a Hookdeck destination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "type": {
            "type": "string",
            "description": "The Hookdeck destination type."
          },
          "config": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "description": "The HTTP endpoint URL for an HTTP destination.",
                "format": "uri"
              }
            },
            "additionalProperties": true,
            "description": "The Hookdeck destination config object."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "config"
        ],
        "description": "The input payload for creating a Hookdeck destination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "destination": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck destination ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck destination name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck destination type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "config": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Hookdeck destination config object."
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck destination."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "destination",
          "raw"
        ],
        "description": "The Hookdeck create destination response."
      }
    },
    {
      "id": "hookdeck.create_source",
      "service": "hookdeck",
      "name": "create_source",
      "description": "Create a Hookdeck source.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "type": {
            "type": "string",
            "description": "The Hookdeck source type."
          },
          "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck source config object."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "The input payload for creating a Hookdeck source."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck source ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck source name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source ingestion URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "authenticated": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the Hookdeck source is authenticated."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck source."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "source",
          "raw"
        ],
        "description": "The Hookdeck create source response."
      }
    },
    {
      "id": "hookdeck.delete_connection",
      "service": "hookdeck",
      "name": "delete_connection",
      "description": "Delete a Hookdeck connection by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "connectionId"
        ],
        "description": "The input payload for selecting a Hookdeck connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "raw"
        ],
        "description": "The response returned after deleting a Hookdeck resource."
      }
    },
    {
      "id": "hookdeck.delete_destination",
      "service": "hookdeck",
      "name": "delete_destination",
      "description": "Delete a Hookdeck destination by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "destinationId"
        ],
        "description": "The input payload for selecting a Hookdeck destination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "raw"
        ],
        "description": "The response returned after deleting a Hookdeck resource."
      }
    },
    {
      "id": "hookdeck.delete_source",
      "service": "hookdeck",
      "name": "delete_source",
      "description": "Delete a Hookdeck source by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "sourceId"
        ],
        "description": "The input payload for selecting a Hookdeck source."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "deleted": {
            "type": "boolean",
            "description": "Whether the delete request completed successfully."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "deleted",
          "raw"
        ],
        "description": "The response returned after deleting a Hookdeck resource."
      }
    },
    {
      "id": "hookdeck.get_connection",
      "service": "hookdeck",
      "name": "get_connection",
      "description": "Get one Hookdeck connection by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "connectionId"
        ],
        "description": "The input payload for selecting a Hookdeck connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connection": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A normalized Hookdeck connection."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection",
          "raw"
        ],
        "description": "The Hookdeck connection response."
      }
    },
    {
      "id": "hookdeck.get_destination",
      "service": "hookdeck",
      "name": "get_destination",
      "description": "Get one Hookdeck destination by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "destinationId"
        ],
        "description": "The input payload for selecting a Hookdeck destination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "destination": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck destination ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck destination name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck destination type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "config": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Hookdeck destination config object."
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck destination."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "destination",
          "raw"
        ],
        "description": "The Hookdeck destination response."
      }
    },
    {
      "id": "hookdeck.get_source",
      "service": "hookdeck",
      "name": "get_source",
      "description": "Get one Hookdeck source by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "sourceId"
        ],
        "description": "The input payload for selecting a Hookdeck source."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck source ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck source name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source ingestion URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "authenticated": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the Hookdeck source is authenticated."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck source."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "source",
          "raw"
        ],
        "description": "The Hookdeck source response."
      }
    },
    {
      "id": "hookdeck.list_connections",
      "service": "hookdeck",
      "name": "list_connections",
      "description": "List Hookdeck connections with optional filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter connections by name or name expression."
          },
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "fullName": {
            "type": "string",
            "minLength": 1,
            "description": "Fuzzy match the Hookdeck full_name value."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether to include disabled connections."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of connections to return. Hookdeck allows up to 250."
          },
          "next": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the next page."
          },
          "prev": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the previous page."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck order_by value."
          },
          "dir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The Hookdeck sort direction."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Hookdeck connections."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A normalized Hookdeck connection."
            },
            "description": "The Hookdeck connections returned by the API."
          },
          "count": {
            "type": "integer",
            "description": "The number of connections returned by Hookdeck."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "order_by": {
                "type": "string",
                "description": "The field Hookdeck used for ordering this page."
              },
              "dir": {
                "type": "string",
                "description": "The ordering direction returned by Hookdeck."
              },
              "limit": {
                "type": "integer",
                "description": "The page size returned by Hookdeck."
              },
              "next": {
                "type": "string",
                "description": "The cursor for the next page when present."
              },
              "prev": {
                "type": "string",
                "description": "The cursor for the previous page when present."
              }
            },
            "additionalProperties": true,
            "description": "Hookdeck cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck list response."
          }
        },
        "additionalProperties": false,
        "required": [
          "connections",
          "count",
          "pagination",
          "raw"
        ],
        "description": "The Hookdeck connections list response."
      }
    },
    {
      "id": "hookdeck.list_destinations",
      "service": "hookdeck",
      "name": "list_destinations",
      "description": "List Hookdeck destinations with optional filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter resources by name or name expression."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether to include disabled resources."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of resources to return. Hookdeck allows up to 250."
          },
          "next": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the next page."
          },
          "prev": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the previous page."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck order_by value."
          },
          "dir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The Hookdeck sort direction."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Hookdeck resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "destinations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Hookdeck destination ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Hookdeck destination name."
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Hookdeck destination type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "config": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The Hookdeck destination config object."
                },
                "disabledAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updatedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Hookdeck object."
                }
              },
              "additionalProperties": true,
              "description": "A normalized Hookdeck destination."
            },
            "description": "The Hookdeck destinations returned by the API."
          },
          "count": {
            "type": "integer",
            "description": "The number of destinations returned by Hookdeck."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "order_by": {
                "type": "string",
                "description": "The field Hookdeck used for ordering this page."
              },
              "dir": {
                "type": "string",
                "description": "The ordering direction returned by Hookdeck."
              },
              "limit": {
                "type": "integer",
                "description": "The page size returned by Hookdeck."
              },
              "next": {
                "type": "string",
                "description": "The cursor for the next page when present."
              },
              "prev": {
                "type": "string",
                "description": "The cursor for the previous page when present."
              }
            },
            "additionalProperties": true,
            "description": "Hookdeck cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck list response."
          }
        },
        "additionalProperties": false,
        "required": [
          "destinations",
          "count",
          "pagination",
          "raw"
        ],
        "description": "The Hookdeck destinations list response."
      }
    },
    {
      "id": "hookdeck.list_sources",
      "service": "hookdeck",
      "name": "list_sources",
      "description": "List Hookdeck sources with optional filters and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter resources by name or name expression."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether to include disabled resources."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 250,
            "description": "The maximum number of resources to return. Hookdeck allows up to 250."
          },
          "next": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the next page."
          },
          "prev": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck cursor for the previous page."
          },
          "orderBy": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck order_by value."
          },
          "dir": {
            "type": "string",
            "enum": [
              "asc",
              "desc"
            ],
            "description": "The Hookdeck sort direction."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for listing Hookdeck resources."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The Hookdeck source ID."
                },
                "name": {
                  "type": "string",
                  "description": "The Hookdeck source name."
                },
                "type": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Hookdeck source type."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "url": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Hookdeck source ingestion URL.",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "authenticated": {
                  "anyOf": [
                    {
                      "type": "boolean",
                      "description": "Whether the Hookdeck source is authenticated."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "disabledAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "createdAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updatedAt": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The timestamp returned by Hookdeck.",
                      "format": "date-time"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Hookdeck object."
                }
              },
              "additionalProperties": true,
              "description": "A normalized Hookdeck source."
            },
            "description": "The Hookdeck sources returned by the API."
          },
          "count": {
            "type": "integer",
            "description": "The number of sources returned by Hookdeck."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "order_by": {
                "type": "string",
                "description": "The field Hookdeck used for ordering this page."
              },
              "dir": {
                "type": "string",
                "description": "The ordering direction returned by Hookdeck."
              },
              "limit": {
                "type": "integer",
                "description": "The page size returned by Hookdeck."
              },
              "next": {
                "type": "string",
                "description": "The cursor for the next page when present."
              },
              "prev": {
                "type": "string",
                "description": "The cursor for the previous page when present."
              }
            },
            "additionalProperties": true,
            "description": "Hookdeck cursor pagination metadata."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck list response."
          }
        },
        "additionalProperties": false,
        "required": [
          "sources",
          "count",
          "pagination",
          "raw"
        ],
        "description": "The Hookdeck sources list response."
      }
    },
    {
      "id": "hookdeck.update_connection",
      "service": "hookdeck",
      "name": "update_connection",
      "description": "Update a Hookdeck connection by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "connectionId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "source": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck source input object."
          },
          "destination": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck destination input object."
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Hookdeck rule input object."
            },
            "description": "Rules to attach to the Hookdeck connection."
          }
        },
        "additionalProperties": false,
        "required": [
          "connectionId"
        ],
        "description": "The input payload for updating a Hookdeck connection."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "connection": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A normalized Hookdeck connection."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "connection",
          "raw"
        ],
        "description": "The Hookdeck update connection response."
      }
    },
    {
      "id": "hookdeck.update_destination",
      "service": "hookdeck",
      "name": "update_destination",
      "description": "Update a Hookdeck destination by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "destinationId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "type": {
            "type": "string",
            "description": "The Hookdeck destination type."
          },
          "config": {
            "type": "object",
            "properties": {
              "url": {
                "type": "string",
                "description": "The HTTP endpoint URL for an HTTP destination.",
                "format": "uri"
              }
            },
            "additionalProperties": true,
            "description": "The Hookdeck destination config object."
          }
        },
        "additionalProperties": false,
        "required": [
          "destinationId"
        ],
        "description": "The input payload for updating a Hookdeck destination."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "destination": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck destination ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck destination name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck destination type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "config": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The Hookdeck destination config object."
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck destination."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "destination",
          "raw"
        ],
        "description": "The Hookdeck update destination response."
      }
    },
    {
      "id": "hookdeck.update_source",
      "service": "hookdeck",
      "name": "update_source",
      "description": "Update a Hookdeck source by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "sourceId": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource identifier."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource name."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The Hookdeck resource description."
          },
          "type": {
            "type": "string",
            "description": "The Hookdeck source type."
          },
          "config": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The Hookdeck source config object."
          }
        },
        "additionalProperties": false,
        "required": [
          "sourceId"
        ],
        "description": "The input payload for updating a Hookdeck source."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The Hookdeck source ID."
              },
              "name": {
                "type": "string",
                "description": "The Hookdeck source name."
              },
              "type": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source type."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "url": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Hookdeck source ingestion URL.",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "authenticated": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "Whether the Hookdeck source is authenticated."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "disabledAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "updatedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The timestamp returned by Hookdeck.",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Hookdeck object."
              }
            },
            "additionalProperties": true,
            "description": "A normalized Hookdeck source."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Hookdeck object."
          }
        },
        "additionalProperties": false,
        "required": [
          "source",
          "raw"
        ],
        "description": "The Hookdeck update source response."
      }
    }
  ]
}
