{
  "service": "better_proposals",
  "displayName": "Better Proposals",
  "categories": [
    "Productivity",
    "Communication"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "better_proposals_api_key",
      "description": "Better Proposals API key sent with the Bptoken header. Find your key in Better Proposals after enabling API access: https://betterproposals.io/resources/api/."
    }
  ],
  "homepageUrl": "https://betterproposals.io",
  "actions": [
    {
      "id": "better_proposals.get_brand_settings",
      "service": "better_proposals",
      "name": "get_brand_settings",
      "description": "Get default Better Proposals brand settings such as brand name and tax defaults.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required to get brand settings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Default brand settings returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals brand settings response."
      }
    },
    {
      "id": "better_proposals.get_company",
      "service": "better_proposals",
      "name": "get_company",
      "description": "Get details for a single Better Proposals company by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Better Proposals resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Better Proposals resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Company details returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals company detail response."
      }
    },
    {
      "id": "better_proposals.get_currency",
      "service": "better_proposals",
      "name": "get_currency",
      "description": "Get details for a single Better Proposals currency by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Better Proposals resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Better Proposals resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Currency details returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals currency detail response."
      }
    },
    {
      "id": "better_proposals.get_proposal",
      "service": "better_proposals",
      "name": "get_proposal",
      "description": "Get details for a single Better Proposals proposal by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Better Proposals resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Better Proposals resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Proposal details returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals proposal detail response."
      }
    },
    {
      "id": "better_proposals.get_proposal_count",
      "service": "better_proposals",
      "name": "get_proposal_count",
      "description": "Get the total Better Proposals proposal count for the connected account.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required to get proposal count."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The proposal count returned by Better Proposals."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "count",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals proposal count response."
      }
    },
    {
      "id": "better_proposals.get_quote",
      "service": "better_proposals",
      "name": "get_quote",
      "description": "Get details for a single Better Proposals quote by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Better Proposals resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Better Proposals resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Quote details returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals quote detail response."
      }
    },
    {
      "id": "better_proposals.get_settings",
      "service": "better_proposals",
      "name": "get_settings",
      "description": "Get current Better Proposals account settings such as tax and timezone defaults.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required to get account settings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Account settings returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals account settings response."
      }
    },
    {
      "id": "better_proposals.get_template",
      "service": "better_proposals",
      "name": "get_template",
      "description": "Get details for a single Better Proposals template by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The Better Proposals resource identifier."
          }
        },
        "additionalProperties": false,
        "required": [
          "id"
        ],
        "description": "Input parameters for retrieving a Better Proposals resource by ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "resource": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Template details returned by the Better Proposals API."
              },
              {
                "type": "null"
              }
            ]
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "resource",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals template detail response."
      }
    },
    {
      "id": "better_proposals.list_companies",
      "service": "better_proposals",
      "name": "list_companies",
      "description": "List Better Proposals companies with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Company records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals company list response."
      }
    },
    {
      "id": "better_proposals.list_currencies",
      "service": "better_proposals",
      "name": "list_currencies",
      "description": "List Better Proposals currencies with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Currency records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals currency list response."
      }
    },
    {
      "id": "better_proposals.list_document_types",
      "service": "better_proposals",
      "name": "list_document_types",
      "description": "List Better Proposals document types with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Document type records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals document type list response."
      }
    },
    {
      "id": "better_proposals.list_merge_tags",
      "service": "better_proposals",
      "name": "list_merge_tags",
      "description": "List Better Proposals custom merge tags with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Merge tag records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals merge tag list response."
      }
    },
    {
      "id": "better_proposals.list_new_proposals",
      "service": "better_proposals",
      "name": "list_new_proposals",
      "description": "List Better Proposals proposals that are currently in the new proposal lifecycle state.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "New proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals new proposal list response."
      }
    },
    {
      "id": "better_proposals.list_opened_proposals",
      "service": "better_proposals",
      "name": "list_opened_proposals",
      "description": "List Better Proposals proposals that have been opened by recipients.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Opened proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals opened proposal list response."
      }
    },
    {
      "id": "better_proposals.list_paid_proposals",
      "service": "better_proposals",
      "name": "list_paid_proposals",
      "description": "List Better Proposals proposals that have been paid.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Paid proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals paid proposal list response."
      }
    },
    {
      "id": "better_proposals.list_proposals",
      "service": "better_proposals",
      "name": "list_proposals",
      "description": "List Better Proposals proposals with optional pagination and document type filtering.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals proposal list response."
      }
    },
    {
      "id": "better_proposals.list_quotes",
      "service": "better_proposals",
      "name": "list_quotes",
      "description": "List Better Proposals quotes with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Quote records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals quote list response."
      }
    },
    {
      "id": "better_proposals.list_sent_proposals",
      "service": "better_proposals",
      "name": "list_sent_proposals",
      "description": "List Better Proposals proposals that have been sent to recipients.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Sent proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals sent proposal list response."
      }
    },
    {
      "id": "better_proposals.list_signed_proposals",
      "service": "better_proposals",
      "name": "list_signed_proposals",
      "description": "List Better Proposals proposals that have been signed by recipients.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "document_type_id": {
            "type": "string",
            "minLength": 1,
            "description": "Filter proposals by Better Proposals document type ID."
          }
        },
        "additionalProperties": false,
        "description": "Pagination and filter parameters for listing Better Proposals proposals."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Signed proposal records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals signed proposal list response."
      }
    },
    {
      "id": "better_proposals.list_templates",
      "service": "better_proposals",
      "name": "list_templates",
      "description": "List Better Proposals templates with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to retrieve."
          },
          "per_page": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for Better Proposals list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Raw object returned by the Better Proposals API."
            },
            "description": "Template records returned by the Better Proposals API."
          },
          "status": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals response status."
              },
              {
                "type": "null"
              }
            ]
          },
          "message": {
            "anyOf": [
              {
                "type": "string",
                "description": "The upstream Better Proposals message, when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Raw object returned by the Better Proposals API."
          }
        },
        "additionalProperties": false,
        "required": [
          "items",
          "status",
          "message",
          "raw"
        ],
        "description": "The normalized Better Proposals template list response."
      }
    }
  ]
}
