{
  "openapi": "3.1.0",
  "info": {
    "title": "Givebutter API Documentation",
    "version": "1.0.0",
    "description": "Givebutter Public API - Access and manage your campaigns, contacts, transactions, and more."
  },
  "servers": [
    {
      "url": "https://api.givebutter.com/v1"
    }
  ],
  "security": [
    {
      "http": []
    }
  ],
  "paths": {
    "/account": {
      "get": {
        "operationId": "account.self",
        "tags": [
          "Account"
        ],
        "responses": {
          "200": {
            "description": "`AccountResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AccountResource"
                }
              }
            }
          }
        }
      }
    },
    "/contacts/{contact}/tags": {
      "post": {
        "operationId": "v1.addContactTags",
        "tags": [
          "AddContactTags"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "tags": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 64
                    },
                    "minItems": 1
                  }
                },
                "required": [
                  "tags"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "v1.removeContactTags",
        "tags": [
          "RemoveContactTags"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "tags[]",
            "in": "query",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "maxLength": 64
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/households/{household}/contacts/associate": {
      "post": {
        "operationId": "v1.addHouseholdContacts",
        "tags": [
          "AddHouseholdContacts"
        ],
        "parameters": [
          {
            "name": "household",
            "in": "path",
            "required": true,
            "description": "The household ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdContactAssociationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`App.Http.Resources.API.HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App.Http.Resources.API.HouseholdResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/campaigns": {
      "get": {
        "operationId": "campaigns.index",
        "description": "Takes a `scope` input to change the scope of which contacts to retrieve.",
        "summary": "Retrieve a list of campaigns",
        "tags": [
          "Campaign"
        ],
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `CampaignResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CampaignResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        },
                        "unfiltered_total": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total",
                        "unfiltered_total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "campaigns.store",
        "summary": "Create a new campaign",
        "tags": [
          "Campaign"
        ],
        "responses": {
          "200": {
            "description": "`CampaignResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResource"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/campaigns/{campaign}": {
      "get": {
        "operationId": "campaigns.show",
        "tags": [
          "Campaign"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`CampaignResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResource"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "campaigns.update",
        "summary": "Update an existing campaign",
        "tags": [
          "Campaign"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`CampaignResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "campaigns.destroy",
        "summary": "Delete an existing campaign",
        "tags": [
          "Campaign"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "409": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "properties": {
                        "message": {
                          "type": "string",
                          "enum": [
                            "This campaign has already raised money, and can not be deleted."
                          ]
                        }
                      },
                      "required": [
                        "message"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaigns/{campaign}/discount-codes": {
      "get": {
        "operationId": "campaigns.discount-codes.index",
        "tags": [
          "CampaignDiscountCode"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `CampaignDiscountCodeResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CampaignDiscountCodeResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "post": {
        "operationId": "campaigns.discount-codes.store",
        "tags": [
          "CampaignDiscountCode"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCampaignDiscountCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`CampaignDiscountCodeResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignDiscountCodeResource"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/campaigns/{campaign}/discount-codes/{discountCode}": {
      "get": {
        "operationId": "campaigns.discount-codes.show",
        "tags": [
          "CampaignDiscountCode"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "discountCode",
            "in": "path",
            "required": true,
            "description": "The discount code ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`CampaignDiscountCodeResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignDiscountCodeResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "campaigns.discount-codes.update",
        "tags": [
          "CampaignDiscountCode"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "discountCode",
            "in": "path",
            "required": true,
            "description": "The discount code ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCampaignDiscountCodeRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`CampaignDiscountCodeResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignDiscountCodeResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "campaigns.discount-codes.destroy",
        "tags": [
          "CampaignDiscountCode"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "discountCode",
            "in": "path",
            "required": true,
            "description": "The discount code ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "description": "An error",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Error overview.",
                      "example": "Cannot delete a discount code that has been used. Please update its status to inactive."
                    }
                  },
                  "required": [
                    "message"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/campaign-items/tickets": {
      "post": {
        "operationId": "campaign-items.tickets.store",
        "tags": [
          "CampaignItemTicket"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StoreCampaignItemTicketRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`CampaignItemTicketResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignItemTicketResource"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/campaigns/{campaign}/members": {
      "get": {
        "operationId": "campaigns.members.index",
        "summary": "Retrieve a list of campaign members",
        "tags": [
          "CampaignMember"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `CampaignMemberResource`",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "data": {
                          "type": "array",
                          "items": {
                            "$ref": "#/components/schemas/CampaignMemberResource"
                          }
                        },
                        "links": {
                          "type": "object",
                          "properties": {
                            "first": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "last": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "prev": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "next": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "first",
                            "last",
                            "prev",
                            "next"
                          ]
                        },
                        "meta": {
                          "type": "object",
                          "properties": {
                            "current_page": {
                              "type": "integer",
                              "minimum": 1
                            },
                            "from": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "minimum": 1
                            },
                            "last_page": {
                              "type": "integer",
                              "minimum": 1
                            },
                            "links": {
                              "type": "array",
                              "description": "Generated paginator links.",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "url": {
                                    "type": [
                                      "string",
                                      "null"
                                    ]
                                  },
                                  "label": {
                                    "type": "string"
                                  },
                                  "active": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "url",
                                  "label",
                                  "active"
                                ]
                              }
                            },
                            "path": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Base path for paginator generated URLs."
                            },
                            "per_page": {
                              "type": "integer",
                              "description": "Number of items shown per page.",
                              "minimum": 0
                            },
                            "to": {
                              "type": [
                                "integer",
                                "null"
                              ],
                              "description": "Number of the last item in the slice.",
                              "minimum": 1
                            },
                            "total": {
                              "type": "integer",
                              "description": "Total number of items being paginated.",
                              "minimum": 0
                            }
                          },
                          "required": [
                            "current_page",
                            "from",
                            "last_page",
                            "links",
                            "path",
                            "per_page",
                            "to",
                            "total"
                          ]
                        }
                      },
                      "required": [
                        "data",
                        "links",
                        "meta"
                      ]
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/campaigns/{campaign}/members/{member}": {
      "get": {
        "operationId": "campaigns.members.show",
        "summary": "Retrieve a campaign member",
        "tags": [
          "CampaignMember"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "member",
            "in": "path",
            "required": true,
            "description": "The member ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`CampaignMemberResource`",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/CampaignMemberResource"
                    },
                    {
                      "type": "object"
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "delete": {
        "operationId": "campaigns.members.destroy",
        "summary": "Delete an existing campaign member",
        "tags": [
          "CampaignMember"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "member",
            "in": "path",
            "required": true,
            "description": "The member ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/campaigns/{campaign}/teams": {
      "get": {
        "operationId": "campaigns.teams.index",
        "summary": "Retrieve a list of campaign teams",
        "tags": [
          "CampaignTeam"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `CampaignTeamResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/CampaignTeamResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/campaigns/{campaign}/teams/{team}": {
      "get": {
        "operationId": "campaigns.teams.show",
        "summary": "Retrieve a campaign team",
        "tags": [
          "CampaignTeam"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "team",
            "in": "path",
            "required": true,
            "description": "The team ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`CampaignTeamResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CampaignTeamResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "delete": {
        "operationId": "campaigns.teams.destroy",
        "summary": "Delete an existing campaign team",
        "tags": [
          "CampaignTeam"
        ],
        "parameters": [
          {
            "name": "campaign",
            "in": "path",
            "required": true,
            "description": "The campaign ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "team",
            "in": "path",
            "required": true,
            "description": "The team ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/contacts": {
      "get": {
        "operationId": "contacts.index",
        "summary": "Return a list of contacts",
        "tags": [
          "Contact"
        ],
        "parameters": [
          {
            "name": "type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ContactType"
            }
          },
          {
            "name": "createdAfter",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "createdBefore",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "updatedAfter",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "updatedBefore",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            }
          },
          {
            "name": "totalContributionsMin",
            "in": "query",
            "schema": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          {
            "name": "totalContributionsMax",
            "in": "query",
            "schema": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          {
            "name": "recurringContributionsMin",
            "in": "query",
            "schema": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          {
            "name": "recurringContributionsMax",
            "in": "query",
            "schema": {
              "type": [
                "number",
                "null"
              ]
            }
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "name_or_company",
                "primary_email",
                "point_of_contact",
                "created_at",
                "total_contributions",
                "recurring_contributions"
              ]
            }
          },
          {
            "name": "sortByDesc",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "name_or_company",
                "primary_email",
                "point_of_contact",
                "created_at",
                "total_contributions",
                "recurring_contributions"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ContactResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "post": {
        "operationId": "contacts.store",
        "description": "⚠️ Cannot generate request documentation: array_merge(): Argument #2 must be of type array, null given",
        "summary": "Create a contact and return it",
        "tags": [
          "Contact"
        ],
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/contacts/{contact}": {
      "get": {
        "operationId": "contacts.show",
        "summary": "Return a contact",
        "tags": [
          "Contact"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "contacts.update",
        "summary": "Update a contact and return it",
        "tags": [
          "Contact"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "dob": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "contacts.destroy",
        "summary": "Archive a contact",
        "tags": [
          "Contact"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/contacts/{contact}/activities": {
      "get": {
        "operationId": "contacts.activities.index",
        "tags": [
          "ContactActivity"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/ContactActivityTypeEnum"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `ContactActivityResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ContactActivityResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "post": {
        "operationId": "contacts.activities.store",
        "tags": [
          "ContactActivity"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactActivityResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactActivityResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/contacts/{contact}/activities/{activity}": {
      "get": {
        "operationId": "contacts.activities.show",
        "tags": [
          "ContactActivity"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "activity",
            "in": "path",
            "required": true,
            "description": "The activity ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactActivityResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactActivityResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "contacts.activities.update",
        "tags": [
          "ContactActivity"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "activity",
            "in": "path",
            "required": true,
            "description": "The activity ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactActivityResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactActivityResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "contacts.activities.destroy",
        "tags": [
          "ContactActivity"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "activity",
            "in": "path",
            "required": true,
            "description": "The activity ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content"
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/funds": {
      "get": {
        "operationId": "funds.index",
        "summary": "Retrieve a list of fund resources",
        "tags": [
          "Fund"
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `FundResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/FundResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "funds.store",
        "summary": "Create a new fund resource",
        "tags": [
          "Fund"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "code": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`FundResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResource"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/funds/{fund}": {
      "get": {
        "operationId": "funds.show",
        "summary": "Retrieve a fund resource",
        "tags": [
          "Fund"
        ],
        "parameters": [
          {
            "name": "fund",
            "in": "path",
            "required": true,
            "description": "The fund fid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`FundResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "funds.update",
        "summary": "Update the fund resource",
        "tags": [
          "Fund"
        ],
        "parameters": [
          {
            "name": "fund",
            "in": "path",
            "required": true,
            "description": "The fund fid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "maxLength": 255
                  },
                  "code": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`FundResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "funds.destroy",
        "summary": "Delete the fund resource",
        "tags": [
          "Fund"
        ],
        "parameters": [
          {
            "name": "fund",
            "in": "path",
            "required": true,
            "description": "The fund fid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/households": {
      "get": {
        "operationId": "households.index",
        "summary": "Retrieve a list of households",
        "tags": [
          "Household"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "string",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Array of `HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/HouseholdResource"
                  }
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          }
        }
      },
      "post": {
        "operationId": "households.store",
        "summary": "Create a new household",
        "tags": [
          "Household"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdStoreRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`App.Http.Resources.API.HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App.Http.Resources.API.HouseholdResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/households/{household}": {
      "get": {
        "operationId": "households.show",
        "summary": "Retrieve a household",
        "tags": [
          "Household"
        ],
        "parameters": [
          {
            "name": "household",
            "in": "path",
            "required": true,
            "description": "The household ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`App.Http.Resources.API.HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App.Http.Resources.API.HouseholdResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "households.update",
        "summary": "Update a household",
        "tags": [
          "Household"
        ],
        "parameters": [
          {
            "name": "household",
            "in": "path",
            "required": true,
            "description": "The household ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`App.Http.Resources.API.HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App.Http.Resources.API.HouseholdResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "households.destroy",
        "summary": "Delete a household",
        "tags": [
          "Household"
        ],
        "parameters": [
          {
            "name": "household",
            "in": "path",
            "required": true,
            "description": "The household ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No content"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/messages": {
      "get": {
        "operationId": "messages.index",
        "summary": "Display a listing of messages belonging to the given account",
        "tags": [
          "Message"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "string",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `MessageResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/MessageResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/messages/{message}": {
      "get": {
        "operationId": "messages.show",
        "summary": "Display the given message resource",
        "tags": [
          "Message"
        ],
        "parameters": [
          {
            "name": "message",
            "in": "path",
            "required": true,
            "description": "The message ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`MessageResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageResource"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/payouts": {
      "get": {
        "operationId": "payouts.index",
        "summary": "Retrieve a list of payouts",
        "tags": [
          "Payout"
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `PayoutResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PayoutResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/payouts/{payout}": {
      "get": {
        "operationId": "payouts.show",
        "summary": "Retrieve a payout",
        "tags": [
          "Payout"
        ],
        "parameters": [
          {
            "name": "payout",
            "in": "path",
            "required": true,
            "description": "The payout number",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 40
            }
          },
          {
            "name": "address_1",
            "in": "query",
            "required": true,
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 64
            }
          },
          {
            "name": "address_2",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 64
            }
          },
          {
            "name": "city",
            "in": "query",
            "required": true,
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 200
            }
          },
          {
            "name": "state",
            "in": "query",
            "required": true,
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 2,
              "maxLength": 2
            }
          },
          {
            "name": "zipcode",
            "in": "query",
            "required": true,
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 5,
              "maxLength": 5
            }
          },
          {
            "name": "country",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "minLength": 3,
              "maxLength": 3
            }
          },
          {
            "name": "memo",
            "in": "query",
            "schema": {
              "type": [
                "string",
                "null"
              ],
              "maxLength": 40
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`PayoutResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/plans": {
      "get": {
        "operationId": "plans.index",
        "summary": "Retrieve a list of recurring plans",
        "tags": [
          "RecurringPlan"
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `RecurringPlanResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/RecurringPlanResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/plans/{plan}": {
      "get": {
        "operationId": "plans.show",
        "summary": "Retrieve a recurring plan",
        "tags": [
          "RecurringPlan"
        ],
        "parameters": [
          {
            "name": "plan",
            "in": "path",
            "required": true,
            "description": "The plan uid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "name": "first_name",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          },
          {
            "name": "last_name",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 255
            }
          },
          {
            "name": "email",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`RecurringPlanResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecurringPlanResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/households/{household}/contacts/disassociate": {
      "post": {
        "operationId": "v1.removeHouseholdContacts",
        "tags": [
          "RemoveHouseholdContacts"
        ],
        "parameters": [
          {
            "name": "household",
            "in": "path",
            "required": true,
            "description": "The household ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HouseholdContactDisassociationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`App.Http.Resources.API.HouseholdResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App.Http.Resources.API.HouseholdResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/contacts/{contact}/restore": {
      "patch": {
        "operationId": "v1.restoreContact",
        "summary": "Restore (unarchive) a contact",
        "tags": [
          "RestoreContact"
        ],
        "parameters": [
          {
            "name": "contact",
            "in": "path",
            "required": true,
            "description": "The contact ID",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`ContactResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/tickets": {
      "get": {
        "operationId": "tickets.index",
        "summary": "Retrieve a list of tickets",
        "tags": [
          "Ticket"
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `TicketResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TicketResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/tickets/{ticket}": {
      "get": {
        "operationId": "tickets.show",
        "summary": "Retrieve a ticket",
        "tags": [
          "Ticket"
        ],
        "parameters": [
          {
            "name": "ticket",
            "in": "path",
            "required": true,
            "description": "The ticket uid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`TicketResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/transactions": {
      "get": {
        "operationId": "transactions.index",
        "summary": "Retrive a list of transactions",
        "tags": [
          "Transaction"
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `TransactionResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TransactionResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        },
                        "unfiltered_total": {
                          "type": "integer"
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total",
                        "unfiltered_total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "post": {
        "operationId": "transactions.store",
        "summary": "Create a transaction from an external source",
        "tags": [
          "Transaction"
        ],
        "responses": {
          "200": {
            "description": "`TransactionResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "422": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/transactions/{transaction}": {
      "get": {
        "operationId": "transactions.show",
        "summary": "Retrieve a transaction",
        "tags": [
          "Transaction"
        ],
        "parameters": [
          {
            "name": "transaction",
            "in": "path",
            "required": true,
            "description": "The transaction tid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`TransactionResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "transactions.update",
        "summary": "Update a transaction",
        "tags": [
          "Transaction"
        ],
        "parameters": [
          {
            "name": "transaction",
            "in": "path",
            "required": true,
            "description": "The transaction tid",
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateTransactionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`TransactionResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/webhooks": {
      "get": {
        "operationId": "webhooks.index",
        "summary": "Retrieve a list of webhooks",
        "tags": [
          "Webhook"
        ],
        "responses": {
          "200": {
            "description": "Array of `WebhookResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/WebhookResource"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "webhooks.store",
        "summary": "Create a new webhook",
        "tags": [
          "Webhook"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "event": {
                    "type": "string",
                    "enum": [
                      "campaign.created",
                      "campaign.updated",
                      "ticket.created",
                      "transaction.succeeded",
                      "contact.created",
                      "plan.canceled",
                      "plan.created",
                      "plan.paused",
                      "plan.resumed",
                      "plan.updated"
                    ]
                  },
                  "events": {
                    "type": "array",
                    "enum": [
                      "campaign.created",
                      "campaign.updated",
                      "ticket.created",
                      "transaction.succeeded",
                      "contact.created",
                      "plan.canceled",
                      "plan.created",
                      "plan.paused",
                      "plan.resumed",
                      "plan.updated"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`WebhookResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResource"
                }
              }
            }
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      }
    },
    "/webhooks/{webhook}": {
      "get": {
        "operationId": "webhooks.show",
        "summary": "Retrieve a webhook",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "webhook",
            "in": "path",
            "required": true,
            "description": "The webhook ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "`WebhookResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResource"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      },
      "put": {
        "operationId": "webhooks.update",
        "summary": "Update a webhook",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "webhook",
            "in": "path",
            "required": true,
            "description": "The webhook ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "events": {
                    "type": "array",
                    "enum": [
                      "campaign.created",
                      "campaign.updated",
                      "ticket.created",
                      "transaction.succeeded",
                      "contact.created",
                      "plan.canceled",
                      "plan.created",
                      "plan.paused",
                      "plan.resumed",
                      "plan.updated"
                    ],
                    "items": {
                      "type": "string"
                    }
                  },
                  "name": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "maxLength": 255
                  },
                  "enabled": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "url",
                  "events",
                  "enabled"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "`WebhookResource`",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResource"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          },
          "422": {
            "$ref": "#/components/responses/ValidationException"
          }
        }
      },
      "delete": {
        "operationId": "webhooks.destroy",
        "summary": "Delete a webhook",
        "tags": [
          "Webhook"
        ],
        "parameters": [
          {
            "name": "webhook",
            "in": "path",
            "required": true,
            "description": "The webhook ID",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": ""
          },
          "403": {
            "$ref": "#/components/responses/AuthorizationException"
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    },
    "/webhooks/{webhook}/activities": {
      "get": {
        "operationId": "webhooks.activities.index",
        "summary": "Return a list of webhook activities",
        "tags": [
          "WebhookActivity"
        ],
        "parameters": [
          {
            "name": "webhook",
            "in": "path",
            "required": true,
            "description": "The webhook ID",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "perPage",
            "in": "query",
            "schema": {
              "type": "string",
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Paginated set of `WebhookActivityResource`",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/WebhookActivityResource"
                      }
                    },
                    "links": {
                      "type": "object",
                      "properties": {
                        "first": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "last": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "prev": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "next": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "first",
                        "last",
                        "prev",
                        "next"
                      ]
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "current_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "from": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 1
                        },
                        "last_page": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "links": {
                          "type": "array",
                          "description": "Generated paginator links.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "url": {
                                "type": [
                                  "string",
                                  "null"
                                ]
                              },
                              "label": {
                                "type": "string"
                              },
                              "active": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "url",
                              "label",
                              "active"
                            ]
                          }
                        },
                        "path": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Base path for paginator generated URLs."
                        },
                        "per_page": {
                          "type": "integer",
                          "description": "Number of items shown per page.",
                          "minimum": 0
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "description": "Number of the last item in the slice.",
                          "minimum": 1
                        },
                        "total": {
                          "type": "integer",
                          "description": "Total number of items being paginated.",
                          "minimum": 0
                        }
                      },
                      "required": [
                        "current_page",
                        "from",
                        "last_page",
                        "links",
                        "path",
                        "per_page",
                        "to",
                        "total"
                      ]
                    }
                  },
                  "required": [
                    "data",
                    "links",
                    "meta"
                  ]
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/ModelNotFoundException"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "http": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "sanctum"
      }
    },
    "schemas": {
      "AccountResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "short_name": {
            "type": "string"
          },
          "school": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "tagline": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "website": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "facebook": {
            "type": "string"
          },
          "linkedin": {
            "type": "string"
          },
          "twitter": {
            "type": "string"
          },
          "snapchat": {
            "type": "string"
          },
          "instagram": {
            "type": "string"
          },
          "tiktok": {
            "type": "string"
          },
          "youtube": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "former_stripe_account": {
            "type": "boolean"
          },
          "cover": {
            "type": "string"
          },
          "members": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "name",
          "logo",
          "display_name",
          "short_name",
          "tagline",
          "description",
          "website",
          "phone",
          "email",
          "facebook",
          "linkedin",
          "twitter",
          "snapchat",
          "instagram",
          "tiktok",
          "youtube",
          "slug",
          "url",
          "former_stripe_account",
          "cover",
          "members",
          "created_at",
          "updated_at"
        ],
        "title": "AccountResource"
      },
      "AddressResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "account_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "address_1": {
            "type": "string"
          },
          "address_2": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "zipcode": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "is_primary": {
            "type": "boolean"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "account_id",
          "name",
          "address_1",
          "address_2",
          "city",
          "state",
          "zipcode",
          "country",
          "type",
          "is_primary",
          "created_at",
          "updated_at"
        ],
        "title": "AddressResource"
      },
      "App.Http.Resources.API.AddressResource": {
        "type": "object",
        "properties": {
          "address_1": {
            "type": "string"
          },
          "address_2": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": "string"
          },
          "state": {
            "type": [
              "string",
              "null"
            ]
          },
          "zipcode": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "is_primary": {
            "type": "boolean"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "address_1",
          "address_2",
          "city",
          "state",
          "zipcode",
          "country",
          "type",
          "is_primary",
          "created_at",
          "updated_at"
        ],
        "title": "App.Http.Resources.API.AddressResource"
      },
      "App.Http.Resources.API.HouseholdResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "head_contact_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "type": "integer"
          },
          "envelope_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContactResource"
            }
          }
        },
        "required": [
          "id",
          "name",
          "head_contact_id",
          "account_id",
          "envelope_name",
          "note",
          "created_at",
          "updated_at"
        ],
        "title": "App.Http.Resources.API.HouseholdResource"
      },
      "AssociatedCompanyResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "twitter_url": {
            "type": "string"
          },
          "linkedin_url": {
            "type": "string"
          },
          "facebook_url": {
            "type": "string"
          },
          "tiktok_url": {
            "type": "string"
          },
          "website_url": {
            "type": "string"
          },
          "emails": {
            "type": "object",
            "additionalProperties": {}
          },
          "phones": {
            "type": "object",
            "additionalProperties": {}
          },
          "primary_email": {
            "type": "string"
          },
          "primary_phone": {
            "type": "string"
          },
          "is_email_subscribed": {
            "type": "string"
          },
          "is_phone_subscribed": {
            "type": "string"
          },
          "is_address_subscribed": {
            "type": "string"
          },
          "address_unsubscribed_at": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressResource"
            }
          },
          "primary_address": {
            "$ref": "#/components/schemas/AddressResource"
          },
          "archived_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "first_time_supporter_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "company_name",
          "title",
          "twitter_url",
          "linkedin_url",
          "facebook_url",
          "tiktok_url",
          "website_url",
          "emails",
          "phones",
          "primary_email",
          "primary_phone",
          "is_email_subscribed",
          "is_phone_subscribed",
          "is_address_subscribed",
          "address_unsubscribed_at",
          "note",
          "addresses",
          "primary_address",
          "archived_at",
          "created_at",
          "updated_at",
          "first_time_supporter_at"
        ],
        "title": "AssociatedCompanyResource"
      },
      "CampaignDiscountCodeResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "campaign_id": {
            "type": "integer"
          },
          "items": {
            "type": "array",
            "items": {}
          },
          "code": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "used": {
            "type": "integer"
          },
          "uses": {
            "type": [
              "integer",
              "null"
            ]
          },
          "active": {
            "type": "boolean"
          },
          "all_items": {
            "type": "boolean"
          },
          "total_discount": {
            "type": "string"
          },
          "starts_at": {
            "type": "string"
          },
          "expires_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "campaign_id",
          "code",
          "type",
          "amount",
          "used",
          "uses",
          "active",
          "total_discount",
          "starts_at",
          "expires_at",
          "created_at",
          "updated_at"
        ],
        "title": "CampaignDiscountCodeResource"
      },
      "CampaignItemTicketResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "campaign_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "total_quantity": {
            "type": "string"
          },
          "subtype": {
            "type": "string"
          },
          "active": {
            "type": "string"
          },
          "retail_price": {
            "type": "string"
          },
          "bundle_only": {
            "type": "string"
          },
          "hide_remaining": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "bundles": {
            "type": "string"
          },
          "custom_fields": {
            "type": "string"
          },
          "pictures": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "campaign_id",
          "name",
          "description",
          "price",
          "total_quantity",
          "subtype",
          "active",
          "retail_price",
          "bundle_only",
          "hide_remaining",
          "scope",
          "bundles",
          "custom_fields",
          "pictures"
        ],
        "title": "CampaignItemTicketResource"
      },
      "CampaignMemberResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "picture": {
            "type": "string"
          },
          "raised": {
            "type": "number"
          },
          "goal": {
            "type": "integer"
          },
          "donors": {
            "type": "integer"
          },
          "items": {
            "type": "integer"
          },
          "url": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "display_name",
          "email",
          "phone",
          "picture",
          "raised",
          "goal",
          "donors",
          "items",
          "url",
          "created_at",
          "updated_at"
        ],
        "title": "CampaignMemberResource"
      },
      "CampaignResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "account_id": {
            "type": "string"
          },
          "event_id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "subtitle": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "goal": {
            "type": [
              "integer",
              "null"
            ]
          },
          "raised": {
            "type": "number"
          },
          "donors": {
            "type": "integer"
          },
          "currency": {
            "type": "string"
          },
          "cover": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "end_at": {
            "type": "string"
          },
          "event": {
            "$ref": "#/components/schemas/EventResource"
          },
          "settings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CampaignSettingResource"
            }
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "account_id",
          "event_id",
          "type",
          "title",
          "subtitle",
          "description",
          "slug",
          "url",
          "goal",
          "raised",
          "donors",
          "currency",
          "cover",
          "status",
          "timezone",
          "end_at",
          "settings",
          "created_at",
          "updated_at"
        ],
        "title": "CampaignResource"
      },
      "CampaignSettingResource": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ],
        "title": "CampaignSettingResource"
      },
      "CampaignTeamResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "logo": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "raised": {
            "type": "number"
          },
          "goal": {
            "type": "number"
          },
          "supporters": {
            "type": "integer"
          },
          "members": {
            "type": "integer"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "logo",
          "slug",
          "url",
          "raised",
          "goal",
          "supporters",
          "members",
          "created_at",
          "updated_at"
        ],
        "title": "CampaignTeamResource"
      },
      "Contact": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "type": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ContactType"
              },
              {
                "type": "null"
              }
            ]
          },
          "first_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "middle_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "last_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "preferred_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "pronouns": {
            "type": [
              "string",
              "null"
            ]
          },
          "dob": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "company": {
            "type": [
              "string",
              "null"
            ]
          },
          "employer": {
            "type": [
              "string",
              "null"
            ]
          },
          "company_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "company_point_of_contact_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          },
          "twitter_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "linkedin_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "tiktok_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "facebook_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "primary_email_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "emails": {
            "type": [
              "array",
              "null"
            ],
            "items": {}
          },
          "primary_email": {
            "type": [
              "string",
              "null"
            ]
          },
          "email_deliverability_last_scanned_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "primary_phone_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "phones": {
            "type": [
              "array",
              "null"
            ],
            "items": {}
          },
          "primary_phone": {
            "type": [
              "string",
              "null"
            ]
          },
          "phone_deliverability_last_scanned_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "is_email_subscribed": {
            "type": "boolean"
          },
          "is_phone_subscribed": {
            "type": "boolean"
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "bio": {
            "type": [
              "string",
              "null"
            ]
          },
          "total_contributions": {
            "type": "integer"
          },
          "recurring_contributions": {
            "type": "integer"
          },
          "account_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "import_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "external_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "merged_into_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "last_scanned_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "suspected_duplicate_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "suspected_duplicate_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "archived_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "deleted_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "website_url": {
            "type": [
              "string",
              "null"
            ]
          },
          "prefix": {
            "type": [
              "string",
              "null"
            ]
          },
          "suffix": {
            "type": [
              "string",
              "null"
            ]
          },
          "first_time_supporter_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "new_first_time_supporter_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "first_donation_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "new_first_donation_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "new_first_donation_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "last_donation_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "household_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "is_address_subscribed": {
            "type": "boolean"
          },
          "address_unsubscribed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "created_by": {
            "type": [
              "integer",
              "null"
            ]
          },
          "last_enriched_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "type",
          "first_name",
          "middle_name",
          "last_name",
          "preferred_name",
          "gender",
          "pronouns",
          "dob",
          "company",
          "employer",
          "company_name",
          "company_point_of_contact_id",
          "title",
          "twitter_url",
          "linkedin_url",
          "tiktok_url",
          "facebook_url",
          "primary_email_id",
          "emails",
          "primary_email",
          "email_deliverability_last_scanned_at",
          "primary_phone_id",
          "phones",
          "primary_phone",
          "phone_deliverability_last_scanned_at",
          "is_email_subscribed",
          "is_phone_subscribed",
          "note",
          "bio",
          "total_contributions",
          "recurring_contributions",
          "account_id",
          "import_id",
          "external_id",
          "merged_into_id",
          "last_scanned_at",
          "suspected_duplicate_id",
          "suspected_duplicate_at",
          "archived_at",
          "created_at",
          "updated_at",
          "deleted_at",
          "website_url",
          "prefix",
          "suffix",
          "first_time_supporter_at",
          "new_first_time_supporter_at",
          "first_donation_id",
          "new_first_donation_id",
          "new_first_donation_at",
          "last_donation_id",
          "household_id",
          "is_address_subscribed",
          "address_unsubscribed_at",
          "created_by",
          "last_enriched_at"
        ],
        "title": "Contact"
      },
      "ContactActivityResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "source": {
            "type": "string"
          },
          "data": {
            "type": "string"
          },
          "resource": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TransactionResource"
              },
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  }
                },
                "required": [
                  "id"
                ]
              },
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RecurringPlanResource"
              },
              {
                "$ref": "#/components/schemas/TicketResource"
              },
              {
                "$ref": "#/components/schemas/MessageResource"
              }
            ]
          },
          "resource_type": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "enum": [
                  "transaction",
                  "plan",
                  "ticket",
                  "message",
                  "mail_piece",
                  "soft_credit",
                  "subscription_log"
                ]
              }
            ]
          },
          "created_by": {
            "$ref": "#/components/schemas/PublicUserResource"
          },
          "occurred_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "source",
          "data",
          "resource",
          "resource_type",
          "occurred_at",
          "created_at",
          "updated_at"
        ],
        "title": "ContactActivityResource"
      },
      "ContactActivityTypeEnum": {
        "type": "string",
        "enum": [
          "archived",
          "campaign.joined",
          "email",
          "email.subscribed",
          "email.unsubscribed",
          "letter",
          "meeting",
          "note",
          "phone_call",
          "recurring_plan.canceled",
          "recurring_plan.created",
          "recurring_plan.activated",
          "signup_form.submitted",
          "sms",
          "sms.subscribed",
          "sms.unsubscribed",
          "subscription_form.submitted",
          "completed_task",
          "ticket.issued",
          "transaction.recieved",
          "transaction.succeeded",
          "transaction.acknowledged",
          "transaction.unacknowledged",
          "unarchived",
          "volunteer_activity",
          "soft_credited"
        ],
        "title": "ContactActivityTypeEnum"
      },
      "ContactResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "suffix": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "pronouns": {
            "type": "string"
          },
          "dob": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "employer": {
            "type": "string"
          },
          "company_name": {
            "type": "string"
          },
          "point_of_contact": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PointOfContactResource"
              },
              {
                "type": "null"
              }
            ]
          },
          "associated_companies": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/AssociatedCompanyResource"
            }
          },
          "title": {
            "type": "string"
          },
          "website_url": {
            "type": "string"
          },
          "twitter_url": {
            "type": "string"
          },
          "linkedin_url": {
            "type": "string"
          },
          "facebook_url": {
            "type": "string"
          },
          "tiktok_url": {
            "type": "string"
          },
          "emails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailResource"
            }
          },
          "phones": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneResource"
            }
          },
          "primary_email": {
            "type": "string"
          },
          "primary_phone": {
            "type": "string"
          },
          "note": {
            "type": "string"
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/App.Http.Resources.API.AddressResource"
            }
          },
          "primary_address": {
            "$ref": "#/components/schemas/App.Http.Resources.API.AddressResource"
          },
          "stats": {
            "type": "object",
            "properties": {
              "total_contributions": {
                "type": "string"
              },
              "recurring_contributions": {
                "type": "string"
              }
            },
            "required": [
              "total_contributions",
              "recurring_contributions"
            ]
          },
          "tags": {
            "type": "string"
          },
          "custom_fields": {
            "type": "array",
            "items": {}
          },
          "external_ids": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalIdResource"
            }
          },
          "is_email_subscribed": {
            "type": "string"
          },
          "is_phone_subscribed": {
            "type": "string"
          },
          "is_address_subscribed": {
            "type": "string"
          },
          "email_opt_in": {
            "type": "string"
          },
          "sms_opt_in": {
            "type": "string"
          },
          "address_unsubscribed_at": {
            "type": "string"
          },
          "archived_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "preferred_name": {
            "type": "string"
          },
          "salutation_name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "external_id",
          "type",
          "prefix",
          "first_name",
          "middle_name",
          "last_name",
          "suffix",
          "gender",
          "pronouns",
          "dob",
          "company",
          "employer",
          "company_name",
          "title",
          "website_url",
          "twitter_url",
          "linkedin_url",
          "facebook_url",
          "tiktok_url",
          "emails",
          "phones",
          "primary_email",
          "primary_phone",
          "note",
          "addresses",
          "primary_address",
          "stats",
          "tags",
          "custom_fields",
          "external_ids",
          "is_email_subscribed",
          "is_phone_subscribed",
          "is_address_subscribed",
          "email_opt_in",
          "sms_opt_in",
          "address_unsubscribed_at",
          "archived_at",
          "created_at",
          "updated_at",
          "preferred_name",
          "salutation_name"
        ],
        "title": "ContactResource"
      },
      "ContactType": {
        "type": "string",
        "enum": [
          "individual",
          "company"
        ],
        "title": "ContactType"
      },
      "CustomFieldResponseResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "field_id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "field_id",
          "title",
          "description",
          "type",
          "value",
          "created_at",
          "updated_at"
        ],
        "title": "CustomFieldResponseResource"
      },
      "DedicationResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "recipient": {
            "type": "object",
            "properties": {
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "name",
              "email"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "name",
          "recipient",
          "created_at",
          "updated_at"
        ],
        "title": "DedicationResource"
      },
      "DedicationType": {
        "type": "string",
        "enum": [
          "in_memory_of",
          "in_honor_of"
        ],
        "title": "DedicationType"
      },
      "DiscountCodeType": {
        "type": "string",
        "enum": [
          "percentage",
          "fixed"
        ],
        "title": "DiscountCodeType"
      },
      "EmailResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "value"
        ],
        "title": "EmailResource"
      },
      "EventResource": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "location_name": {
            "type": "string"
          },
          "address_formatted": {
            "type": "string"
          },
          "google_place_id": {
            "type": "string"
          },
          "start_at": {
            "type": "string"
          },
          "end_at": {
            "type": "string"
          },
          "timezone": {
            "type": "string"
          },
          "details": {
            "type": "string"
          },
          "private": {
            "type": "string"
          },
          "tickets_required": {
            "type": "string"
          },
          "livestream": {
            "type": "string"
          },
          "livestream_start_at": {
            "type": "string"
          },
          "livestream_end_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "title",
          "type",
          "location_name",
          "address_formatted",
          "google_place_id",
          "start_at",
          "end_at",
          "timezone",
          "details",
          "private",
          "tickets_required",
          "livestream",
          "livestream_start_at",
          "livestream_end_at",
          "created_at",
          "updated_at"
        ],
        "title": "EventResource"
      },
      "ExternalIdResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "label": {
            "type": "string"
          },
          "external_id": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "external_id",
          "created_at",
          "updated_at"
        ],
        "title": "ExternalIdResource"
      },
      "FundResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "string",
              "null"
            ]
          },
          "code": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "raised": {
            "type": "number"
          },
          "supporters": {
            "type": "integer"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "code",
          "name",
          "raised",
          "supporters",
          "created_at",
          "updated_at"
        ],
        "title": "FundResource"
      },
      "GivingSpaceResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "message": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "amount",
          "message",
          "created_at",
          "updated_at"
        ],
        "title": "GivingSpaceResource"
      },
      "HouseholdContactAssociationRequest": {
        "type": "object",
        "properties": {
          "contact_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 50
          }
        },
        "required": [
          "contact_ids"
        ],
        "title": "HouseholdContactAssociationRequest"
      },
      "HouseholdContactDisassociationRequest": {
        "type": "object",
        "properties": {
          "contact_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 50
          }
        },
        "required": [
          "contact_ids"
        ],
        "title": "HouseholdContactDisassociationRequest"
      },
      "HouseholdResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "head_contact_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "account_id": {
            "type": "integer"
          },
          "envelope_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "contacts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          }
        },
        "required": [
          "id",
          "name",
          "head_contact_id",
          "account_id",
          "envelope_name",
          "note",
          "created_at",
          "updated_at"
        ],
        "title": "HouseholdResource"
      },
      "HouseholdStoreRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "head_contact_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "envelope_name": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 255
          }
        },
        "required": [
          "name"
        ],
        "title": "HouseholdStoreRequest"
      },
      "HouseholdUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "head_contact_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "envelope_name": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 255
          }
        },
        "title": "HouseholdUpdateRequest"
      },
      "MessageResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "channel": {
            "type": "string"
          },
          "internal_name": {
            "type": "string"
          },
          "subject": {
            "type": "string"
          },
          "body": {
            "type": "string"
          },
          "recipient_filters": {
            "type": "string"
          },
          "recipient_count": {
            "type": "string"
          },
          "sent_at": {
            "type": "string"
          },
          "sending_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "channel",
          "internal_name",
          "body",
          "recipient_filters",
          "recipient_count",
          "sent_at",
          "sending_at",
          "created_at",
          "updated_at"
        ],
        "title": "MessageResource"
      },
      "PayoutResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "campaign_id": {
            "type": "string"
          },
          "method": {
            "type": "string",
            "description": "TODO: Deprecate this"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "fee": {
            "type": "number"
          },
          "tip": {
            "type": "number"
          },
          "payout": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "memo": {
            "type": "string"
          },
          "expected_at": {
            "type": "string"
          },
          "paid_at": {
            "type": "string"
          },
          "completed_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "description": "TODO: Deprecate this, backwards compatibility"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "campaign_id",
          "method",
          "status",
          "amount",
          "fee",
          "tip",
          "payout",
          "currency",
          "memo",
          "expected_at",
          "paid_at",
          "completed_at",
          "created_at",
          "updated_at"
        ],
        "title": "PayoutResource"
      },
      "PhoneResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "string",
              "null"
            ]
          },
          "value": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "type",
          "value"
        ],
        "title": "PhoneResource"
      },
      "PointOfContactResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "middle_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "suffix": {
            "type": "string"
          },
          "gender": {
            "type": "string"
          },
          "pronouns": {
            "type": "string"
          },
          "dob": {
            "type": "string"
          },
          "employer": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "twitter_url": {
            "type": "string"
          },
          "linkedin_url": {
            "type": "string"
          },
          "facebook_url": {
            "type": "string"
          },
          "tiktok_url": {
            "type": "string"
          },
          "website_url": {
            "type": "string"
          },
          "emails": {
            "type": "object",
            "additionalProperties": {}
          },
          "phones": {
            "type": "object",
            "additionalProperties": {}
          },
          "primary_email": {
            "type": "string"
          },
          "primary_phone": {
            "type": "string"
          },
          "is_email_subscribed": {
            "type": "string"
          },
          "is_phone_subscribed": {
            "type": "string"
          },
          "is_address_subscribed": {
            "type": "string"
          },
          "address_unsubscribed_at": {
            "type": "string"
          },
          "archived_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "first_time_supporter_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type",
          "prefix",
          "first_name",
          "middle_name",
          "last_name",
          "suffix",
          "gender",
          "pronouns",
          "dob",
          "employer",
          "title",
          "twitter_url",
          "linkedin_url",
          "facebook_url",
          "tiktok_url",
          "website_url",
          "emails",
          "phones",
          "primary_email",
          "primary_phone",
          "is_email_subscribed",
          "is_phone_subscribed",
          "is_address_subscribed",
          "address_unsubscribed_at",
          "archived_at",
          "created_at",
          "updated_at",
          "first_time_supporter_at"
        ],
        "title": "PointOfContactResource"
      },
      "PublicUserResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "first_name",
          "last_name",
          "email"
        ],
        "title": "PublicUserResource"
      },
      "RecurringPlanResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "contact_id": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "frequency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          },
          "fee_covered": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "start_at": {
            "type": "string"
          },
          "canceled_at": {
            "type": "string"
          },
          "next_bill_date": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "contact_id",
          "first_name",
          "last_name",
          "email",
          "phone",
          "frequency",
          "status",
          "method",
          "amount",
          "fee_covered",
          "created_at",
          "updated_at",
          "start_at",
          "canceled_at",
          "next_bill_date"
        ],
        "title": "RecurringPlanResource"
      },
      "StoreCampaignDiscountCodeRequest": {
        "type": "object",
        "properties": {
          "items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "type": {
            "$ref": "#/components/schemas/DiscountCodeType"
          },
          "active": {
            "type": "boolean"
          },
          "amount": {
            "type": "number",
            "minimum": 1
          },
          "code": {
            "type": "string",
            "maxLength": 255
          },
          "uses": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 1
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "type",
          "active",
          "amount",
          "code"
        ],
        "title": "StoreCampaignDiscountCodeRequest"
      },
      "StoreCampaignItemTicketRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 255
          },
          "price": {
            "type": "number",
            "minimum": 0
          },
          "total_quantity": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "event_id": {
            "type": "integer"
          },
          "subtype": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "physical",
              "digital",
              "hybrid"
            ],
            "maxLength": 255
          },
          "active": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "retail_price": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 0
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 5000
          },
          "bundle_only": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hide_remaining": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "scope": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "registrant",
              "event"
            ],
            "maxLength": 255
          },
          "bundles": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "custom_fields": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "pictures": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name",
          "price",
          "event_id"
        ],
        "title": "StoreCampaignItemTicketRequest"
      },
      "TicketResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "id_suffix": {
            "type": "string"
          },
          "transaction_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "price": {
            "type": "number"
          },
          "pdf": {
            "type": "string"
          },
          "checked_in_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "retail_price": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "id_suffix",
          "transaction_id",
          "name",
          "first_name",
          "last_name",
          "email",
          "phone",
          "title",
          "description",
          "price",
          "pdf",
          "checked_in_at",
          "created_at",
          "updated_at",
          "retail_price"
        ],
        "title": "TicketResource"
      },
      "TransactionLineItemResource": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "subtype": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "quantity": {
            "type": "integer"
          },
          "price": {
            "type": "number"
          },
          "discount": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "subtype",
          "description",
          "quantity",
          "price",
          "discount",
          "total",
          "created_at",
          "updated_at"
        ],
        "title": "TransactionLineItemResource"
      },
      "TransactionResource": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "plan_id": {
                "type": "string"
              },
              "pledge_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "amount": {
                "type": "number"
              },
              "fee": {
                "type": "number"
              },
              "fee_covered": {
                "type": "number"
              },
              "donated": {
                "type": "number"
              },
              "payout": {
                "type": "number"
              },
              "captured": {
                "type": "string"
              },
              "captured_at": {
                "type": "string"
              },
              "timezone": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "refunded": {
                "type": "string"
              },
              "refunded_at": {
                "type": "string"
              },
              "line_items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TransactionLineItemResource"
                }
              },
              "fair_market_value_amount": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "tax_deductible_amount": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "is_recurring": {
                "type": "boolean"
              }
            },
            "required": [
              "id",
              "plan_id",
              "pledge_id",
              "amount",
              "fee",
              "fee_covered",
              "donated",
              "payout",
              "captured",
              "captured_at",
              "timezone",
              "refunded",
              "refunded_at",
              "line_items",
              "fair_market_value_amount",
              "tax_deductible_amount",
              "is_recurring"
            ]
          },
          {
            "type": "object",
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "number": {
                "type": "string"
              },
              "campaign_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "campaign_code": {
                "type": "string"
              },
              "campaign_title": {
                "type": "string"
              },
              "plan_id": {
                "type": "string"
              },
              "pledge_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "team_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "team_name": {
                "type": "string"
              },
              "member_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "member_name": {
                "type": "string"
              },
              "fund_id": {
                "type": "string"
              },
              "fund_code": {
                "type": "string"
              },
              "contact_id": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "first_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "company_name": {
                "type": "string"
              },
              "company": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "email": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "phone": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "address": {
                "type": "string"
              },
              "status": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "payment_method": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "method": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "check_number": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "check_deposited_at": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "internal_note": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "amount": {
                "type": "number"
              },
              "fee": {
                "type": "number"
              },
              "fee_covered": {
                "type": "number"
              },
              "donated": {
                "type": "number"
              },
              "payout": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "transacted_at": {
                "type": "string"
              },
              "created_at": {
                "type": "string"
              },
              "updated_at": {
                "type": "string"
              },
              "timezone": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "giving_space": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/GivingSpaceResource"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "dedication": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DedicationResource"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "transactions": {
                "type": "array",
                "prefixItems": [
                  {
                    "$ref": "#/components/schemas/TransactionResource"
                  }
                ],
                "minItems": 1,
                "maxItems": 1,
                "additionalItems": false
              },
              "custom_fields": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CustomFieldResponseResource"
                }
              },
              "utm_parameters": {
                "type": "string"
              },
              "external_id": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/ExternalIdResource"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "communication_opt_in": {
                "type": "boolean"
              },
              "session_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "attribution_data": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "fair_market_value_amount": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "tax_deductible_amount": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "is_recurring": {
                "type": "boolean"
              },
              "payout_id": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              }
            },
            "required": [
              "id",
              "number",
              "campaign_id",
              "campaign_code",
              "campaign_title",
              "plan_id",
              "pledge_id",
              "team_id",
              "team_name",
              "member_id",
              "member_name",
              "fund_id",
              "fund_code",
              "contact_id",
              "first_name",
              "last_name",
              "company_name",
              "company",
              "email",
              "phone",
              "address",
              "status",
              "payment_method",
              "method",
              "check_number",
              "check_deposited_at",
              "internal_note",
              "amount",
              "fee",
              "fee_covered",
              "donated",
              "payout",
              "currency",
              "transacted_at",
              "created_at",
              "updated_at",
              "timezone",
              "giving_space",
              "dedication",
              "transactions",
              "custom_fields",
              "utm_parameters",
              "external_id",
              "communication_opt_in",
              "session_id",
              "attribution_data",
              "fair_market_value_amount",
              "tax_deductible_amount",
              "is_recurring",
              "payout_id"
            ]
          }
        ],
        "title": "TransactionResource"
      },
      "UpdateCampaignDiscountCodeRequest": {
        "type": "object",
        "properties": {
          "items": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "string"
            }
          },
          "amount": {
            "type": "number",
            "minimum": 1,
            "maximum": 100
          },
          "type": {
            "$ref": "#/components/schemas/DiscountCodeType"
          },
          "active": {
            "type": "boolean"
          },
          "code": {
            "type": "string",
            "maxLength": 255
          },
          "uses": {
            "type": [
              "number",
              "null"
            ],
            "minimum": 1
          },
          "starts_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "amount"
        ],
        "title": "UpdateCampaignDiscountCodeRequest"
      },
      "UpdateTransactionRequest": {
        "type": "object",
        "properties": {
          "transaction_id": {
            "type": "string"
          },
          "internal_note": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 255
          },
          "check_number": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 255
          },
          "check_deposited_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "custom_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "team_id": {
            "type": "string"
          },
          "campaign_member_id": {
            "type": "string"
          },
          "fund_id": {
            "type": "string"
          },
          "campaign_id": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "transacted_at": {
            "type": "string"
          },
          "appeal_id": {
            "type": "string"
          },
          "offline_payment_received": {
            "type": "string"
          },
          "dedication": {
            "type": "object",
            "properties": {
              "type": {
                "$ref": "#/components/schemas/DedicationType"
              },
              "name": {
                "type": "string",
                "maxLength": 255
              },
              "recipient_name": {
                "type": [
                  "string",
                  "null"
                ],
                "maxLength": 255
              },
              "recipient_email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email"
              }
            },
            "required": [
              "type",
              "name",
              "recipient_name",
              "recipient_email"
            ]
          }
        },
        "title": "UpdateTransactionRequest"
      },
      "WebhookActivityResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "webhook_id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "status_description": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "payload": {
            "type": "array",
            "items": {}
          },
          "response": {
            "type": [
              "array",
              "null"
            ],
            "items": {}
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "webhook_id",
          "status",
          "status_description",
          "event",
          "url",
          "payload",
          "response",
          "created_at",
          "updated_at"
        ],
        "title": "WebhookActivityResource"
      },
      "WebhookResource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "events": {
            "type": "array",
            "items": {}
          },
          "enabled": {
            "type": "boolean"
          },
          "url": {
            "type": "string"
          },
          "last_status": {
            "type": "string"
          },
          "last_status_description": {
            "type": "string"
          },
          "last_used_at": {
            "type": "string"
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "events",
          "enabled",
          "url",
          "last_status",
          "last_status_description",
          "last_used_at",
          "created_at",
          "updated_at"
        ],
        "title": "WebhookResource"
      }
    },
    "responses": {
      "ModelNotFoundException": {
        "description": "Not found",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Error overview."
                }
              },
              "required": [
                "message"
              ]
            }
          }
        }
      },
      "AuthorizationException": {
        "description": "Authorization error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Error overview."
                }
              },
              "required": [
                "message"
              ]
            }
          }
        }
      },
      "ValidationException": {
        "description": "Validation error",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "message": {
                  "type": "string",
                  "description": "Errors overview."
                },
                "errors": {
                  "type": "object",
                  "description": "A detailed description of each field that failed validation.",
                  "additionalProperties": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "required": [
                "message",
                "errors"
              ]
            }
          }
        }
      }
    }
  }
}