{
  "name": "UpdateBookingCustomAttribute",
  "fully_qualified_name": "SquareupApi.UpdateBookingCustomAttribute@2.0.0",
  "description": "Update a booking's custom attribute definition.\n\nUse this tool to update the custom attribute definition for a booking. It requires appropriate permissions, either buyer-level or seller-level, and the seller must be subscribed to Appointments Plus or Appointments Premium for seller-level calls.",
  "toolkit": {
    "name": "ArcadeSquareupApi",
    "description": null,
    "version": "2.0.0"
  },
  "input": {
    "parameters": [
      {
        "name": "custom_attribute_key",
        "required": true,
        "description": "The key of the custom attribute definition to update. This key can be a simple key or a qualified key consisting of the application ID and the simple key, formatted as 'application_id:simple_key'.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The key of the custom attribute definition to update."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "key"
      },
      {
        "name": "custom_attribute_definition_key",
        "required": false,
        "description": "The key of the custom attribute definition, either as a simple key or in the format 'application_id:simple key'. Unique per application, seller, and resource type.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The identifier\nof the custom attribute definition and its corresponding custom attributes. This value\ncan be a simple key, which is the key that is provided when the custom attribute definition\nis created, or a qualified key, if the requesting\napplication is not the definition owner. The qualified key consists of the application ID\nof the custom attribute definition owner\nfollowed by the simple key that was provided when the definition was created. It has the\nformat application_id:simple key.\n\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\nunderscores (_), and hyphens (-).\n\nThis field can not be changed\nafter the custom attribute definition is created. This field is required when creating\na definition and must be unique per application, seller, and resource type."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.key"
      },
      {
        "name": "custom_attribute_schema",
        "required": false,
        "description": "A JSON object defining the schema for the custom attribute, determining its data type. Required for creating a definition.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The JSON schema for the custom attribute definition, which determines the data type of the corresponding custom attributes. For more information,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview). This field is required when creating a definition."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.schema"
      },
      {
        "name": "custom_attribute_definition_name",
        "required": false,
        "description": "The unique name for the booking's custom attribute definition, required if visibility is set to read-only or read-write.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The name of the custom attribute definition for API and seller-facing UI purposes. The name must\nbe unique within the seller and application pair. This field is required if the\n`visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.name"
      },
      {
        "name": "custom_attribute_description",
        "required": false,
        "description": "A seller-oriented description of the custom attribute, required if visibility is read-only or read-write.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Seller-oriented description of the custom attribute definition, including any constraints\nthat the seller should observe. May be displayed as a tooltip in Square UIs. This field is\nrequired if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.description"
      },
      {
        "name": "visibility_level",
        "required": false,
        "description": "Specifies permission level for viewing the custom attribute definition. Options: VISIBILITY_HIDDEN, VISIBILITY_READ_ONLY, VISIBILITY_READ_WRITE_VALUES.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": [
            "VISIBILITY_HIDDEN",
            "VISIBILITY_READ_ONLY",
            "VISIBILITY_READ_WRITE_VALUES"
          ],
          "properties": null,
          "inner_properties": null,
          "description": "The level of permission that a seller or other applications requires to\nview this custom attribute definition.\nThe `Visibility` field controls who can read and write the custom attribute values\nand custom attribute definition."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.visibility"
      },
      {
        "name": "current_version_of_custom_attribute_definition",
        "required": false,
        "description": "Specify the current version of the custom attribute definition to enable optimistic concurrency. Must match the latest version; stale writes are rejected.",
        "value_schema": {
          "val_type": "integer",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Read only. The current version of the custom attribute definition.\nThe value is incremented each time the custom attribute definition is updated.\nWhen updating a custom attribute definition, you can provide this field\nand specify the current version of the custom attribute definition to enable\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\n\nOn writes, this field must be set to the latest version. Stale writes are rejected.\n\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview)."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.version"
      },
      {
        "name": "updated_timestamp",
        "required": false,
        "description": "The RFC 3339 formatted timestamp of the last update for the custom attribute definition.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The timestamp that indicates when the custom attribute definition was created or most recently updated,\nin RFC 3339 format."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.updated_at"
      },
      {
        "name": "created_at_timestamp",
        "required": false,
        "description": "The timestamp indicating when the custom attribute definition was created, in RFC 3339 format. This is used to track the original creation time of the attribute definition.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The timestamp that indicates when the custom attribute definition was created, in RFC 3339 format."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "custom_attribute_definition.created_at"
      },
      {
        "name": "idempotency_token",
        "required": false,
        "description": "A unique string identifier for ensuring the request is idempotent. Refer to Square's Idempotency guidelines for details.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A unique identifier for this request, used to ensure idempotency. For more information,\nsee [Idempotency](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency)."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "idempotency_key"
      }
    ]
  },
  "output": {
    "description": "Response from the API endpoint 'UpdateBookingCustomAttributeDefinition'.",
    "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-squareup",
      "provider_type": "oauth2",
      "id": null,
      "oauth2": {
        "scopes": [
          "APPOINTMENTS_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 squareup API."
  },
  "http_endpoint": {
    "metadata": {
      "object_type": "http_endpoint",
      "version": "1.2.0",
      "description": ""
    },
    "url": "https://connect.squareup.com/v2/bookings/custom-attribute-definitions/{key}",
    "http_method": "PUT",
    "headers": {},
    "parameters": [
      {
        "name": "key",
        "tool_parameter_name": "custom_attribute_key",
        "description": "The key of the custom attribute definition to update.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The key of the custom attribute definition to update."
        },
        "accepted_as": "path",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.key",
        "tool_parameter_name": "custom_attribute_definition_key",
        "description": "The identifier\nof the custom attribute definition and its corresponding custom attributes. This value\ncan be a simple key, which is the key that is provided when the custom attribute definition\nis created, or a qualified key, if the requesting\napplication is not the definition owner. The qualified key consists of the application ID\nof the custom attribute definition owner\nfollowed by the simple key that was provided when the definition was created. It has the\nformat application_id:simple key.\n\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\nunderscores (_), and hyphens (-).\n\nThis field can not be changed\nafter the custom attribute definition is created. This field is required when creating\na definition and must be unique per application, seller, and resource type.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The identifier\nof the custom attribute definition and its corresponding custom attributes. This value\ncan be a simple key, which is the key that is provided when the custom attribute definition\nis created, or a qualified key, if the requesting\napplication is not the definition owner. The qualified key consists of the application ID\nof the custom attribute definition owner\nfollowed by the simple key that was provided when the definition was created. It has the\nformat application_id:simple key.\n\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\nunderscores (_), and hyphens (-).\n\nThis field can not be changed\nafter the custom attribute definition is created. This field is required when creating\na definition and must be unique per application, seller, and resource type."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.schema",
        "tool_parameter_name": "custom_attribute_schema",
        "description": "The JSON schema for the custom attribute definition, which determines the data type of the corresponding custom attributes. For more information,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview). This field is required when creating a definition.",
        "value_schema": {
          "val_type": "json",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The JSON schema for the custom attribute definition, which determines the data type of the corresponding custom attributes. For more information,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview). This field is required when creating a definition."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.name",
        "tool_parameter_name": "custom_attribute_definition_name",
        "description": "The name of the custom attribute definition for API and seller-facing UI purposes. The name must\nbe unique within the seller and application pair. This field is required if the\n`visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The name of the custom attribute definition for API and seller-facing UI purposes. The name must\nbe unique within the seller and application pair. This field is required if the\n`visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.description",
        "tool_parameter_name": "custom_attribute_description",
        "description": "Seller-oriented description of the custom attribute definition, including any constraints\nthat the seller should observe. May be displayed as a tooltip in Square UIs. This field is\nrequired if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Seller-oriented description of the custom attribute definition, including any constraints\nthat the seller should observe. May be displayed as a tooltip in Square UIs. This field is\nrequired if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.visibility",
        "tool_parameter_name": "visibility_level",
        "description": "The level of permission that a seller or other applications requires to\nview this custom attribute definition.\nThe `Visibility` field controls who can read and write the custom attribute values\nand custom attribute definition.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": [
            "VISIBILITY_HIDDEN",
            "VISIBILITY_READ_ONLY",
            "VISIBILITY_READ_WRITE_VALUES"
          ],
          "properties": null,
          "inner_properties": null,
          "description": "The level of permission that a seller or other applications requires to\nview this custom attribute definition.\nThe `Visibility` field controls who can read and write the custom attribute values\nand custom attribute definition."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.version",
        "tool_parameter_name": "current_version_of_custom_attribute_definition",
        "description": "Read only. The current version of the custom attribute definition.\nThe value is incremented each time the custom attribute definition is updated.\nWhen updating a custom attribute definition, you can provide this field\nand specify the current version of the custom attribute definition to enable\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\n\nOn writes, this field must be set to the latest version. Stale writes are rejected.\n\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview).",
        "value_schema": {
          "val_type": "integer",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "Read only. The current version of the custom attribute definition.\nThe value is incremented each time the custom attribute definition is updated.\nWhen updating a custom attribute definition, you can provide this field\nand specify the current version of the custom attribute definition to enable\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\n\nOn writes, this field must be set to the latest version. Stale writes are rejected.\n\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview)."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.updated_at",
        "tool_parameter_name": "updated_timestamp",
        "description": "The timestamp that indicates when the custom attribute definition was created or most recently updated,\nin RFC 3339 format.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The timestamp that indicates when the custom attribute definition was created or most recently updated,\nin RFC 3339 format."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "custom_attribute_definition.created_at",
        "tool_parameter_name": "created_at_timestamp",
        "description": "The timestamp that indicates when the custom attribute definition was created, in RFC 3339 format.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The timestamp that indicates when the custom attribute definition was created, in RFC 3339 format."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "idempotency_key",
        "tool_parameter_name": "idempotency_token",
        "description": "A unique identifier for this request, used to ensure idempotency. For more information,\nsee [Idempotency](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency).",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A unique identifier for this request, used to ensure idempotency. For more information,\nsee [Idempotency](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency)."
        },
        "accepted_as": "body",
        "required": false,
        "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  \"required\": true,\n  \"description\": \"An object containing the fields to POST for the request.\\n\\nSee the corresponding object definition for field details.\",\n  \"content\": {\n    \"application/json\": {\n      \"schema\": {\n        \"type\": \"object\",\n        \"description\": \"Represents an [UpdateBookingCustomAttributeDefinition](api-endpoint:BookingCustomAttributes-UpdateBookingCustomAttributeDefinition) request.\",\n        \"x-release-status\": \"PUBLIC\",\n        \"required\": [\n          \"custom_attribute_definition\"\n        ],\n        \"properties\": {\n          \"custom_attribute_definition\": {\n            \"type\": \"object\",\n            \"description\": \"Represents a definition for custom attribute values. A custom attribute definition\\nspecifies the key, visibility, schema, and other properties for a custom attribute.\",\n            \"x-release-status\": \"PUBLIC\",\n            \"properties\": {\n              \"key\": {\n                \"type\": \"string\",\n                \"description\": \"The identifier\\nof the custom attribute definition and its corresponding custom attributes. This value\\ncan be a simple key, which is the key that is provided when the custom attribute definition\\nis created, or a qualified key, if the requesting\\napplication is not the definition owner. The qualified key consists of the application ID\\nof the custom attribute definition owner\\nfollowed by the simple key that was provided when the definition was created. It has the\\nformat application_id:simple key.\\n\\nThe value for a simple key can contain up to 60 alphanumeric characters, periods (.),\\nunderscores (_), and hyphens (-).\\n\\nThis field can not be changed\\nafter the custom attribute definition is created. This field is required when creating\\na definition and must be unique per application, seller, and resource type.\",\n                \"minLength\": 1,\n                \"pattern\": \"^([a-zA-Z0-9\\\\._-]+:)?[a-zA-Z0-9\\\\._-]{1,60}$\",\n                \"nullable\": true\n              },\n              \"schema\": {\n                \"type\": \"object\",\n                \"description\": \"The JSON schema for the custom attribute definition, which determines the data type of the corresponding custom attributes. For more information,\\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview). This field is required when creating a definition.\",\n                \"nullable\": true\n              },\n              \"name\": {\n                \"type\": \"string\",\n                \"description\": \"The name of the custom attribute definition for API and seller-facing UI purposes. The name must\\nbe unique within the seller and application pair. This field is required if the\\n`visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.\",\n                \"maxLength\": 255,\n                \"nullable\": true\n              },\n              \"description\": {\n                \"type\": \"string\",\n                \"description\": \"Seller-oriented description of the custom attribute definition, including any constraints\\nthat the seller should observe. May be displayed as a tooltip in Square UIs. This field is\\nrequired if the `visibility` field is `VISIBILITY_READ_ONLY` or `VISIBILITY_READ_WRITE_VALUES`.\",\n                \"maxLength\": 255,\n                \"nullable\": true\n              },\n              \"visibility\": {\n                \"type\": \"string\",\n                \"enum\": [\n                  \"VISIBILITY_HIDDEN\",\n                  \"VISIBILITY_READ_ONLY\",\n                  \"VISIBILITY_READ_WRITE_VALUES\"\n                ],\n                \"x-enum-elements\": [\n                  {\n                    \"name\": \"VISIBILITY_HIDDEN\",\n                    \"description\": \"The custom attribute definition and values are hidden from the seller (except on export\\nof all seller data) and other developers.\"\n                  },\n                  {\n                    \"name\": \"VISIBILITY_READ_ONLY\",\n                    \"description\": \"The seller and other developers can read the custom attribute definition and values\\non resources.\"\n                  },\n                  {\n                    \"name\": \"VISIBILITY_READ_WRITE_VALUES\",\n                    \"description\": \"The seller and other developers can read the custom attribute definition,\\nand can read and write values on resources. A custom attribute definition\\ncan only be edited or deleted by the application that created it.\"\n                  }\n                ],\n                \"description\": \"The level of permission that a seller or other applications requires to\\nview this custom attribute definition.\\nThe `Visibility` field controls who can read and write the custom attribute values\\nand custom attribute definition.\",\n                \"x-release-status\": \"PUBLIC\"\n              },\n              \"version\": {\n                \"type\": \"integer\",\n                \"description\": \"Read only. The current version of the custom attribute definition.\\nThe value is incremented each time the custom attribute definition is updated.\\nWhen updating a custom attribute definition, you can provide this field\\nand specify the current version of the custom attribute definition to enable\\n[optimistic concurrency](https://developer.squareup.com/docs/build-basics/common-api-patterns/optimistic-concurrency).\\n\\nOn writes, this field must be set to the latest version. Stale writes are rejected.\\n\\nThis field can also be used to enforce strong consistency for reads. For more information about strong consistency for reads,\\nsee [Custom Attributes Overview](https://developer.squareup.com/docs/devtools/customattributes/overview).\"\n              },\n              \"updated_at\": {\n                \"type\": \"string\",\n                \"description\": \"The timestamp that indicates when the custom attribute definition was created or most recently updated,\\nin RFC 3339 format.\",\n                \"readOnly\": true\n              },\n              \"created_at\": {\n                \"type\": \"string\",\n                \"description\": \"The timestamp that indicates when the custom attribute definition was created, in RFC 3339 format.\",\n                \"readOnly\": true\n              }\n            }\n          },\n          \"idempotency_key\": {\n            \"type\": \"string\",\n            \"description\": \"A unique identifier for this request, used to ensure idempotency. For more information,\\nsee [Idempotency](https://developer.squareup.com/docs/build-basics/common-api-patterns/idempotency).\",\n            \"maxLength\": 45,\n            \"nullable\": true\n          }\n        }\n      }\n    }\n  }\n}",
    "use_request_body_schema_mode": false,
    "validate_request_body_schema": false
  }
}
