{
  "name": "AsanaUpdateWebhookFilters",
  "fully_qualified_name": "AsanaApi.AsanaUpdateWebhookFilters@0.1.0",
  "description": "Update filters for an Asana webhook.\n\nUse this tool to update the filters of an existing Asana webhook by providing new filter specifications. The existing filters will be completely replaced with the new ones provided.",
  "toolkit": {
    "name": "AsanaApi",
    "description": null,
    "version": "0.1.0"
  },
  "input": {
    "parameters": [
      {
        "name": "webhook_global_id",
        "required": true,
        "description": "Globally unique identifier for the webhook to update its filters.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Globally unique identifier for the webhook."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "webhook_gid"
      },
      {
        "name": "updated_webhook_filters",
        "required": true,
        "description": "JSON object with 'filters' array detailing new filters for the webhook.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": {
            "data": {
              "val_type": "json",
              "inner_val_type": null,
              "enum": null,
              "properties": {
                "filters": {
                  "val_type": "array",
                  "inner_val_type": "json",
                  "enum": null,
                  "properties": null,
                  "inner_properties": {},
                  "description": "An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server."
                }
              },
              "inner_properties": null,
              "description": null
            }
          },
          "inner_properties": null,
          "description": "The updated filters for the webhook."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "requestBody"
      },
      {
        "name": "include_optional_properties",
        "required": false,
        "description": "Comma-separated list of optional properties to include in the response.",
        "value_schema": {
          "val_type": "array",
          "inner_val_type": "string",
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "opt_fields"
      },
      {
        "name": "enable_pretty_output",
        "required": false,
        "description": "Enable this to receive the response in a human-readable format with line breaking and indentation. Recommended only for debugging as it increases response size and time.",
        "value_schema": {
          "val_type": "boolean",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Provides \u201cpretty\u201d output.\nProvides the response in a \u201cpretty\u201d format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "opt_pretty"
      }
    ]
  },
  "output": {
    "description": "Response from the API endpoint 'updateWebhook'.",
    "available_modes": [
      "value",
      "error",
      "null"
    ],
    "value_schema": {
      "val_type": "json",
      "inner_val_type": null,
      "enum": null,
      "properties": null,
      "inner_properties": null,
      "description": null
    }
  },
  "requirements": {
    "authorization": {
      "provider_id": "arcade-asana",
      "provider_type": "oauth2",
      "id": null,
      "oauth2": {
        "scopes": [
          "webhooks:write"
        ]
      }
    },
    "secrets": null,
    "metadata": null
  },
  "deprecation_message": null,
  "metadata": {
    "object_type": "api_wrapper_tool",
    "version": "1.1.0",
    "description": "Tools that enable LLMs to interact directly with the asana API."
  },
  "http_endpoint": {
    "metadata": {
      "object_type": "http_endpoint",
      "version": "1.2.0",
      "description": ""
    },
    "url": "https://app.asana.com/api/1.0/webhooks/{webhook_gid}",
    "http_method": "PUT",
    "headers": {},
    "parameters": [
      {
        "name": "opt_pretty",
        "tool_parameter_name": "enable_pretty_output",
        "description": "Provides \u201cpretty\u201d output.\nProvides the response in a \u201cpretty\u201d format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.",
        "value_schema": {
          "val_type": "boolean",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Provides \u201cpretty\u201d output.\nProvides the response in a \u201cpretty\u201d format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "opt_fields",
        "tool_parameter_name": "include_optional_properties",
        "description": "This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include.",
        "value_schema": {
          "val_type": "array",
          "inner_val_type": "string",
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "This endpoint returns a resource which excludes some properties by default. To include those optional properties, set this query parameter to a comma-separated list of the properties you wish to include."
        },
        "accepted_as": "query",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "webhook_gid",
        "tool_parameter_name": "webhook_global_id",
        "description": "Globally unique identifier for the webhook.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Globally unique identifier for the webhook."
        },
        "accepted_as": "path",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "requestBody",
        "tool_parameter_name": "updated_webhook_filters",
        "description": "The updated filters for the webhook.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": {
            "data": {
              "val_type": "json",
              "inner_val_type": null,
              "enum": null,
              "properties": {
                "filters": {
                  "val_type": "array",
                  "inner_val_type": "json",
                  "enum": null,
                  "properties": null,
                  "inner_properties": {},
                  "description": "An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server."
                }
              },
              "inner_properties": null,
              "description": null
            }
          },
          "inner_properties": null,
          "description": "The updated filters for the webhook."
        },
        "accepted_as": "body",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      }
    ],
    "documentation_urls": [],
    "secrets": [
      {
        "arcade_key": "auth_token",
        "parameter_name": "Authorization",
        "accepted_as": "header",
        "formatted_value": "Bearer {authorization}",
        "description": "The OAuth token to use for authentication.",
        "is_auth_token": true
      }
    ],
    "request_body_spec": "{\n  \"description\": \"The updated filters for the webhook.\",\n  \"required\": true,\n  \"content\": {\n    \"application/json\": {\n      \"schema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"data\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"filters\": {\n                \"type\": \"array\",\n                \"description\": \"An array of WebhookFilter objects to specify a whitelist of filters to apply to events from this webhook. If a webhook event passes any of the filters the event will be delivered; otherwise no event will be sent to the receiving server.\",\n                \"items\": {\n                  \"allOf\": [\n                    {\n                      \"type\": \"object\",\n                      \"description\": \"A WebhookFilter can be passed on creation of a webhook in order to filter the types of actions that trigger delivery of an [event](/reference/events)\",\n                      \"properties\": {\n                        \"resource_type\": {\n                          \"type\": \"string\",\n                          \"description\": \"The type of the resource which created the event when modified; for example, to filter to changes on regular tasks this field should be set to `task`.\",\n                          \"example\": \"task\"\n                        },\n                        \"resource_subtype\": {\n                          \"description\": \"The resource subtype of the resource that the filter applies to. This should be set to the same value as is returned on the `resource_subtype` field on the resources themselves.\",\n                          \"type\": \"string\",\n                          \"example\": \"milestone\"\n                        },\n                        \"action\": {\n                          \"type\": \"string\",\n                          \"description\": \"The type of change on the **resource** to pass through the filter. For more information refer to `Event.action` in the [event](/reference/events) schema. This can be one of `changed`, `added`, `removed`, `deleted`, and `undeleted` depending on the nature of what has occurred on the resource.\",\n                          \"example\": \"changed\"\n                        },\n                        \"fields\": {\n                          \"type\": \"array\",\n                          \"description\": \"*Conditional.* A whitelist of fields for events which will pass the filter when the resource is changed. These can be any combination of the fields on the resources themselves. This field is only valid for `action` of type `changed`\\n*Note: Subscriptions created on higher-level resources such as a Workspace, Team, or Portfolio do not support fields.*\",\n                          \"items\": {\n                            \"type\": \"string\"\n                          },\n                          \"example\": [\n                            \"due_at\",\n                            \"due_on\",\n                            \"dependencies\"\n                          ]\n                        }\n                      }\n                    },\n                    {\n                      \"description\": \"A set of filters to specify a whitelist for what types of events will be delivered.\"\n                    },\n                    {\n                      \"type\": \"object\"\n                    }\n                  ]\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n}",
    "use_request_body_schema_mode": true,
    "validate_request_body_schema": true
  }
}
