{
 "openapi": "3.1.0",
 "info": {
  "title": "Prequel Data Export",
  "description": "Data Export API spec",
  "version": "2023-12-01"
 },
 "servers": [
  {
   "url": "https://api.prequel.co",
   "description": "Cloud-hosted server (US)"
  },
  {
   "url": "https://eu-api.prequel.co",
   "description": "Cloud-hosted server (EU)"
  },
  {
   "url": "https://{custom_host}/",
   "description": "Cloud-prem or shared-cloud server"
  }
 ],
 "security": [
  {
   "ApiKeyAuth": []
  }
 ],
 "paths": {
  "/logs": {
   "get": {
    "summary": "List logs",
    "description": "Returns the audit logs for all events.",
    "operationId": "list-logs",
    "tags": [
     "Monitoring \u0026 Logging"
    ],
    "parameters": [
     {
      "name": "count",
      "in": "query",
      "required": false,
      "description": "Number of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "min_time",
      "in": "query",
      "required": false,
      "description": "Minimum timestamp of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "event_type",
      "in": "query",
      "required": false,
      "description": "Type of event to filter logs by.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/list-event-log-response",
           "$ref": "#/components/schemas/ListEventLogResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/logs/{log_id}": {
   "get": {
    "summary": "Get log",
    "description": "Returns the specified audit log.",
    "operationId": "get-log",
    "tags": [
     "Monitoring \u0026 Logging"
    ],
    "parameters": [
     {
      "name": "log_id",
      "in": "path",
      "required": true,
      "description": "Log ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "count",
      "in": "query",
      "required": false,
      "description": "Number of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "min_time",
      "in": "query",
      "required": false,
      "description": "Minimum timestamp of logs to return.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "event_type",
      "in": "query",
      "required": false,
      "description": "Type of event to filter logs by.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/get-event-log-response",
           "$ref": "#/components/schemas/GetEventLogResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/webhooks": {
   "get": {
    "summary": "List webhooks",
    "description": "The webhooks endpoint returns the configured data webhooks. A webhook is an HTTP-based callback function.",
    "operationId": "list-webhooks",
    "tags": [
     "Webhooks"
    ],
    "parameters": [
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/list-webhook-response",
           "$ref": "#/components/schemas/ListWebhookResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create webhook",
    "description": "Add a new webhook destination to monitor transfer failures. All errors resulting from transfers that do not succeed will be delivered to this webhook endpoint for monitoring or logging.",
    "operationId": "create-webhook",
    "tags": [
     "Webhooks"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/create-webhook-request",
        "$ref": "#/components/schemas/CreateWebhookRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/webhook-response",
           "$ref": "#/components/schemas/WebhookResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/webhooks/{webhook_id}": {
   "get": {
    "summary": "Get webhook",
    "description": "The endpoint returns the details of a specific webhook by the given ID.",
    "operationId": "get-webhook",
    "tags": [
     "Webhooks"
    ],
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "description": "Webhook ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/webhook-response",
           "$ref": "#/components/schemas/WebhookResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update webhook",
    "description": "Update an existing webhook.",
    "operationId": "update-webhook",
    "tags": [
     "Webhooks"
    ],
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "description": "Webhook ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-webhook-request",
        "$ref": "#/components/schemas/UpdateWebhookRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/webhook-response",
           "$ref": "#/components/schemas/WebhookResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete webhook",
    "description": "Delete an existing webhook.",
    "operationId": "delete-webhook",
    "tags": [
     "Webhooks"
    ],
    "parameters": [
     {
      "name": "webhook_id",
      "in": "path",
      "required": true,
      "description": "Webhook ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/sources": {
   "get": {
    "summary": "List sources",
    "description": "The sources endpoint returns the configured data sources. Sources are the databases or data warehouses within the provider environment.",
    "operationId": "list-sources",
    "tags": [
     "Sources"
    ],
    "parameters": [
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-source-response",
           "$ref": "#/components/schemas/ListSourceResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create source",
    "description": "Add a new source.",
    "operationId": "create-source",
    "tags": [
     "Sources"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-source-request",
        "$ref": "#/components/schemas/CreateSourceRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/source-response",
           "$ref": "#/components/schemas/SourceResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/sources/{source_id}": {
   "get": {
    "summary": "Get source",
    "description": "The endpoint returns the details of a specific source by the given ID.",
    "operationId": "get-source",
    "tags": [
     "Sources"
    ],
    "parameters": [
     {
      "name": "source_id",
      "in": "path",
      "required": true,
      "description": "Source ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/source-response",
           "$ref": "#/components/schemas/SourceResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update source",
    "description": "Update an existing source.",
    "operationId": "update-source",
    "tags": [
     "Sources"
    ],
    "parameters": [
     {
      "name": "source_id",
      "in": "path",
      "required": true,
      "description": "Source ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-source-request",
        "$ref": "#/components/schemas/UpdateSourceRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/source-response",
           "$ref": "#/components/schemas/SourceResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete source",
    "description": "Delete an existing source.",
    "operationId": "delete-source",
    "tags": [
     "Sources"
    ],
    "parameters": [
     {
      "name": "source_id",
      "in": "path",
      "required": true,
      "description": "Source ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/sources/{source_id}/test-connection": {
   "post": {
    "summary": "Test source connection",
    "description": "Test the connection to a source.",
    "operationId": "create-source-test",
    "tags": [
     "Sources"
    ],
    "parameters": [
     {
      "name": "source_id",
      "in": "path",
      "required": true,
      "description": "Source ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-source-request",
        "$ref": "#/components/schemas/UpdateSourceRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/source-response",
           "$ref": "#/components/schemas/SourceResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations": {
   "get": {
    "summary": "List destinations",
    "description": "The Destination endpoint returns the configured data destinations. Destinations are the databases and data warehouses within the consumer environments.",
    "operationId": "list-destinations",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "query",
      "required": false,
      "description": "Destination ID. Multiple IDs can also be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "name",
      "in": "query",
      "required": false,
      "description": "Destination name. Case-insensitive. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "vendor",
      "in": "query",
      "required": false,
      "description": "Filter by vendor type (postgres, redshift).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "is_enabled",
      "in": "query",
      "required": false,
      "description": "Filter by enabled status (true or false).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "recipient_id",
      "in": "query",
      "required": false,
      "description": "Recipient ID. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "id_in_provider_system",
      "in": "query",
      "required": false,
      "description": "Id of the organization to whom this recipient corresponds in the provider's system. In other words, likely some kind of org_id or customer_id in your system. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "product_name",
      "in": "query",
      "required": false,
      "description": "Product name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "model_name",
      "in": "query",
      "required": false,
      "description": "Model name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-destination-response",
           "$ref": "#/components/schemas/ListDestinationResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create destination",
    "description": "Add a new destination.",
    "operationId": "create-destination",
    "tags": [
     "Destinations"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-destination-request",
        "$ref": "#/components/schemas/CreateDestinationRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/destination-response",
           "$ref": "#/components/schemas/DestinationResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}": {
   "get": {
    "summary": "Get destination",
    "description": "Get the specified destination. Destinations are the databases and data warehouses within the consumer environments.",
    "operationId": "get-destination",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/destination-response",
           "$ref": "#/components/schemas/DestinationResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update destination",
    "description": "Update an existing destination.",
    "operationId": "patch-destination",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-destination-request",
        "$ref": "#/components/schemas/UpdateDestinationRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/destination-response",
           "$ref": "#/components/schemas/DestinationResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete destination",
    "description": "Delete an existing destination.",
    "operationId": "delete-destination",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipients/{recipient_id}/destinations": {
   "get": {
    "summary": "List destinations for recipient",
    "description": "Get a list of configured data destinations for a recipient. The recipient_id can be provided either via a recipient-scoped auth token or the `recipient_id` query parameter.",
    "operationId": "list-destinations-for-recipient",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "query",
      "required": false,
      "description": "Destination ID. Multiple IDs can also be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "name",
      "in": "query",
      "required": false,
      "description": "Destination name. Case-insensitive. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "vendor",
      "in": "query",
      "required": false,
      "description": "Filter by vendor type (postgres, redshift).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "is_enabled",
      "in": "query",
      "required": false,
      "description": "Filter by enabled status (true or false).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "recipient_id",
      "in": "path",
      "required": true,
      "description": "Recipient ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "product_name",
      "in": "query",
      "required": false,
      "description": "Product name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "model_name",
      "in": "query",
      "required": false,
      "description": "Model name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-destination-response",
           "$ref": "#/components/schemas/ListDestinationResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipients": {
   "get": {
    "summary": "List recipients",
    "description": "The Recipient endpoint returns the configured data recipients. Recipients are the customers who will consume data.",
    "operationId": "list-recipients",
    "tags": [
     "Recipients"
    ],
    "parameters": [
     {
      "name": "id_in_provider_system",
      "in": "query",
      "required": false,
      "description": "Id of the organization to whom this recipient corresponds in the provider's system. In other words, likely some kind of org_id or customer_id in your system. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-recipient-response",
           "$ref": "#/components/schemas/ListRecipientResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create recipient",
    "description": "Add a new recipient.",
    "operationId": "create-recipient",
    "tags": [
     "Recipients"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-recipient-request",
        "$ref": "#/components/schemas/CreateRecipientRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-response",
           "$ref": "#/components/schemas/GetRecipientResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipients/{recipient_id}": {
   "get": {
    "summary": "Get recipient",
    "description": "Get the specified recipient. Recipients are the customers who will consume data.",
    "operationId": "get-recipient",
    "tags": [
     "Recipients"
    ],
    "parameters": [
     {
      "name": "recipient_id",
      "in": "path",
      "required": true,
      "description": "Recipient ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-response",
           "$ref": "#/components/schemas/GetRecipientResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update recipient",
    "description": "Update an existing recipient.",
    "operationId": "update-recipient",
    "tags": [
     "Recipients"
    ],
    "parameters": [
     {
      "name": "recipient_id",
      "in": "path",
      "required": true,
      "description": "Recipient ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-recipient-request",
        "$ref": "#/components/schemas/UpdateRecipientRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-response",
           "$ref": "#/components/schemas/GetRecipientResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete recipient",
    "description": "Delete an existing recipient.",
    "operationId": "delete-recipient",
    "tags": [
     "Recipients"
    ],
    "parameters": [
     {
      "name": "recipient_id",
      "in": "path",
      "required": true,
      "description": "Recipient ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipient-source-credentials/{recipient_source_credential_id}": {
   "get": {
    "summary": "Get a recipient source credential by ID",
    "description": "The Recipient Source Credential endpoint returns the specified recipient source credential. Source credentials are the credentials used to connect to the source on behalf of a recipient.",
    "operationId": "get-recipient-source-credentials",
    "tags": [
     "Recipient Source Credentials"
    ],
    "parameters": [
     {
      "name": "recipient_source_credential_id",
      "in": "path",
      "required": true,
      "description": "Recipient Source Credential ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-source-credential-response",
           "$ref": "#/components/schemas/GetRecipientSourceCredentialResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update a recipient's source credentials",
    "description": "Update existing source credentials for a recipient.",
    "operationId": "update-recipient-source-credential",
    "tags": [
     "Recipient Source Credentials"
    ],
    "parameters": [
     {
      "name": "recipient_source_credential_id",
      "in": "path",
      "required": true,
      "description": "Recipient Source Credential ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-recipient-source-credential-request",
        "$ref": "#/components/schemas/UpdateRecipientSourceCredentialRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-source-credential-response",
           "$ref": "#/components/schemas/GetRecipientSourceCredentialResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete a recipient's source credentials",
    "description": "Delete existing source credentials for a recipient.",
    "operationId": "delete-recipient-source-credential",
    "tags": [
     "Recipient Source Credentials"
    ],
    "parameters": [
     {
      "name": "recipient_source_credential_id",
      "in": "path",
      "required": true,
      "description": "Recipient Source Credential ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipient-source-credentials/{recipient_source_credential_id}/test-connection": {
   "post": {
    "summary": "Create connection test of a recipient's source credentials",
    "description": "Test the connection of a recipient's source credentials.",
    "operationId": "create-recipient-source-credential-test",
    "tags": [
     "Recipient Source Credentials"
    ],
    "parameters": [
     {
      "name": "recipient_source_credential_id",
      "in": "path",
      "required": true,
      "description": "Recipient Source Credential ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/data-integrity": {
   "get": {
    "summary": "List data integrity jobs for a destination",
    "description": "Get a list of data integrity jobs for a destination.",
    "operationId": "list-data-integrity-jobs-for-destination",
    "tags": [
     "Data Integrity"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-data-integrity-job-response",
           "$ref": "#/components/schemas/ListDataIntegrityJobResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create data integrity job for a destination",
    "description": "Enqueue a job to check data integrity.",
    "operationId": "create-data-integrity-job-for-destination",
    "tags": [
     "Data Integrity"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-data-integrity-request",
        "$ref": "#/components/schemas/CreateDataIntegrityRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-data-integrity-job-response",
           "$ref": "#/components/schemas/GetDataIntegrityJobResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/data-integrity/{job_id}": {
   "get": {
    "summary": "Get specific data integrity job for a destination",
    "description": "Get a data integrity job by ID.",
    "operationId": "get-data-integrity-job-for-destination",
    "tags": [
     "Data Integrity"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "job_id",
      "in": "path",
      "required": true,
      "description": "Integrity Job ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-data-integrity-job-response",
           "$ref": "#/components/schemas/GetDataIntegrityJobResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/data-integrity/{job_id}/cancel": {
   "post": {
    "summary": "Cancel specific data integrity job for a destination",
    "description": "Request cancellation of a data integrity job by ID.",
    "operationId": "create-data-integrity-job-cancellation-request",
    "tags": [
     "Data Integrity"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "job_id",
      "in": "path",
      "required": true,
      "description": "Integrity Job ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-data-integrity-job-response",
           "$ref": "#/components/schemas/GetDataIntegrityJobResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/actions/generate-scoped-auth-token": {
   "post": {
    "summary": "Generate Scoped Auth Token",
    "description": "Generate a scoped auth token for a specific recipient.",
    "operationId": "create-scoped-auth-token",
    "tags": [
     "Auth"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-scoped-auth-token-request",
        "$ref": "#/components/schemas/CreateScopedAuthTokenRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-scoped-auth-token-response",
           "$ref": "#/components/schemas/CreateScopedAuthTokenResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/transfer": {
   "post": {
    "summary": "Create transfer",
    "description": "Enqueue a transfer to specified destination.",
    "operationId": "create-transfer",
    "tags": [
     "Transfers"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-transfer-request",
        "$ref": "#/components/schemas/CreateTransferRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-transfer-response",
           "$ref": "#/components/schemas/CreateTransferResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/transfers": {
   "get": {
    "summary": "List transfers",
    "description": "Retrieve list of transfers.",
    "operationId": "list-transfers",
    "tags": [
     "Transfers"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "query",
      "required": false,
      "description": "If specified, returns only transfers that were made to the given destination.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "status",
      "in": "query",
      "required": false,
      "description": "Status of the transfer.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "include_tags",
      "in": "query",
      "required": false,
      "description": "Filter transfers by comma-separated key.value pairs.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "ended_before",
      "in": "query",
      "required": false,
      "description": "Filter transfers with ended_at less than (exclusive) this RFC3339 timestamp.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "ended_after",
      "in": "query",
      "required": false,
      "description": "Filter transfers with ended_at greater than or equal to (inclusive) this RFC3339 timestamp.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-transfer-response",
           "$ref": "#/components/schemas/ListTransferResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/transfers/{transfer_id}": {
   "get": {
    "summary": "Get transfer",
    "description": "Retrieve details about a specific transfer.",
    "operationId": "get-transfer",
    "tags": [
     "Transfers"
    ],
    "parameters": [
     {
      "name": "transfer_id",
      "in": "path",
      "required": true,
      "description": "Transfer ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/transfer-response",
           "$ref": "#/components/schemas/TransferResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/transfers/{transfer_id}/cancel": {
   "post": {
    "summary": "Cancel transfer",
    "description": "Cancel a transfer that is still PENDING. Once a transfer is running, this will error.",
    "operationId": "create-transfer-cancellation-request",
    "tags": [
     "Transfers"
    ],
    "parameters": [
     {
      "name": "transfer_id",
      "in": "path",
      "required": true,
      "description": "Transfer ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/transfer-response",
           "$ref": "#/components/schemas/TransferResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/reports/transfers": {
   "get": {
    "summary": "List transfer reports",
    "description": "Retrieve transfer stats. Will return the summary stats of all destinations over the most recent 2 weeks by default.",
    "operationId": "list-transfer-reports",
    "tags": [
     "Reports"
    ],
    "parameters": [
     {
      "name": "destinations",
      "in": "query",
      "required": false,
      "description": "Destination ID (or comma-separated list of destination IDs).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "start",
      "in": "query",
      "required": false,
      "description": "Start date of report (in the format YYYY-MM-DD).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "end",
      "in": "query",
      "required": false,
      "description": "End date of report (in the format YYYY-MM-DD).",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/transfer-response",
           "$ref": "#/components/schemas/TransferResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/actions/enable-all": {
   "post": {
    "summary": "Set all destinations to 'enabled' state",
    "description": "Enable all destinations to be updated during future scheduled transfers. (Will not affect manual transfers initatied via the /transfer endpoint.)",
    "operationId": "enable-all-destinations",
    "tags": [
     "Actions"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/actions/pause-all": {
   "post": {
    "summary": "Set all destinations to 'paused' state",
    "description": "Pause all destinations so that they will not be updated during future scheduled transfers. (Will not affect manual transfers initatied via the /transfer endpoint.)",
    "operationId": "pause-all-destinations",
    "tags": [
     "Actions"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/magic-links": {
   "get": {
    "summary": "List magic links",
    "description": "Retrieve list of magic links.",
    "operationId": "list-magic-links",
    "tags": [
     "Magic Links"
    ],
    "parameters": [
     {
      "name": "id_in_provider_system",
      "in": "query",
      "required": false,
      "description": "Id of the organization to whom this recipient corresponds in the provider's system. In other words, likely some kind of org_id or customer_id in your system. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-magic-link-response",
           "$ref": "#/components/schemas/ListMagicLinkResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create magic link",
    "description": "Add a new magic link.",
    "operationId": "create-magic-link",
    "tags": [
     "Magic Links"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-magic-link-request",
        "$ref": "#/components/schemas/CreateMagicLinkRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-magic-link-response",
           "$ref": "#/components/schemas/GetMagicLinkResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/magic-links/{link_id}": {
   "get": {
    "summary": "Get magic link",
    "description": "Get the specified magic link.",
    "operationId": "get-magic-link",
    "tags": [
     "Magic Links"
    ],
    "parameters": [
     {
      "name": "link_id",
      "in": "path",
      "required": true,
      "description": "Magic Link ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-magic-link-response",
           "$ref": "#/components/schemas/GetMagicLinkResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete magic link",
    "description": "Delete an existing magic link.",
    "operationId": "delete-magic-link",
    "tags": [
     "Magic Links"
    ],
    "parameters": [
     {
      "name": "link_id",
      "in": "path",
      "required": true,
      "description": "Magic Link ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/models": {
   "get": {
    "summary": "List models",
    "description": "Retrieve list of models.",
    "operationId": "list-models",
    "tags": [
     "Models"
    ],
    "parameters": [
     {
      "name": "model_name",
      "in": "query",
      "required": false,
      "description": "Model name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "product_name",
      "in": "query",
      "required": false,
      "description": "Product name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-model-config-response",
           "$ref": "#/components/schemas/ListModelConfigResponseDocumented"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create model",
    "description": "Add a new model.",
    "operationId": "create-model",
    "tags": [
     "Models"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-model-config-request",
        "$ref": "#/components/schemas/CreateModelConfigRequestDocumented"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/model-config-response",
           "$ref": "#/components/schemas/ModelConfigResponseDocumented"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/models/{model_id}": {
   "get": {
    "summary": "Get model",
    "description": "Retrieve an model.",
    "operationId": "get-model",
    "tags": [
     "Models"
    ],
    "parameters": [
     {
      "name": "model_id",
      "in": "path",
      "required": true,
      "description": "Model ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/model-config-response",
           "$ref": "#/components/schemas/ModelConfigResponseDocumented"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update model",
    "description": "Update an existing model.",
    "operationId": "update-model",
    "tags": [
     "Models"
    ],
    "parameters": [
     {
      "name": "model_id",
      "in": "path",
      "required": true,
      "description": "Model ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-model-config-request",
        "$ref": "#/components/schemas/UpdateModelConfigRequestDocumented"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/model-config-response",
           "$ref": "#/components/schemas/ModelConfigResponseDocumented"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete model",
    "description": "Delete an existing model.",
    "operationId": "delete-model",
    "tags": [
     "Models"
    ],
    "parameters": [
     {
      "name": "model_id",
      "in": "path",
      "required": true,
      "description": "Model ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/models/{model_id}/validate": {
   "post": {
    "summary": "Validate model",
    "description": "Validate an model.",
    "operationId": "create-model-validation-job",
    "tags": [
     "Models"
    ],
    "parameters": [
     {
      "name": "model_id",
      "in": "path",
      "required": true,
      "description": "Model ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/products": {
   "get": {
    "summary": "List products",
    "description": "Retrieve list of products.",
    "operationId": "list-products",
    "tags": [
     "Products"
    ],
    "parameters": [
     {
      "name": "product_name",
      "in": "query",
      "required": false,
      "description": "Product name. Multiple values can be provided as a comma-separated string.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-product-config-response",
           "$ref": "#/components/schemas/ListProductConfigResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create product",
    "description": "Add a new product.",
    "operationId": "create-product",
    "tags": [
     "Products"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-product-config-request",
        "$ref": "#/components/schemas/CreateProductConfigRequestDocumented"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/product-config-response",
           "$ref": "#/components/schemas/ProductConfigResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/products/{product_id}": {
   "get": {
    "summary": "Get product",
    "description": "Retrieve an product.",
    "operationId": "get-product",
    "tags": [
     "Products"
    ],
    "parameters": [
     {
      "name": "product_id",
      "in": "path",
      "required": true,
      "description": "Product ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/product-config-response",
           "$ref": "#/components/schemas/ProductConfigResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update product",
    "description": "Update an existing product.",
    "operationId": "update-product",
    "tags": [
     "Products"
    ],
    "parameters": [
     {
      "name": "product_id",
      "in": "path",
      "required": true,
      "description": "Product ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-product-config-request",
        "$ref": "#/components/schemas/UpdateProductConfigRequestDocumented"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/product-config-response",
           "$ref": "#/components/schemas/ProductConfigResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete product",
    "description": "Delete an existing product.",
    "operationId": "delete-product",
    "tags": [
     "Products"
    ],
    "parameters": [
     {
      "name": "product_id",
      "in": "path",
      "required": true,
      "description": "Product ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/products/{product_id}/validate": {
   "post": {
    "summary": "Validate product",
    "description": "Validate an product.",
    "operationId": "create-product-validation-job",
    "tags": [
     "Products"
    ],
    "parameters": [
     {
      "name": "product_id",
      "in": "path",
      "required": true,
      "description": "Product ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/sensitive-trace-endpoints": {
   "get": {
    "summary": "List sensitive trace endpoints",
    "description": "Retrieve list of sensitive trace endpoints.",
    "operationId": "list-sensitive-trace-endpoints",
    "tags": [
     "Sensitive Trace Endpoints"
    ],
    "parameters": [
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/list-sensitive-trace-endpoints-response",
           "$ref": "#/components/schemas/ListSensitiveTraceEndpointsResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create sensitive trace endpoint",
    "description": "Add a new sensitive trace endpoint.",
    "operationId": "create-sensitive-trace-endpoint",
    "tags": [
     "Sensitive Trace Endpoints"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/create-sensitive-trace-endpoint-request",
        "$ref": "#/components/schemas/CreateSensitiveTraceEndpointRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/create-sensitive-trace-endpoint-response",
           "$ref": "#/components/schemas/CreateSensitiveTraceEndpointResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/sensitive-trace-endpoints/{endpoint_id}": {
   "get": {
    "summary": "Get sensitive trace endpoint",
    "description": "Get the specified sensitive trace endpoint.",
    "operationId": "get-sensitive-trace-endpoint",
    "tags": [
     "Sensitive Trace Endpoints"
    ],
    "parameters": [
     {
      "name": "endpoint_id",
      "in": "path",
      "required": true,
      "description": "Sensitive trace endpoint ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/get-sensitive-trace-endpoint-response",
           "$ref": "#/components/schemas/GetSensitiveTraceEndpointResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "patch": {
    "summary": "Update sensitive trace endpoint",
    "description": "Update an existing sensitive trace endpoint.",
    "operationId": "update-sensitive-trace-endpoint",
    "tags": [
     "Sensitive Trace Endpoints"
    ],
    "parameters": [
     {
      "name": "endpoint_id",
      "in": "path",
      "required": true,
      "description": "Sensitive trace endpoint ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-sensitive-trace-endpoint-request",
        "$ref": "#/components/schemas/UpdateSensitiveTraceEndpointRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-sensitive-trace-endpoint-response",
           "$ref": "#/components/schemas/UpdateSensitiveTraceEndpointResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "delete": {
    "summary": "Delete sensitive trace endpoint",
    "description": "Delete an existing sensitive trace endpoint.",
    "operationId": "delete-sensitive-trace-endpoint",
    "tags": [
     "Sensitive Trace Endpoints"
    ],
    "parameters": [
     {
      "name": "endpoint_id",
      "in": "path",
      "required": true,
      "description": "Sensitive trace endpoint ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/validation/no-response-body",
           "$ref": "#/components/schemas/NoResponseBody"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/actions/generate-aws-trust-policy": {
   "post": {
    "summary": "Generate Policy",
    "description": "Generate a trust policy for a recipient.",
    "operationId": "generate-aws-trust-policy",
    "tags": [
     "Trust Policy"
    ],
    "parameters": [
     {
      "name": "recipient_id",
      "in": "query",
      "required": true,
      "description": "Recipient ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/generate-aws-trust-policy-response",
           "$ref": "#/components/schemas/GenerateAWSTrustPolicyResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/transfers": {
   "get": {
    "summary": "List transfers for a given destination",
    "description": "Retrieve list of transfers.",
    "operationId": "list-transfers-for-destination",
    "tags": [
     "Transfers"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "status",
      "in": "query",
      "required": false,
      "description": "Status of the transfer.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "include_tags",
      "in": "query",
      "required": false,
      "description": "Filter transfers by comma-separated key.value pairs.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "ended_before",
      "in": "query",
      "required": false,
      "description": "Filter transfers with ended_at less than (exclusive) this RFC3339 timestamp.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "ended_after",
      "in": "query",
      "required": false,
      "description": "Filter transfers with ended_at greater than or equal to (inclusive) this RFC3339 timestamp.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-transfer-response",
           "$ref": "#/components/schemas/ListTransferResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/recipient-source-credentials": {
   "get": {
    "summary": "List a recipient's source credentials",
    "description": "The Recipient Source Credentials endpoint returns the configured source credentials for a recipient. Source credentials are the credentials used to connect to the source on behalf of a recipient.",
    "operationId": "list-recipient-source-credentials",
    "tags": [
     "Recipient Source Credentials"
    ],
    "parameters": [
     {
      "name": "page_size",
      "in": "query",
      "required": false,
      "description": "Number of items to return per page.",
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "order",
      "in": "query",
      "required": false,
      "description": "Sort order for items",
      "schema": {
       "type": "string",
       "enum": [
        "asc",
        "desc"
       ]
      }
     },
     {
      "name": "cursor",
      "in": "query",
      "required": false,
      "description": "Used for pagination - represents last page seen. Value is included in response when there is a next page.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/list-recipient-source-credential-response",
           "$ref": "#/components/schemas/ListRecipientSourceCredentialResponse"
          },
          "message": {
           "type": "string"
          },
          "has_next": {
           "type": "boolean",
           "description": "Whether there are more items beyond this page."
          },
          "next_url": {
           "type": "string",
           "description": "Full URL to fetch the next page. Only present when has_next is true."
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message",
          "has_next"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   },
   "post": {
    "summary": "Create source credential for a recipient",
    "description": "Add a new source credential for a recipient.",
    "operationId": "create-recipient-source-credential",
    "tags": [
     "Recipient Source Credentials"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-recipient-source-credential-request",
        "$ref": "#/components/schemas/CreateRecipientSourceCredentialRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/get-recipient-source-credential-response",
           "$ref": "#/components/schemas/GetRecipientSourceCredentialResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/test-connection": {
   "post": {
    "summary": "Test destination connection",
    "description": "Test the connection to a destination.",
    "operationId": "update-destination-test",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/update-destination-request",
        "$ref": "#/components/schemas/UpdateDestinationRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/destination-response",
           "$ref": "#/components/schemas/DestinationResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/invalidate-delta-sharing": {
   "post": {
    "summary": "Invalidate Delta Sharing tokens",
    "description": "Invalidate existing Delta Sharing JWTs for a destination.",
    "operationId": "invalidate-delta-sharing",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/invalidate-delta-sharing-response",
           "$ref": "#/components/schemas/InvalidateDeltaSharingResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/destinations/{destination_id}/sharing/delta/token/invalidate": {
   "post": {
    "summary": "Invalidate Delta Sharing tokens",
    "description": "Invalidate existing Delta Sharing JWTs for a destination.",
    "operationId": "invalidate-delta-sharing",
    "tags": [
     "Destinations"
    ],
    "parameters": [
     {
      "name": "destination_id",
      "in": "path",
      "required": true,
      "description": "Destination ID.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/invalidate-delta-sharing-response",
           "$ref": "#/components/schemas/InvalidateDeltaSharingResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/test-destination": {
   "post": {
    "summary": "Test new destination connection",
    "description": "Test the connection for a new destination before creating it.",
    "operationId": "create-destination-test",
    "tags": [
     "Destinations"
    ],
    "security": [
     {
      "ApiKeyAuth": []
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/create-destination-request",
        "$ref": "#/components/schemas/CreateDestinationRequest"
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/destination-response",
           "$ref": "#/components/schemas/DestinationResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/": {
   "get": {
    "summary": "API Status",
    "description": "Ping the Prequel API to make sure it is operating.",
    "operationId": "get-health-check",
    "tags": [
     "Health"
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/health-check-response",
           "$ref": "#/components/schemas/HealthCheckResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/public/signatures/object-storage-manifest-public-key": {
   "get": {
    "summary": "Get object storage manifest signature public key",
    "description": "Get the public key you can use to verify object storage manifests.",
    "operationId": "get-object-storage-manifest-public-key",
    "tags": [
     "Signatures"
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/public-key-response",
           "$ref": "#/components/schemas/PublicKeyResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/public/signatures/webhook-public-key": {
   "get": {
    "summary": "Get webhook signature public key",
    "description": "Get the current public key used to verify webhook signatures. Clients should fetch this value instead of hardcoding it because the key may change.",
    "operationId": "get-webhook-public-key",
    "tags": [
     "Signatures"
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/public-key-response",
           "$ref": "#/components/schemas/PublicKeyResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  },
  "/actions/generate-ssh-key": {
   "post": {
    "summary": "Generate SSH Key",
    "description": "Generate an SSH public key to authenticate into a bastion host when SSH tunneling is enabled. Unused keys are automatically deleted after 30 days.",
    "operationId": "create-ssh-key",
    "tags": [
     "Auth"
    ],
    "parameters": [
     {
      "name": "recipient_id",
      "in": "query",
      "required": false,
      "description": "Recipient ID. Use either Recipient ID or Organization ID but not both.",
      "schema": {
       "type": "string"
      }
     },
     {
      "name": "org_id",
      "in": "query",
      "required": false,
      "description": "Organization ID. Use either Recipient ID or Organization ID but not both.",
      "schema": {
       "type": "string"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "OK",
      "content": {
       "application/json": {
        "schema": {
         "properties": {
          "status": {
           "type": "string",
           "const": "success"
          },
          "data": {
           "$schema": "https://json-schema.org/draft/2020-12/schema",
           "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/ssh-key-response",
           "$ref": "#/components/schemas/SSHKeyResponse"
          },
          "message": {
           "type": "string"
          }
         },
         "type": "object",
         "required": [
          "status",
          "data",
          "message"
         ]
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     },
     "500": {
      "$ref": "#/components/responses/InternalServerError"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "ErrorResponse": {
    "properties": {
     "status": {
      "type": "string",
      "const": "error"
     },
     "message": {
      "type": "string"
     },
     "data": {
      "type": "null"
     }
    },
    "type": "object",
    "required": [
     "status",
     "message"
    ]
   },
   "Actor": {
    "properties": {
     "actor_id": {
      "type": "string",
      "description": "The ID of the agent that triggered the event.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "type": {
      "type": "string",
      "enum": [
       "unknown",
       "user",
       "api_key",
       "recipient"
      ],
      "description": "The type of agent that triggered the event."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "actor_id",
     "type"
    ]
   },
   "EventLog": {
    "properties": {
     "id": {
      "type": "string"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "event_type": {
      "type": "string",
      "enum": [
       "DESTINATION_ADD",
       "DESTINATION_DELETE",
       "DESTINATION_UPDATE",
       "DESTINATION_ENABLE_ALL",
       "DESTINATION_PAUSE_ALL",
       "SOURCE_ADD",
       "SOURCE_DELETE",
       "SOURCE_UPDATE",
       "RECIPIENT_ADD",
       "RECIPIENT_DELETE",
       "RECIPIENT_UPDATE",
       "MODEL_ADD",
       "MODEL_UPDATE",
       "MODEL_DELETE",
       "PRODUCT_ADD",
       "PRODUCT_UPDATE",
       "PRODUCT_DELETE",
       "MAGIC_LINK_CREATE",
       "MAGIC_LINK_DELETE",
       "WEBHOOK_ADD",
       "WEBHOOK_DELETE",
       "WEBHOOK_UPDATE",
       "RECIPIENT_SOURCE_CREDENTIAL_ADD",
       "RECIPIENT_SOURCE_CREDENTIAL_DELETE",
       "RECIPIENT_SOURCE_CREDENTIAL_UPDATE",
       "API_KEY_ADD",
       "API_KEY_DELETE",
       "USER_ADD",
       "USER_DELETE",
       "TRANSFER_CANCELED"
      ]
     },
     "resource_id": {
      "type": "string"
     },
     "actor": {
      "$ref": "#/components/schemas/Actor"
     },
     "previous_object": true,
     "object": true
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "created_at",
     "event_type",
     "resource_id",
     "actor"
    ]
   },
   "ListEventLogResponse": {
    "properties": {
     "event_logs": {
      "items": {
       "$ref": "#/components/schemas/EventLog"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "event_logs"
    ]
   },
   "GetEventLogResponse": {
    "properties": {
     "event_log": {
      "$ref": "#/components/schemas/EventLog"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "event_log"
    ]
   },
   "ListWebhookResponse": {
    "properties": {
     "webhooks": {
      "items": {
       "$ref": "#/components/schemas/Webhook"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "webhooks"
    ]
   },
   "StringArray": {
    "items": {
     "type": "string"
    },
    "type": "array"
   },
   "Webhook": {
    "properties": {
     "id": {
      "type": "string"
     },
     "name": {
      "type": "string",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "examples": [
       "slack"
      ]
     },
     "url": {
      "type": "string",
      "examples": [
       "https://api.acme.com/hooks/data-export"
      ]
     },
     "api_key": {
      "type": "string"
     },
     "api_version": {
      "type": "string",
      "default": "2023-10-15"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "format": "date-time"
     },
     "events": {
      "$ref": "#/components/schemas/StringArray"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "name",
     "vendor",
     "url",
     "api_version",
     "created_at",
     "updated_at",
     "events"
    ]
   },
   "CreateWebhookRequest": {
    "properties": {
     "webhook": {
      "$ref": "#/components/schemas/WebhookOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "webhook"
    ]
   },
   "WebhookOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/HttpWebhookOptions",
      "title": "HTTP"
     },
     {
      "$ref": "#/components/schemas/PagerDutyWebhookOptions",
      "title": "PagerDuty"
     },
     {
      "$ref": "#/components/schemas/SlackWebhookOptions",
      "title": "Slack"
     },
     {
      "$ref": "#/components/schemas/DatadogWebhookOptions",
      "title": "Datadog"
     }
    ]
   },
   "WebhookResponse": {
    "properties": {
     "webhook": {
      "$ref": "#/components/schemas/Webhook"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "webhook"
    ]
   },
   "UpdateWebhookOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/UpdateHttpWebhookOptions",
      "title": "HTTP"
     },
     {
      "$ref": "#/components/schemas/UpdatePagerDutyWebhookOptions",
      "title": "PagerDuty"
     },
     {
      "$ref": "#/components/schemas/UpdateSlackWebhookOptions",
      "title": "Slack"
     },
     {
      "$ref": "#/components/schemas/UpdateDatadogWebhookOptions",
      "title": "Datadog"
     }
    ]
   },
   "UpdateWebhookRequest": {
    "properties": {
     "webhook": {
      "$ref": "#/components/schemas/UpdateWebhookOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "webhook"
    ]
   },
   "NoResponseBody": {
    "properties": {},
    "additionalProperties": false,
    "type": "object"
   },
   "AWSAccessKeysResource": {
    "properties": {
     "access_id": {
      "type": "string",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_id"
    ]
   },
   "AWSIAMRoleResource": {
    "properties": {
     "aws_iam_role_arn": {
      "type": "string",
      "examples": [
       "arn:aws:iam::123456789012:role/service-role/role-name"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "aws_iam_role_arn"
    ]
   },
   "AthenaSourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/AthenaSourceResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/AthenaSourceResourceAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/AthenaSourceResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/AthenaSourceResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "BigQueryGCSBucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-central1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "BigQuerySourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/BigQuerySourceResourceGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQuerySourceResourceFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQuerySourceResourceGCPServiceAccountKey"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/BigQuerySourceResourceFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/BigQuerySourceResourceGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/BigQuerySourceResourceGCPServiceAccountRole"
     },
     "propertyName": "auth_method"
    }
   },
   "ClickhouseGCSBucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/GCSAccessKeysResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "gcs_hmac_keys"
    ]
   },
   "ClickhouseS3BucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "examples": [
       "aws_iam_role"
      ]
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "bucket_auth_method"
    ]
   },
   "ClickhouseSourceResource": {
    "properties": {
     "cluster": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       8443
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "bucket_vendor": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/ClickhouseS3BucketResource"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/ClickhouseGCSBucketResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "bucket_vendor"
    ]
   },
   "DatabricksHiveResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksHiveResourceBucketS3"
     }
    ]
   },
   "DatabricksS3BucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "aws_access_keys"
    ]
   },
   "DatabricksSourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksSourceResourceHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksSourceResourceUnityCatalog"
     }
    ],
    "discriminator": {
     "mapping": {
      "hive": "#/components/schemas/DatabricksSourceResourceHive",
      "unity_catalog": "#/components/schemas/DatabricksSourceResourceUnityCatalog"
     },
     "propertyName": "metastore"
    }
   },
   "FederatedGCPServiceAccountRoleResource": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "GCPServiceAccountKeyResource": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "GCPServiceAccountRoleResource": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "GCSAccessKeysResource": {
    "properties": {
     "access_key": {
      "type": "string",
      "examples": [
       "GOOG1EXAMPLEACCESSID"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_key"
    ]
   },
   "ListSourceResponse": {
    "properties": {
     "sources": {
      "items": {
       "$ref": "#/components/schemas/SourceResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sources"
    ]
   },
   "MockSourceResource": {
    "properties": {
     "database": {
      "type": "string",
      "examples": [
       "mock"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database"
    ]
   },
   "MongoDBSourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/MongoDBSourceResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/MongoDBSourceResourcePasswordAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_iam_role": "#/components/schemas/MongoDBSourceResourceAWSIAMRole",
      "password_auth": "#/components/schemas/MongoDBSourceResourcePasswordAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "MotherDuckSourceResource": {
    "properties": {
     "database": {
      "type": "string",
      "examples": [
       "my_db"
      ]
     },
     "auth_method": {
      "type": "string",
      "examples": [
       "access_token_auth"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database",
     "auth_method"
    ]
   },
   "MySQLSourceResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "mysql"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "OauthClientSecretAuthResource": {
    "properties": {
     "client_id": {
      "type": "string",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "client_id"
    ]
   },
   "OracleSourceResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "ORCL"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "PasswordAuthResource": {
    "properties": {
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "username"
    ]
   },
   "PostgresSourceResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "PublicKeyAuth": {
    "properties": {
     "public_key": {
      "type": "string",
      "enum": [
       "primary_public_key",
       "secondary_public_key"
      ],
      "title": "Public key",
      "description": "This is the public SSH key that will be used to establish the SSH tunnel. It should be added to the list of authorized keys on the bastion host."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "public_key"
    ]
   },
   "RedshiftAccessKeysResource": {
    "properties": {
     "access_id": {
      "type": "string",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_id"
    ]
   },
   "RedshiftS3BucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "RedshiftServerlessSourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftServerlessSourceResourceAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftServerlessSourceResourceAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftServerlessSourceResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftServerlessSourceResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "RedshiftSourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftSourceResourceAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftSourceResourceAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftSourceResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftSourceResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "S3BucketResource": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "SQLServerResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       1433
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "SSHTunnelResource": {
    "properties": {
     "ssh_tunnel_host": {
      "type": "string",
      "examples": [
       "bastion.example.com"
      ]
     },
     "ssh_tunnel_port": {
      "type": "integer",
      "examples": [
       22
      ]
     },
     "ssh_tunnel_username": {
      "type": "string",
      "examples": [
       "data-export"
      ]
     },
     "ssh_public_key": {
      "type": "string"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "SnowflakeSourceResource": {
    "properties": {
     "username": {
      "type": "string",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "ANALYTICS"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ]
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "username",
     "host",
     "port",
     "database",
     "auth_method"
    ]
   },
   "SourceResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SourceResourceAthena"
     },
     {
      "$ref": "#/components/schemas/SourceResourceAuroraMySQL"
     },
     {
      "$ref": "#/components/schemas/SourceResourceAuroraPostgres"
     },
     {
      "$ref": "#/components/schemas/SourceResourceBigQuery"
     },
     {
      "$ref": "#/components/schemas/SourceResourceClickHouse"
     },
     {
      "$ref": "#/components/schemas/SourceResourceDatabricks"
     },
     {
      "$ref": "#/components/schemas/SourceResourceMock"
     },
     {
      "$ref": "#/components/schemas/SourceResourceMongoDB"
     },
     {
      "$ref": "#/components/schemas/SourceResourceMotherDuck"
     },
     {
      "$ref": "#/components/schemas/SourceResourceMySQL"
     },
     {
      "$ref": "#/components/schemas/SourceResourceOracle"
     },
     {
      "$ref": "#/components/schemas/SourceResourcePostgres"
     },
     {
      "$ref": "#/components/schemas/SourceResourceRedshift"
     },
     {
      "$ref": "#/components/schemas/SourceResourceRedshiftServerless"
     },
     {
      "$ref": "#/components/schemas/SourceResourceSingleStore"
     },
     {
      "$ref": "#/components/schemas/SourceResourceSnowflake"
     },
     {
      "$ref": "#/components/schemas/SourceResourceSQLServer"
     }
    ]
   },
   "AWSAccessKeys": {
    "properties": {
     "access_id": {
      "type": "string",
      "title": "Bucket access ID",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "title": "Bucket secret key"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_id",
     "secret_key"
    ]
   },
   "AWSIAMRole": {
    "properties": {
     "aws_iam_role_arn": {
      "type": "string",
      "title": "IAM role ARN",
      "examples": [
       "arn:aws:iam::123456789012:role/service-role/role-name"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "aws_iam_role_arn"
    ]
   },
   "AccessToken": {
    "properties": {
     "access_token": {
      "type": "string",
      "title": "Personal access token",
      "description": "The access token to use for the connection."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_token"
    ]
   },
   "AthenaSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/AthenaSourceOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/AthenaSourceOptionsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/AthenaSourceOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/AthenaSourceOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "BigQueryGCSBucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "GCS bucket region",
      "description": "The region of the staging GCS bucket. Must be a valid GCS [bucket location](https://cloud.google.com/storage/docs/locations)",
      "examples": [
       "us-central1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "BigQuerySourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/BigQuerySourceOptionsGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQuerySourceOptionsFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQuerySourceOptionsGCPServiceAccountKey"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/BigQuerySourceOptionsFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/BigQuerySourceOptionsGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/BigQuerySourceOptionsGCPServiceAccountRole"
     },
     "propertyName": "auth_method"
    }
   },
   "ClickhouseGCSBucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "Bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/GCSAccessKeys",
      "description": "Required details for GCS HMAC key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "gcs_hmac_keys"
    ]
   },
   "ClickhouseS3BucketParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/ClickhouseS3BucketParamsAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/ClickhouseS3BucketParamsAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/ClickhouseS3BucketParamsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/ClickhouseS3BucketParamsAWSIAMRole"
     },
     "propertyName": "bucket_auth_method"
    }
   },
   "ClickhouseSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/ClickhouseSourceOptionsBucketS3"
     },
     {
      "$ref": "#/components/schemas/ClickhouseSourceOptionsBucketGCS"
     },
     {
      "$ref": "#/components/schemas/ClickhouseSourceOptionsBucketImplicit"
     }
    ],
    "discriminator": {
     "mapping": {
      "bucket_gcs": "#/components/schemas/ClickhouseSourceOptionsBucketGCS",
      "bucket_implicit": "#/components/schemas/ClickhouseSourceOptionsBucketImplicit",
      "bucket_s3": "#/components/schemas/ClickhouseSourceOptionsBucketS3"
     },
     "propertyName": "bucket_vendor"
    }
   },
   "CreateSourceRequest": {
    "properties": {
     "source": {
      "$ref": "#/components/schemas/SourceOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "source"
    ]
   },
   "CredentialSource": {
    "properties": {
     "environment_id": {
      "type": "string",
      "examples": [
       "aws1"
      ]
     },
     "region_url": {
      "type": "string",
      "examples": [
       "http://169.254.169.254/latest/meta-data/placement/availability-zone"
      ]
     },
     "url": {
      "type": "string",
      "examples": [
       "http://169.254.169.254/latest/meta-data/iam/security-credentials"
      ]
     },
     "regional_cred_verification_url": {
      "type": "string",
      "examples": [
       "https://sts.us-east-1.amazonaws.com?Action=GetCallerIdentity\u0026Version=2011-06-15"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "environment_id",
     "region_url",
     "url",
     "regional_cred_verification_url"
    ]
   },
   "DatabricksHiveOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksHiveOptionsBucketS3"
     }
    ],
    "discriminator": {
     "mapping": {
      "bucket_s3": "#/components/schemas/DatabricksHiveOptionsBucketS3"
     },
     "propertyName": "bucket_vendor"
    }
   },
   "DatabricksS3BucketParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksS3BucketParamsAWSAccessKeys"
     }
    ]
   },
   "DatabricksSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksSourceOptionsAccessTokenAuthHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksSourceOptionsAccessTokenAuthUnityCatalog"
     },
     {
      "$ref": "#/components/schemas/DatabricksSourceOptionsOAuthClientSecretAuthHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksSourceOptionsOAuthClientSecretAuthUnityCatalog"
     }
    ]
   },
   "FederatedGCPServiceAccountRole": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "workload_identity_federation_metadata": {
      "$ref": "#/components/schemas/GcpExternalAccountMetadata",
      "title": "Workload identity metadata"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "GCPServiceAccountKey": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "service_account_key": {
      "title": "JSON Token",
      "description": "The credentials (JSON) that will be used. Create a service account just for this use."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email",
     "service_account_key"
    ]
   },
   "GCPServiceAccountRole": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "GCSAccessKeys": {
    "properties": {
     "access_key": {
      "type": "string",
      "title": "Bucket access ID",
      "description": "The access key to use for authentication.",
      "examples": [
       "GOOG1EXAMPLEACCESSID"
      ]
     },
     "secret": {
      "type": "string",
      "title": "Bucket secret key",
      "description": "The secret to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_key",
     "secret"
    ]
   },
   "GcpExternalAccountMetadata": {
    "properties": {
     "type": {
      "type": "string",
      "examples": [
       "external_account"
      ]
     },
     "audience": {
      "type": "string",
      "examples": [
       "//iam.googleapis.com/projects/123456789/locations/global/workloadIdentityPools/data-export-pool/providers/data-export-provider"
      ]
     },
     "subject_token_type": {
      "type": "string",
      "examples": [
       "urn:ietf:params:oauth:token-type:aws4_request"
      ]
     },
     "service_account_impersonation_url": {
      "type": "string",
      "examples": [
       "https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/data-export@acme-analytics-1234.iam.gserviceaccount.com:generateAccessToken"
      ]
     },
     "token_url": {
      "type": "string",
      "examples": [
       "https://sts.googleapis.com/v1/token"
      ]
     },
     "credential_source": {
      "$ref": "#/components/schemas/CredentialSource"
     }
    },
    "type": "object",
    "required": [
     "type",
     "audience",
     "subject_token_type",
     "service_account_impersonation_url",
     "token_url",
     "credential_source"
    ]
   },
   "MockSourceOptions": {
    "properties": {
     "database": {
      "type": "string",
      "description": "Mock database name.",
      "examples": [
       "mock"
      ]
     },
     "error_code": {
      "type": "string",
      "examples": [
       "PRQL-ZDJR"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database"
    ]
   },
   "MongoDBSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/MongoDBSourceOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/MongoDBSourceOptionsPasswordAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_iam_role": "#/components/schemas/MongoDBSourceOptionsAWSIAMRole",
      "password_auth": "#/components/schemas/MongoDBSourceOptionsPasswordAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "MotherDuckSourceOptions": {
    "properties": {
     "database": {
      "type": "string",
      "title": "Database",
      "description": "MotherDuck database name.",
      "examples": [
       "my_db"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_token_auth."
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database",
     "auth_method",
     "access_token_auth"
    ]
   },
   "MySQLSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Database",
      "examples": [
       "mysql"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth"
    ]
   },
   "OauthClientSecretAuth": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "description": "The Databricks-generated OAuth client ID.",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client Secret",
      "description": "The Databricks-generated OAuth client secret."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "client_id",
     "client_secret"
    ]
   },
   "OracleSSLParams": {
    "properties": {
     "wallet": {
      "type": "string",
      "title": "Oracle Wallet",
      "description": "Base64 encoded contents of Oracle Wallet."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "OracleSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OracleSourceOptionsSSLEnabled"
     },
     {
      "$ref": "#/components/schemas/OracleSourceOptionsSSLDisabled"
     }
    ]
   },
   "PasswordAuth": {
    "properties": {
     "username": {
      "type": "string",
      "title": "Username",
      "examples": [
       "data_export_user"
      ]
     },
     "password": {
      "type": "string",
      "title": "Password"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "username",
     "password"
    ]
   },
   "PasswordOnlyAuth": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Password"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "password"
    ]
   },
   "PostgresSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "connection_timeout_in_seconds": {
      "type": "integer",
      "minimum": 0,
      "title": "Connection Timeout",
      "description": "Duration to wait for successful connection to Postgres",
      "examples": [
       30
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method",
     "password_auth"
    ]
   },
   "RedshiftAccessKeys": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Password"
     },
     "access_id": {
      "type": "string",
      "title": "Bucket access ID",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "title": "Bucket secret key"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "password",
     "access_id",
     "secret_key"
    ]
   },
   "RedshiftS3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "RedshiftServerlessSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftServerlessSourceOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/RedshiftServerlessSourceOptionsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftServerlessSourceOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftServerlessSourceOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "RedshiftSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftSourceOptionsAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftSourceOptionsAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftSourceOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftSourceOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "S3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region"
    ]
   },
   "SQLServerSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method",
     "password_auth"
    ]
   },
   "SSHTunnelParams": {
    "properties": {
     "ssh_tunnel_host": {
      "type": "string",
      "title": "SSH tunnel host",
      "examples": [
       "bastion.example.com"
      ]
     },
     "ssh_tunnel_port": {
      "type": "integer",
      "title": "SSH tunnel port",
      "examples": [
       22
      ]
     },
     "ssh_tunnel_username": {
      "type": "string",
      "title": "SSH tunnel username",
      "examples": [
       "data-export"
      ]
     },
     "ssh_public_key": {
      "type": "string",
      "enum": [
       "primary_public_key",
       "secondary_public_key"
      ],
      "title": "SSH Public Key",
      "description": "This is the public SSH key that will be used to establish the SSH tunnel. It should be added to the list of authorized keys on the bastion host."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "ssh_tunnel_host",
     "ssh_tunnel_port",
     "ssh_tunnel_username"
    ]
   },
   "SnowflakeSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SnowflakeSourceOptionsPasswordAuth"
     },
     {
      "$ref": "#/components/schemas/SnowflakeSourceOptionsPublicKeyAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "password_auth": "#/components/schemas/SnowflakeSourceOptionsPasswordAuth",
      "public_key_auth": "#/components/schemas/SnowflakeSourceOptionsPublicKeyAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "SourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SourceOptionsAthena"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsAuroraMySQL"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsAuroraPostgres"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsBigQuery"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsClickHouse"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsDatabricks"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsMock"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsMongoDB"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsMotherDuck"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsMySQL"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsOracle"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsPostgres"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsRedshift"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsRedshiftServerless"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsSingleStore"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsSnowflake"
     },
     {
      "$ref": "#/components/schemas/SourceOptionsSQLServer"
     }
    ],
    "discriminator": {
     "mapping": {
      "athena": "#/components/schemas/SourceOptionsAthena",
      "aurora_mysql": "#/components/schemas/SourceOptionsAuroraMySQL",
      "aurora_postgres": "#/components/schemas/SourceOptionsAuroraPostgres",
      "bigquery": "#/components/schemas/SourceOptionsBigQuery",
      "clickhouse": "#/components/schemas/SourceOptionsClickHouse",
      "databricks": "#/components/schemas/SourceOptionsDatabricks",
      "mock": "#/components/schemas/SourceOptionsMock",
      "mongodb": "#/components/schemas/SourceOptionsMongoDB",
      "motherduck": "#/components/schemas/SourceOptionsMotherDuck",
      "mysql": "#/components/schemas/SourceOptionsMySQL",
      "oracle": "#/components/schemas/SourceOptionsOracle",
      "postgres": "#/components/schemas/SourceOptionsPostgres",
      "redshift": "#/components/schemas/SourceOptionsRedshift",
      "redshift_serverless": "#/components/schemas/SourceOptionsRedshiftServerless",
      "singlestore": "#/components/schemas/SourceOptionsSingleStore",
      "snowflake": "#/components/schemas/SourceOptionsSnowflake",
      "sql_server": "#/components/schemas/SourceOptionsSQLServer"
     },
     "propertyName": "vendor"
    }
   },
   "SourceResponse": {
    "properties": {
     "ssh_public_key": {
      "type": "string"
     },
     "source": {
      "$ref": "#/components/schemas/SourceResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "source"
    ]
   },
   "UpdateAWSAccessKeys": {
    "properties": {
     "access_id": {
      "type": "string",
      "description": "The access key ID to use for authentication.",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "description": "The secret key to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateAthenaSourceOptions": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Optional field to specify the Athena Workgroup to use. Must be configured for Athena engine version 3. If left blank, the default Workgroup is used.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Query results location",
      "description": "The name of the folder where the query results will be stored. This folder will be created within the S3 bucket.",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this source."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "workgroup",
     "connection_database",
     "auth_method",
     "bucket_s3"
    ]
   },
   "UpdateBigQueryGCSBucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the GCS bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the staging GCS bucket. Must be a valid GCS [bucket location](https://cloud.google.com/storage/docs/locations)",
      "examples": [
       "us-central1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateBigQuerySourceOptions": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this source."
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountRole",
      "description": "Required details if authenticating using a GCP service account role."
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateFederatedGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountKey",
      "description": "Required details if authenticating using a GCP service account key."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/UpdateBigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "project_id",
     "auth_method"
    ]
   },
   "UpdateClickhouseGCSBucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the GCS bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/UpdateGCSAccessKeys",
      "description": "Required details for GCS HMAC key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateClickhouseS3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3 bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "description": "Authentication method for S3 bucket."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details for access key authentication."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details for AWS IAM role authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateClickhouseSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_gcs",
       "bucket_implicit"
      ],
      "title": "Bucket vendor",
      "description": "'s3' for Amazon S3 'gcs' for Google Cloud Storage"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateClickhouseS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/UpdateClickhouseGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "bucket_vendor"
    ]
   },
   "UpdateDatabricksHiveOptions": {
    "properties": {
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3"
      ],
      "description": "Where the staging bucket is hosted."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateDatabricksS3BucketParams",
      "description": "Required details if using an S3 bucket for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDatabricksS3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3 bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDatabricksSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Databricks server.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Databricks server.",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "description": "The name of the catalog to write to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "description": "The HTTP path to use for the Databricks connection.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_token_auth."
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/UpdateOauthClientSecretAuth",
      "description": "The OAuth client secret authentication object."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ]
     },
     "hive": {
      "$ref": "#/components/schemas/UpdateDatabricksHiveOptions"
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateFederatedGCPServiceAccountRole": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "workload_identity_federation_metadata": {
      "$ref": "#/components/schemas/GcpExternalAccountMetadata",
      "title": "Workload identity metadata"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "UpdateGCPServiceAccountKey": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "description": "The email of the GCP service account to use for authentication.",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     },
     "service_account_key": {
      "description": "The full Google-generated JSON service account key object."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateGCPServiceAccountRole": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "description": "The email of the GCP service account to use for authentication.",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     },
     "workload_identity_federation_metadata": {
      "$ref": "#/components/schemas/GcpExternalAccountMetadata",
      "title": "Workload identity metadata",
      "description": "The federation metadata to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateGCSAccessKeys": {
    "properties": {
     "access_key": {
      "type": "string",
      "description": "The access key to use for authentication.",
      "examples": [
       "GOOG1EXAMPLEACCESSID"
      ]
     },
     "secret": {
      "type": "string",
      "description": "The secret to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateMockSourceOptions": {
    "properties": {
     "database": {
      "type": "string",
      "description": "Mock database name.",
      "examples": [
       "mock"
      ]
     },
     "error_code": {
      "type": "string",
      "examples": [
       "PRQL-ZDJR"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database"
    ]
   },
   "UpdateMongoDBSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the MongoDB server.",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "description": "The port of the MongoDB server.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "description": "The name of the MongoDB Authentication Database.",
      "examples": [
       "admin"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details if authenticating with username/password."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the MongoDB connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateMotherDuckSourceOptions": {
    "properties": {
     "database": {
      "type": "string",
      "description": "MotherDuck database name.",
      "examples": [
       "my_db"
      ]
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database"
    ]
   },
   "UpdateMySQLSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the MySQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the MySQL server.",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "mysql"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the MySQL connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOauthClientSecretAuth": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client Secret"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOracleSourceOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/UpdateOracleSourceOptionsSSLEnabled"
     },
     {
      "$ref": "#/components/schemas/UpdateOracleSourceOptionsSSLDisabled"
     }
    ]
   },
   "UpdatePasswordAuth": {
    "properties": {
     "username": {
      "type": "string",
      "description": "The username to use for authentication.",
      "examples": [
       "data_export_user"
      ]
     },
     "password": {
      "type": "string",
      "description": "The password to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdatePasswordOnlyAuth": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Password"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "password"
    ]
   },
   "UpdatePostgresSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the PostgreSQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the PostgreSQL server.",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the PostgreSQL connection.",
      "default": false
     },
     "connection_timeout_in_seconds": {
      "type": "integer",
      "minimum": 0,
      "title": "Connection Timeout (in seconds)",
      "description": "Duration to wait for successful connection to Postgres",
      "examples": [
       30
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateRedshiftAccessKeys": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Password"
     },
     "access_id": {
      "type": "string",
      "title": "Bucket access ID",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "title": "Bucket secret key"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "password",
     "access_id",
     "secret_key"
    ]
   },
   "UpdateRedshiftS3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3 bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateRedshiftServerlessSourceOptions": {
    "properties": {
     "workgroup": {
      "type": "string",
      "description": "The name of the Redshift Serverless workgroup.",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "description": "The hostname to use to connect.",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port to use to connect.",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "title": "Auth method"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateRedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method"
    ]
   },
   "UpdateRedshiftSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Redshift server.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Redshift server.",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "dev"
      ]
     },
     "cluster": {
      "type": "string",
      "description": "The name of the Redshift cluster to connect to.",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "examples": [
       "data_export_user"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this destination."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateRedshiftAccessKeys",
      "description": "Required details for username/password authentication."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateRedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method"
    ]
   },
   "UpdateS3BucketParams": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3 bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSQLServerSourceOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the PostgreSQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the PostgreSQL server.",
      "examples": [
       1433
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "analytics"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the PostgreSQL connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSnowflakeSourceOptions": {
    "properties": {
     "username": {
      "type": "string",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "description": "The hostname of the Snowflake server.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Snowflake server.",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ],
      "title": "Auth method"
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordOnlyAuth",
      "description": "Required details for username/password authentication."
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth",
      "description": "Required details for public key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSourceOptions": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max Concurrent Transfers",
      "description": "The max concurrent allowed for the source",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "readOnly": true
     },
     "athena": {
      "$ref": "#/components/schemas/UpdateAthenaSourceOptions",
      "title": "Amazon Athena"
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/UpdateMySQLSourceOptions",
      "title": "Amazon Aurora MySQL"
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/UpdatePostgresSourceOptions",
      "title": "Amazon Aurora PostgreSQL"
     },
     "bigquery": {
      "$ref": "#/components/schemas/UpdateBigQuerySourceOptions",
      "title": "Google BigQuery"
     },
     "clickhouse": {
      "$ref": "#/components/schemas/UpdateClickhouseSourceOptions",
      "title": "ClickHouse"
     },
     "databricks": {
      "$ref": "#/components/schemas/UpdateDatabricksSourceOptions",
      "title": "Databricks"
     },
     "mock": {
      "$ref": "#/components/schemas/UpdateMockSourceOptions",
      "title": "Mock (for testing in staging only)"
     },
     "motherduck": {
      "$ref": "#/components/schemas/UpdateMotherDuckSourceOptions",
      "title": "MotherDuck"
     },
     "mongodb": {
      "$ref": "#/components/schemas/UpdateMongoDBSourceOptions",
      "title": "MongoDB"
     },
     "mysql": {
      "$ref": "#/components/schemas/UpdateMySQLSourceOptions",
      "title": "MySQL"
     },
     "oracle": {
      "$ref": "#/components/schemas/UpdateOracleSourceOptions",
      "title": "Oracle"
     },
     "postgres": {
      "$ref": "#/components/schemas/UpdatePostgresSourceOptions",
      "title": "PostgreSQL"
     },
     "redshift": {
      "$ref": "#/components/schemas/UpdateRedshiftSourceOptions",
      "title": "Amazon Redshift"
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/UpdateRedshiftServerlessSourceOptions",
      "title": "Amazon Redshift Serverless"
     },
     "singlestore": {
      "$ref": "#/components/schemas/UpdateMySQLSourceOptions",
      "title": "SingleStore"
     },
     "snowflake": {
      "$ref": "#/components/schemas/UpdateSnowflakeSourceOptions",
      "title": "Snowflake"
     },
     "sql_server": {
      "$ref": "#/components/schemas/UpdateSQLServerSourceOptions",
      "title": "SQL Server"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSourceRequest": {
    "properties": {
     "source": {
      "$ref": "#/components/schemas/UpdateSourceOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "source"
    ]
   },
   "ABSDestinationResource": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "container_name": {
      "type": "string",
      "examples": [
       "data-export"
      ]
     },
     "auth_method": {
      "type": "string",
      "examples": [
       "azure_service_shared_access_signature"
      ]
     },
     "storage_account_name": {
      "type": "string",
      "examples": [
       "acmestorage"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "folder",
     "container_name",
     "auth_method",
     "storage_account_name"
    ]
   },
   "AthenaDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/AthenaDestinationResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/AthenaDestinationResourceAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/AthenaDestinationResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/AthenaDestinationResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "BigQueryDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/BigQueryDestinationResourceGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationResourceFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationResourceGCPServiceAccountKey"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationResourceClientSecretWorkloadIdentityFederation"
     }
    ],
    "discriminator": {
     "mapping": {
      "client_secret_workload_identity_federation": "#/components/schemas/BigQueryDestinationResourceClientSecretWorkloadIdentityFederation",
      "federated_gcp_service_account_role": "#/components/schemas/BigQueryDestinationResourceFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/BigQueryDestinationResourceGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/BigQueryDestinationResourceGCPServiceAccountRole"
     },
     "propertyName": "auth_method"
    }
   },
   "ClickhouseDestinationResource": {
    "properties": {
     "cluster": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       8443
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "bucket_vendor": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/ClickhouseS3BucketResource"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/ClickhouseGCSBucketResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "write_database",
     "auth_method",
     "password_auth",
     "bucket_vendor"
    ]
   },
   "ClientSecretWorkloadIdentityFederationResource": {
    "properties": {
     "client_id": {
      "type": "string",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "token_url": {
      "type": "string",
      "examples": [
       "https://sts.googleapis.com/v1/token"
      ]
     },
     "scope": {
      "type": "string",
      "examples": [
       "https://www.googleapis.com/auth/cloud-platform"
      ]
     },
     "gcp_service_account_email": {
      "type": "string",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     },
     "gcp_wif_audience": {
      "type": "string",
      "examples": [
       "//iam.googleapis.com/projects/123456789/locations/global/workloadIdentityPools/data-export-pool/providers/data-export-provider"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "client_id",
     "token_url",
     "gcp_service_account_email",
     "gcp_wif_audience"
    ]
   },
   "CodedError": {
    "properties": {
     "error_code": {
      "type": "string",
      "description": "A unique Prequel error code in the format PRQL-XXXX identifying the specific error type."
     },
     "title": {
      "type": "string",
      "description": "Short human-readable label for the error."
     },
     "blame": {
      "type": "string",
      "description": "Who is responsible for the error. One of: first_party, third_party, prequel, host, or unknown."
     },
     "documentation_url": {
      "type": "string",
      "description": "Link to Prequel documentation for this specific error code."
     },
     "trace": {
      "type": "string",
      "description": "Raw error trace."
     },
     "message": {
      "type": "string",
      "description": "User-facing explanation of the error and how to resolve it."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "error_code",
     "title",
     "blame",
     "documentation_url",
     "trace",
     "message"
    ]
   },
   "DatabricksDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksDestinationResourceHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksDestinationResourceUnityCatalog"
     }
    ],
    "discriminator": {
     "mapping": {
      "hive": "#/components/schemas/DatabricksDestinationResourceHive",
      "unity_catalog": "#/components/schemas/DatabricksDestinationResourceUnityCatalog"
     },
     "propertyName": "metastore"
    }
   },
   "DeltaLakeDestinationResource": {
    "properties": {
     "storage": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_abs": {
      "$ref": "#/components/schemas/OpenTableFormatABSBucketResource"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketResource"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketResource"
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/OpenTableFormatS3CompatibleBucketResource"
     },
     "retention_window_days": {
      "type": "integer",
      "examples": [
       30
      ]
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ]
     },
     "deletion_vectors_disabled": {
      "type": "boolean"
     },
     "change_data_feed_disabled": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage",
     "retention_window_days",
     "column_mapping_mode"
    ]
   },
   "DestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DestinationResourceABS"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceAthena"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceAuroraMySQL"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceAuroraPostgres"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceBigQuery"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceClickHouse"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceDatabricks"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceDeltaLake"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceGCS"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceGoogleSheets"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceIceberg"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceMongoDB"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceMotherDuck"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceMySQL"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceOracle"
     },
     {
      "$ref": "#/components/schemas/DestinationResourcePlanetScale"
     },
     {
      "$ref": "#/components/schemas/DestinationResourcePostgres"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceRedshift"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceRedshiftServerless"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceSFTP"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceSingleStore"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceSnowflake"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceSQLServer"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceS3"
     },
     {
      "$ref": "#/components/schemas/DestinationResourceS3Compatible"
     }
    ]
   },
   "FileFormatCSV": {
    "properties": {
     "delimiter": {
      "type": "string",
      "title": "Delimiter",
      "description": "The delimiter to use for the CSV file. Must be a single character.",
      "examples": [
       ","
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "delimiter"
    ]
   },
   "GCSDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/GCSDestinationResourceFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/GCSDestinationResourceGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/GCSDestinationResourceGCSHMACKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/GCSDestinationResourceFederatedGCPServiceAccountRole",
      "gcp_service_account_role": "#/components/schemas/GCSDestinationResourceGCPServiceAccountRole",
      "gcs_hmac_keys": "#/components/schemas/GCSDestinationResourceGCSHMACKeys"
     },
     "propertyName": "auth_method"
    }
   },
   "GoogleSheetsDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "https://docs.google.com/spreadsheets/d/1234567"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host"
    ]
   },
   "IcebergAwsGlueCatalogResource": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/IcebergAwsStorageOptionsResource"
     },
     "database": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage_options",
     "database"
    ]
   },
   "IcebergAwsS3TablesCatalogResource": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/IcebergAwsStorageOptionsResource"
     },
     "namespace": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "table_bucket_arn": {
      "type": "string",
      "examples": [
       "arn:aws:s3tables:us-east-1:123456789012:bucket/acme-tables"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage_options",
     "namespace",
     "table_bucket_arn"
    ]
   },
   "IcebergAwsStorageOptionsResource": {
    "properties": {
     "storage": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage"
    ]
   },
   "IcebergDestinationResource": {
    "properties": {
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_glue",
       "catalog_s3_tables",
       "catalog_iceberg_rest",
       "catalog_google_lakehouse"
      ],
      "title": "Catalog"
     },
     "catalog_iceberg_rest": {
      "$ref": "#/components/schemas/IcebergRestCatalogResource"
     },
     "catalog_s3_tables": {
      "$ref": "#/components/schemas/IcebergAwsS3TablesCatalogResource"
     },
     "catalog_glue": {
      "$ref": "#/components/schemas/IcebergAwsGlueCatalogResource"
     },
     "catalog_google_lakehouse": {
      "$ref": "#/components/schemas/IcebergGoogleLakehouseCatalogResource"
     },
     "retention_window_days": {
      "type": "integer",
      "examples": [
       30
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "catalog",
     "retention_window_days"
    ]
   },
   "IcebergGoogleLakehouseCatalogResource": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "catalog_name": {
      "type": "string",
      "examples": [
       "data_export_catalog"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "examples": [
       "gcp_service_account_role"
      ]
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRoleResource"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRoleResource"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/OpenTableFormatGCSDestinationServiceAccountKeyResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "project_id",
     "catalog_name",
     "schema",
     "bucket_name",
     "auth_method"
    ]
   },
   "IcebergRestCatalogResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "iceberg.example.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "namespace": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "warehouse": {
      "type": "string",
      "examples": [
       "s3://acme-data-export-staging/warehouse"
      ]
     },
     "auth_method": {
      "type": "string",
      "examples": [
       "oauth_client_secret_auth"
      ]
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthDelegatedCredentialAuthResource"
     },
     "storage_options": {
      "$ref": "#/components/schemas/IcebergStorageOptionsResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "namespace",
     "warehouse",
     "auth_method",
     "storage_options"
    ]
   },
   "IcebergStorageOptionsResource": {
    "properties": {
     "storage": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_abs": {
      "$ref": "#/components/schemas/OpenTableFormatABSBucketResource"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketResource"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketResource"
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/OpenTableFormatS3CompatibleBucketResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage"
    ]
   },
   "ListDestinationResponse": {
    "properties": {
     "destinations": {
      "items": {
       "$ref": "#/components/schemas/DestinationResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "destinations"
    ]
   },
   "MetricsForTransferredModel": {
    "properties": {
     "model_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "model_name": {
      "type": "string",
      "examples": [
       "orders"
      ]
     },
     "rows_transferred": {
      "type": "integer"
     },
     "delta_rows_transferred": {
      "type": "integer"
     },
     "volume_transferred_in_mb": {
      "type": "number"
     },
     "start_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "most_recent_last_updated_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "error": {
      "$ref": "#/components/schemas/CodedError"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_id",
     "rows_transferred",
     "delta_rows_transferred",
     "volume_transferred_in_mb",
     "start_transfer_window_at",
     "end_transfer_window_at",
     "most_recent_last_updated_at",
     "error"
    ]
   },
   "MongoDBDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/MongoDBDestinationResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/MongoDBDestinationResourcePasswordAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_iam_role": "#/components/schemas/MongoDBDestinationResourceAWSIAMRole",
      "password_auth": "#/components/schemas/MongoDBDestinationResourcePasswordAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "MotherDuckDestinationResource": {
    "properties": {
     "database": {
      "type": "string",
      "examples": [
       "my_db"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database",
     "schema",
     "auth_method"
    ]
   },
   "MySQLDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "mysql"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "write_database",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "OauthDelegatedCredentialAuthResource": {
    "properties": {
     "client_id": {
      "type": "string",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "OpenTableFormatABSBucketResource": {
    "properties": {
     "container_name": {
      "type": "string",
      "examples": [
       "data-export"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "storage_account_name": {
      "type": "string",
      "examples": [
       "acmestorage"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "examples": [
       "azure_storage_account_access_key"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "container_name",
     "folder",
     "storage_account_name",
     "bucket_auth_method"
    ]
   },
   "OpenTableFormatGCSBucketResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketResourceGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketResourceFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketResourceGCPServiceAccountKey"
     }
    ]
   },
   "OpenTableFormatGCSDestinationServiceAccountKeyResource": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email"
    ]
   },
   "OpenTableFormatS3BucketResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketResourceAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/OpenTableFormatS3BucketResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/OpenTableFormatS3BucketResourceAWSIAMRole"
     },
     "propertyName": "bucket_auth_method"
    }
   },
   "OpenTableFormatS3CompatibleBucketResource": {
    "properties": {
     "bucket_host": {
      "type": "string",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "bucket_port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "examples": [
       443
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ]
     },
     "access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource"
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_host",
     "bucket_port",
     "folder",
     "bucket_name",
     "bucket_auth_method"
    ]
   },
   "OracleDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "ORCL"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "PGPEncryption": {
    "properties": {
     "pgp_public_key": {
      "type": "string",
      "title": "PGP public key",
      "description": "PGP public key in ASCII armored format."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "pgp_public_key"
    ]
   },
   "PostgresDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "connection_timeout_in_seconds": {
      "type": "integer",
      "title": "Connection Timeout",
      "description": "Duration to wait for successful connection to Postgres",
      "examples": [
       30
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "RedshiftDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftDestinationResourceAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftDestinationResourceAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftDestinationResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftDestinationResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "RedshiftServerlessDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationResourceAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationResourceAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftServerlessDestinationResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftServerlessDestinationResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "S3CompatibleDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ]
     },
     "access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "folder",
     "bucket_name",
     "auth_method",
     "use_ssh_tunnel"
    ]
   },
   "S3DestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/S3DestinationResourceAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/S3DestinationResourceAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/S3DestinationResourceAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/S3DestinationResourceAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "SFTPDestinationResource": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SFTPDestinationResourcePgp"
     }
    ],
    "discriminator": {
     "mapping": {
      "pgp": "#/components/schemas/SFTPDestinationResourcePgp"
     },
     "propertyName": "file_encryption"
    }
   },
   "SQLServerDestinationResource": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       1433
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ]
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "primary_key_collation": {
      "type": "string",
      "examples": [
       "SQL_Latin1_General_CP1_CI_AS"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "auth_method",
     "password_auth",
     "use_ssh_tunnel"
    ]
   },
   "ScannableTransfer": {
    "properties": {
     "id": {
      "type": "string"
     },
     "source_ids": {
      "$ref": "#/components/schemas/StringArray"
     },
     "destination_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "status": {
      "type": "string"
     },
     "is_full_refresh": {
      "type": "boolean"
     },
     "models": {
      "$ref": "#/components/schemas/StringArray"
     },
     "model_metrics": {
      "$ref": "#/components/schemas/TransferModelMetrics"
     },
     "models_snapshot": {
      "$ref": "#/components/schemas/TransferModelsSnapshot"
     },
     "log": {
      "type": "string"
     },
     "submitted_at": {
      "type": "string",
      "format": "date-time"
     },
     "start_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "started_at": {
      "type": "string",
      "format": "date-time"
     },
     "ended_at": {
      "type": "string",
      "format": "date-time"
     },
     "rows_transferred": {
      "type": "integer"
     },
     "delta_rows_transferred": {
      "type": "integer"
     },
     "volume_transferred_in_mb": {
      "type": "number"
     },
     "is_debug_mode": {
      "type": "boolean"
     },
     "tags": {
      "$ref": "#/components/schemas/TransferTags"
     },
     "actor_id": {
      "type": "string"
     },
     "actor_type": {
      "type": "string"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "status",
     "is_full_refresh",
     "models",
     "log",
     "submitted_at",
     "start_transfer_window_at",
     "end_transfer_window_at",
     "rows_transferred",
     "delta_rows_transferred",
     "volume_transferred_in_mb",
     "is_debug_mode",
     "actor_id",
     "actor_type"
    ]
   },
   "SnowflakeDestinationResource": {
    "properties": {
     "username": {
      "type": "string",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "ANALYTICS"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ]
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "username",
     "host",
     "port",
     "database",
     "schema",
     "auth_method"
    ]
   },
   "TransferModelMetrics": {
    "items": {
     "$ref": "#/components/schemas/MetricsForTransferredModel"
    },
    "type": "array"
   },
   "TransferModelSnapshot": {
    "properties": {
     "model_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "model_name": {
      "type": "string",
      "examples": [
       "orders"
      ]
     },
     "revision_id": {
      "type": "string"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_id",
     "model_name",
     "revision_id"
    ]
   },
   "TransferModelsSnapshot": {
    "items": {
     "$ref": "#/components/schemas/TransferModelSnapshot"
    },
    "type": "array"
   },
   "TransferTags": {
    "additionalProperties": {
     "type": "string"
    },
    "type": "object"
   },
   "ABSDestinationOptions": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder Name",
      "description": "Name of folder to create and write data to. It will be created automatically if the folder does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "container_name": {
      "type": "string",
      "title": "Bucket name",
      "description": "Name of the Azure Blob Storage container to write data to.",
      "examples": [
       "data-export"
      ]
     },
     "storage_account_name": {
      "type": "string",
      "title": "Storage account name",
      "description": "Name of the Azure storage account that owns the container.",
      "examples": [
       "acmestorage"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "azure_service_shared_access_signature"
      ],
      "title": "Auth method",
      "description": "Authentication method. Currently must be set to azure_service_shared_access_signature."
     },
     "azure_service_shared_access_signature": {
      "$ref": "#/components/schemas/AzureServiceSharedAccessSignature",
      "description": "Required parameters to authenticate to Azure using a Service shared access signature."
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "folder",
     "container_name",
     "storage_account_name",
     "auth_method"
    ]
   },
   "AccessKeys": {
    "properties": {
     "access_id": {
      "type": "string",
      "title": "Bucket access ID",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "title": "Bucket secret key"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "access_id",
     "secret_key"
    ]
   },
   "AthenaDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/AthenaDestinationOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/AthenaDestinationOptionsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/AthenaDestinationOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/AthenaDestinationOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "AzureServiceSharedAccessSignature": {
    "properties": {
     "shared_access_signature_token": {
      "type": "string",
      "title": "Storage Account SAS Token"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "shared_access_signature_token"
    ]
   },
   "AzureStorageAccountAccessKey": {
    "properties": {
     "storage_account_access_key": {
      "type": "string",
      "title": "Access key"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage_account_access_key"
    ]
   },
   "BigQueryDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/BigQueryDestinationOptionsGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationOptionsFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationOptionsGCPServiceAccountKey"
     },
     {
      "$ref": "#/components/schemas/BigQueryDestinationOptionsClientSecretWorkloadIdentityFederation"
     }
    ],
    "discriminator": {
     "mapping": {
      "client_secret_workload_identity_federation": "#/components/schemas/BigQueryDestinationOptionsClientSecretWorkloadIdentityFederation",
      "federated_gcp_service_account_role": "#/components/schemas/BigQueryDestinationOptionsFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/BigQueryDestinationOptionsGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/BigQueryDestinationOptionsGCPServiceAccountRole"
     },
     "propertyName": "auth_method"
    }
   },
   "ClickhouseDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/ClickhouseDestinationOptionsBucketS3"
     },
     {
      "$ref": "#/components/schemas/ClickhouseDestinationOptionsBucketGCS"
     }
    ],
    "discriminator": {
     "mapping": {
      "bucket_gcs": "#/components/schemas/ClickhouseDestinationOptionsBucketGCS",
      "bucket_s3": "#/components/schemas/ClickhouseDestinationOptionsBucketS3"
     },
     "propertyName": "bucket_vendor"
    }
   },
   "ClientSecretWorkloadIdentityFederation": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "description": "The OAuth client ID issued by your identity provider.",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client secret",
      "description": "The OAuth client secret issued by your identity provider."
     },
     "token_url": {
      "type": "string",
      "minLength": 1,
      "pattern": "^https://.+$",
      "title": "Token endpoint URL",
      "description": "The https URL of your identity provider's OAuth token endpoint. It must issue JWT access tokens and be reachable from the public internet.",
      "examples": [
       "https://sts.googleapis.com/v1/token"
      ]
     },
     "scope": {
      "type": "string",
      "pattern": "^[ \\t\\r\\n\\f!#-\\[\\]-~]*$",
      "title": "Scopes",
      "description": "Optional OAuth scopes to request from your identity provider. Provide one or more scope values separated by spaces. Scope values are case-sensitive and duplicate values are rejected.",
      "examples": [
       "https://www.googleapis.com/auth/cloud-platform"
      ]
     },
     "gcp_service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "GCP service account email",
      "description": "The GCP service account Prequel impersonates after federating.",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "gcp_wif_audience": {
      "type": "string",
      "minLength": 1,
      "pattern": "^//iam\\.googleapis\\.com/.+/providers/[^/]+$",
      "title": "Workload identity federation audience",
      "description": "The full resource name of your workload identity pool provider (//iam.googleapis.com/projects/.../locations/global/workloadIdentityPools/.../providers/...).",
      "examples": [
       "//iam.googleapis.com/projects/123456789/locations/global/workloadIdentityPools/data-export-pool/providers/data-export-provider"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "client_id",
     "client_secret",
     "token_url",
     "gcp_service_account_email",
     "gcp_wif_audience"
    ]
   },
   "CreateDestinationRequest": {
    "properties": {
     "destination": {
      "$ref": "#/components/schemas/DestinationOptions"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "DatabricksDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DatabricksDestinationOptionsAccessTokenAuthHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksDestinationOptionsAccessTokenAuthUnityCatalog"
     },
     {
      "$ref": "#/components/schemas/DatabricksDestinationOptionsOAuthClientSecretAuthHive"
     },
     {
      "$ref": "#/components/schemas/DatabricksDestinationOptionsOAuthClientSecretAuthUnityCatalog"
     }
    ]
   },
   "DeltaLakeDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DeltaLakeDestinationOptionsBucketABS"
     },
     {
      "$ref": "#/components/schemas/DeltaLakeDestinationOptionsBucketGCS"
     },
     {
      "$ref": "#/components/schemas/DeltaLakeDestinationOptionsBucketS3"
     },
     {
      "$ref": "#/components/schemas/DeltaLakeDestinationOptionsBucketS3Compatible"
     }
    ],
    "discriminator": {
     "mapping": {
      "bucket_abs": "#/components/schemas/DeltaLakeDestinationOptionsBucketABS",
      "bucket_gcs": "#/components/schemas/DeltaLakeDestinationOptionsBucketGCS",
      "bucket_s3": "#/components/schemas/DeltaLakeDestinationOptionsBucketS3",
      "bucket_s3_compatible": "#/components/schemas/DeltaLakeDestinationOptionsBucketS3Compatible"
     },
     "propertyName": "storage"
    }
   },
   "DestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/DestinationOptionsABS"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsAthena"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsAuroraMySQL"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsAuroraPostgres"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsBigQuery"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsClickHouse"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsDatabricks"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsDeltaLake"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsGCS"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsGoogleSheets"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsIceberg"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsMock"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsMongoDB"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsMotherDuck"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsMySQL"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsOracle"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsPlanetScale"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsPostgres"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsRedshift"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsRedshiftServerless"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsSFTP"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsSingleStore"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsSnowflake"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsSQLServer"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsS3"
     },
     {
      "$ref": "#/components/schemas/DestinationOptionsS3Compatible"
     }
    ],
    "discriminator": {
     "mapping": {
      "abs": "#/components/schemas/DestinationOptionsABS",
      "athena": "#/components/schemas/DestinationOptionsAthena",
      "aurora_mysql": "#/components/schemas/DestinationOptionsAuroraMySQL",
      "aurora_postgres": "#/components/schemas/DestinationOptionsAuroraPostgres",
      "bigquery": "#/components/schemas/DestinationOptionsBigQuery",
      "clickhouse": "#/components/schemas/DestinationOptionsClickHouse",
      "databricks": "#/components/schemas/DestinationOptionsDatabricks",
      "delta_lake": "#/components/schemas/DestinationOptionsDeltaLake",
      "gcs": "#/components/schemas/DestinationOptionsGCS",
      "google_sheets": "#/components/schemas/DestinationOptionsGoogleSheets",
      "iceberg": "#/components/schemas/DestinationOptionsIceberg",
      "mock": "#/components/schemas/DestinationOptionsMock",
      "mongodb": "#/components/schemas/DestinationOptionsMongoDB",
      "motherduck": "#/components/schemas/DestinationOptionsMotherDuck",
      "mysql": "#/components/schemas/DestinationOptionsMySQL",
      "oracle": "#/components/schemas/DestinationOptionsOracle",
      "planetscale": "#/components/schemas/DestinationOptionsPlanetScale",
      "postgres": "#/components/schemas/DestinationOptionsPostgres",
      "redshift": "#/components/schemas/DestinationOptionsRedshift",
      "redshift_serverless": "#/components/schemas/DestinationOptionsRedshiftServerless",
      "s3": "#/components/schemas/DestinationOptionsS3",
      "s3_compatible": "#/components/schemas/DestinationOptionsS3Compatible",
      "sftp": "#/components/schemas/DestinationOptionsSFTP",
      "singlestore": "#/components/schemas/DestinationOptionsSingleStore",
      "snowflake": "#/components/schemas/DestinationOptionsSnowflake",
      "sql_server": "#/components/schemas/DestinationOptionsSQLServer"
     },
     "propertyName": "vendor"
    }
   },
   "GCSDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/GCSDestinationOptionsGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/GCSDestinationOptionsGCSHMACKeys"
     },
     {
      "$ref": "#/components/schemas/GCSDestinationOptionsFederatedGCPServiceAccountRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/GCSDestinationOptionsFederatedGCPServiceAccountRole",
      "gcp_service_account_role": "#/components/schemas/GCSDestinationOptionsGCPServiceAccountRole",
      "gcs_hmac_keys": "#/components/schemas/GCSDestinationOptionsGCSHMACKeys"
     },
     "propertyName": "auth_method"
    }
   },
   "GoogleSheetsDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": "^(https?:\\/\\/)?(www.)?docs.google.com\\/spreadsheets\\/d\\/.+(\\/)?$",
      "title": "Spreadsheet URL",
      "examples": [
       "https://docs.google.com/spreadsheets/d/1234567"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host"
    ]
   },
   "IcebergAwsGlueCatalogParams": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/IcebergAwsStorageOptionsParams"
     },
     "database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Database",
      "description": "Name of database in which to group written iceberg tables. It will be created automatically if the database does not exist.",
      "examples": [
       "analytics"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage_options",
     "database"
    ]
   },
   "IcebergAwsS3TablesCatalogParams": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/IcebergAwsStorageOptionsParams"
     },
     "namespace": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Namespace",
      "description": "Name of collection in which to group written iceberg tables. It will be created automatically if the namespace does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "table_bucket_arn": {
      "type": "string",
      "title": "Table Bucket ARN",
      "description": "ARN of S3 Tables bucket where Iceberg data will be written.",
      "examples": [
       "arn:aws:s3tables:us-east-1:123456789012:bucket/acme-tables"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage_options"
    ]
   },
   "IcebergAwsStorageOptionsParams": {
    "properties": {
     "storage": {
      "type": "string",
      "enum": [
       "bucket_s3"
      ],
      "title": "Storage"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParams"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "storage"
    ]
   },
   "IcebergDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/IcebergDestinationOptionsCatalogIcebergRest"
     },
     {
      "$ref": "#/components/schemas/IcebergDestinationOptionsCatalogGlue"
     },
     {
      "$ref": "#/components/schemas/IcebergDestinationOptionsCatalogS3Tables"
     },
     {
      "$ref": "#/components/schemas/IcebergDestinationOptionsCatalogGoogleLakehouse"
     }
    ],
    "discriminator": {
     "mapping": {
      "catalog_glue": "#/components/schemas/IcebergDestinationOptionsCatalogGlue",
      "catalog_google_lakehouse": "#/components/schemas/IcebergDestinationOptionsCatalogGoogleLakehouse",
      "catalog_iceberg_rest": "#/components/schemas/IcebergDestinationOptionsCatalogIcebergRest",
      "catalog_s3_tables": "#/components/schemas/IcebergDestinationOptionsCatalogS3Tables"
     },
     "propertyName": "catalog"
    }
   },
   "IcebergGoogleLakehouseCatalogParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsFederatedGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsGCPServiceAccountKey"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/IcebergGoogleLakehouseCatalogParamsGCPServiceAccountRole"
     },
     "propertyName": "auth_method"
    }
   },
   "IcebergRestCatalogParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/IcebergRestCatalogParamsOAuthBearerTokenAuth"
     },
     {
      "$ref": "#/components/schemas/IcebergRestCatalogParamsOAuthClientSecretAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "oauth_bearer_token_auth": "#/components/schemas/IcebergRestCatalogParamsOAuthBearerTokenAuth",
      "oauth_client_secret_auth": "#/components/schemas/IcebergRestCatalogParamsOAuthClientSecretAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "IcebergStorageOptionsParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/IcebergStorageOptionsParamsBucketABS"
     },
     {
      "$ref": "#/components/schemas/IcebergStorageOptionsParamsBucketGCS"
     },
     {
      "$ref": "#/components/schemas/IcebergStorageOptionsParamsBucketS3"
     },
     {
      "$ref": "#/components/schemas/IcebergStorageOptionsParamsBucketS3Compatible"
     }
    ],
    "discriminator": {
     "mapping": {
      "bucket_abs": "#/components/schemas/IcebergStorageOptionsParamsBucketABS",
      "bucket_gcs": "#/components/schemas/IcebergStorageOptionsParamsBucketGCS",
      "bucket_s3": "#/components/schemas/IcebergStorageOptionsParamsBucketS3",
      "bucket_s3_compatible": "#/components/schemas/IcebergStorageOptionsParamsBucketS3Compatible"
     },
     "propertyName": "storage"
    }
   },
   "MockDestinationOptions": {
    "properties": {
     "schema": {
      "type": "string",
      "description": "Mock schema name.",
      "examples": [
       "data_export"
      ]
     },
     "database": {
      "type": "string",
      "description": "Mock database name.",
      "examples": [
       "mock"
      ]
     },
     "error_code": {
      "type": "string",
      "examples": [
       "PRQL-ZDJR"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "schema",
     "database"
    ]
   },
   "MongoDBDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/MongoDBDestinationOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/MongoDBDestinationOptionsPasswordAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_iam_role": "#/components/schemas/MongoDBDestinationOptionsAWSIAMRole",
      "password_auth": "#/components/schemas/MongoDBDestinationOptionsPasswordAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "MotherDuckDestinationOptions": {
    "properties": {
     "database": {
      "type": "string",
      "title": "Database",
      "description": "MotherDuck database name.",
      "examples": [
       "my_db"
      ]
     },
     "schema": {
      "type": "string",
      "title": "Schema",
      "description": "MotherDuck schema name.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_token_auth."
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "database",
     "schema",
     "auth_method"
    ]
   },
   "MySQLDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the destination server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the destination server.",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Database",
      "description": "Name of the database to connect to.",
      "examples": [
       "mysql"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the connection. When false: SSL is preferred.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "write_database",
     "auth_method",
     "password_auth"
    ]
   },
   "OauthBearerTokenAuth": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Bearer Token"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "password"
    ]
   },
   "OauthDelegatedCredentialAuth": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client Secret"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "client_id",
     "client_secret"
    ]
   },
   "OpenTableFormatABSBucketParams": {
    "properties": {
     "container_name": {
      "type": "string",
      "title": "Bucket name",
      "examples": [
       "data-export"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder Name",
      "description": "Name of folder to create and write data to. It will be created automatically if the folder does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "storage_account_name": {
      "type": "string",
      "title": "Storage account name",
      "examples": [
       "acmestorage"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "azure_storage_account_access_key"
      ],
      "title": "Auth method"
     },
     "azure_storage_account_access_key": {
      "$ref": "#/components/schemas/AzureStorageAccountAccessKey",
      "description": "Required parameters to authenticate to Azure using an access key."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "container_name",
     "folder",
     "storage_account_name",
     "bucket_auth_method"
    ]
   },
   "OpenTableFormatGCSBucketParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParamsGCPServiceAccountRole"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParamsGCPServiceAccountKey"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParamsFederatedGCPServiceAccountRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "federated_gcp_service_account_role": "#/components/schemas/OpenTableFormatGCSBucketParamsFederatedGCPServiceAccountRole",
      "gcp_service_account_key": "#/components/schemas/OpenTableFormatGCSBucketParamsGCPServiceAccountKey",
      "gcp_service_account_role": "#/components/schemas/OpenTableFormatGCSBucketParamsGCPServiceAccountRole"
     },
     "propertyName": "bucket_auth_method"
    }
   },
   "OpenTableFormatGCSDestinationServiceAccountKey": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Destination service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "service_account_key": {
      "title": "JSON Token",
      "description": "The credentials (JSON) that will be used to load data into your BigQuery database. Create a service account just for this use."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "service_account_email",
     "service_account_key"
    ]
   },
   "OpenTableFormatS3BucketParams": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParamsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParamsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/OpenTableFormatS3BucketParamsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/OpenTableFormatS3BucketParamsAWSIAMRole"
     },
     "propertyName": "bucket_auth_method"
    }
   },
   "OpenTableFormatS3CompatibleBucketParams": {
    "properties": {
     "bucket_host": {
      "type": "string",
      "title": "Bucket host",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "bucket_port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Bucket port",
      "examples": [
       443
      ]
     },
     "bucket_name": {
      "type": "string",
      "title": "Bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_keys."
     },
     "access_keys": {
      "$ref": "#/components/schemas/AccessKeys",
      "description": "Required details for access key authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_host",
     "bucket_port",
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "access_keys"
    ]
   },
   "OracleDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/OracleDestinationOptionsSSLEnabled"
     },
     {
      "$ref": "#/components/schemas/OracleDestinationOptionsSSLDisabled"
     }
    ]
   },
   "PostgresDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the PostgreSQL server.",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the PostgreSQL connection. When false: SSL is required.",
      "default": false
     },
     "connection_timeout_in_seconds": {
      "type": "integer",
      "minimum": 0,
      "title": "Connection Timeout",
      "description": "Duration to wait for successful connection to Postgres",
      "examples": [
       30
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "schema",
     "auth_method",
     "password_auth"
    ]
   },
   "RedshiftDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftDestinationOptionsAWSAccessKeys"
     },
     {
      "$ref": "#/components/schemas/RedshiftDestinationOptionsAWSIAMRole"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftDestinationOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftDestinationOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "RedshiftServerlessDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationOptionsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/RedshiftServerlessDestinationOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/RedshiftServerlessDestinationOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "S3CompatibleDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Bucket host",
      "description": "Hostname of the S3-compatible server.",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the S3-compatible server.",
      "examples": [
       443
      ]
     },
     "folder": {
      "type": "string",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "Bucket name",
      "description": "Name of the S3-compatible bucket to write data to.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the S3-compatible connection. When false: SSL is enabled.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_keys."
     },
     "access_keys": {
      "$ref": "#/components/schemas/AccessKeys",
      "description": "Required details for access key authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "host",
     "port",
     "folder",
     "bucket_name",
     "auth_method",
     "access_keys"
    ]
   },
   "S3DestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/S3DestinationOptionsAWSIAMRole"
     },
     {
      "$ref": "#/components/schemas/S3DestinationOptionsAWSAccessKeys"
     }
    ],
    "discriminator": {
     "mapping": {
      "aws_access_keys": "#/components/schemas/S3DestinationOptionsAWSAccessKeys",
      "aws_iam_role": "#/components/schemas/S3DestinationOptionsAWSIAMRole"
     },
     "propertyName": "auth_method"
    }
   },
   "SFTPDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SFTPDestinationOptionsPgp"
     }
    ],
    "discriminator": {
     "mapping": {
      "pgp": "#/components/schemas/SFTPDestinationOptionsPgp"
     },
     "propertyName": "file_encryption"
    }
   },
   "SQLServerDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the SQL Server instance.",
      "examples": [
       1433
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the SQL Server connection. When false: SSL is enabled.",
      "default": false
     },
     "primary_key_collation": {
      "type": "string",
      "title": "Primary Key Collation",
      "description": "SQL Server collation to use for primary key column. Leave empty to use database default collation.",
      "examples": [
       "SQL_Latin1_General_CP1_CI_AS"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "schema",
     "auth_method",
     "password_auth"
    ]
   },
   "SnowflakeDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/SnowflakeDestinationOptionsPasswordAuth"
     },
     {
      "$ref": "#/components/schemas/SnowflakeDestinationOptionsPublicKeyAuth"
     }
    ],
    "discriminator": {
     "mapping": {
      "password_auth": "#/components/schemas/SnowflakeDestinationOptionsPasswordAuth",
      "public_key_auth": "#/components/schemas/SnowflakeDestinationOptionsPublicKeyAuth"
     },
     "propertyName": "auth_method"
    }
   },
   "DestinationResponse": {
    "properties": {
     "destination": {
      "$ref": "#/components/schemas/DestinationResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "destination"
    ]
   },
   "UpdateABSDestinationOptions": {
    "properties": {
     "folder": {
      "type": "string",
      "description": "The folder to write to. The folder will be created if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "container_name": {
      "type": "string",
      "description": "The name of the container to write to.",
      "examples": [
       "data-export"
      ]
     },
     "storage_account_name": {
      "type": "string",
      "description": "The name of the storage account configured for Prequel.",
      "examples": [
       "acmestorage"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "azure_service_shared_access_signature"
      ],
      "description": "Option for authentication methods. Currently only SAS is supported and must be set to azure_service_shared_access_signature."
     },
     "azure_service_shared_access_signature": {
      "$ref": "#/components/schemas/UpdateAzureServiceSharedAccessSignature",
      "description": "Required parameters to authenticate to Azure using a Service shared access signature."
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateAccessKeys": {
    "properties": {
     "access_id": {
      "type": "string",
      "description": "The access key ID to use for authentication.",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "secret_key": {
      "type": "string",
      "description": "The secret key to use for authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateAthenaDestinationOptions": {
    "properties": {
     "workgroup": {
      "type": "string",
      "description": "The Athena workgroup to use for this destination. This should be 'primary' unless otherwise specified during connection configuration.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "description": "The name of the folder in S3 in which the Athena query results are written (i.e. the automatically generated athena_output/ data).",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "description": "The name of the folder in S3 in which the final data will be written.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role (recommended)."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateAzureServiceSharedAccessSignature": {
    "properties": {
     "shared_access_signature_token": {
      "type": "string",
      "title": "Storage Account SAS Token"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateAzureStorageAccountAccessKey": {
    "properties": {
     "storage_account_access_key": {
      "type": "string",
      "title": "Access key"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateBigQueryDestinationOptions": {
    "properties": {
     "project_id": {
      "type": "string",
      "description": "The BigQuery project ID.",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role",
       "client_secret_workload_identity_federation"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this destination."
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateFederatedGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountKey",
      "description": "Required details if authenticating using a GCP service account key."
     },
     "client_secret_workload_identity_federation": {
      "$ref": "#/components/schemas/UpdateClientSecretWorkloadIdentityFederation",
      "description": "Required details if the authentication fetches an OAuth token from an external identity provider and federates into the GCP project to impersonate a service account you grant access to."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/UpdateBigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method"
    ]
   },
   "UpdateClickhouseDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the ClickHouse server.",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the ClickHouse server.",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "description": "The name of the ClickHouse cluster to use for this destination.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the database where final data will be written.",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_gcs",
       "bucket_implicit"
      ],
      "description": "Where the staging bucket is hosted."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateClickhouseS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/UpdateClickhouseGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the ClickHouse connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateClientSecretWorkloadIdentityFederation": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client secret"
     },
     "token_url": {
      "type": "string",
      "title": "Token endpoint URL",
      "examples": [
       "https://sts.googleapis.com/v1/token"
      ]
     },
     "scope": {
      "type": "string",
      "title": "Scopes",
      "examples": [
       "https://www.googleapis.com/auth/cloud-platform"
      ]
     },
     "gcp_service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "GCP service account email",
      "examples": [
       "data-export@acme-analytics-1234.iam.gserviceaccount.com"
      ]
     },
     "gcp_wif_audience": {
      "type": "string",
      "title": "Workload identity federation audience",
      "examples": [
       "//iam.googleapis.com/projects/123456789/locations/global/workloadIdentityPools/data-export-pool/providers/data-export-provider"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDatabricksDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Databricks server.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Databricks server.",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "description": "The name of the catalog to write to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "description": "The HTTP path to use for the Databricks connection.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_token_auth."
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/UpdateOauthClientSecretAuth",
      "description": "The OAuth client secret authentication object."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "description": "Metastore type to use."
     },
     "hive": {
      "$ref": "#/components/schemas/UpdateDatabricksHiveOptions"
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDeltaLakeDestinationOptions": {
    "properties": {
     "bucket_abs": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatABSBucketParams",
      "description": "Required details about the ABS bucket used for the delta lake table."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatGCSBucketParams",
      "description": "Required details about the GCS bucket used for the delta lake table."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatS3BucketParams",
      "description": "Required details about the S3 bucket used for the delta lake table."
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatS3CompatibleBucketParams",
      "description": "Required details about the S3 compatible bucket used for the delta lake table."
     },
     "retention_window_days": {
      "type": "integer",
      "description": "The number of days a file must be deleted before it is vacuumed.",
      "default": 30
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ],
      "title": "Column mapping mode",
      "description": "Column mapping mode for the Delta Lake table. Use none for no mapping; name to track columns by name (allows rename and drop without rewrite); or id to track columns by numeric ID.",
      "default": "none"
     },
     "deletion_vectors_disabled": {
      "type": "boolean",
      "title": "Disable deletion vectors",
      "description": "Whether to disable deletion vectors. When false: deletions are recorded as markers without rewriting table files.",
      "default": false
     },
     "change_data_feed_disabled": {
      "type": "boolean",
      "title": "Disable change data feed",
      "description": "Whether to disable change data feed. When false: row-level change tracking is maintained for the table.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDestinationOptions": {
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "Number of minutes between transfers. Between 15 and 1440 (24 hours). Defaults to organization-level default. Fastest allowed frequency varies based on service agreement with Prequel.",
      "examples": [
       60
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "vendor": {
      "type": "string",
      "enum": [
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "readOnly": true
     },
     "abs": {
      "$ref": "#/components/schemas/UpdateABSDestinationOptions",
      "title": "Azure Blob Storage"
     },
     "athena": {
      "$ref": "#/components/schemas/UpdateAthenaDestinationOptions",
      "title": "Amazon Athena"
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/UpdateMySQLDestinationOptions",
      "title": "Amazon Aurora MySQL"
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/UpdatePostgresDestinationOptions",
      "title": "Amazon Aurora PostgreSQL"
     },
     "bigquery": {
      "$ref": "#/components/schemas/UpdateBigQueryDestinationOptions",
      "title": "Google BigQuery"
     },
     "clickhouse": {
      "$ref": "#/components/schemas/UpdateClickhouseDestinationOptions",
      "title": "ClickHouse"
     },
     "databricks": {
      "$ref": "#/components/schemas/UpdateDatabricksDestinationOptions",
      "title": "Databricks"
     },
     "delta_lake": {
      "$ref": "#/components/schemas/UpdateDeltaLakeDestinationOptions",
      "title": "Delta Lake"
     },
     "gcs": {
      "$ref": "#/components/schemas/UpdateGCSDestinationOptions",
      "title": "Google Cloud Storage"
     },
     "google_sheets": {
      "$ref": "#/components/schemas/UpdateGoogleSheetsDestinationOptions",
      "title": "Google Sheets"
     },
     "iceberg": {
      "$ref": "#/components/schemas/UpdateIcebergDestinationOptions",
      "title": "Iceberg"
     },
     "mock": {
      "$ref": "#/components/schemas/UpdateMockDestinationOptions",
      "title": "Mock (for testing in staging only)"
     },
     "mongodb": {
      "$ref": "#/components/schemas/UpdateMongoDBDestinationOptions",
      "title": "MongoDB"
     },
     "motherduck": {
      "$ref": "#/components/schemas/UpdateMotherDuckDestinationOptions",
      "title": "MotherDuck"
     },
     "mysql": {
      "$ref": "#/components/schemas/UpdateMySQLDestinationOptions",
      "title": "MySQL"
     },
     "oracle": {
      "$ref": "#/components/schemas/UpdateOracleDestinationOptions",
      "title": "Oracle"
     },
     "planetscale": {
      "$ref": "#/components/schemas/UpdateMySQLDestinationOptions",
      "title": "PlanetScale"
     },
     "postgres": {
      "$ref": "#/components/schemas/UpdatePostgresDestinationOptions",
      "title": "PostgreSQL"
     },
     "redshift": {
      "$ref": "#/components/schemas/UpdateRedshiftDestinationOptions",
      "title": "Amazon Redshift"
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/UpdateRedshiftServerlessDestinationOptions",
      "title": "Amazon Redshift Serverless"
     },
     "sftp": {
      "$ref": "#/components/schemas/UpdateSFTPDestinationOptions",
      "title": "SFTP"
     },
     "singlestore": {
      "$ref": "#/components/schemas/UpdateMySQLDestinationOptions",
      "title": "SingleStore"
     },
     "snowflake": {
      "$ref": "#/components/schemas/UpdateSnowflakeDestinationOptions",
      "title": "Snowflake"
     },
     "sql_server": {
      "$ref": "#/components/schemas/UpdateSQLServerDestinationOptions",
      "title": "SQL Server"
     },
     "s3": {
      "$ref": "#/components/schemas/UpdateS3DestinationOptions",
      "title": "Amazon S3"
     },
     "s3_compatible": {
      "$ref": "#/components/schemas/UpdateS3CompatibleDestinationOptions",
      "title": "S3 Compatible"
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateDestinationRequest": {
    "properties": {
     "destination": {
      "$ref": "#/components/schemas/UpdateDestinationOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "destination"
    ]
   },
   "UpdateGCSDestinationOptions": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "folder": {
      "type": "string",
      "description": "The folder to write to. The folder will be created if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcs_hmac_keys",
       "federated_gcp_service_account_role"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/UpdateGCSAccessKeys",
      "description": "Required details if authenticating using GCS HMAC keys."
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateFederatedGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "bucket_name": {
      "type": "string",
      "description": "The name of the GCS bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateGoogleSheetsDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": "^(https?:\\/\\/)?(www.)?docs.google.com\\/spreadsheets\\/d\\/.+(\\/)?$",
      "description": "The URL of the Google Sheet.",
      "examples": [
       "https://docs.google.com/spreadsheets/d/1234567"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergAwsGlueCatalogParams": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/UpdateIcebergAwsStorageOptionsParams"
     },
     "database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "examples": [
       "analytics"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergAwsS3TablesCatalogParams": {
    "properties": {
     "storage_options": {
      "$ref": "#/components/schemas/UpdateIcebergAwsStorageOptionsParams"
     },
     "database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "examples": [
       "analytics"
      ]
     },
     "table_bucket_arn": {
      "type": "string",
      "examples": [
       "arn:aws:s3tables:us-east-1:123456789012:bucket/acme-tables"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergAwsStorageOptionsParams": {
    "properties": {
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParams"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergDestinationOptions": {
    "properties": {
     "catalog_iceberg_rest": {
      "$ref": "#/components/schemas/UpdateIcebergRestCatalogParams",
      "description": "Required details about the Iceberg Rest Catalog used for the iceberg table."
     },
     "catalog_glue": {
      "$ref": "#/components/schemas/UpdateIcebergAwsGlueCatalogParams",
      "description": "Required details about the AWS Glue Catalog used for the iceberg table."
     },
     "catalog_s3_tables": {
      "$ref": "#/components/schemas/UpdateIcebergAwsS3TablesCatalogParams",
      "description": "Required details about the AWS S3 Tables bucket used for the iceberg table."
     },
     "catalog_google_lakehouse": {
      "$ref": "#/components/schemas/UpdateIcebergGoogleLakehouseCatalogParams",
      "description": "Required details about the Google Lakehouse Catalog used for the iceberg table."
     },
     "retention_window_days": {
      "type": "integer",
      "description": "The minimum number of days to retain old snapshots before they are expired.",
      "default": 30
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergGoogleLakehouseCatalogParams": {
    "properties": {
     "project_id": {
      "type": "string",
      "description": "The Google Cloud project ID.",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "catalog_name": {
      "type": "string",
      "description": "Name of BigLake catalog.",
      "examples": [
       "data_export_catalog"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "description": "Name of BigLake schema to create and write data to.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "description": "Name of GCS bucket to use for the Iceberg table data.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "description": "The method of authentication to use for this catalog."
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountRole",
      "description": "Required details if authenticating using a GCP service account role."
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateFederatedGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatGCSDestinationServiceAccountKey",
      "description": "Required details if authenticating using a GCP service account key."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergRestCatalogParams": {
    "properties": {
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_bearer_token_auth",
       "oauth_client_secret_auth"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this rest catalog."
     },
     "oauth_bearer_token_auth": {
      "$ref": "#/components/schemas/UpdateOauthBearerTokenAuth",
      "description": "Required details if authenticating with an OAUTH2 bearer token."
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/UpdateOauthDelegatedCredentialAuth",
      "description": "Required details if authenticating with an OAUTH2 delegated credentials."
     },
     "storage_options": {
      "$ref": "#/components/schemas/UpdateIcebergStorageOptionsParams"
     },
     "namespace": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Namespace",
      "description": "Name of collection in which to group written iceberg tables. It will be created automatically if the namespace does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "warehouse": {
      "type": "string",
      "title": "Namespace",
      "description": "The identifier for the warehouse associated with this REST catalog. This might be a storage URI (ex s3://...) or a unique name provided by the catalog service.",
      "examples": [
       "s3://acme-data-export-staging/warehouse"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateIcebergStorageOptionsParams": {
    "properties": {
     "bucket_abs": {
      "$ref": "#/components/schemas/OpenTableFormatABSBucketParams",
      "description": "Required details about the ABS bucket used for the iceberg table."
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParams",
      "description": "Required details about the GCS bucket used for the iceberg table."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParams",
      "description": "Required details about the S3 bucket used for the iceberg table."
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/OpenTableFormatS3CompatibleBucketParams",
      "description": "Required details about the S3 compatible bucket used for the iceberg table."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateMockDestinationOptions": {
    "properties": {
     "schema": {
      "type": "string",
      "description": "Mock schema name.",
      "examples": [
       "data_export"
      ]
     },
     "database": {
      "type": "string",
      "description": "Mock database name.",
      "examples": [
       "mock"
      ]
     },
     "error_code": {
      "type": "string",
      "examples": [
       "PRQL-ZDJR"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "schema",
     "database"
    ]
   },
   "UpdateMongoDBDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the MongoDB server.",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional. Leave empty If using Atlas.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "description": "The name of the MongoDB Authentication Database.",
      "examples": [
       "admin"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the MongoDB database to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details if authenticating with username/password."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the MongoDB connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateMotherDuckDestinationOptions": {
    "properties": {
     "database": {
      "type": "string",
      "title": "Database",
      "description": "MotherDuck database name.",
      "examples": [
       "my_db"
      ]
     },
     "schema": {
      "type": "string",
      "title": "Schema",
      "description": "MotherDuck schema name to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "The access token authentication object."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateMySQLDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the MySQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the MySQL server.",
      "examples": [
       3306
      ]
     },
     "connection_database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "mysql"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the database where final data will be written.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the MySQL connection.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOauthBearerTokenAuth": {
    "properties": {
     "password": {
      "type": "string",
      "title": "Bearer Token"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOauthDelegatedCredentialAuth": {
    "properties": {
     "client_id": {
      "type": "string",
      "title": "Client ID",
      "examples": [
       "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
      ]
     },
     "client_secret": {
      "type": "string",
      "title": "Client Secret"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOpenTableFormatABSBucketParams": {
    "properties": {
     "storage_account_name": {
      "type": "string",
      "description": "The name of the storage account configured for Prequel.",
      "examples": [
       "acmestorage"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "azure_storage_account_access_key"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to azure_storage_account_access_key."
     },
     "azure_storage_account_access_key": {
      "$ref": "#/components/schemas/UpdateAzureStorageAccountAccessKey",
      "description": "Required parameters to authenticate to Azure using an access key."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOpenTableFormatGCSBucketParams": {
    "properties": {
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/UpdateOpenTableFormatGCSDestinationServiceAccountKey",
      "description": "Required details if authenticating using a GCP service account key."
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/UpdateFederatedGCPServiceAccountRole",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOpenTableFormatGCSDestinationServiceAccountKey": {
    "properties": {
     "service_account_email": {
      "type": "string",
      "pattern": "^.*gserviceaccount.com$",
      "format": "email",
      "title": "Destination service account email",
      "examples": [
       "service-account-name@project-id.iam.gserviceaccount.com"
      ]
     },
     "service_account_key": {
      "title": "JSON Token",
      "description": "The credentials (JSON) that will be used to load data into your BigQuery database. Create a service account just for this use."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOpenTableFormatS3BucketParams": {
    "properties": {
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this destination."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "bucket_auth_method"
    ]
   },
   "UpdateOpenTableFormatS3CompatibleBucketParams": {
    "properties": {
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the S3-compatible connection.",
      "default": false
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_keys."
     },
     "access_keys": {
      "$ref": "#/components/schemas/UpdateAccessKeys",
      "description": "Required details for access key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateOracleDestinationOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/UpdateOracleDestinationOptionsSSLEnabled"
     },
     {
      "$ref": "#/components/schemas/UpdateOracleDestinationOptionsSSLDisabled"
     }
    ]
   },
   "UpdatePostgresDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the PostgreSQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the PostgreSQL server.",
      "examples": [
       5432
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the PostgreSQL connection.",
      "default": false
     },
     "connection_timeout_in_seconds": {
      "type": "integer",
      "minimum": 0,
      "title": "Connection Timeout (in seconds)",
      "description": "Duration to wait for successful connection to Postgres",
      "examples": [
       30
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdatePublicKeyAuth": {
    "properties": {
     "public_key": {
      "type": "string",
      "title": "Public key",
      "description": "This is the public SSH key that will be used to establish the SSH tunnel. It should be added to the list of authorized keys on the bastion host."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateRedshiftDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Redshift server.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Redshift server.",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "cluster": {
      "type": "string",
      "description": "The name of the Redshift cluster to connect to.",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "examples": [
       "data_export_user"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "title": "Auth method",
      "description": "The method of authentication to use for this destination."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateRedshiftAccessKeys",
      "description": "Required details for username/password authentication."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateRedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method"
    ]
   },
   "UpdateRedshiftServerlessDestinationOptions": {
    "properties": {
     "workgroup": {
      "type": "string",
      "description": "The name of the Redshift Serverless workgroup.",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "description": "The hostname to use to connect.",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port to use to connect.",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "title": "Auth method"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/UpdateRedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "auth_method"
    ]
   },
   "UpdateS3CompatibleDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the S3-compatible server.",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "folder": {
      "type": "string",
      "description": "The folder to write to. The folder will be created if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3-compatible bucket to write to.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the S3-compatible connection.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_keys"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to access_keys."
     },
     "access_keys": {
      "$ref": "#/components/schemas/UpdateAccessKeys",
      "description": "Required details for access key authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "port"
    ]
   },
   "UpdateS3DestinationOptions": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "folder": {
      "type": "string",
      "description": "The folder to write to. The folder will be created if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "description": "The method of authentication to use for this destination."
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "description": "Required details if authenticating using an AWS IAM role."
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/UpdateAWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     },
     "bucket_name": {
      "type": "string",
      "description": "The name of the S3 bucket.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSFTPDestinationOptions": {
    "properties": {
     "username": {
      "type": "string",
      "description": "The username to use for the SFTP connection.",
      "examples": [
       "data_export_user"
      ]
     },
     "host": {
      "type": "string",
      "description": "The hostname of the SFTP server.",
      "examples": [
       "sftp.acme.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the SFTP server.",
      "examples": [
       22
      ]
     },
     "folder": {
      "type": "string",
      "description": "The folder to write to. The folder will be created if it does not exist.",
      "examples": [
       "/uploads/data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "public_key_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to public_key_auth."
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/UpdatePublicKeyAuth",
      "description": "Required details for public key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSQLServerDestinationOptions": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the SQL Server instance.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the SQL Server instance.",
      "examples": [
       1433
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "analytics"
      ]
     },
     "schema": {
      "type": "string",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the SQL Server connection.",
      "default": false
     },
     "primary_key_collation": {
      "type": "string",
      "description": "SQL Server collation to use for primary key column. Leave empty to use database default collation.",
      "examples": [
       "SQL_Latin1_General_CP1_CI_AS"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSnowflakeDestinationOptions": {
    "properties": {
     "username": {
      "type": "string",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "description": "The hostname of the Snowflake server.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Snowflake server.",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "schema": {
      "type": "string",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ],
      "description": "Authentication method to use for this destination."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordOnlyAuth",
      "description": "Required details for username/password authentication."
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth",
      "description": "Required details for public key authentication."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "ListRecipientResponse": {
    "properties": {
     "recipients": {
      "items": {
       "$ref": "#/components/schemas/RecipientResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipients"
    ]
   },
   "RecipientResource": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The unique identifier for the recipient."
     },
     "name": {
      "type": "string",
      "description": "The name of the recipient.",
      "examples": [
       "Acme Corp"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The products that the recipient has assigned."
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID used in source system for the recipient.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "default_full_refresh_min_start_time_epoch": {
      "type": "integer",
      "description": "Default minimum Unix epoch timestamp (in seconds) for full refresh transfers. When set: full refresh transfers will only include rows with a last_updated_at value greater than or equal to this epoch.",
      "examples": [
       1704067200
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "format": "date-time"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "name",
     "products",
     "id_in_provider_system"
    ]
   },
   "CreateRecipientRequest": {
    "properties": {
     "recipient": {
      "$ref": "#/components/schemas/RecipientOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient"
    ]
   },
   "RecipientOptions": {
    "properties": {
     "name": {
      "type": "string",
      "description": "The name of the recipient.",
      "examples": [
       "Acme Corp"
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID used in source system for the recipient.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "minItems": 1,
      "description": "The products that the recipient has assigned."
     },
     "default_full_refresh_min_start_time_epoch": {
      "type": "integer",
      "description": "Default minimum Unix epoch timestamp (in seconds) for full refresh transfers. When set: full refresh transfers will only include rows with a last_updated_at value greater than or equal to this epoch.",
      "examples": [
       1704067200
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "id_in_provider_system",
     "products"
    ]
   },
   "GetRecipientResponse": {
    "properties": {
     "recipient": {
      "$ref": "#/components/schemas/RecipientResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient"
    ]
   },
   "UpdateRecipientOptions": {
    "properties": {
     "name": {
      "type": "string",
      "description": "The name of the recipient.",
      "examples": [
       "Acme Corp"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The products that the recipient has assigned."
     },
     "default_full_refresh_min_start_time_epoch": {
      "type": "integer",
      "description": "Default minimum Unix epoch timestamp (in seconds) for full refresh transfers. When set: full refresh transfers will only include rows with a last_updated_at value greater than or equal to this epoch.",
      "examples": [
       1704067200
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateRecipientRequest": {
    "properties": {
     "recipient": {
      "$ref": "#/components/schemas/UpdateRecipientOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient"
    ]
   },
   "GetRecipientSourceCredentialResponse": {
    "properties": {
     "recipient_source_credential": {
      "$ref": "#/components/schemas/RecipientSourceCredentialResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient_source_credential"
    ]
   },
   "RecipientSourceCredentialResource": {
    "properties": {
     "id": {
      "type": "string"
     },
     "recipient_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "source_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "format": "date-time"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "recipient_id",
     "source_id",
     "username",
     "created_at",
     "updated_at"
    ]
   },
   "UpdateRecipientSourceCredentialOptions": {
    "properties": {
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "source_id": {
      "type": "string",
      "format": "uuid",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "username": {
      "type": "string",
      "description": "Username used by recipient to access source. Used for RBAC.",
      "examples": [
       "data_export_user"
      ]
     },
     "password": {
      "type": "string",
      "description": "Password used by recipient to access source. Used for RBAC."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateRecipientSourceCredentialRequest": {
    "properties": {
     "recipient_source_credential": {
      "$ref": "#/components/schemas/UpdateRecipientSourceCredentialOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient_source_credential"
    ]
   },
   "DataIntegrityJobResource": {
    "properties": {
     "id": {
      "type": "string"
     },
     "org_schema": {
      "type": "string"
     },
     "submitted_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the job was submitted."
     },
     "started_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the job started execution."
     },
     "ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the job ended execution."
     },
     "destination_id": {
      "type": "string",
      "description": "The unique identifier of the destination associated with this job.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "status": {
      "type": "string",
      "description": "The current status of the job."
     },
     "model_ids": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of model identifiers related to the job."
     },
     "model_sample_primary_ids": {
      "additionalProperties": {
       "items": {
        "type": "string"
       },
       "type": "array"
      },
      "type": "object",
      "description": "Mapping of primary ids used for sampling in each model."
     },
     "data_integrity_results": {
      "items": {
       "$ref": "#/components/schemas/DataIntegrityResultResource"
      },
      "type": "array",
      "description": "Results of the data integrity checks."
     },
     "log_message": {
      "type": "string",
      "description": "A message logging the result of the integrity check for each specific model."
     },
     "tags": {
      "$ref": "#/components/schemas/TransferTags",
      "description": "Tags used during the transfer."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "org_schema",
     "submitted_at",
     "started_at",
     "ended_at",
     "destination_id",
     "status",
     "model_ids",
     "model_sample_primary_ids",
     "data_integrity_results",
     "log_message"
    ]
   },
   "DataIntegrityResultResource": {
    "properties": {
     "model_name": {
      "type": "string",
      "description": "Name of the model checked for integrity.",
      "examples": [
       "orders"
      ]
     },
     "is_healthy": {
      "type": "boolean",
      "description": "Indicator of whether the model data is healthy."
     },
     "error_message": {
      "type": "string",
      "description": "Error message if there is an issue with the data integrity."
     },
     "sampling_rate": {
      "type": "number",
      "description": "The rate at which data is sampled for integrity checks.",
      "examples": [
       0.01
      ]
     },
     "total_rows_compared": {
      "type": "integer",
      "description": "Total number of rows compared during the integrity check."
     },
     "total_rows_stale": {
      "type": "integer",
      "description": "Number of rows that are outdated or no longer relevant."
     },
     "total_rows_pending": {
      "type": "integer",
      "description": "Number of rows pending to be updated or processed."
     },
     "total_rows_missing": {
      "type": "integer",
      "description": "Number of rows that are expected but missing."
     },
     "total_rows_incorrect": {
      "type": "integer",
      "description": "Number of rows that do not match the expected values."
     },
     "total_rows_orphaned": {
      "type": "integer",
      "description": "Number of rows that exist without corresponding parent entries. This is likely due to hard deletes in the source"
     },
     "mismatched_partitions": {
      "items": {
       "$ref": "#/components/schemas/MismatchedPartition"
      },
      "type": "array",
      "description": "The partitions that did not have matching hashes."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_name",
     "is_healthy",
     "error_message",
     "sampling_rate",
     "total_rows_compared",
     "total_rows_stale",
     "total_rows_pending",
     "total_rows_missing",
     "total_rows_incorrect",
     "total_rows_orphaned"
    ]
   },
   "ListDataIntegrityJobResponse": {
    "properties": {
     "jobs": {
      "items": {
       "$ref": "#/components/schemas/DataIntegrityJobResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "jobs"
    ]
   },
   "MismatchedPartition": {
    "properties": {
     "source_row_count": {
      "type": "integer"
     },
     "destination_row_count": {
      "type": "integer"
     },
     "last_modified_lower_bound_epoch": {
      "type": "integer",
      "examples": [
       1704067200
      ]
     },
     "last_modified_upper_bound_epoch": {
      "type": "integer",
      "examples": [
       1704153600
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "source_row_count",
     "destination_row_count",
     "last_modified_lower_bound_epoch",
     "last_modified_upper_bound_epoch"
    ]
   },
   "CreateDataIntegrityRequest": {
    "properties": {
     "models": {
      "items": {
       "$ref": "#/components/schemas/DataIntegrityModelOptions"
      },
      "type": "array",
      "description": "Specifies models to run. Include sample primary keys to specify specific rows to check."
     },
     "tags": {
      "$ref": "#/components/schemas/TransferTags",
      "description": "Tags used for source query filtering."
     },
     "start_integrity_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "Lower bound for the last modified value used in queries. Timestamps should be represented in RFC3339 format.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_integrity_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "Upper bound for the last modified value used in queries. Timestamps should be represented in RFC3339 format.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "DataIntegrityModelOptions": {
    "properties": {
     "model_name": {
      "type": "string",
      "examples": [
       "orders"
      ]
     },
     "sample_primary_key_ids": {
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_name"
    ]
   },
   "GetDataIntegrityJobResponse": {
    "properties": {
     "job": {
      "$ref": "#/components/schemas/DataIntegrityJobResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "job"
    ]
   },
   "CreateScopedAuthTokenRequest": {
    "properties": {
     "application_origin": {
      "type": "string",
      "description": "The origin of the application requesting the scoped auth token.",
      "examples": [
       "https://app.acme.com"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "description": "The recipient ID.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "destination": {
      "oneOf": [
       {
        "$ref": "#/components/schemas/CreateDestinationRequest",
        "title": "Create Destination Request"
       },
       {
        "$ref": "#/components/schemas/UpdateDestinationRequest",
        "title": "Update Destination Request"
       }
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "application_origin",
     "recipient_id",
     "destination"
    ]
   },
   "CreateScopedAuthTokenResponse": {
    "properties": {
     "scoped_token": {
      "type": "string",
      "description": "The scoped auth token."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "scoped_token"
    ]
   },
   "CreateTransferRequest": {
    "properties": {
     "full_refresh": {
      "type": "boolean",
      "description": "When true: runs a full refresh from the start of the recipient's configured transfer window. When false: runs incrementally from the last successful transfer.",
      "default": false
     },
     "is_debug_mode": {
      "type": "boolean",
      "description": "Enables debug-level logging for the transfer run.",
      "default": false
     },
     "models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "Specifies models to run. If unspecified or left empty all models will be run."
     },
     "start_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "All rows transferred will have a last_updated_at value greater than or equal to this value. If omitted the Unix epoch will be used. Timestamps should be represented in RFC3339 format.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "All rows transferred will have a last_updated_at value less than this value. If omitted the current time will be used. Timestamps should be represented in RFC3339 format.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "tags": {
      "additionalProperties": {
       "type": "string"
      },
      "type": "object",
      "description": "Tags to apply to the transfer. Tags are key-value pairs where keys and values must contain only alphanumeric characters and underscores/hyphens."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "CreateTransferResponse": {
    "properties": {
     "transfer_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "transfer_id"
    ]
   },
   "ListTransferResponse": {
    "properties": {
     "transfers": {
      "items": {
       "$ref": "#/components/schemas/Transfer"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "transfers"
    ]
   },
   "ModelMetrics": {
    "properties": {
     "model_id": {
      "type": "string",
      "description": "Unique identifier for the model.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "model_name": {
      "type": "string",
      "description": "Name of the model.",
      "examples": [
       "orders"
      ]
     },
     "rows_transferred": {
      "type": "integer",
      "description": "Number of rows written to the destination for this model."
     },
     "delta_rows_transferred": {
      "type": "integer",
      "description": "Net change in row count at the destination for this model (inserts minus deletes)."
     },
     "volume_transferred_in_mb": {
      "type": "number",
      "description": "Data volume written to the destination for this model in megabytes."
     },
     "start_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the incremental window this model extracted data from.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "End of the incremental window this model extracted data from.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "most_recent_last_updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The most recent updated_at value seen in the source data for this model during this transfer."
     },
     "error": {
      "$ref": "#/components/schemas/CodedError",
      "description": "Structured error details if this model failed. Null if the model succeeded or was skipped."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_id",
     "rows_transferred",
     "delta_rows_transferred",
     "volume_transferred_in_mb",
     "start_transfer_window_at",
     "end_transfer_window_at",
     "most_recent_last_updated_at",
     "error"
    ]
   },
   "Transfer": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Unique identifier for the transfer."
     },
     "source_ids": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "IDs of the sources used in this transfer."
     },
     "destination_id": {
      "type": "string",
      "description": "ID of the destination this transfer wrote to.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "status": {
      "type": "string",
      "enum": [
       "PENDING",
       "RUNNING",
       "SUCCESS",
       "PARTIAL_FAILURE",
       "ERROR",
       "CANCELLED",
       "KILLED",
       "EXPIRED",
       "ORPHANED"
      ],
      "description": "Current status of the transfer."
     },
     "is_full_refresh": {
      "type": "boolean",
      "description": "Whether this transfer was a full refresh (true) or incremental (false)."
     },
     "models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "Names of the models included in this transfer."
     },
     "model_metrics": {
      "items": {
       "$ref": "#/components/schemas/ModelMetrics"
      },
      "type": "array",
      "description": "Per-model object of results including row counts and any errors."
     },
     "log": {
      "type": "string",
      "description": "Plain text description of the model results."
     },
     "submitted_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the transfer was submitted to the queue."
     },
     "start_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "Start of the transfer window.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "end_transfer_window_at": {
      "type": "string",
      "format": "date-time",
      "description": "End of the transfer window.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "started_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the transfer began executing."
     },
     "ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the transfer finished executing."
     },
     "rows_transferred": {
      "type": "integer",
      "description": "Total number of rows written to the destination across all models."
     },
     "delta_rows_transferred": {
      "type": "integer",
      "description": "Estimate of net change in row count at the destination."
     },
     "volume_transferred_in_mb": {
      "type": "number",
      "description": "Total data volume written to the destination in megabytes."
     },
     "tags": {
      "additionalProperties": {
       "type": "string"
      },
      "type": "object",
      "description": "Arbitrary key-value string tags attached to the transfer."
     },
     "actor_id": {
      "type": "string",
      "description": "ID of the actor that triggered this transfer.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "actor_type": {
      "type": "string",
      "enum": [
       "unknown",
       "user",
       "api_key",
       "service",
       "recipient"
      ],
      "description": "Type of actor that triggered this transfer."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "status",
     "is_full_refresh",
     "models",
     "log",
     "submitted_at",
     "start_transfer_window_at",
     "end_transfer_window_at",
     "rows_transferred",
     "delta_rows_transferred",
     "volume_transferred_in_mb",
     "actor_id",
     "actor_type"
    ]
   },
   "TransferResponse": {
    "properties": {
     "transfer": {
      "$ref": "#/components/schemas/Transfer"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "transfer"
    ]
   },
   "ListMagicLinkResponse": {
    "properties": {
     "magic_links": {
      "items": {
       "$ref": "#/components/schemas/MagicLinkResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "magic_links"
    ]
   },
   "MagicLinkResource": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The unique identifier for the recipient."
     },
     "name": {
      "type": "string",
      "description": "The name of the recipient.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The products that the recipient has assigned."
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID used in source system for the recipient.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "link": {
      "type": "string"
     },
     "has_been_used": {
      "type": "boolean"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "vendor": {
      "type": "string",
      "examples": [
       "snowflake"
      ]
     },
     "available_models": {
      "items": {
       "type": "string"
      },
      "type": "array"
     },
     "bucket_access_id": {
      "type": "string",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "bucket_vendor": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "ssh_public_key": {
      "type": "string"
     },
     "redirect_url": {
      "type": "string",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean"
     },
     "metastore": {
      "type": "string",
      "examples": [
       "unity_catalog"
      ]
     },
     "catalog": {
      "type": "string"
     },
     "bucket_host": {
      "type": "string",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "table_bucket_arn": {
      "type": "string",
      "examples": [
       "arn:aws:s3tables:us-east-1:123456789012:bucket/acme-tables"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "name",
     "products",
     "id_in_provider_system",
     "host",
     "link",
     "has_been_used",
     "created_at",
     "bucket_name",
     "vendor",
     "available_models",
     "set_destination_enabled"
    ]
   },
   "CreateMagicLinkRequest": {
    "properties": {
     "magic_link": {
      "$ref": "#/components/schemas/MagicLinkOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "magic_link"
    ]
   },
   "MagicLinkOptions": {
    "oneOf": [
     {
      "$ref": "#/components/schemas/ABSMagicLinkOptions",
      "title": "Azure Blob Storage"
     },
     {
      "$ref": "#/components/schemas/AthenaMagicLinkOptions",
      "title": "Amazon Athena"
     },
     {
      "$ref": "#/components/schemas/BigQueryMagicLinkOptions",
      "title": "Google BigQuery"
     },
     {
      "$ref": "#/components/schemas/ClickhouseMagicLinkOptions",
      "title": "ClickHouse"
     },
     {
      "$ref": "#/components/schemas/DatabricksMagicLinkOptions",
      "title": "Databricks"
     },
     {
      "$ref": "#/components/schemas/DeltaLakeMagicLinkOptions",
      "title": "Delta Lake"
     },
     {
      "$ref": "#/components/schemas/GCSMagicLinkOptions",
      "title": "Google Cloud Storage"
     },
     {
      "$ref": "#/components/schemas/GoogleSheetsMagicLinkOptions",
      "title": "Google Sheets"
     },
     {
      "$ref": "#/components/schemas/RedshiftMagicLinkOptions",
      "title": "Amazon Redshift"
     },
     {
      "$ref": "#/components/schemas/RedshiftMagicLinkOptions",
      "title": "Amazon Redshift Serverless"
     },
     {
      "$ref": "#/components/schemas/S3MagicLinkOptions",
      "title": "Amazon S3"
     },
     {
      "$ref": "#/components/schemas/S3CompatibleMagicLinkOptions",
      "title": "S3 Compatible"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "Amazon Aurora MySQL"
     },
     {
      "$ref": "#/components/schemas/IcebergMagicLinkOptions",
      "title": "Iceberg"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "MongoDB"
     },
     {
      "$ref": "#/components/schemas/MotherDuckMagicLinkOptions",
      "title": "MotherDuck"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "MySQL"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "Oracle"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "Amazon Aurora PostgreSQL"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "PostgreSQL"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "SQL Server"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "SingleStore"
     },
     {
      "$ref": "#/components/schemas/GenericMagicLinkOptions",
      "title": "SFTP"
     },
     {
      "$ref": "#/components/schemas/SnowflakeMagicLinkOptions",
      "title": "Snowflake"
     }
    ]
   },
   "GetMagicLinkResponse": {
    "properties": {
     "magic_link": {
      "$ref": "#/components/schemas/MagicLinkResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "magic_link"
    ]
   },
   "ListModelConfigResponseDocumented": {
    "properties": {
     "models": {
      "items": {
       "$ref": "#/components/schemas/ModelConfigDocumented"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "models"
    ]
   },
   "ModelColumnDocumented": {
    "properties": {
     "name_in_source": {
      "type": "string",
      "description": "The column name in the source.",
      "examples": [
       "created_at"
      ]
     },
     "name_in_destination": {
      "type": "string",
      "description": "The column name in the destination.",
      "examples": [
       "created_at"
      ]
     },
     "data_type": {
      "type": "string",
      "description": "The data type of the column.",
      "examples": [
       "timestamp"
      ]
     },
     "is_primary_key": {
      "type": "boolean",
      "description": "Whether the column is a primary key. Note: all properties of the primary key are immutable and cannot be changed after creation.",
      "default": false
     },
     "is_last_modified": {
      "type": "boolean",
      "description": "Indicates if the column represents the last modified date/time.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name_in_source",
     "name_in_destination",
     "data_type",
     "is_primary_key",
     "is_last_modified"
    ]
   },
   "ModelConfigDocumented": {
    "properties": {
     "model_name": {
      "type": "string",
      "description": "The name of the model. This is customer facing and will be used as the table name in the destination.",
      "examples": [
       "orders"
      ]
     },
     "description": {
      "type": "string",
      "description": "A brief description of the table. This is customer facing and will be used as the table comment in the destination.",
      "examples": [
       "Order records including status and totals"
      ]
     },
     "columns": {
      "items": {
       "$ref": "#/components/schemas/ModelColumnDocumented"
      },
      "type": "array"
     },
     "source_id": {
      "type": "string",
      "format": "uuid",
      "description": "The source ID.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "source_table": {
      "type": "string",
      "description": "The schema qualified source table in the database.",
      "examples": [
       "public.orders"
      ]
     },
     "source_query": {
      "type": "string",
      "description": "The source query to use for this model.",
      "examples": [
       "SELECT * FROM some_parameterized_view(tenant_id = {{.IdInProviderSystem}})"
      ]
     },
     "destination_table_name": {
      "type": "string",
      "description": "The destination table in the database.",
      "examples": [
       "orders"
      ]
     },
     "organization_column": {
      "type": "string",
      "description": "The column in the source table that links to the organization.",
      "examples": [
       "organization_id"
      ]
     },
     "skip_transfer_source_validation": {
      "type": "boolean",
      "default": false
     },
     "is_append_only": {
      "type": "boolean",
      "description": "Determines if the destination write logical will optimize itself for append only data. Use of this flag with duplicate primary keys in the source data will cause integrity issues.",
      "default": false
     },
     "model_validation_id_in_provider_system": {
      "type": "string",
      "description": "Optional override for the provider system ID.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "model_validation_start_time_epoch": {
      "type": "string",
      "format": "date-time",
      "description": "Optional override for the start time. Timestamps should be represented in RFC3339 format rather than as a Unix epoch.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "model_validation_end_time_epoch": {
      "type": "string",
      "format": "date-time",
      "description": "Optional override for the end time. Timestamps should be represented in RFC3339 format rather than as a Unix epoch.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "model_validation_tags": {
      "additionalProperties": {
       "type": "string"
      },
      "type": "object",
      "description": "Optional override for the tags."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model_name",
     "columns",
     "source_id"
    ]
   },
   "CreateModelConfigRequestDocumented": {
    "properties": {
     "model": {
      "$ref": "#/components/schemas/ModelConfigDocumented"
     },
     "skip_model_validation": {
      "type": "boolean",
      "description": "Whether to skip the validation of this model against the specified source. Applies only to model validation. See the model validation docs for details.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model"
    ]
   },
   "ModelConfigResponseDocumented": {
    "properties": {
     "model": {
      "$ref": "#/components/schemas/ModelConfigDocumented"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "model"
    ]
   },
   "UpdateModelColumnDocumented": {
    "properties": {
     "name_in_source": {
      "type": "string",
      "description": "The column name in the source.",
      "examples": [
       "created_at"
      ]
     },
     "name_in_destination": {
      "type": "string",
      "description": "The column name in the destination.",
      "examples": [
       "created_at"
      ]
     },
     "data_type": {
      "type": "string",
      "description": "The data type of the column.",
      "examples": [
       "timestamp"
      ]
     },
     "is_primary_key": {
      "type": "boolean",
      "description": "Whether the column is a primary key. Only mutable in staging environment.",
      "default": false
     },
     "is_last_modified": {
      "type": "boolean",
      "description": "Indicates if the column represents the last modified date/time. Only mutable in staging environment.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateModelConfigDocumented": {
    "properties": {
     "description": {
      "type": "string",
      "description": "A brief description of the table. This is customer facing and will be used as the table comment in the destination.",
      "examples": [
       "Order records including status and totals"
      ]
     },
     "columns": {
      "items": {
       "$ref": "#/components/schemas/UpdateModelColumnDocumented"
      },
      "type": "array"
     },
     "source_id": {
      "type": "string",
      "format": "uuid",
      "description": "The source ID.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "source_name": {
      "type": "string",
      "description": "The source name.",
      "examples": [
       "production-primary"
      ]
     },
     "source_table": {
      "type": "string",
      "description": "The schema qualified source table in the database.",
      "examples": [
       "public.orders"
      ]
     },
     "source_query": {
      "type": "string",
      "description": "The source query to use for this model.",
      "examples": [
       "SELECT * FROM some_parameterized_view(tenant_id = {{.IdInProviderSystem}})"
      ]
     },
     "organization_column": {
      "type": "string",
      "description": "The column in the source table that links to the organization.",
      "examples": [
       "organization_id"
      ]
     },
     "is_append_only": {
      "type": "boolean",
      "description": "Determines if the destination write logical will optimize itself for append only data. See append_only docs for more detail on this feature and usage.",
      "default": false
     },
     "destination_table_name": {
      "type": "string",
      "description": "The destination table in the database. Immutable in production environments.",
      "examples": [
       "orders"
      ]
     },
     "skip_transfer_source_validation": {
      "type": "boolean",
      "description": "Whether to skip validating access to the specified source when running transfers.",
      "default": false
     },
     "model_validation_id_in_provider_system": {
      "type": "string",
      "description": "Optional override for the provider system ID.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "model_validation_start_time_epoch": {
      "type": "string",
      "format": "date-time",
      "description": "Optional override for the start time. Timestamps should be represented in RFC3339 format rather than as a Unix epoch.",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     },
     "model_validation_end_time_epoch": {
      "type": "string",
      "format": "date-time",
      "description": "Optional override for the end time. Timestamps should be represented in RFC3339 format rather than as a Unix epoch.",
      "examples": [
       "2026-01-02T00:00:00Z"
      ]
     },
     "model_validation_tags": {
      "additionalProperties": {
       "type": "string"
      },
      "type": "object",
      "description": "Optional override for the tags."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateModelConfigRequestDocumented": {
    "properties": {
     "model": {
      "$ref": "#/components/schemas/UpdateModelConfigDocumented"
     },
     "skip_model_validation": {
      "type": "boolean",
      "description": "Whether to skip the validation of this model against the specified source. Applies only to model validation. See the model validation docs for details.",
      "default": false
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "ListProductConfigResponse": {
    "properties": {
     "products": {
      "items": {
       "$ref": "#/components/schemas/ProductConfig"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "products"
    ]
   },
   "ProductConfig": {
    "properties": {
     "id": {
      "type": "string"
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "format": "date-time"
     },
     "product_name": {
      "type": "string",
      "examples": [
       "analytics"
      ]
     },
     "is_system_product": {
      "type": "boolean"
     },
     "description": {
      "type": "string",
      "examples": [
       "Order and billing data shared with this recipient"
      ]
     },
     "delta_share_name": {
      "type": "string",
      "examples": [
       "acme_share"
      ]
     },
     "models": {
      "items": {
       "type": "string"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "is_system_product",
     "models"
    ]
   },
   "CreateProductConfigRequestDocumented": {
    "properties": {
     "product": {
      "$ref": "#/components/schemas/ProductConfigDocumented"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "product"
    ]
   },
   "ProductConfigDocumented": {
    "properties": {
     "product_name": {
      "type": "string",
      "description": "The name of the product.",
      "examples": [
       "analytics"
      ]
     },
     "models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The models that are part of the product."
     },
     "description": {
      "type": "string",
      "description": "A brief description of the product.",
      "examples": [
       "Order and billing data shared with this recipient"
      ]
     },
     "delta_share_name": {
      "type": "string",
      "description": "Immutable name of the Delta share derived from the product name at creation. Applies only to Delta Sharing destinations.",
      "examples": [
       "acme_share"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "product_name",
     "models"
    ]
   },
   "ProductConfigResponse": {
    "properties": {
     "product": {
      "$ref": "#/components/schemas/ProductConfig"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "product"
    ]
   },
   "UpdateProductConfigDocumented": {
    "properties": {
     "product_name": {
      "type": "string",
      "description": "The name of the product.",
      "examples": [
       "analytics"
      ]
     },
     "models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The models that are part of the product."
     },
     "description": {
      "type": "string",
      "description": "A brief description of the product.",
      "examples": [
       "Order and billing data shared with this recipient"
      ]
     },
     "delta_share_name": {
      "type": "string",
      "description": "Immutable name of the Delta share derived from the product name at creation. Applies only to Delta Sharing destinations.",
      "examples": [
       "acme_share"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateProductConfigRequestDocumented": {
    "properties": {
     "product": {
      "$ref": "#/components/schemas/UpdateProductConfigDocumented"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "product"
    ]
   },
   "ListSensitiveTraceEndpointsResponse": {
    "properties": {
     "sensitive_trace_endpoints": {
      "items": {
       "$ref": "#/components/schemas/SensitiveTraceEndpointResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoints"
    ]
   },
   "SensitiveTraceEndpointResource": {
    "properties": {
     "id": {
      "type": "string"
     },
     "name": {
      "type": "string",
      "examples": [
       "acme-trace-endpoint"
      ]
     },
     "description": {
      "type": "string",
      "examples": [
       "Receives sensitive trace payloads for debugging failed transfers"
      ]
     },
     "url": {
      "type": "string",
      "examples": [
       "https://traces.acme.com/ingest"
      ]
     },
     "header_template": {
      "type": "string"
     },
     "body_template": {
      "type": "string",
      "examples": [
       "{{ .Records }}"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time"
     },
     "updated_at": {
      "type": "string",
      "format": "date-time"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "id",
     "name",
     "url",
     "created_at",
     "updated_at"
    ]
   },
   "CreateSensitiveTraceEndpointRequest": {
    "properties": {
     "sensitive_trace_endpoint": {
      "$ref": "#/components/schemas/SensitiveTraceEndpointOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoint"
    ]
   },
   "SensitiveTraceEndpointOptions": {
    "properties": {
     "name": {
      "type": "string",
      "description": "The name of the sensitive trace endpoint.",
      "examples": [
       "acme-trace-endpoint"
      ]
     },
     "description": {
      "type": "string",
      "description": "Optional description of the sensitive trace endpoint.",
      "examples": [
       "Receives sensitive trace payloads for debugging failed transfers"
      ]
     },
     "url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "description": "The URL to send the sensitive trace to.",
      "examples": [
       "https://traces.acme.com/ingest"
      ]
     },
     "header_template": {
      "type": "string",
      "description": "Optional template for the headers to send with the sensitive trace. If left empty default headers will be sent.",
      "examples": [
       "Content-Type: application/json"
      ]
     },
     "secret": {
      "type": "string",
      "description": "Optional secret to authenticate the sensitive trace endpoint."
     },
     "body_template": {
      "type": "string",
      "description": "Optional template for the body to send with the sensitive trace. If left empty default body will be sent.",
      "examples": [
       "{{ .Records }}"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "url"
    ]
   },
   "CreateSensitiveTraceEndpointResponse": {
    "properties": {
     "sensitive_trace_endpoint": {
      "$ref": "#/components/schemas/SensitiveTraceEndpointResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoint"
    ]
   },
   "GetSensitiveTraceEndpointResponse": {
    "properties": {
     "sensitive_trace_endpoint": {
      "$ref": "#/components/schemas/SensitiveTraceEndpointResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoint"
    ]
   },
   "UpdateSensitiveTraceEndpointOptions": {
    "properties": {
     "name": {
      "type": "string",
      "description": "Optional name of the sensitive trace endpoint.",
      "examples": [
       "acme-trace-endpoint"
      ]
     },
     "description": {
      "type": "string",
      "description": "Optional description of the sensitive trace endpoint.",
      "examples": [
       "Receives sensitive trace payloads for debugging failed transfers"
      ]
     },
     "url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "description": "Optional URL to send the sensitive trace to.",
      "examples": [
       "https://traces.acme.com/ingest"
      ]
     },
     "header_template": {
      "type": "string",
      "description": "Optional template for the headers to send with the sensitive trace. If left empty default headers will be sent.",
      "examples": [
       "Content-Type: application/json"
      ]
     },
     "secret": {
      "type": "string",
      "description": "Optional secret to authenticate the sensitive trace endpoint."
     },
     "body_template": {
      "type": "string",
      "description": "Optional template for the body to send with the sensitive trace. If left empty default body will be sent.",
      "examples": [
       "{{ .Records }}"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSensitiveTraceEndpointRequest": {
    "properties": {
     "sensitive_trace_endpoint": {
      "$ref": "#/components/schemas/UpdateSensitiveTraceEndpointOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoint"
    ]
   },
   "UpdateSensitiveTraceEndpointResponse": {
    "properties": {
     "sensitive_trace_endpoint": {
      "$ref": "#/components/schemas/SensitiveTraceEndpointResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "sensitive_trace_endpoint"
    ]
   },
   "AwsPolicyDocument": {
    "properties": {
     "Version": {
      "type": "string"
     },
     "Statement": {
      "items": {
       "$ref": "#/components/schemas/AwsPolicyStatement"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "Version",
     "Statement"
    ]
   },
   "AwsPolicyStatement": {
    "properties": {
     "Effect": {
      "type": "string"
     },
     "Action": {
      "items": {
       "type": "string"
      },
      "type": "array"
     },
     "Principal": {
      "additionalProperties": {
       "type": "string"
      },
      "type": "object"
     },
     "Condition": {
      "additionalProperties": {
       "additionalProperties": {
        "type": "string"
       },
       "type": "object"
      },
      "type": "object"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "Effect",
     "Action",
     "Principal"
    ]
   },
   "GenerateAWSTrustPolicyResponse": {
    "properties": {
     "aws_trust_policy": {
      "$ref": "#/components/schemas/AwsPolicyDocument",
      "description": "The aws trust policy."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "aws_trust_policy"
    ]
   },
   "ListRecipientSourceCredentialResponse": {
    "properties": {
     "recipient_source_credentials": {
      "items": {
       "$ref": "#/components/schemas/RecipientSourceCredentialResource"
      },
      "type": "array"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient_source_credentials"
    ]
   },
   "CreateRecipientSourceCredentialRequest": {
    "properties": {
     "recipient_source_credential": {
      "$ref": "#/components/schemas/RecipientSourceCredentialOptions"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient_source_credential"
    ]
   },
   "RecipientSourceCredentialOptions": {
    "properties": {
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "source_id": {
      "type": "string",
      "format": "uuid",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "username": {
      "type": "string",
      "description": "Username used by recipient to access source. Used for RBAC.",
      "examples": [
       "data_export_user"
      ]
     },
     "password": {
      "type": "string",
      "description": "Password used by recipient to access source. Used for RBAC."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "recipient_id",
     "source_id",
     "username",
     "password"
    ]
   },
   "InvalidateDeltaSharingResponse": {
    "properties": {
     "destination_id": {
      "type": "string",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "invalidated_at": {
      "type": "string",
      "format": "date-time",
      "examples": [
       "2026-01-01T00:00:00Z"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "destination_id",
     "invalidated_at"
    ]
   },
   "HealthCheckResponse": {
    "properties": {
     "version": {
      "type": "string",
      "description": "The Prequel API version."
     },
     "health": {
      "type": "string",
      "description": "The Prequel API health status."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "version",
     "health"
    ]
   },
   "PublicKeyResource": {
    "properties": {
     "id": {
      "type": "string"
     },
     "key_type": {
      "type": "string",
      "examples": [
       "webhook_signature_key"
      ]
     },
     "public_key": {
      "type": "string",
      "description": "Public key used to verify Prequel-generated signatures. Formatted as a SSH-RSA public key."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The date and time the public key was created."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "public_key",
     "created_at"
    ]
   },
   "PublicKeyResponse": {
    "properties": {
     "public_key": {
      "$ref": "#/components/schemas/PublicKeyResource"
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "public_key"
    ]
   },
   "SSHKeyResponse": {
    "properties": {
     "public_key": {
      "type": "string",
      "description": "Public key used to verify Prequel-generated signatures. Formatted as a SSH-RSA public key."
     },
     "public_key_pkcs8": {
      "type": "string",
      "description": "Public key used to verify Prequel key pair auth. Formatted as a PKCS#8 PEM-encoded public key."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "public_key",
     "public_key_pkcs8"
    ]
   },
   "AthenaSourceResourceAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "connection_database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "AthenaSourceResourceAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "connection_database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "BigQuerySourceResourceGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRoleResource",
      "title": "Authenticate using a GCP service account (recommended)"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "BigQuerySourceResourceFederatedGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRoleResource",
      "title": "Authenticate using federation (only for AWS-hosted deployments)"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "BigQuerySourceResourceGCPServiceAccountKey": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/GCPServiceAccountKeyResource",
      "title": "Authenticate using direct access"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "DatabricksHiveResourceBucketS3": {
    "properties": {
     "bucket_vendor": {
      "type": "string",
      "examples": [
       "s3"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/DatabricksS3BucketResource"
     }
    },
    "type": "object",
    "required": [
     "bucket_vendor",
     "bucket_s3"
    ],
    "title": "Bucket S3",
    "unevaluatedProperties": false
   },
   "DatabricksSourceResourceHive": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ]
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveResource",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "use_ssh_tunnel",
     "metastore",
     "hive"
    ],
    "title": "Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksSourceResourceUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth"
      ]
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "use_ssh_tunnel",
     "metastore"
    ],
    "title": "Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "MongoDBSourceResourceAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "examples": [
       "admin"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "authentication_database",
     "use_ssh_tunnel",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "MongoDBSourceResourcePasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "examples": [
       "admin"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "aws_iam_role"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource",
      "title": "Authenticate using a username and password"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "authentication_database",
     "use_ssh_tunnel",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessSourceResourceAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessSourceResourceAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "RedshiftSourceResourceAWSAccessKeys": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "cluster": {
      "type": "string",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/RedshiftAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "cluster",
     "username",
     "bucket_s3",
     "use_ssh_tunnel",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftSourceResourceAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "cluster": {
      "type": "string",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "cluster",
     "username",
     "bucket_s3",
     "use_ssh_tunnel",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "SourceResourceAthena": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "athena": {
      "$ref": "#/components/schemas/AthenaSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "athena"
    ],
    "title": "Athena",
    "unevaluatedProperties": false
   },
   "SourceResourceAuroraMySQL": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/MySQLSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "aurora_mysql"
    ],
    "title": "Aurora MySQL",
    "unevaluatedProperties": false
   },
   "SourceResourceAuroraPostgres": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/PostgresSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "aurora_postgres"
    ],
    "title": "Aurora Postgres",
    "unevaluatedProperties": false
   },
   "SourceResourceBigQuery": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "bigquery": {
      "$ref": "#/components/schemas/BigQuerySourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "bigquery"
    ],
    "title": "BigQuery",
    "unevaluatedProperties": false
   },
   "SourceResourceClickHouse": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "clickhouse": {
      "$ref": "#/components/schemas/ClickhouseSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "clickhouse"
    ],
    "title": "ClickHouse",
    "unevaluatedProperties": false
   },
   "SourceResourceDatabricks": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "databricks": {
      "$ref": "#/components/schemas/DatabricksSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "databricks"
    ],
    "title": "Databricks",
    "unevaluatedProperties": false
   },
   "SourceResourceMock": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "mock": {
      "$ref": "#/components/schemas/MockSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "mock"
    ],
    "title": "Mock",
    "unevaluatedProperties": false
   },
   "SourceResourceMongoDB": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "mongodb": {
      "$ref": "#/components/schemas/MongoDBSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "mongodb"
    ],
    "title": "MongoDB",
    "unevaluatedProperties": false
   },
   "SourceResourceMotherDuck": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "motherduck": {
      "$ref": "#/components/schemas/MotherDuckSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "motherduck"
    ],
    "title": "MotherDuck",
    "unevaluatedProperties": false
   },
   "SourceResourceMySQL": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "mysql": {
      "$ref": "#/components/schemas/MySQLSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "mysql"
    ],
    "title": "MySQL",
    "unevaluatedProperties": false
   },
   "SourceResourceOracle": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "oracle": {
      "$ref": "#/components/schemas/OracleSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "oracle"
    ],
    "title": "Oracle",
    "unevaluatedProperties": false
   },
   "SourceResourcePostgres": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "postgres": {
      "$ref": "#/components/schemas/PostgresSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "postgres"
    ],
    "title": "Postgres",
    "unevaluatedProperties": false
   },
   "SourceResourceRedshift": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "redshift": {
      "$ref": "#/components/schemas/RedshiftSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "redshift"
    ],
    "title": "Redshift",
    "unevaluatedProperties": false
   },
   "SourceResourceRedshiftServerless": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/RedshiftServerlessSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "redshift_serverless"
    ],
    "title": "Redshift Serverless",
    "unevaluatedProperties": false
   },
   "SourceResourceSingleStore": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "singlestore": {
      "$ref": "#/components/schemas/MySQLSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "singlestore"
    ],
    "title": "SingleStore",
    "unevaluatedProperties": false
   },
   "SourceResourceSnowflake": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "snowflake": {
      "$ref": "#/components/schemas/SnowflakeSourceResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "snowflake"
    ],
    "title": "Snowflake",
    "unevaluatedProperties": false
   },
   "SourceResourceSQLServer": {
    "properties": {
     "id": {
      "type": "string",
      "description": "Prequel-generated unique identifier for the source."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the source.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "Descriptive name of database. (Used only for reference or comment)",
      "examples": [
       "production-primary"
      ]
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the source was last updated."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "examples": [
       1
      ]
     },
     "sql_server": {
      "$ref": "#/components/schemas/SQLServerResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "created_at",
     "updated_at",
     "max_concurrent_transfers",
     "max_concurrent_queries_per_transfer",
     "sql_server"
    ],
    "title": "SQL Server",
    "unevaluatedProperties": false
   },
   "AthenaSourceOptionsAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Optional field to specify the Athena Workgroup to use. Must be configured for Athena engine version 3. If left blank, the default Workgroup is used.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Query results location",
      "description": "The name of the folder where the query results will be stored. This folder will be created within the S3 bucket.",
      "examples": [
       "default"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "connection_database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "AthenaSourceOptionsAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Optional field to specify the Athena Workgroup to use. Must be configured for Athena engine version 3. If left blank, the default Workgroup is used.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Query results location",
      "description": "The name of the folder where the query results will be stored. This folder will be created within the S3 bucket.",
      "examples": [
       "default"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "connection_database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "BigQuerySourceOptionsGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRole",
      "title": "Authenticate using a GCP service account (recommended)",
      "description": "Required details if authenticating using a GCP service account role."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "BigQuerySourceOptionsFederatedGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRole",
      "title": "Authenticate using federation (only for AWS-hosted deployments)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "BigQuerySourceOptionsGCPServiceAccountKey": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/GCPServiceAccountKey",
      "title": "Authenticate using direct access",
      "description": "Required details if authenticating using a GCP service account key."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "ClickhouseS3BucketParamsAWSAccessKeys": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "Bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "bucket_auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "ClickhouseS3BucketParamsAWSIAMRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "Bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)",
      "description": "Required details if authenticating using AWS IAM role."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "bucket_auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "ClickhouseSourceOptionsBucketS3": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_gcs",
       "bucket_implicit"
      ],
      "const": "bucket_s3"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/ClickhouseS3BucketParams",
      "title": "Staging bucket hosted on S3",
      "description": "Required details about the S3 bucket used for staging data."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "bucket_vendor",
     "bucket_s3"
    ],
    "title": "Staging bucket hosted on S3",
    "unevaluatedProperties": false
   },
   "ClickhouseSourceOptionsBucketGCS": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_gcs",
       "bucket_s3",
       "bucket_implicit"
      ],
      "const": "bucket_gcs"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/ClickhouseGCSBucketParams",
      "title": "Staging bucket hosted on GCS",
      "description": "Required details about the GCS bucket used for staging data."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "bucket_vendor",
     "bucket_gcs"
    ],
    "title": "Staging bucket hosted on GCS",
    "unevaluatedProperties": false
   },
   "ClickhouseSourceOptionsBucketImplicit": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_implicit",
       "bucket_s3",
       "bucket_gcs"
      ],
      "const": "bucket_implicit"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "auth_method",
     "password_auth",
     "bucket_vendor"
    ],
    "title": "Staging bucket implicit",
    "unevaluatedProperties": false
   },
   "DatabricksHiveOptionsBucketS3": {
    "properties": {
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3"
      ],
      "const": "bucket_s3"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/DatabricksS3BucketParams",
      "description": "Required details if using an S3 bucket for staging data."
     }
    },
    "type": "object",
    "required": [
     "bucket_vendor",
     "bucket_s3"
    ],
    "title": "Bucket S3",
    "unevaluatedProperties": false
   },
   "DatabricksS3BucketParamsAWSAccessKeys": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "aws_access_keys"
    ],
    "title": "AWS Access Keys",
    "unevaluatedProperties": false
   },
   "DatabricksSourceOptionsAccessTokenAuthHive": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "const": "access_token_auth"
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "Required details if authenticating using an access token."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveOptions",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "access_token_auth",
     "metastore",
     "hive"
    ],
    "title": "Access Token Auth · Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksSourceOptionsAccessTokenAuthUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "const": "access_token_auth"
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "Required details if authenticating using an access token."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "access_token_auth",
     "metastore"
    ],
    "title": "Access Token Auth · Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksSourceOptionsOAuthClientSecretAuthHive": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_client_secret_auth",
       "access_token_auth"
      ],
      "const": "oauth_client_secret_auth"
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuth",
      "description": "Required details if authenticating using a OAuth client secret."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveOptions",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "oauth_client_secret_auth",
     "metastore",
     "hive"
    ],
    "title": "OAuth Client Secret Auth · Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksSourceOptionsOAuthClientSecretAuthUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the source.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_client_secret_auth",
       "access_token_auth"
      ],
      "const": "oauth_client_secret_auth"
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuth",
      "description": "Required details if authenticating using a OAuth client secret."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "catalog",
     "http_path",
     "auth_method",
     "oauth_client_secret_auth",
     "metastore"
    ],
    "title": "OAuth Client Secret Auth · Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "MongoDBSourceOptionsAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional. Leave empty If using Atlas.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "title": "Database",
      "description": "The MongoDB database to connect to.",
      "examples": [
       "admin"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "authentication_database",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "MongoDBSourceOptionsPasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional. Leave empty If using Atlas.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "title": "Database",
      "description": "The MongoDB database to connect to.",
      "examples": [
       "admin"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "aws_iam_role"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "title": "Authenticate using a username and password",
      "description": "Required details if authenticating with username/password."
     }
    },
    "type": "object",
    "required": [
     "host",
     "authentication_database",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "OracleSourceOptionsSSLEnabled": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the source.",
      "examples": [
       "ORCL"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "const": false
     },
     "ssl_options": {
      "$ref": "#/components/schemas/OracleSSLParams",
      "description": "Required details if using SSL connection."
     }
    },
    "type": "object",
    "required": [
     "auth_method",
     "password_auth",
     "ssl_options"
    ],
    "title": "SSL Enabled",
    "unevaluatedProperties": false
   },
   "OracleSourceOptionsSSLDisabled": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the source.",
      "examples": [
       "ORCL"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "default": false
     }
    },
    "type": "object",
    "required": [
     "auth_method",
     "password_auth",
     "disable_ssl"
    ],
    "title": "SSL Disabled",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessSourceOptionsAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Workgroup endpoint",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of target database.",
      "examples": [
       "dev"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)",
      "description": "Required details if authenticating using an AWS IAM role."
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessSourceOptionsAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Workgroup endpoint",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of target database.",
      "examples": [
       "dev"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftSourceOptionsAWSAccessKeys": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of database.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "dev"
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Redshift Cluster identifier",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/RedshiftAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details for username/password authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftSourceOptionsAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of database.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "dev"
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Redshift Cluster identifier",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)",
      "description": "Required details if authenticating using an AWS IAM role."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "SnowflakeSourceOptionsPasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "title": "Account host",
      "description": "Host address of database.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordOnlyAuth",
      "title": "Authenticate using a username and password",
      "description": "Required details for username/password authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "username",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "SnowflakeSourceOptionsPublicKeyAuth": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "title": "Account host",
      "description": "Host address of database.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "public_key_auth",
       "password_auth"
      ],
      "const": "public_key_auth"
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth",
      "description": "Required details for public key authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "username",
     "auth_method",
     "public_key_auth"
    ],
    "title": "Public Key Auth",
    "unevaluatedProperties": false
   },
   "SourceOptionsAthena": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "athena",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "athena"
     },
     "athena": {
      "$ref": "#/components/schemas/AthenaSourceOptions",
      "title": "Amazon Athena"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "athena"
    ],
    "title": "Amazon Athena",
    "unevaluatedProperties": false
   },
   "SourceOptionsAuroraMySQL": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "aurora_mysql",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "aurora_mysql"
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/MySQLSourceOptions",
      "title": "Amazon Aurora MySQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "aurora_mysql"
    ],
    "title": "Amazon Aurora MySQL",
    "unevaluatedProperties": false
   },
   "SourceOptionsAuroraPostgres": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "aurora_postgres",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "aurora_postgres"
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/PostgresSourceOptions",
      "title": "Amazon Aurora PostgreSQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "aurora_postgres"
    ],
    "title": "Amazon Aurora PostgreSQL",
    "unevaluatedProperties": false
   },
   "SourceOptionsBigQuery": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "bigquery",
       "snowflake",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "bigquery"
     },
     "bigquery": {
      "$ref": "#/components/schemas/BigQuerySourceOptions",
      "title": "Google BigQuery"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bigquery"
    ],
    "title": "Google BigQuery",
    "unevaluatedProperties": false
   },
   "SourceOptionsClickHouse": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "clickhouse",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "clickhouse"
     },
     "clickhouse": {
      "$ref": "#/components/schemas/ClickhouseSourceOptions",
      "title": "ClickHouse"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "clickhouse"
    ],
    "title": "ClickHouse",
    "unevaluatedProperties": false
   },
   "SourceOptionsDatabricks": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "databricks",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "databricks"
     },
     "databricks": {
      "$ref": "#/components/schemas/DatabricksSourceOptions",
      "title": "Databricks"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "databricks"
    ],
    "title": "Databricks",
    "unevaluatedProperties": false
   },
   "SourceOptionsMock": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mock",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "mock"
     },
     "mock": {
      "$ref": "#/components/schemas/MockSourceOptions",
      "title": "Mock (for testing in staging only)"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "mock"
    ],
    "title": "Mock (for testing in staging only)",
    "unevaluatedProperties": false
   },
   "SourceOptionsMongoDB": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mongodb",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "mongodb"
     },
     "mongodb": {
      "$ref": "#/components/schemas/MongoDBSourceOptions",
      "title": "MongoDB"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "mongodb"
    ],
    "title": "MongoDB",
    "unevaluatedProperties": false
   },
   "SourceOptionsMotherDuck": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "motherduck",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "motherduck"
     },
     "motherduck": {
      "$ref": "#/components/schemas/MotherDuckSourceOptions",
      "title": "MotherDuck"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "motherduck"
    ],
    "title": "MotherDuck",
    "unevaluatedProperties": false
   },
   "SourceOptionsMySQL": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mysql",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "mysql"
     },
     "mysql": {
      "$ref": "#/components/schemas/MySQLSourceOptions",
      "title": "MySQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "mysql"
    ],
    "title": "MySQL",
    "unevaluatedProperties": false
   },
   "SourceOptionsOracle": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "oracle",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "oracle"
     },
     "oracle": {
      "$ref": "#/components/schemas/OracleSourceOptions",
      "title": "Oracle"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "oracle"
    ],
    "title": "Oracle",
    "unevaluatedProperties": false
   },
   "SourceOptionsPostgres": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "postgres",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "sql_server",
       "singlestore"
      ],
      "const": "postgres"
     },
     "postgres": {
      "$ref": "#/components/schemas/PostgresSourceOptions",
      "title": "PostgreSQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "postgres"
    ],
    "title": "PostgreSQL",
    "unevaluatedProperties": false
   },
   "SourceOptionsRedshift": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "redshift",
       "snowflake",
       "bigquery",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "redshift"
     },
     "redshift": {
      "$ref": "#/components/schemas/RedshiftSourceOptions",
      "title": "Amazon Redshift"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "redshift"
    ],
    "title": "Amazon Redshift",
    "unevaluatedProperties": false
   },
   "SourceOptionsRedshiftServerless": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "redshift_serverless",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "redshift_serverless"
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/RedshiftServerlessSourceOptions",
      "title": "Amazon Redshift Serverless"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "redshift_serverless"
    ],
    "title": "Amazon Redshift Serverless",
    "unevaluatedProperties": false
   },
   "SourceOptionsSingleStore": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "singlestore",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server"
      ],
      "const": "singlestore"
     },
     "singlestore": {
      "$ref": "#/components/schemas/MySQLSourceOptions",
      "title": "SingleStore"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "singlestore"
    ],
    "title": "SingleStore",
    "unevaluatedProperties": false
   },
   "SourceOptionsSnowflake": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore"
      ],
      "const": "snowflake"
     },
     "snowflake": {
      "$ref": "#/components/schemas/SnowflakeSourceOptions",
      "title": "Snowflake"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "snowflake"
    ],
    "title": "Snowflake",
    "unevaluatedProperties": false
   },
   "SourceOptionsSQLServer": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Source name",
      "description": "Descriptive name for this source.",
      "examples": [
       "production-primary"
      ]
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "title": "Max concurrent transfers",
      "description": "Maximum number of concurrent transfers allowed for this source.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "title": "Max concurrent queries per transfer",
      "description": "Maximum number of concurrent queries allowed per transfer for this source.",
      "default": 1
     },
     "vendor": {
      "type": "string",
      "enum": [
       "sql_server",
       "snowflake",
       "bigquery",
       "redshift",
       "redshift_serverless",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "singlestore"
      ],
      "const": "sql_server"
     },
     "sql_server": {
      "$ref": "#/components/schemas/SQLServerSourceOptions",
      "title": "SQL Server"
     }
    },
    "type": "object",
    "required": [
     "name",
     "vendor",
     "sql_server"
    ],
    "title": "SQL Server",
    "unevaluatedProperties": false
   },
   "UpdateOracleSourceOptionsSSLEnabled": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the PostgreSQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the PostgreSQL server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ORCL"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "const": false
     },
     "ssl_options": {
      "$ref": "#/components/schemas/OracleSSLParams",
      "description": "Required details if using SSL connection."
     }
    },
    "type": "object",
    "required": [
     "ssl_options"
    ],
    "title": "SSL Enabled",
    "unevaluatedProperties": false
   },
   "UpdateOracleSourceOptionsSSLDisabled": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the PostgreSQL server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the PostgreSQL server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ORCL"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the PostgreSQL connection.",
      "default": false
     }
    },
    "type": "object",
    "required": [
     "disable_ssl"
    ],
    "title": "SSL Disabled",
    "unevaluatedProperties": false
   },
   "AthenaDestinationResourceAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "connection_database",
     "write_database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "AthenaDestinationResourceAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "connection_database",
     "write_database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationResourceGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role",
       "client_secret_workload_identity_federation"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRoleResource",
      "title": "Authenticate using a GCP service account (recommended)"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationResourceFederatedGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key",
       "client_secret_workload_identity_federation"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRoleResource",
      "title": "Authenticate using federation (only for AWS-hosted deployments)"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationResourceGCPServiceAccountKey": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role",
       "client_secret_workload_identity_federation"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/GCPServiceAccountKeyResource",
      "title": "Authenticate using direct access"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationResourceClientSecretWorkloadIdentityFederation": {
    "properties": {
     "project_id": {
      "type": "string",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "client_secret_workload_identity_federation",
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "client_secret_workload_identity_federation"
     },
     "client_secret_workload_identity_federation": {
      "$ref": "#/components/schemas/ClientSecretWorkloadIdentityFederationResource",
      "title": "Authenticate using external identity provider"
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "client_secret_workload_identity_federation"
    ],
    "title": "Authenticate using external identity provider",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationResourceHive": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ]
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveResource",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "use_ssh_tunnel",
     "metastore",
     "hive"
    ],
    "title": "Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationResourceUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ]
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuthResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "use_ssh_tunnel",
     "metastore"
    ],
    "title": "Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "DestinationResourceABS": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "abs": {
      "$ref": "#/components/schemas/ABSDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "abs"
    ],
    "title": "ABS",
    "unevaluatedProperties": false
   },
   "DestinationResourceAthena": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "athena": {
      "$ref": "#/components/schemas/AthenaDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "athena"
    ],
    "title": "Athena",
    "unevaluatedProperties": false
   },
   "DestinationResourceAuroraMySQL": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/MySQLDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "aurora_mysql"
    ],
    "title": "Aurora MySQL",
    "unevaluatedProperties": false
   },
   "DestinationResourceAuroraPostgres": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/PostgresDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "aurora_postgres"
    ],
    "title": "Aurora Postgres",
    "unevaluatedProperties": false
   },
   "DestinationResourceBigQuery": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "bigquery": {
      "$ref": "#/components/schemas/BigQueryDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "bigquery"
    ],
    "title": "BigQuery",
    "unevaluatedProperties": false
   },
   "DestinationResourceClickHouse": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "clickhouse": {
      "$ref": "#/components/schemas/ClickhouseDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "clickhouse"
    ],
    "title": "ClickHouse",
    "unevaluatedProperties": false
   },
   "DestinationResourceDatabricks": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "databricks": {
      "$ref": "#/components/schemas/DatabricksDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "databricks"
    ],
    "title": "Databricks",
    "unevaluatedProperties": false
   },
   "DestinationResourceDeltaLake": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "delta_lake": {
      "$ref": "#/components/schemas/DeltaLakeDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "delta_lake"
    ],
    "title": "Delta Lake",
    "unevaluatedProperties": false
   },
   "DestinationResourceGCS": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "gcs": {
      "$ref": "#/components/schemas/GCSDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "gcs"
    ],
    "title": "GCS",
    "unevaluatedProperties": false
   },
   "DestinationResourceGoogleSheets": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "google_sheets": {
      "$ref": "#/components/schemas/GoogleSheetsDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "google_sheets"
    ],
    "title": "Google Sheets",
    "unevaluatedProperties": false
   },
   "DestinationResourceIceberg": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "iceberg": {
      "$ref": "#/components/schemas/IcebergDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "iceberg"
    ],
    "title": "Iceberg",
    "unevaluatedProperties": false
   },
   "DestinationResourceMongoDB": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "mongodb": {
      "$ref": "#/components/schemas/MongoDBDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "mongodb"
    ],
    "title": "MongoDB",
    "unevaluatedProperties": false
   },
   "DestinationResourceMotherDuck": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "motherduck": {
      "$ref": "#/components/schemas/MotherDuckDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "motherduck"
    ],
    "title": "MotherDuck",
    "unevaluatedProperties": false
   },
   "DestinationResourceMySQL": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "mysql": {
      "$ref": "#/components/schemas/MySQLDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "mysql"
    ],
    "title": "MySQL",
    "unevaluatedProperties": false
   },
   "DestinationResourceOracle": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "oracle": {
      "$ref": "#/components/schemas/OracleDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "oracle"
    ],
    "title": "Oracle",
    "unevaluatedProperties": false
   },
   "DestinationResourcePlanetScale": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "planetscale": {
      "$ref": "#/components/schemas/MySQLDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "planetscale"
    ],
    "title": "PlanetScale",
    "unevaluatedProperties": false
   },
   "DestinationResourcePostgres": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "postgres": {
      "$ref": "#/components/schemas/PostgresDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "postgres"
    ],
    "title": "Postgres",
    "unevaluatedProperties": false
   },
   "DestinationResourceRedshift": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "redshift": {
      "$ref": "#/components/schemas/RedshiftDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "redshift"
    ],
    "title": "Redshift",
    "unevaluatedProperties": false
   },
   "DestinationResourceRedshiftServerless": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "redshift_serverless"
    ],
    "title": "Redshift Serverless",
    "unevaluatedProperties": false
   },
   "DestinationResourceSFTP": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "sftp": {
      "$ref": "#/components/schemas/SFTPDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "sftp"
    ],
    "title": "SFTP",
    "unevaluatedProperties": false
   },
   "DestinationResourceSingleStore": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "singlestore": {
      "$ref": "#/components/schemas/MySQLDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "singlestore"
    ],
    "title": "SingleStore",
    "unevaluatedProperties": false
   },
   "DestinationResourceSnowflake": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "snowflake": {
      "$ref": "#/components/schemas/SnowflakeDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "snowflake"
    ],
    "title": "Snowflake",
    "unevaluatedProperties": false
   },
   "DestinationResourceSQLServer": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "sql_server": {
      "$ref": "#/components/schemas/SQLServerDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "sql_server"
    ],
    "title": "SQL Server",
    "unevaluatedProperties": false
   },
   "DestinationResourceS3": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "s3": {
      "$ref": "#/components/schemas/S3DestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "s3"
    ],
    "title": "S3",
    "unevaluatedProperties": false
   },
   "DestinationResourceS3Compatible": {
    "properties": {
     "id": {
      "type": "string",
      "description": "The ID of the destination."
     },
     "vendor": {
      "type": "string",
      "description": "The vendor of the destination.",
      "examples": [
       "snowflake"
      ]
     },
     "name": {
      "type": "string",
      "description": "The name of the destination.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "description": "The frequency at which the destination will be updated.",
      "examples": [
       60
      ]
     },
     "id_in_provider_system": {
      "type": "string",
      "description": "The ID of the destination in the provider's system.",
      "examples": [
       "cus_1a2b3c4d"
      ]
     },
     "recipient_id": {
      "type": "string",
      "description": "The ID of the recipient that this destination is associated with.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "products": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of products that are enabled for this destination."
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "The list of models that are enabled for this destination."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of concurrent transfers allowed for this destination.",
      "examples": [
       10
      ]
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "examples": [
       1
      ]
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused)."
     },
     "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was created."
     },
     "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this destination was last updated."
     },
     "last_successful_transfer_ended_at": {
      "type": "string",
      "format": "date-time",
      "description": "The timestamp when the last successful transfer ended."
     },
     "last_completed_transfer": {
      "$ref": "#/components/schemas/ScannableTransfer",
      "description": "The ID of the last successful transfer."
     },
     "total_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_delta_rows_transferred_last_billing_period": {
      "type": "integer"
     },
     "total_rows_transferred_current_billing_period": {
      "type": "integer"
     },
     "s3_compatible": {
      "$ref": "#/components/schemas/S3CompatibleDestinationResource"
     }
    },
    "type": "object",
    "required": [
     "id",
     "vendor",
     "name",
     "recipient_id",
     "created_at",
     "updated_at",
     "last_successful_transfer_ended_at",
     "s3_compatible"
    ],
    "title": "S3 Compatible",
    "unevaluatedProperties": false
   },
   "GCSDestinationResourceFederatedGCPServiceAccountRole": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcs_hmac_keys"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRoleResource",
      "title": "Authenticate using federation (only for AWS-hosted deployments)"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "GCSDestinationResourceGCPServiceAccountRole": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcs_hmac_keys",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRoleResource",
      "title": "Authenticate using a GCP service account (recommended)"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "GCSDestinationResourceGCSHMACKeys": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcs_hmac_keys",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcs_hmac_keys"
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/GCSAccessKeysResource",
      "title": "Authenticate using GCS HMAC keys"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "gcs_hmac_keys"
    ],
    "title": "Authenticate using GCS HMAC keys",
    "unevaluatedProperties": false
   },
   "MongoDBDestinationResourceAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "examples": [
       "admin"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "authentication_database",
     "write_database",
     "use_ssh_tunnel",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "MongoDBDestinationResourcePasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "examples": [
       "admin"
      ]
     },
     "write_database": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "disable_ssl": {
      "type": "boolean"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "aws_iam_role"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuthResource",
      "title": "Authenticate using a username and password"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "authentication_database",
     "write_database",
     "use_ssh_tunnel",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketResourceGCPServiceAccountRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key"
      ]
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRoleResource"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "gcp_service_account_role"
    ],
    "title": "GCP Service Account Role",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketResourceFederatedGCPServiceAccountRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key"
      ]
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRoleResource"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Federated GCP Service Account Role",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketResourceGCPServiceAccountKey": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key"
      ]
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/OpenTableFormatGCSDestinationServiceAccountKeyResource"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "gcp_service_account_key"
    ],
    "title": "GCP Service Account Key",
    "unevaluatedProperties": false
   },
   "OpenTableFormatS3BucketResourceAWSIAMRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "folder",
     "bucket_auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "OpenTableFormatS3BucketResourceAWSAccessKeys": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "folder",
     "bucket_auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftDestinationResourceAWSAccessKeys": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "cluster": {
      "type": "string",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/RedshiftAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "cluster",
     "username",
     "bucket_s3",
     "use_ssh_tunnel",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftDestinationResourceAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "cluster": {
      "type": "string",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "cluster",
     "username",
     "bucket_s3",
     "use_ssh_tunnel",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessDestinationResourceAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessDestinationResourceAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "S3DestinationResourceAWSIAMRole": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRoleResource",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "bucket_region",
     "use_ssh_tunnel",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "S3DestinationResourceAWSAccessKeys": {
    "properties": {
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data."
     },
     "folder": {
      "type": "string",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "bucket_name": {
      "type": "string",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "examples": [
       "us-east-1"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean"
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelResource"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeysResource",
      "title": "Authenticate using AWS access keys"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "bucket_region",
     "use_ssh_tunnel",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "SFTPDestinationResourcePgp": {
    "properties": {
     "username": {
      "type": "string",
      "examples": [
       "data_export_user"
      ]
     },
     "host": {
      "type": "string",
      "examples": [
       "sftp.acme.com"
      ]
     },
     "port": {
      "type": "integer",
      "examples": [
       22
      ]
     },
     "folder": {
      "type": "string",
      "examples": [
       "/uploads/data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ]
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "public_key_auth"
      ]
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth"
     },
     "file_encryption": {
      "type": "string",
      "enum": [
       "pgp",
       "none"
      ],
      "const": "pgp"
     },
     "pgp": {
      "$ref": "#/components/schemas/PGPEncryption",
      "description": "Required details for PGP encryption."
     }
    },
    "type": "object",
    "required": [
     "username",
     "host",
     "port",
     "folder",
     "file_format",
     "auth_method",
     "public_key_auth",
     "file_encryption",
     "pgp"
    ],
    "title": "Pgp",
    "unevaluatedProperties": false
   },
   "AthenaDestinationOptionsAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Optional field to specify the Athena Workgroup to use. Must be configured for Athena engine version 3. If left blank, the default Workgroup is used.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Query results location",
      "description": "The name of the folder where the query results will be stored. This folder will be created within the S3 bucket.",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Schema",
      "description": "This is the name for the group of tables loaded into Athena. This is synonymous with database in Athena.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "connection_database",
     "write_database",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "AthenaDestinationOptionsAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Optional field to specify the Athena Workgroup to use. Must be configured for Athena engine version 3. If left blank, the default Workgroup is used.",
      "examples": [
       "primary"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Query results location",
      "description": "The name of the folder where the query results will be stored. This folder will be created within the S3 bucket.",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Schema",
      "description": "This is the name for the group of tables loaded into Athena. This is synonymous with database in Athena.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/S3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "connection_database",
     "write_database",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationOptionsGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "$comment": "BigQuery Dataset IDs must consist of 1-1024 alphanumeric characters or underscores.",
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]+$",
      "title": "Dataset",
      "description": "Name of dataset to create and write data to. It will be created automatically if the dataset does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role",
       "client_secret_workload_identity_federation"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRole",
      "title": "Authenticate using a GCP service account (recommended)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationOptionsFederatedGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "$comment": "BigQuery Dataset IDs must consist of 1-1024 alphanumeric characters or underscores.",
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]+$",
      "title": "Dataset",
      "description": "Name of dataset to create and write data to. It will be created automatically if the dataset does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key",
       "client_secret_workload_identity_federation"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRole",
      "title": "Authenticate using federation (only for AWS-hosted deployments)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationOptionsGCPServiceAccountKey": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "$comment": "BigQuery Dataset IDs must consist of 1-1024 alphanumeric characters or underscores.",
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]+$",
      "title": "Dataset",
      "description": "Name of dataset to create and write data to. It will be created automatically if the dataset does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role",
       "client_secret_workload_identity_federation"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/GCPServiceAccountKey",
      "title": "Authenticate using direct access",
      "description": "Required details if authenticating using a GCP service account key."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "BigQueryDestinationOptionsClientSecretWorkloadIdentityFederation": {
    "properties": {
     "project_id": {
      "$comment": "BigQuery Project IDs must consist of 4-30 lowercase letters, numbers, and hyphens, and must begin with a lowercase letter and end with a lowercase letter or number.",
      "type": "string",
      "pattern": "^[a-z][a-z0-9-]{2,28}[a-z0-9]$",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "schema": {
      "$comment": "BigQuery Dataset IDs must consist of 1-1024 alphanumeric characters or underscores.",
      "type": "string",
      "pattern": "^[a-zA-Z0-9_]+$",
      "title": "Dataset",
      "description": "Name of dataset to create and write data to. It will be created automatically if the dataset does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/BigQueryGCSBucketParams",
      "description": "Required details about the GCS bucket used for staging data."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "client_secret_workload_identity_federation",
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "client_secret_workload_identity_federation"
     },
     "client_secret_workload_identity_federation": {
      "$ref": "#/components/schemas/ClientSecretWorkloadIdentityFederation",
      "title": "Authenticate using external identity provider",
      "description": "Required details if the authentication fetches an OAuth token from an external identity provider and federates into the GCP project to impersonate a service account you grant access to."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "schema",
     "bucket_gcs",
     "auth_method",
     "client_secret_workload_identity_federation"
    ],
    "title": "Authenticate using external identity provider",
    "unevaluatedProperties": false
   },
   "ClickhouseDestinationOptionsBucketS3": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the ClickHouse server.",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the ClickHouse server.",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "description": "Name of the ClickHouse database to use for the initial connection.",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Write database",
      "description": "Name of the ClickHouse database where tables will be created and data will be written. It will be created automatically if it does not exist.",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the ClickHouse connection. When false: SSL is enabled.",
      "default": false
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_gcs",
       "bucket_implicit"
      ],
      "const": "bucket_s3"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/ClickhouseS3BucketParams",
      "title": "Staging bucket hosted on S3",
      "description": "Required details about the S3 bucket used for staging data."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "write_database",
     "auth_method",
     "password_auth",
     "bucket_vendor",
     "bucket_s3"
    ],
    "title": "Staging bucket hosted on S3",
    "unevaluatedProperties": false
   },
   "ClickhouseDestinationOptionsBucketGCS": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the ClickHouse server.",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the ClickHouse server.",
      "examples": [
       8443
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Optional field to specify the Cluster to use in 'ON CLUSTER' statements.",
      "examples": [
       "default"
      ]
     },
     "connection_database": {
      "type": "string",
      "title": "Connection database",
      "description": "Name of the ClickHouse database to use for the initial connection.",
      "examples": [
       "default"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Write database",
      "description": "Name of the ClickHouse database where tables will be created and data will be written. It will be created automatically if it does not exist.",
      "examples": [
       "default"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the ClickHouse connection. When false: SSL is enabled.",
      "default": false
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "bucket_gcs",
       "bucket_s3",
       "bucket_implicit"
      ],
      "const": "bucket_gcs"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/ClickhouseGCSBucketParams",
      "title": "Staging bucket hosted on GCS",
      "description": "Required details about the GCS bucket used for staging data."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "connection_database",
     "write_database",
     "auth_method",
     "password_auth",
     "bucket_vendor",
     "bucket_gcs"
    ],
    "title": "Staging bucket hosted on GCS",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationOptionsAccessTokenAuthHive": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Databricks SQL endpoint.",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "const": "access_token_auth"
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "Required details if authenticating using an access token."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveOptions",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "access_token_auth",
     "metastore",
     "hive"
    ],
    "title": "Access Token Auth · Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationOptionsAccessTokenAuthUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Databricks SQL endpoint.",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "access_token_auth",
       "oauth_client_secret_auth"
      ],
      "const": "access_token_auth"
     },
     "access_token_auth": {
      "$ref": "#/components/schemas/AccessToken",
      "description": "Required details if authenticating using an access token."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "access_token_auth",
     "metastore"
    ],
    "title": "Access Token Auth · Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationOptionsOAuthClientSecretAuthHive": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Databricks SQL endpoint.",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_client_secret_auth",
       "access_token_auth"
      ],
      "const": "oauth_client_secret_auth"
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuth",
      "description": "Required details if authenticating using a OAuth client secret."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "hive",
       "unity_catalog"
      ],
      "const": "hive"
     },
     "hive": {
      "$ref": "#/components/schemas/DatabricksHiveOptions",
      "title": "Hive Metastore"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "oauth_client_secret_auth",
     "metastore",
     "hive"
    ],
    "title": "OAuth Client Secret Auth · Hive Metastore",
    "unevaluatedProperties": false
   },
   "DatabricksDestinationOptionsOAuthClientSecretAuthUnityCatalog": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "Server hostname of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Databricks SQL endpoint.",
      "examples": [
       443
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "catalog": {
      "type": "string",
      "title": "Catalog",
      "description": "Name of catalog to write data to.",
      "examples": [
       "main"
      ]
     },
     "http_path": {
      "type": "string",
      "title": "HTTP path",
      "description": "HTTP path of the SQL endpoint provisioned by the owner of the destination.",
      "examples": [
       "/sql/1.0/endpoints/a98765ab4c3210a0"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_client_secret_auth",
       "access_token_auth"
      ],
      "const": "oauth_client_secret_auth"
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthClientSecretAuth",
      "description": "Required details if authenticating using a OAuth client secret."
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "const": "unity_catalog"
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "schema",
     "catalog",
     "http_path",
     "auth_method",
     "oauth_client_secret_auth",
     "metastore"
    ],
    "title": "OAuth Client Secret Auth · Unity Catalog Metastore",
    "unevaluatedProperties": false
   },
   "DeltaLakeDestinationOptionsBucketABS": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The number of days a file must be deleted before it is vacuumed.",
      "default": 30
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ],
      "title": "Column mapping mode",
      "description": "Column mapping mode for the Delta Lake table. Use none for no mapping; name to track columns by name (allows rename and drop without rewrite); or id to track columns by numeric ID.",
      "default": "none"
     },
     "deletion_vectors_disabled": {
      "type": "boolean",
      "title": "Disable deletion vectors",
      "description": "Whether to disable deletion vectors. When false: deletions are recorded as markers without rewriting table files.",
      "default": false
     },
     "change_data_feed_disabled": {
      "type": "boolean",
      "title": "Disable change data feed",
      "description": "Whether to disable change data feed. When false: row-level change tracking is maintained for the table.",
      "default": false
     },
     "storage": {
      "type": "string",
      "enum": [
       "bucket_abs",
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_gcs"
      ],
      "const": "bucket_abs"
     },
     "bucket_abs": {
      "$ref": "#/components/schemas/OpenTableFormatABSBucketParams",
      "description": "Required details about the ABS bucket used for the delta lake table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_abs"
    ],
    "title": "Bucket ABS",
    "unevaluatedProperties": false
   },
   "DeltaLakeDestinationOptionsBucketGCS": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The number of days a file must be deleted before it is vacuumed.",
      "default": 30
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ],
      "title": "Column mapping mode",
      "description": "Column mapping mode for the Delta Lake table. Use none for no mapping; name to track columns by name (allows rename and drop without rewrite); or id to track columns by numeric ID.",
      "default": "none"
     },
     "deletion_vectors_disabled": {
      "type": "boolean",
      "title": "Disable deletion vectors",
      "description": "Whether to disable deletion vectors. When false: deletions are recorded as markers without rewriting table files.",
      "default": false
     },
     "change_data_feed_disabled": {
      "type": "boolean",
      "title": "Disable change data feed",
      "description": "Whether to disable change data feed. When false: row-level change tracking is maintained for the table.",
      "default": false
     },
     "storage": {
      "type": "string",
      "enum": [
       "bucket_gcs",
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_abs"
      ],
      "const": "bucket_gcs"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParams",
      "description": "Required details about the GCS bucket used for the delta lake table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_gcs"
    ],
    "title": "Bucket GCS",
    "unevaluatedProperties": false
   },
   "DeltaLakeDestinationOptionsBucketS3": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The number of days a file must be deleted before it is vacuumed.",
      "default": 30
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ],
      "title": "Column mapping mode",
      "description": "Column mapping mode for the Delta Lake table. Use none for no mapping; name to track columns by name (allows rename and drop without rewrite); or id to track columns by numeric ID.",
      "default": "none"
     },
     "deletion_vectors_disabled": {
      "type": "boolean",
      "title": "Disable deletion vectors",
      "description": "Whether to disable deletion vectors. When false: deletions are recorded as markers without rewriting table files.",
      "default": false
     },
     "change_data_feed_disabled": {
      "type": "boolean",
      "title": "Disable change data feed",
      "description": "Whether to disable change data feed. When false: row-level change tracking is maintained for the table.",
      "default": false
     },
     "storage": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_abs",
       "bucket_gcs"
      ],
      "const": "bucket_s3"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParams",
      "description": "Required details about the S3 bucket used for the delta lake table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_s3"
    ],
    "title": "Bucket S3",
    "unevaluatedProperties": false
   },
   "DeltaLakeDestinationOptionsBucketS3Compatible": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The number of days a file must be deleted before it is vacuumed.",
      "default": 30
     },
     "column_mapping_mode": {
      "type": "string",
      "enum": [
       "none",
       "id",
       "name"
      ],
      "title": "Column mapping mode",
      "description": "Column mapping mode for the Delta Lake table. Use none for no mapping; name to track columns by name (allows rename and drop without rewrite); or id to track columns by numeric ID.",
      "default": "none"
     },
     "deletion_vectors_disabled": {
      "type": "boolean",
      "title": "Disable deletion vectors",
      "description": "Whether to disable deletion vectors. When false: deletions are recorded as markers without rewriting table files.",
      "default": false
     },
     "change_data_feed_disabled": {
      "type": "boolean",
      "title": "Disable change data feed",
      "description": "Whether to disable change data feed. When false: row-level change tracking is maintained for the table.",
      "default": false
     },
     "storage": {
      "type": "string",
      "enum": [
       "bucket_s3_compatible",
       "bucket_s3",
       "bucket_abs",
       "bucket_gcs"
      ],
      "const": "bucket_s3_compatible"
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/OpenTableFormatS3CompatibleBucketParams",
      "description": "Required details about the S3 compatible bucket used for the delta lake table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_s3_compatible"
    ],
    "title": "Bucket S3 Compatible",
    "unevaluatedProperties": false
   },
   "DestinationOptionsABS": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "abs",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "abs"
     },
     "abs": {
      "$ref": "#/components/schemas/ABSDestinationOptions",
      "title": "Azure Blob Storage"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "abs"
    ],
    "title": "Azure Blob Storage",
    "unevaluatedProperties": false
   },
   "DestinationOptionsAthena": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "athena",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "athena"
     },
     "athena": {
      "$ref": "#/components/schemas/AthenaDestinationOptions",
      "title": "Amazon Athena"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "athena"
    ],
    "title": "Amazon Athena",
    "unevaluatedProperties": false
   },
   "DestinationOptionsAuroraMySQL": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "aurora_mysql",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "aurora_mysql"
     },
     "aurora_mysql": {
      "$ref": "#/components/schemas/MySQLDestinationOptions",
      "title": "Amazon Aurora MySQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "aurora_mysql"
    ],
    "title": "Amazon Aurora MySQL",
    "unevaluatedProperties": false
   },
   "DestinationOptionsAuroraPostgres": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "aurora_postgres",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "aurora_postgres"
     },
     "aurora_postgres": {
      "$ref": "#/components/schemas/PostgresDestinationOptions",
      "title": "Amazon Aurora PostgreSQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "aurora_postgres"
    ],
    "title": "Amazon Aurora PostgreSQL",
    "unevaluatedProperties": false
   },
   "DestinationOptionsBigQuery": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "bigquery",
       "snowflake",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "bigquery"
     },
     "bigquery": {
      "$ref": "#/components/schemas/BigQueryDestinationOptions",
      "title": "Google BigQuery"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "bigquery"
    ],
    "title": "Google BigQuery",
    "unevaluatedProperties": false
   },
   "DestinationOptionsClickHouse": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "clickhouse",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "clickhouse"
     },
     "clickhouse": {
      "$ref": "#/components/schemas/ClickhouseDestinationOptions",
      "title": "ClickHouse"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "clickhouse"
    ],
    "title": "ClickHouse",
    "unevaluatedProperties": false
   },
   "DestinationOptionsDatabricks": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "databricks",
       "snowflake",
       "bigquery",
       "redshift",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "databricks"
     },
     "databricks": {
      "$ref": "#/components/schemas/DatabricksDestinationOptions",
      "title": "Databricks"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "databricks"
    ],
    "title": "Databricks",
    "unevaluatedProperties": false
   },
   "DestinationOptionsDeltaLake": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "delta_lake",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "delta_lake"
     },
     "delta_lake": {
      "$ref": "#/components/schemas/DeltaLakeDestinationOptions",
      "title": "Delta Lake"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "delta_lake"
    ],
    "title": "Delta Lake",
    "unevaluatedProperties": false
   },
   "DestinationOptionsGCS": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "gcs",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "gcs"
     },
     "gcs": {
      "$ref": "#/components/schemas/GCSDestinationOptions",
      "title": "Google Cloud Storage"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "gcs"
    ],
    "title": "Google Cloud Storage",
    "unevaluatedProperties": false
   },
   "DestinationOptionsGoogleSheets": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "google_sheets",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "google_sheets"
     },
     "google_sheets": {
      "$ref": "#/components/schemas/GoogleSheetsDestinationOptions",
      "title": "Google Sheets"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "google_sheets"
    ],
    "title": "Google Sheets",
    "unevaluatedProperties": false
   },
   "DestinationOptionsIceberg": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "iceberg",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "iceberg"
     },
     "iceberg": {
      "$ref": "#/components/schemas/IcebergDestinationOptions",
      "title": "Iceberg"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "iceberg"
    ],
    "title": "Iceberg",
    "unevaluatedProperties": false
   },
   "DestinationOptionsMock": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mock",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "mock"
     },
     "mock": {
      "$ref": "#/components/schemas/MockDestinationOptions",
      "title": "Mock (for testing in staging only)"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "mock"
    ],
    "title": "Mock (for testing in staging only)",
    "unevaluatedProperties": false
   },
   "DestinationOptionsMongoDB": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mongodb",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "mongodb"
     },
     "mongodb": {
      "$ref": "#/components/schemas/MongoDBDestinationOptions",
      "title": "MongoDB"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "mongodb"
    ],
    "title": "MongoDB",
    "unevaluatedProperties": false
   },
   "DestinationOptionsMotherDuck": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "motherduck",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "motherduck"
     },
     "motherduck": {
      "$ref": "#/components/schemas/MotherDuckDestinationOptions",
      "title": "MotherDuck"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "motherduck"
    ],
    "title": "MotherDuck",
    "unevaluatedProperties": false
   },
   "DestinationOptionsMySQL": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "mysql",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "mysql"
     },
     "mysql": {
      "$ref": "#/components/schemas/MySQLDestinationOptions",
      "title": "MySQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "mysql"
    ],
    "title": "MySQL",
    "unevaluatedProperties": false
   },
   "DestinationOptionsOracle": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "oracle",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "oracle"
     },
     "oracle": {
      "$ref": "#/components/schemas/OracleDestinationOptions",
      "title": "Oracle"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "oracle"
    ],
    "title": "Oracle",
    "unevaluatedProperties": false
   },
   "DestinationOptionsPlanetScale": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "planetscale",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "planetscale"
     },
     "planetscale": {
      "$ref": "#/components/schemas/MySQLDestinationOptions",
      "title": "PlanetScale"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "planetscale"
    ],
    "title": "PlanetScale",
    "unevaluatedProperties": false
   },
   "DestinationOptionsPostgres": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "postgres",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "postgres"
     },
     "postgres": {
      "$ref": "#/components/schemas/PostgresDestinationOptions",
      "title": "PostgreSQL"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "postgres"
    ],
    "title": "PostgreSQL",
    "unevaluatedProperties": false
   },
   "DestinationOptionsRedshift": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "redshift",
       "snowflake",
       "bigquery",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "redshift"
     },
     "redshift": {
      "$ref": "#/components/schemas/RedshiftDestinationOptions",
      "title": "Amazon Redshift"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "redshift"
    ],
    "title": "Amazon Redshift",
    "unevaluatedProperties": false
   },
   "DestinationOptionsRedshiftServerless": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "redshift_serverless",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "redshift_serverless"
     },
     "redshift_serverless": {
      "$ref": "#/components/schemas/RedshiftServerlessDestinationOptions",
      "title": "Amazon Redshift Serverless"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "redshift_serverless"
    ],
    "title": "Amazon Redshift Serverless",
    "unevaluatedProperties": false
   },
   "DestinationOptionsSFTP": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "sftp",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "sftp"
     },
     "sftp": {
      "$ref": "#/components/schemas/SFTPDestinationOptions",
      "title": "SFTP"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "sftp"
    ],
    "title": "SFTP",
    "unevaluatedProperties": false
   },
   "DestinationOptionsSingleStore": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "singlestore",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server"
      ],
      "const": "singlestore"
     },
     "singlestore": {
      "$ref": "#/components/schemas/MySQLDestinationOptions",
      "title": "SingleStore"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "singlestore"
    ],
    "title": "SingleStore",
    "unevaluatedProperties": false
   },
   "DestinationOptionsSnowflake": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "snowflake"
     },
     "snowflake": {
      "$ref": "#/components/schemas/SnowflakeDestinationOptions",
      "title": "Snowflake"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "snowflake"
    ],
    "title": "Snowflake",
    "unevaluatedProperties": false
   },
   "DestinationOptionsSQLServer": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "sql_server",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "s3_compatible",
       "singlestore"
      ],
      "const": "sql_server"
     },
     "sql_server": {
      "$ref": "#/components/schemas/SQLServerDestinationOptions",
      "title": "SQL Server"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "sql_server"
    ],
    "title": "SQL Server",
    "unevaluatedProperties": false
   },
   "DestinationOptionsS3": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "s3",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3_compatible",
       "sql_server",
       "singlestore"
      ],
      "const": "s3"
     },
     "s3": {
      "$ref": "#/components/schemas/S3DestinationOptions",
      "title": "Amazon S3"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "s3"
    ],
    "title": "Amazon S3",
    "unevaluatedProperties": false
   },
   "DestinationOptionsS3Compatible": {
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive and unique name for this destination. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-prod"
      ]
     },
     "frequency_minutes": {
      "type": "integer",
      "enum": [
       0,
       10,
       15,
       60,
       360,
       720,
       1440
      ],
      "title": "Frequency minutes",
      "description": "Number of minutes between transfers. Set to 0 to use the organization's default frequency. Fastest allowed frequency varies based on service agreement with Prequel."
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "description": "ID of [Recipient](https://docs.prequel.co/export/concepts/recipients) created for this destination.",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "enabled_models": {
      "items": {
       "type": "string"
      },
      "type": "array",
      "description": "List of models to enable for this destination. If empty, all models from the recipient are enabled."
     },
     "max_concurrent_transfers": {
      "type": "integer",
      "description": "The maximum number of transfers that can write to this destination at the same time. Transfers with overlapping model assignments cannot be run simultaneously.",
      "default": 10
     },
     "max_concurrent_queries_per_transfer": {
      "type": "integer",
      "description": "The maximum number of queries that can be run in parallel for a single transfer. This is used to limit the number of concurrent queries that can be run for a single transfer to avoid overloading the destination.",
      "default": 1
     },
     "is_enabled": {
      "type": "boolean",
      "description": "Whether the destination is enabled (vs paused).",
      "default": true
     },
     "machine_type_id": {
      "type": "string",
      "format": "uuid"
     },
     "vendor": {
      "type": "string",
      "enum": [
       "s3_compatible",
       "snowflake",
       "bigquery",
       "redshift",
       "databricks",
       "athena",
       "aurora_mysql",
       "aurora_postgres",
       "abs",
       "clickhouse",
       "delta_lake",
       "gcs",
       "google_sheets",
       "iceberg",
       "mock",
       "mongodb",
       "motherduck",
       "mysql",
       "oracle",
       "planetscale",
       "postgres",
       "redshift_serverless",
       "sftp",
       "s3",
       "sql_server",
       "singlestore"
      ],
      "const": "s3_compatible"
     },
     "s3_compatible": {
      "$ref": "#/components/schemas/S3CompatibleDestinationOptions",
      "title": "S3 Compatible"
     }
    },
    "type": "object",
    "required": [
     "name",
     "recipient_id",
     "vendor",
     "s3_compatible"
    ],
    "title": "S3 Compatible",
    "unevaluatedProperties": false
   },
   "GCSDestinationOptionsGCPServiceAccountRole": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcs_hmac_keys",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRole",
      "title": "Authenticate using a GCP service account (recommended)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "GCSDestinationOptionsGCSHMACKeys": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcs_hmac_keys",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcs_hmac_keys"
     },
     "gcs_hmac_keys": {
      "$ref": "#/components/schemas/GCSAccessKeys",
      "title": "Authenticate using GCS HMAC keys",
      "description": "Required details if authenticating using GCS HMAC keys."
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "gcs_hmac_keys"
    ],
    "title": "Authenticate using GCS HMAC keys",
    "unevaluatedProperties": false
   },
   "GCSDestinationOptionsFederatedGCPServiceAccountRole": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcs_hmac_keys"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRole",
      "title": "Authenticate using federation (only for AWS-hosted deployments)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "IcebergDestinationOptionsCatalogIcebergRest": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The minimum number of days to retain old snapshots before they are expired.",
      "default": 30
     },
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_iceberg_rest",
       "catalog_glue",
       "catalog_s3_tables",
       "catalog_google_lakehouse"
      ],
      "const": "catalog_iceberg_rest"
     },
     "catalog_iceberg_rest": {
      "$ref": "#/components/schemas/IcebergRestCatalogParams",
      "description": "Required details about the Iceberg Rest Catalog used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "catalog",
     "catalog_iceberg_rest"
    ],
    "title": "Catalog Iceberg Rest",
    "unevaluatedProperties": false
   },
   "IcebergDestinationOptionsCatalogGlue": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The minimum number of days to retain old snapshots before they are expired.",
      "default": 30
     },
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_glue",
       "catalog_s3_tables",
       "catalog_iceberg_rest",
       "catalog_google_lakehouse"
      ],
      "const": "catalog_glue"
     },
     "catalog_glue": {
      "$ref": "#/components/schemas/IcebergAwsGlueCatalogParams",
      "description": "Required details about the AWS Glue Catalog used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "catalog",
     "catalog_glue"
    ],
    "title": "Catalog Glue",
    "unevaluatedProperties": false
   },
   "IcebergDestinationOptionsCatalogS3Tables": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The minimum number of days to retain old snapshots before they are expired.",
      "default": 30
     },
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_s3_tables",
       "catalog_glue",
       "catalog_iceberg_rest",
       "catalog_google_lakehouse"
      ],
      "const": "catalog_s3_tables"
     },
     "catalog_s3_tables": {
      "$ref": "#/components/schemas/IcebergAwsS3TablesCatalogParams",
      "description": "Required details about the AWS S3 Tables bucket used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "catalog",
     "catalog_s3_tables"
    ],
    "title": "Catalog S3 Tables",
    "unevaluatedProperties": false
   },
   "IcebergDestinationOptionsCatalogGoogleLakehouse": {
    "properties": {
     "retention_window_days": {
      "type": "integer",
      "title": "Retention window (days)",
      "description": "The minimum number of days to retain old snapshots before they are expired.",
      "default": 30
     },
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_google_lakehouse",
       "catalog_glue",
       "catalog_s3_tables",
       "catalog_iceberg_rest"
      ],
      "const": "catalog_google_lakehouse"
     },
     "catalog_google_lakehouse": {
      "$ref": "#/components/schemas/IcebergGoogleLakehouseCatalogParams",
      "description": "Required details about the Google Lakehouse Catalog used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "catalog",
     "catalog_google_lakehouse"
    ],
    "title": "Catalog Google Lakehouse",
    "unevaluatedProperties": false
   },
   "IcebergGoogleLakehouseCatalogParamsGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "catalog_name": {
      "type": "string",
      "title": "Catalog Name",
      "description": "Name of BigLake catalog.",
      "examples": [
       "data_export_catalog"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Schema",
      "description": "Name of BigLake schema to create and write data to.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "title": "Bucket Name",
      "description": "Name of GCS bucket to use for the Iceberg table data.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRole",
      "title": "Authenticate using a GCP service account (recommended)",
      "description": "Required details if authenticating using a GCP service account role."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "catalog_name",
     "auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "IcebergGoogleLakehouseCatalogParamsFederatedGCPServiceAccountRole": {
    "properties": {
     "project_id": {
      "type": "string",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "catalog_name": {
      "type": "string",
      "title": "Catalog Name",
      "description": "Name of BigLake catalog.",
      "examples": [
       "data_export_catalog"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Schema",
      "description": "Name of BigLake schema to create and write data to.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "title": "Bucket Name",
      "description": "Name of GCS bucket to use for the Iceberg table data.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRole",
      "title": "Authenticate using federation (only for AWS-hosted deployments)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "catalog_name",
     "auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "IcebergGoogleLakehouseCatalogParamsGCPServiceAccountKey": {
    "properties": {
     "project_id": {
      "type": "string",
      "title": "Project ID",
      "examples": [
       "acme-analytics-1234"
      ]
     },
     "catalog_name": {
      "type": "string",
      "title": "Catalog Name",
      "description": "Name of BigLake catalog.",
      "examples": [
       "data_export_catalog"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Schema",
      "description": "Name of BigLake schema to create and write data to.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_name": {
      "type": "string",
      "title": "Bucket Name",
      "description": "Name of GCS bucket to use for the Iceberg table data.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/OpenTableFormatGCSDestinationServiceAccountKey",
      "title": "Authenticate using direct access",
      "description": "Required details if authenticating using a GCP service account key."
     }
    },
    "type": "object",
    "required": [
     "project_id",
     "catalog_name",
     "auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "IcebergRestCatalogParamsOAuthBearerTokenAuth": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "iceberg.example.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional.",
      "examples": [
       443
      ]
     },
     "namespace": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Namespace",
      "description": "Name of collection in which to group written iceberg tables. It will be created automatically if the namespace does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "warehouse": {
      "type": "string",
      "title": "Warehouse",
      "description": "The identifier for the warehouse associated with this REST catalog. This might be a storage URI (ex s3://...) or a unique name provided by the catalog service.",
      "examples": [
       "s3://acme-data-export-staging/warehouse"
      ]
     },
     "storage_options": {
      "$ref": "#/components/schemas/IcebergStorageOptionsParams"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_bearer_token_auth",
       "oauth_client_secret_auth"
      ],
      "const": "oauth_bearer_token_auth"
     },
     "oauth_bearer_token_auth": {
      "$ref": "#/components/schemas/OauthBearerTokenAuth",
      "description": "Required details if authenticating with an OAUTH2 bearer token."
     }
    },
    "type": "object",
    "required": [
     "host",
     "namespace",
     "storage_options",
     "auth_method",
     "oauth_bearer_token_auth"
    ],
    "title": "OAuth Bearer Token Auth",
    "unevaluatedProperties": false
   },
   "IcebergRestCatalogParamsOAuthClientSecretAuth": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "examples": [
       "iceberg.example.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional.",
      "examples": [
       443
      ]
     },
     "namespace": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Namespace",
      "description": "Name of collection in which to group written iceberg tables. It will be created automatically if the namespace does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "warehouse": {
      "type": "string",
      "title": "Warehouse",
      "description": "The identifier for the warehouse associated with this REST catalog. This might be a storage URI (ex s3://...) or a unique name provided by the catalog service.",
      "examples": [
       "s3://acme-data-export-staging/warehouse"
      ]
     },
     "storage_options": {
      "$ref": "#/components/schemas/IcebergStorageOptionsParams"
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "oauth_client_secret_auth",
       "oauth_bearer_token_auth"
      ],
      "const": "oauth_client_secret_auth"
     },
     "oauth_client_secret_auth": {
      "$ref": "#/components/schemas/OauthDelegatedCredentialAuth",
      "description": "Required details if authenticating with an OAUTH2 delegated credentials."
     }
    },
    "type": "object",
    "required": [
     "host",
     "namespace",
     "storage_options",
     "auth_method",
     "oauth_client_secret_auth"
    ],
    "title": "OAuth Client Secret Auth",
    "unevaluatedProperties": false
   },
   "IcebergStorageOptionsParamsBucketABS": {
    "properties": {
     "storage": {
      "type": "string",
      "enum": [
       "bucket_abs",
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_gcs"
      ],
      "const": "bucket_abs"
     },
     "bucket_abs": {
      "$ref": "#/components/schemas/OpenTableFormatABSBucketParams",
      "description": "Required details about the ABS bucket used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_abs"
    ],
    "title": "Bucket ABS",
    "unevaluatedProperties": false
   },
   "IcebergStorageOptionsParamsBucketGCS": {
    "properties": {
     "storage": {
      "type": "string",
      "enum": [
       "bucket_gcs",
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_abs"
      ],
      "const": "bucket_gcs"
     },
     "bucket_gcs": {
      "$ref": "#/components/schemas/OpenTableFormatGCSBucketParams",
      "description": "Required details about the GCS bucket used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_gcs"
    ],
    "title": "Bucket GCS",
    "unevaluatedProperties": false
   },
   "IcebergStorageOptionsParamsBucketS3": {
    "properties": {
     "storage": {
      "type": "string",
      "enum": [
       "bucket_s3",
       "bucket_s3_compatible",
       "bucket_abs",
       "bucket_gcs"
      ],
      "const": "bucket_s3"
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/OpenTableFormatS3BucketParams",
      "description": "Required details about the S3 bucket used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_s3"
    ],
    "title": "Bucket S3",
    "unevaluatedProperties": false
   },
   "IcebergStorageOptionsParamsBucketS3Compatible": {
    "properties": {
     "storage": {
      "type": "string",
      "enum": [
       "bucket_s3_compatible",
       "bucket_s3",
       "bucket_abs",
       "bucket_gcs"
      ],
      "const": "bucket_s3_compatible"
     },
     "bucket_s3_compatible": {
      "$ref": "#/components/schemas/OpenTableFormatS3CompatibleBucketParams",
      "description": "Required details about the S3 compatible bucket used for the iceberg table."
     }
    },
    "type": "object",
    "required": [
     "storage",
     "bucket_s3_compatible"
    ],
    "title": "Bucket S3 Compatible",
    "unevaluatedProperties": false
   },
   "MongoDBDestinationOptionsAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the MongoDB server. For Atlas clusters: use the cluster endpoint.",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional. Leave empty If using Atlas.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "title": "Database",
      "description": "The MongoDB database to connect to.",
      "examples": [
       "admin"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the MongoDB connection. When false: SSL is enabled.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "password_auth"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "host",
     "authentication_database",
     "write_database",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "MongoDBDestinationOptionsPasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the MongoDB server. For Atlas clusters: use the cluster endpoint.",
      "examples": [
       "clusterID.mongodb.net"
      ]
     },
     "port": {
      "type": "integer",
      "title": "Port",
      "description": "Optional. Leave empty If using Atlas.",
      "examples": [
       27017
      ]
     },
     "authentication_database": {
      "type": "string",
      "title": "Database",
      "description": "The MongoDB database to connect to.",
      "examples": [
       "admin"
      ]
     },
     "write_database": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the MongoDB connection. When false: SSL is enabled.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "aws_iam_role"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "title": "Authenticate using a username and password",
      "description": "Required details if authenticating with username/password."
     }
    },
    "type": "object",
    "required": [
     "host",
     "authentication_database",
     "write_database",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketParamsGCPServiceAccountRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_role",
       "gcp_service_account_key",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_role"
     },
     "gcp_service_account_role": {
      "$ref": "#/components/schemas/GCPServiceAccountRole",
      "title": "Authenticate using a GCP service account (recommended)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "gcp_service_account_role"
    ],
    "title": "Authenticate using a GCP service account (recommended)",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketParamsGCPServiceAccountKey": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "gcp_service_account_key",
       "gcp_service_account_role",
       "federated_gcp_service_account_role"
      ],
      "const": "gcp_service_account_key"
     },
     "gcp_service_account_key": {
      "$ref": "#/components/schemas/OpenTableFormatGCSDestinationServiceAccountKey",
      "title": "Authenticate using direct access",
      "description": "Required details if authenticating using a GCP service account key."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "gcp_service_account_key"
    ],
    "title": "Authenticate using direct access",
    "unevaluatedProperties": false
   },
   "OpenTableFormatGCSBucketParamsFederatedGCPServiceAccountRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "GCS bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "federated_gcp_service_account_role",
       "gcp_service_account_role",
       "gcp_service_account_key"
      ],
      "const": "federated_gcp_service_account_role"
     },
     "federated_gcp_service_account_role": {
      "$ref": "#/components/schemas/FederatedGCPServiceAccountRole",
      "title": "Authenticate using federation (only for AWS-hosted deployments)",
      "description": "Required details if authenticating using Workload Identity Federation."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "folder",
     "bucket_auth_method",
     "federated_gcp_service_account_role"
    ],
    "title": "Authenticate using federation (only for AWS-hosted deployments)",
    "unevaluatedProperties": false
   },
   "OpenTableFormatS3BucketParamsAWSIAMRole": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "folder",
     "bucket_auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "OpenTableFormatS3BucketParamsAWSAccessKeys": {
    "properties": {
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "folder": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_]+$",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "bucket_name",
     "bucket_region",
     "folder",
     "bucket_auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "OracleDestinationOptionsSSLEnabled": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Oracle database server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "ORCL"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "const": false
     },
     "ssl_options": {
      "$ref": "#/components/schemas/OracleSSLParams",
      "description": "Required details if using SSL connection."
     }
    },
    "type": "object",
    "required": [
     "schema",
     "auth_method",
     "password_auth",
     "ssl_options"
    ],
    "title": "SSL Enabled",
    "unevaluatedProperties": false
   },
   "OracleDestinationOptionsSSLDisabled": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Oracle database server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "ORCL"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "title": "Auth method",
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "title": "Disable SSL",
      "description": "Whether to disable SSL for the Oracle connection. When false: SSL is enabled.",
      "default": false
     }
    },
    "type": "object",
    "required": [
     "schema",
     "auth_method",
     "password_auth",
     "disable_ssl"
    ],
    "title": "SSL Disabled",
    "unevaluatedProperties": false
   },
   "RedshiftDestinationOptionsAWSAccessKeys": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the destination.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Redshift Cluster identifier",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "Username for the Redshift connection. Required when using aws_access_keys auth.",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/RedshiftAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details for username/password authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "RedshiftDestinationOptionsAWSIAMRole": {
    "properties": {
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Host address of the destination.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "cluster": {
      "type": "string",
      "title": "Cluster",
      "description": "Redshift Cluster identifier",
      "examples": [
       "acme-cluster"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "Username for the Redshift connection. Required when using aws_access_keys auth.",
      "examples": [
       "data_export_user"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)",
      "description": "Required details if authenticating using an AWS IAM role."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessDestinationOptionsAWSIAMRole": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Name of the Redshift Serverless workgroup.",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Workgroup endpoint",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of target database.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)",
      "description": "Required details if authenticating using an AWS IAM role."
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "RedshiftServerlessDestinationOptionsAWSAccessKeys": {
    "properties": {
     "workgroup": {
      "type": "string",
      "title": "Workgroup",
      "description": "Name of the Redshift Serverless workgroup.",
      "examples": [
       "default-workgroup"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Workgroup endpoint",
      "examples": [
       "workgroup.123456789.us-east-1.redshift-serverless.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       5439
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of target database.",
      "examples": [
       "dev"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "bucket_s3": {
      "$ref": "#/components/schemas/RedshiftS3BucketParams",
      "description": "Required details about the S3 bucket used for staging data."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "workgroup",
     "host",
     "port",
     "database",
     "schema",
     "bucket_s3",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "S3DestinationOptionsAWSIAMRole": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_iam_role",
       "aws_access_keys"
      ],
      "const": "aws_iam_role"
     },
     "aws_iam_role": {
      "$ref": "#/components/schemas/AWSIAMRole",
      "title": "Authenticate using an AWS IAM role (recommended)"
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "bucket_region",
     "auth_method",
     "aws_iam_role"
    ],
    "title": "Authenticate using an AWS IAM role (recommended)",
    "unevaluatedProperties": false
   },
   "S3DestinationOptionsAWSAccessKeys": {
    "properties": {
     "folder": {
      "type": "string",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "parquet",
       "csv",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "File format to write to the bucket. Parquet is the default and recommended format.",
      "default": "parquet"
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "bucket_name": {
      "type": "string",
      "title": "S3 bucket name",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_region": {
      "type": "string",
      "title": "S3 bucket region",
      "description": "The region of the S3 bucket. Must be a valid [AWS region](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html)",
      "examples": [
       "us-east-1"
      ]
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_manifest": {
      "type": "boolean",
      "title": "Disable Manifest Files",
      "description": "Disables JSON manifest files (containing validation metadata) written with each batch of data.",
      "default": false
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "aws_access_keys",
       "aws_iam_role"
      ],
      "const": "aws_access_keys"
     },
     "aws_access_keys": {
      "$ref": "#/components/schemas/AWSAccessKeys",
      "title": "Authenticate using AWS access keys",
      "description": "Required details if authenticating using AWS access keys."
     }
    },
    "type": "object",
    "required": [
     "folder",
     "bucket_name",
     "bucket_region",
     "auth_method",
     "aws_access_keys"
    ],
    "title": "Authenticate using AWS access keys",
    "unevaluatedProperties": false
   },
   "SFTPDestinationOptionsPgp": {
    "properties": {
     "username": {
      "type": "string",
      "title": "Username",
      "description": "Username to use for the SFTP connection.",
      "examples": [
       "data_export_user"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "Hostname of the SFTP server.",
      "examples": [
       "sftp.acme.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "examples": [
       22
      ]
     },
     "folder": {
      "type": "string",
      "title": "Folder name",
      "description": "Name of folder to create and write data to. It will be created automatically if it does not exist.",
      "examples": [
       "/uploads/data_export"
      ]
     },
     "file_format": {
      "type": "string",
      "enum": [
       "csv",
       "parquet",
       "json",
       "jsonl"
      ],
      "title": "File format",
      "description": "The format of the files to write to the SFTP server."
     },
     "csv": {
      "$ref": "#/components/schemas/FileFormatCSV",
      "description": "Required details if writing CSV file format."
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "public_key_auth"
      ],
      "title": "Auth method",
      "description": "Authentication method. Currently must be set to public_key_auth."
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth",
      "title": "Public key auth",
      "description": "Required details for public key authentication."
     },
     "file_encryption": {
      "type": "string",
      "enum": [
       "pgp",
       "none"
      ],
      "const": "pgp"
     },
     "pgp": {
      "$ref": "#/components/schemas/PGPEncryption",
      "description": "Required details for PGP encryption."
     }
    },
    "type": "object",
    "required": [
     "username",
     "host",
     "port",
     "file_format",
     "auth_method",
     "public_key_auth",
     "file_encryption",
     "pgp"
    ],
    "title": "Pgp",
    "unevaluatedProperties": false
   },
   "SnowflakeDestinationOptionsPasswordAuth": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "title": "Account host",
      "description": "Account address of the destination.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Snowflake server.",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth",
       "public_key_auth"
      ],
      "const": "password_auth"
     },
     "password_auth": {
      "$ref": "#/components/schemas/PasswordOnlyAuth",
      "title": "Authenticate using a username and password",
      "description": "Required details for username/password authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "username",
     "auth_method",
     "password_auth"
    ],
    "title": "Authenticate using a username and password",
    "unevaluatedProperties": false
   },
   "SnowflakeDestinationOptionsPublicKeyAuth": {
    "properties": {
     "host": {
      "type": "string",
      "pattern": ".*\\.snowflakecomputing.com$",
      "title": "Account host",
      "description": "Account address of the destination.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "title": "Port",
      "description": "Port of the Snowflake server.",
      "examples": [
       443
      ]
     },
     "database": {
      "type": "string",
      "title": "Database",
      "description": "Name of database provisioned by the owner of the destination.",
      "examples": [
       "ANALYTICS"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "title": "Schema",
      "description": "Name of schema to create and write data to. It will be created automatically if the schema does not exist.",
      "examples": [
       "data_export"
      ]
     },
     "username": {
      "type": "string",
      "title": "Username",
      "description": "The name of the Snowflake user.",
      "examples": [
       "DATA_EXPORT_USER"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "public_key_auth",
       "password_auth"
      ],
      "const": "public_key_auth"
     },
     "public_key_auth": {
      "$ref": "#/components/schemas/PublicKeyAuth",
      "description": "Required details for public key authentication."
     }
    },
    "type": "object",
    "required": [
     "host",
     "port",
     "database",
     "schema",
     "username",
     "auth_method",
     "public_key_auth"
    ],
    "title": "Public Key Auth",
    "unevaluatedProperties": false
   },
   "UpdateOracleDestinationOptionsSSLEnabled": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Oracle database server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Oracle database server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ORCL"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "const": false
     },
     "ssl_options": {
      "$ref": "#/components/schemas/OracleSSLParams",
      "description": "Required details if using SSL connection."
     }
    },
    "type": "object",
    "required": [
     "ssl_options"
    ],
    "title": "SSL Enabled",
    "unevaluatedProperties": false
   },
   "UpdateOracleDestinationOptionsSSLDisabled": {
    "properties": {
     "host": {
      "type": "string",
      "description": "The hostname of the Oracle database server.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     },
     "port": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "The port of the Oracle database server.",
      "examples": [
       1521
      ]
     },
     "database": {
      "type": "string",
      "description": "The name of the database to connect to.",
      "examples": [
       "ORCL"
      ]
     },
     "schema": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_.]+([-][A-Za-z0-9_.]+)*$",
      "description": "The name of the schema to write to.",
      "examples": [
       "data_export"
      ]
     },
     "auth_method": {
      "type": "string",
      "enum": [
       "password_auth"
      ],
      "description": "Placeholder value in case authentication options are added. Currently must be set to password_auth."
     },
     "password_auth": {
      "$ref": "#/components/schemas/UpdatePasswordAuth",
      "description": "Required details for username/password authentication."
     },
     "use_ssh_tunnel": {
      "type": "boolean",
      "title": "Use SSH Tunnel",
      "description": "Whether to use an SSH tunnel for the connection.",
      "default": false
     },
     "ssh_tunnel": {
      "$ref": "#/components/schemas/SSHTunnelParams",
      "description": "Required details if using SSH tunneling."
     },
     "disable_ssl": {
      "type": "boolean",
      "description": "Whether to disable SSL for the PostgreSQL connection.",
      "default": false
     }
    },
    "type": "object",
    "required": [
     "disable_ssl"
    ],
    "title": "SSL Disabled",
    "unevaluatedProperties": false
   },
   "DatadogWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/datadog-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "datadog"
      ],
      "description": "Webhook destination type. datadog will POST a JSON payload data formatted for the Datadog v1 events endpoint."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "api_key": {
      "type": "string",
      "description": "The API key to use when sending the webhook."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor"
    ]
   },
   "HttpWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/http-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "generic_post",
       "generic_get"
      ],
      "description": "Webhook destination type. generic_post will deliver payload data as JSON, generic_get will deliver payload data as query params."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "description": "The URL to send the webhook to.",
      "examples": [
       "https://api.acme.com/hooks/data-export"
      ]
     },
     "api_key": {
      "type": "string",
      "description": "The API key to use when sending the webhook."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "url"
    ]
   },
   "PagerDutyWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/pager-duty-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "pagerduty"
      ],
      "description": "Webhook destination type. pagerduty will POST a JSON payload data formatted for the enqueue endpoint of the PagerDuty V2 Events API."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "api_key": {
      "type": "string",
      "description": "Integration Key provided by PagerDuty in the Events API Overview of the service configured to monitor these events."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "api_key"
    ]
   },
   "SlackWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/slack-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "slack"
      ],
      "description": "Webhook destination type. slack will POST a JSON payload formatted for Slack incoming webhooks."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "url": {
      "type": "string",
      "pattern": "^https://hooks\\.slack\\.com/services/.+$",
      "description": "Destination URL provided by Slack in the form 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'.",
      "examples": [
       "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "url"
    ]
   },
   "UpdateDatadogWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-datadog-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "datadog"
      ],
      "description": "Webhook destination type. datadog will POST a JSON payload data formatted for the Datadog v1 events endpoint."
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "api_key": {
      "type": "string",
      "description": "The API key to use when sending the webhook."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateHttpWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-http-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "generic_post",
       "generic_get"
      ],
      "description": "Webhook destination type. generic_post will deliver payload data as JSON, generic_get will deliver payload data as query params."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "url": {
      "type": "string",
      "pattern": "^https?://.+$",
      "description": "The URL to send the webhook to.",
      "examples": [
       "https://api.acme.com/hooks/data-export"
      ]
     },
     "api_key": {
      "type": "string",
      "description": "The API key to use when sending the webhook."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdatePagerDutyWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-pager-duty-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "pagerduty"
      ],
      "description": "Webhook destination type. pagerduty will POST a JSON payload data formatted for the enqueue endpoint of the PagerDuty V2 Events API."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "api_key": {
      "type": "string",
      "description": "Integration Key provided by PagerDuty in the Events API Overview of the service configured to monitor these events."
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "UpdateSlackWebhookOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/shared/api/models/update-slack-webhook-options",
    "properties": {
     "name": {
      "type": "string",
      "description": "Descriptive name for webhook.",
      "examples": [
       "transfer-alerts"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "slack"
      ],
      "description": "Webhook destination type. slack will POST a JSON payload formatted for Slack incoming webhooks."
     },
     "api_version": {
      "type": "string",
      "description": "The API version to use when rendering events.",
      "default": "2023-10-15"
     },
     "events": {
      "items": {
       "type": "string",
       "enum": [
        "transfer.cancelled",
        "transfer.error",
        "transfer.success",
        "export_source.created",
        "export_source.updated",
        "export_source.deleted",
        "export_destination.created",
        "export_destination.updated",
        "export_destination.deleted",
        "recipient.created",
        "recipient.updated",
        "recipient.deleted",
        "export_magic_link.created",
        "export_magic_link.deleted"
       ]
      },
      "type": "array",
      "description": "The events to receive via webhook."
     },
     "url": {
      "type": "string",
      "pattern": "^https://hooks\\.slack\\.com/services/.+$",
      "description": "Destination URL provided by Slack in the form 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'.",
      "examples": [
       "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object"
   },
   "ABSMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/abs-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "abs"
      ],
      "description": "The vendor of the destination."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_access_id": {
      "type": "string",
      "title": "Storage account name",
      "examples": [
       "acmestorage"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bucket_name"
    ]
   },
   "AthenaMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/athena-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "athena"
      ],
      "description": "The vendor of the destination."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the S3 bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bucket_name"
    ]
   },
   "BigQueryMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/big-query-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "bigquery"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Project ID",
      "description": "The BigQuery Project ID.",
      "examples": [
       "bigquery.googleapis.com"
      ]
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the GCS bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host",
     "bucket_name"
    ]
   },
   "ClickhouseMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/clickhouse-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "clickhouse"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "The hostname of the database.",
      "examples": [
       "abc123xyz.us-east-1.aws.clickhouse.cloud"
      ]
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "s3",
       "gcs"
      ],
      "title": "Bucket vendor",
      "description": "The vendor of the staging bucket."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host",
     "bucket_vendor",
     "bucket_name"
    ]
   },
   "DatabricksMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/databricks-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "databricks"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Server hostname",
      "description": "The hostname of the database.",
      "examples": [
       "adb-1099123456789876.12.azuredatabricks.net"
      ]
     },
     "metastore": {
      "type": "string",
      "enum": [
       "unity_catalog",
       "hive"
      ],
      "title": "Metastore",
      "description": "The name of the metastore where the data will be stored."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "(^$)|(^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$)",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "",
       "s3"
      ],
      "title": "Bucket vendor",
      "description": "The vendor of the staging bucket."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host",
     "metastore"
    ]
   },
   "DeltaLakeMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/delta-lake-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "delta_lake"
      ],
      "description": "The vendor of the destination."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "s3",
       "s3_compatible",
       "gcs",
       "abs"
      ],
      "title": "Bucket vendor",
      "description": "The vendor of the staging bucket."
     },
     "host": {
      "type": "string",
      "title": "Bucket host",
      "description": "Required for S3 Compatible. The hostname of the database.",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "bucket_access_id": {
      "type": "string",
      "title": "Storage account name",
      "description": "Required for ABS.The ABS storage account name.",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bucket_name",
     "bucket_vendor"
    ]
   },
   "GCSMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/gcs-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "gcs"
      ],
      "description": "The vendor of the destination."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bucket_name"
    ]
   },
   "GenericMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/generic-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "aurora_postgres",
       "aurora_mysql",
       "mongodb",
       "mysql",
       "oracle",
       "postgres",
       "sql_server",
       "singlestore",
       "sftp"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "The hostname of the database.",
      "examples": [
       "example.ab02cdefgxyz.us-east-1.rds.amazonaws.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host"
    ]
   },
   "GoogleSheetsMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/google-sheets-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "google_sheets"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "pattern": "^(https?:\\/\\/)?(www.)?docs.google.com\\/spreadsheets\\/d\\/.+(\\/)?$",
      "title": "Spreadsheet URL",
      "description": "URL of the Google Sheet to sync data to. Must be of the form https://docs.google.com/spreadsheets/d/123456789...",
      "examples": [
       "https://docs.google.com/spreadsheets/d/1234567"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host"
    ]
   },
   "IcebergMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/iceberg-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "iceberg"
      ],
      "description": "The vendor of the destination."
     },
     "catalog": {
      "type": "string",
      "enum": [
       "catalog_glue",
       "catalog_s3_tables",
       "catalog_iceberg_rest"
      ],
      "title": "Catalog"
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "The hostname of the catalog. Required for REST catalog.",
      "examples": [
       "iceberg.example.net"
      ]
     },
     "bucket_vendor": {
      "type": "string",
      "enum": [
       "s3",
       "s3_compatible",
       "gcs",
       "abs"
      ],
      "title": "Bucket vendor",
      "description": "The vendor of the staging bucket."
     },
     "bucket_host": {
      "type": "string",
      "title": "Bucket host",
      "description": "The hostname of the S3 compatible bucket. Required for REST catalog with S3 compatible bucket.",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "bucket_access_id": {
      "type": "string",
      "title": "Storage account name",
      "description": "The ABS storage account name. Required for REST catalog with ABS bucket.",
      "examples": [
       "AKIAIOSFODNN7EXAMPLE"
      ]
     },
     "table_bucket_arn": {
      "type": "string",
      "title": "Table bucket ARN",
      "description": "The ARN of the S3 Tables bucket. Required for S3 tables.",
      "examples": [
       "arn:aws:s3tables:us-east-1:123456789012:bucket/acme-tables"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "catalog",
     "bucket_name"
    ]
   },
   "MotherDuckMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/mother-duck-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "motherduck"
      ],
      "description": "The vendor of the destination."
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor"
    ]
   },
   "RedshiftMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/redshift-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "redshift",
       "redshift_serverless"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Host",
      "description": "The host address of the database.",
      "examples": [
       "cluster-name.ab1cdefgh.us-east-1.redshift.amazonaws.com"
      ]
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the S3 bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host",
     "bucket_name"
    ]
   },
   "S3CompatibleMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/s3-compatible-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "s3_compatible"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Bucket host",
      "description": "The hostname of the database.",
      "examples": [
       "s3.us-east-1.amazonaws.com"
      ]
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9._-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the S3 bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host",
     "bucket_name"
    ]
   },
   "S3MagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/s3-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "s3"
      ],
      "description": "The vendor of the destination."
     },
     "bucket_name": {
      "type": "string",
      "pattern": "^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$",
      "title": "Bucket name",
      "description": "The name of the S3 bucket where the data will be stored.",
      "examples": [
       "acme-data-export-staging"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "bucket_name"
    ]
   },
   "SnowflakeMagicLinkOptions": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://github.com/prequel-co/datafeed/internal/export/api/models/snowflake-magic-link-options",
    "properties": {
     "name": {
      "type": "string",
      "title": "Destination name",
      "description": "Descriptive name for the destination created with this Magic Link. This will only be visible internally and is only used as a reference.",
      "examples": [
       "acme-corp-onboarding"
      ]
     },
     "set_destination_enabled": {
      "type": "boolean",
      "description": "Connection will be enabled on creation and data will begin transferring upon successful link submission.",
      "default": true
     },
     "redirect_url": {
      "type": "string",
      "pattern": "^(https?://.+)?$",
      "description": "The user will be redirected to the provided URL after successful form submission. If left blank the user will remain on the successful submission page.",
      "examples": [
       "https://app.acme.com/integrations/complete"
      ]
     },
     "recipient_id": {
      "type": "string",
      "format": "uuid",
      "title": "Recipient ID",
      "examples": [
       "3fa85f64-5717-4562-b3fc-2c963f66afa6"
      ]
     },
     "vendor": {
      "type": "string",
      "enum": [
       "snowflake"
      ],
      "description": "The vendor of the destination."
     },
     "host": {
      "type": "string",
      "title": "Account host",
      "description": "The hostname of the database.",
      "examples": [
       "db54321.us-central1.gcp.snowflakecomputing.com"
      ]
     }
    },
    "additionalProperties": false,
    "type": "object",
    "required": [
     "name",
     "vendor",
     "host"
    ]
   }
  },
  "parameters": {},
  "responses": {
   "BadRequest": {
    "description": "Bad Request",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/ErrorResponse"
      }
     }
    }
   },
   "Unauthorized": {
    "description": "Unauthorized",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/ErrorResponse"
      }
     }
    }
   },
   "NotFound": {
    "description": "Not Found",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/ErrorResponse"
      }
     }
    }
   },
   "InternalServerError": {
    "description": "Internal Server Error",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/ErrorResponse"
      }
     }
    }
   }
  },
  "securitySchemes": {
   "ApiKeyAuth": {
    "type": "apiKey",
    "in": "header",
    "name": "X-API-KEY"
   }
  }
 }
}
