arcade-mcp/toolkits/vercel_api/arcade_vercel_api/wrapper_tools/SubmitBillingData.json
jottakka 686dfce7b0
[MOAR][VERCEL] Adding Vercel Starter Toolkit (#638)
Vercel API

---------

Co-authored-by: Francisco Liberal <francisco@arcade.dev>
2025-10-21 12:06:46 -03:00

377 lines
26 KiB
JSON

{
"name": "SubmitBillingData",
"fully_qualified_name": "VercelApi.SubmitBillingData@0.1.0",
"description": "Submit billing and usage data to the server.\n\nThis tool should be used to send billing and usage data at least once a day, ideally once per hour, using the provided access token for authorization.",
"toolkit": {
"name": "ArcadeVercelApi",
"description": null,
"version": "0.1.0"
},
"input": {
"parameters": [
{
"name": "integration_configuration_id",
"required": true,
"description": "A string representing the unique identifier for the integration configuration. This is required to submit billing data.",
"value_schema": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": ""
},
"inferrable": true,
"http_endpoint_parameter_name": "integrationConfigurationId"
},
{
"name": "billing_usage_data",
"required": true,
"description": "JSON containing the billing and usage data details: timestamp, end of day (eod), period, billing, and usage metrics.",
"value_schema": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": {
"timestamp": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept."
},
"eod": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your \\\"end of day\\\" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time."
},
"period": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": {
"start": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": null
},
"end": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": null
}
},
"inner_properties": null,
"description": "Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time."
},
"billing": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Billing data (interim invoicing data)."
},
"usage": {
"val_type": "array",
"inner_val_type": "json",
"enum": null,
"properties": null,
"inner_properties": {
"resourceId": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Partner's resource ID."
},
"name": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric name."
},
"type": {
"val_type": "string",
"inner_val_type": null,
"enum": [
"total",
"interval",
"rate"
],
"properties": null,
"inner_properties": null,
"description": "\\n Type of the metric.\\n - total: measured total value, such as Database size\\n - interval: usage during the period, such as i/o or number of queries.\\n - rate: rate of usage, such as queries per second.\\n "
},
"units": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric units. Example: \\\"GB\\\""
},
"dayValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric value for the day. Could be a final or an interim value for the day."
},
"periodValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric value for the billing period. Could be a final or an interim value for the period."
},
"planValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "The limit value of the metric for a billing period, if a limit is defined by the plan."
}
},
"description": null
}
},
"inner_properties": null,
"description": ""
},
"inferrable": true,
"http_endpoint_parameter_name": "requestBody"
}
]
},
"output": {
"description": "Response from the API endpoint 'submit-billing-data'.",
"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": null,
"secrets": [
{
"key": "VERCEL_ACCESS_TOKEN"
}
],
"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 vercel API."
},
"http_endpoint": {
"metadata": {
"object_type": "http_endpoint",
"version": "1.2.0",
"description": ""
},
"url": "https://api.vercel.com/v1/installations/{integrationConfigurationId}/billing",
"http_method": "POST",
"headers": {
"Content-Type": "application/json"
},
"parameters": [
{
"name": "integrationConfigurationId",
"tool_parameter_name": "integration_configuration_id",
"description": "",
"value_schema": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": ""
},
"accepted_as": "path",
"required": true,
"deprecated": false,
"default": null,
"documentation_urls": []
},
{
"name": "requestBody",
"tool_parameter_name": "billing_usage_data",
"description": "",
"value_schema": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": {
"timestamp": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept."
},
"eod": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your \\\"end of day\\\" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time."
},
"period": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": {
"start": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": null
},
"end": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": null
}
},
"inner_properties": null,
"description": "Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time."
},
"billing": {
"val_type": "json",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Billing data (interim invoicing data)."
},
"usage": {
"val_type": "array",
"inner_val_type": "json",
"enum": null,
"properties": null,
"inner_properties": {
"resourceId": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Partner's resource ID."
},
"name": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric name."
},
"type": {
"val_type": "string",
"inner_val_type": null,
"enum": [
"total",
"interval",
"rate"
],
"properties": null,
"inner_properties": null,
"description": "\\n Type of the metric.\\n - total: measured total value, such as Database size\\n - interval: usage during the period, such as i/o or number of queries.\\n - rate: rate of usage, such as queries per second.\\n "
},
"units": {
"val_type": "string",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric units. Example: \\\"GB\\\""
},
"dayValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric value for the day. Could be a final or an interim value for the day."
},
"periodValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "Metric value for the billing period. Could be a final or an interim value for the period."
},
"planValue": {
"val_type": "number",
"inner_val_type": null,
"enum": null,
"properties": null,
"inner_properties": null,
"description": "The limit value of the metric for a billing period, if a limit is defined by the plan."
}
},
"description": null
}
},
"inner_properties": null,
"description": ""
},
"accepted_as": "body",
"required": true,
"deprecated": false,
"default": null,
"documentation_urls": []
}
],
"documentation_urls": [],
"secrets": [
{
"arcade_key": "VERCEL_ACCESS_TOKEN",
"parameter_name": "Authorization",
"accepted_as": "header",
"formatted_value": "Bearer {authorization}",
"description": "",
"is_auth_token": false
}
],
"request_body_spec": "{\n \"content\": {\n \"application/json\": {\n \"schema\": {\n \"type\": \"object\",\n \"properties\": {\n \"timestamp\": {\n \"description\": \"Server time of your integration, used to determine the most recent data for race conditions & updates. Only the latest usage data for a given day, week, and month will be kept.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"eod\": {\n \"description\": \"End of Day, the UTC datetime for when the end of the billing/usage day is in UTC time. This tells us which day the usage data is for, and also allows for your \\\\\\\"end of day\\\\\\\" to be different from UTC 00:00:00. eod must be within the period dates, and cannot be older than 24h earlier from our server's current time.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"period\": {\n \"type\": \"object\",\n \"description\": \"Period for the billing cycle. The period end date cannot be older than 24 hours earlier than our current server's time.\",\n \"properties\": {\n \"start\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"end\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n }\n },\n \"required\": [\n \"start\",\n \"end\"\n ],\n \"additionalProperties\": false\n },\n \"billing\": {\n \"description\": \"Billing data (interim invoicing data).\",\n \"oneOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"billingPlanId\": {\n \"type\": \"string\",\n \"description\": \"Partner's billing plan ID.\"\n },\n \"resourceId\": {\n \"type\": \"string\",\n \"description\": \"Partner's resource ID.\"\n },\n \"start\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"end\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Line item name.\"\n },\n \"details\": {\n \"type\": \"string\",\n \"description\": \"Line item details.\"\n },\n \"price\": {\n \"description\": \"Price per unit.\",\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+(\\\\\\\\.[0-9]+)?$\"\n },\n \"quantity\": {\n \"type\": \"number\",\n \"description\": \"Quantity of units.\"\n },\n \"units\": {\n \"type\": \"string\",\n \"description\": \"Units of the quantity.\"\n },\n \"total\": {\n \"description\": \"Total amount.\",\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+(\\\\\\\\.[0-9]+)?$\"\n }\n },\n \"required\": [\n \"billingPlanId\",\n \"name\",\n \"price\",\n \"quantity\",\n \"units\",\n \"total\"\n ],\n \"additionalProperties\": false\n }\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"items\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"billingPlanId\": {\n \"type\": \"string\",\n \"description\": \"Partner's billing plan ID.\"\n },\n \"resourceId\": {\n \"type\": \"string\",\n \"description\": \"Partner's resource ID.\"\n },\n \"start\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"end\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Line item name.\"\n },\n \"details\": {\n \"type\": \"string\",\n \"description\": \"Line item details.\"\n },\n \"price\": {\n \"description\": \"Price per unit.\",\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+(\\\\\\\\.[0-9]+)?$\"\n },\n \"quantity\": {\n \"type\": \"number\",\n \"description\": \"Quantity of units.\"\n },\n \"units\": {\n \"type\": \"string\",\n \"description\": \"Units of the quantity.\"\n },\n \"total\": {\n \"description\": \"Total amount.\",\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+(\\\\\\\\.[0-9]+)?$\"\n }\n },\n \"required\": [\n \"billingPlanId\",\n \"name\",\n \"price\",\n \"quantity\",\n \"units\",\n \"total\"\n ],\n \"additionalProperties\": false\n }\n },\n \"discounts\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"billingPlanId\": {\n \"type\": \"string\",\n \"description\": \"Partner's billing plan ID.\"\n },\n \"resourceId\": {\n \"type\": \"string\",\n \"description\": \"Partner's resource ID.\"\n },\n \"start\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"end\": {\n \"description\": \"Start and end are only needed if different from the period's start/end.\",\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Discount name.\"\n },\n \"details\": {\n \"type\": \"string\",\n \"description\": \"Discount details.\"\n },\n \"amount\": {\n \"description\": \"Discount amount.\",\n \"type\": \"string\",\n \"pattern\": \"^[0-9]+(\\\\\\\\.[0-9]+)?$\"\n }\n },\n \"required\": [\n \"billingPlanId\",\n \"name\",\n \"amount\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"items\"\n ]\n }\n ]\n },\n \"usage\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"resourceId\": {\n \"type\": \"string\",\n \"description\": \"Partner's resource ID.\"\n },\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Metric name.\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"\\\\n Type of the metric.\\\\n - total: measured total value, such as Database size\\\\n - interval: usage during the period, such as i/o or number of queries.\\\\n - rate: rate of usage, such as queries per second.\\\\n \",\n \"enum\": [\n \"total\",\n \"interval\",\n \"rate\"\n ]\n },\n \"units\": {\n \"type\": \"string\",\n \"description\": \"Metric units. Example: \\\\\\\"GB\\\\\\\"\"\n },\n \"dayValue\": {\n \"type\": \"number\",\n \"description\": \"Metric value for the day. Could be a final or an interim value for the day.\"\n },\n \"periodValue\": {\n \"type\": \"number\",\n \"description\": \"Metric value for the billing period. Could be a final or an interim value for the period.\"\n },\n \"planValue\": {\n \"type\": \"number\",\n \"description\": \"The limit value of the metric for a billing period, if a limit is defined by the plan.\"\n }\n },\n \"required\": [\n \"name\",\n \"type\",\n \"units\",\n \"dayValue\",\n \"periodValue\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": [\n \"timestamp\",\n \"eod\",\n \"period\",\n \"billing\",\n \"usage\"\n ],\n \"additionalProperties\": false\n }\n }\n },\n \"required\": true\n}",
"use_request_body_schema_mode": true,
"validate_request_body_schema": true
}
}