{
  "openapi": "3.0.1",
  "info": {
    "title": "Rapidata.Dataset",
    "version": "v1"
  },
  "paths": {
    "/Datapoint/Delete": {
      "delete": {
        "tags": [
          "Datapoint"
        ],
        "summary": "Delete a datapoint.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the datapoint to delete.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Datapoint/GetAllDatapointsByDatasetId": {
      "get": {
        "tags": [
          "Datapoint"
        ],
        "summary": "Get all datapoints of a dataset.",
        "parameters": [
          {
            "name": "datasetId",
            "in": "query",
            "description": "The id of the dataset to get the datapoints of.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointsByDatasetIdResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointsByDatasetIdResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointsByDatasetIdResult"
                }
              }
            }
          }
        }
      }
    },
    "/Datapoint/GetById": {
      "get": {
        "tags": [
          "Datapoint"
        ],
        "summary": "Get a datapoint by its id.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the datapoint to get.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointByIdResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointByIdResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatapointByIdResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/{datasetId}/datapoints/urls": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Creates new datapoint where the assets are fetched from the specified urls.",
        "description": "Passing in multiple urls will create a single datapoint with a MultiAsset.\r\nEach url will be fetched and stored as a sub-asset of the MultiAsset.\r\n<para />\r\nIf any of the urls are not accessible, the request will fail.",
        "parameters": [
          {
            "name": "datasetId",
            "in": "path",
            "description": "The id of the dataset to create the datapoint in.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The body of the request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDatapointFromUrlsModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDatapointFromUrlsModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDatapointFromUrlsModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/{datasetId}/progress": {
      "get": {
        "tags": [
          "Dataset"
        ],
        "summary": "Gets the upload progress of a dataset.",
        "parameters": [
          {
            "name": "datasetId",
            "in": "path",
            "description": "The id of the dataset to get the progress of.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetProgressResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetProgressResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetProgressResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/CreateDatapoint": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Creates a single datapoint.",
        "description": "If multiple files are uploaded, a multi asset datapoint will be created.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "files": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "binary"
                    }
                  },
                  "model": {
                    "$ref": "#/components/schemas/DatapointMetadataModel"
                  }
                }
              },
              "encoding": {
                "files": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/CreatTextDatapoint": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Creates new datapoints from text sources.",
        "description": "If multiple text sources are uploaded, a new datapoint will be created for each text source.",
        "requestBody": {
          "description": "The body of the request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadTextSourcesToDatasetModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadTextSourcesToDatasetModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadTextSourcesToDatasetModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateDatapointResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/GetById": {
      "get": {
        "tags": [
          "Dataset"
        ],
        "summary": "Gets a dataset by its id.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the dataset to get.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetByIdResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetByIdResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetDatasetByIdResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/Import": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Imports datapoints from a csv file.",
        "parameters": [
          {
            "name": "datasetId",
            "in": "query",
            "description": "The id of the dataset to import the datapoints to.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "description": "The csv file to import.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ImportFromFileResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportFromFileResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportFromFileResult"
                }
              }
            }
          }
        }
      }
    },
    "/Dataset/UpdateName": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Updates the name of a dataset.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "The id of the dataset to update.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "name",
            "in": "query",
            "description": "The new name of the dataset.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Dataset/UploadFilesFromS3": {
      "post": {
        "tags": [
          "Dataset"
        ],
        "summary": "Uploads files from an S3 bucket to a dataset.",
        "description": "A new datapoint will be created for each file in the bucket.",
        "requestBody": {
          "description": "The body of the request.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadFilesFromS3BucketModel"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadFilesFromS3BucketModel"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UploadFilesFromS3BucketModel"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/UploadFromS3Result"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadFromS3Result"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadFromS3Result"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "BaseError": {
        "type": "object",
        "properties": {
          "errorMessage": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ClassificationMetadataModel": {
        "title": "ClassificationMetadata",
        "required": [
          "_t",
          "classification"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "ClassificationMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for ClassificationMetadata",
            "default": "ClassificationMetadata",
            "example": "ClassificationMetadata"
          },
          "classification": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CountMetadataModel": {
        "title": "CountMetadata",
        "required": [
          "_t",
          "count"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "CountMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for CountMetadata",
            "default": "CountMetadata",
            "example": "CountMetadata"
          },
          "count": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CreateDatapointFromUrlsModel": {
        "required": [
          "urls"
        ],
        "type": "object",
        "properties": {
          "urls": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The urls to fetch the assets from.\r\nThe urls must be publicly accessible.\r\nA HEAD request will be made to each url to check if it is accessible."
          }
        },
        "additionalProperties": false,
        "description": "The model for creating a datapoint from urls."
      },
      "CreateDatapointResult": {
        "required": [
          "datapointId"
        ],
        "type": "object",
        "properties": {
          "datapointId": {
            "type": "string"
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BaseError"
            },
            "deprecated": true
          }
        },
        "additionalProperties": false
      },
      "DatapointMetadataModel": {
        "required": [
          "datasetId",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "datasetId": {
            "type": "string",
            "description": "The id of the dataset to create the datapoint in."
          },
          "metadata": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/PrivateTextMetadataInput"
                },
                {
                  "$ref": "#/components/schemas/PromptMetadataInput"
                },
                {
                  "$ref": "#/components/schemas/PublicTextMetadataInput"
                },
                {
                  "$ref": "#/components/schemas/TranscriptionMetadataInput"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            },
            "description": "The metadata of the datapoint."
          },
          "sortIndex": {
            "type": "integer",
            "description": "The index will be used to keep the datapoints in order. Useful if upload is parallelized",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The model for creating a datapoint."
      },
      "DatapointModel": {
        "required": [
          "asset",
          "datasetId",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "datasetId": {
            "type": "string"
          },
          "asset": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FileAssetModel"
              },
              {
                "$ref": "#/components/schemas/MultiAssetModel"
              },
              {
                "$ref": "#/components/schemas/NullAssetModel"
              },
              {
                "$ref": "#/components/schemas/TextAssetModel"
              }
            ],
            "discriminator": {
              "propertyName": "_t"
            }
          }
        },
        "additionalProperties": false
      },
      "Demographic": {
        "required": [
          "confidence",
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "type": "string"
          },
          "confidence": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "DemographicMetadataModel": {
        "title": "DemographicMetadata",
        "required": [
          "_t"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "DemographicMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for DemographicMetadata",
            "default": "DemographicMetadata",
            "example": "DemographicMetadata"
          },
          "demographics": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/Demographic"
            }
          }
        },
        "additionalProperties": false
      },
      "FileAssetModel": {
        "title": "FileAsset",
        "required": [
          "_t",
          "fileName",
          "identifier",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "FileAsset"
            ],
            "type": "string",
            "description": "Discriminator value for FileAsset",
            "default": "FileAsset",
            "example": "FileAsset"
          },
          "fileName": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ClassificationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/CountMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/DemographicMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/ImageDimensionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/LocationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/OriginalFilenameMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/PromptMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/SourceUrlMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TextMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranscriptionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranslatedPromptMetadataModel"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            }
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetDatapointByIdResult": {
        "required": [
          "asset",
          "createdAt",
          "datasetId",
          "id",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "datasetId": {
            "type": "string"
          },
          "state": {
            "enum": [
              "Ready",
              "Pending",
              "Failed"
            ],
            "type": "string"
          },
          "sortIndex": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "asset": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/FileAssetModel"
              },
              {
                "$ref": "#/components/schemas/MultiAssetModel"
              },
              {
                "$ref": "#/components/schemas/NullAssetModel"
              },
              {
                "$ref": "#/components/schemas/TextAssetModel"
              }
            ],
            "discriminator": {
              "propertyName": "_t"
            }
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "GetDatapointsByDatasetIdResult": {
        "required": [
          "list"
        ],
        "type": "object",
        "properties": {
          "list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DatapointModel"
            }
          }
        },
        "additionalProperties": false
      },
      "GetDatasetByIdResult": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetDatasetProgressResult": {
        "required": [
          "failed",
          "pending",
          "ready",
          "total"
        ],
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "ready": {
            "type": "integer",
            "format": "int32"
          },
          "pending": {
            "type": "integer",
            "format": "int32"
          },
          "failed": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ImageDimensionMetadataModel": {
        "title": "ImageDimensionMetadata",
        "required": [
          "_t"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "ImageDimensionMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for ImageDimensionMetadata",
            "default": "ImageDimensionMetadata",
            "example": "ImageDimensionMetadata"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          },
          "width": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ImportFromFileResult": {
        "required": [
          "datasetId"
        ],
        "type": "object",
        "properties": {
          "datasetId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "LocationMetadataModel": {
        "title": "LocationMetadata",
        "required": [
          "_t",
          "x",
          "y"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "LocationMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for LocationMetadata",
            "default": "LocationMetadata",
            "example": "LocationMetadata"
          },
          "x": {
            "type": "number",
            "format": "float"
          },
          "y": {
            "type": "number",
            "format": "float"
          }
        },
        "additionalProperties": false
      },
      "MultiAssetModel": {
        "title": "MultiAsset",
        "required": [
          "_t",
          "assets",
          "identifier",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "MultiAsset"
            ],
            "type": "string",
            "description": "Discriminator value for MultiAsset",
            "default": "MultiAsset",
            "example": "MultiAsset"
          },
          "assets": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/FileAssetModel"
                },
                {
                  "$ref": "#/components/schemas/MultiAssetModel"
                },
                {
                  "$ref": "#/components/schemas/NullAssetModel"
                },
                {
                  "$ref": "#/components/schemas/TextAssetModel"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            }
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ClassificationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/CountMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/DemographicMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/ImageDimensionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/LocationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/OriginalFilenameMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/PromptMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/SourceUrlMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TextMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranscriptionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranslatedPromptMetadataModel"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            }
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "NullAssetModel": {
        "title": "NullAsset",
        "required": [
          "_t",
          "identifier",
          "metadata"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "NullAsset"
            ],
            "type": "string",
            "description": "Discriminator value for NullAsset",
            "default": "NullAsset",
            "example": "NullAsset"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ClassificationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/CountMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/DemographicMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/ImageDimensionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/LocationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/OriginalFilenameMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/PromptMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/SourceUrlMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TextMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranscriptionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranslatedPromptMetadataModel"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            }
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "OriginalFilenameMetadataModel": {
        "title": "OriginalFilenameMetadata",
        "required": [
          "_t",
          "originalFilename"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "OriginalFilenameMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for OriginalFilenameMetadata",
            "default": "OriginalFilenameMetadata",
            "example": "OriginalFilenameMetadata"
          },
          "originalFilename": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PrivateTextMetadataInput": {
        "title": "PrivateTextMetadataInput",
        "required": [
          "_t",
          "identifier",
          "text"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "PrivateTextMetadataInput"
            ],
            "type": "string",
            "description": "Discriminator value for PrivateTextMetadataInput",
            "default": "PrivateTextMetadataInput",
            "example": "PrivateTextMetadataInput"
          },
          "text": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PromptMetadataInput": {
        "title": "PromptMetadataInput",
        "required": [
          "_t",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "PromptMetadataInput"
            ],
            "type": "string",
            "description": "Discriminator value for PromptMetadataInput",
            "default": "PromptMetadataInput",
            "example": "PromptMetadataInput"
          },
          "prompt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PromptMetadataModel": {
        "title": "PromptMetadata",
        "required": [
          "_t",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "PromptMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for PromptMetadata",
            "default": "PromptMetadata",
            "example": "PromptMetadata"
          },
          "prompt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PublicTextMetadataInput": {
        "title": "PublicTextMetadataInput",
        "required": [
          "_t",
          "identifier",
          "text"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "PublicTextMetadataInput"
            ],
            "type": "string",
            "description": "Discriminator value for PublicTextMetadataInput",
            "default": "PublicTextMetadataInput",
            "example": "PublicTextMetadataInput"
          },
          "text": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "SourceUrlMetadataModel": {
        "title": "SourceUrlMetadataModel",
        "required": [
          "_t",
          "url"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "SourceUrlMetadataModel"
            ],
            "type": "string",
            "description": "Discriminator value for SourceUrlMetadataModel",
            "default": "SourceUrlMetadataModel",
            "example": "SourceUrlMetadataModel"
          },
          "url": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TextAssetModel": {
        "title": "TextAsset",
        "required": [
          "_t",
          "identifier",
          "metadata",
          "text"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "TextAsset"
            ],
            "type": "string",
            "description": "Discriminator value for TextAsset",
            "default": "TextAsset",
            "example": "TextAsset"
          },
          "text": {
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/ClassificationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/CountMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/DemographicMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/ImageDimensionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/LocationMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/OriginalFilenameMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/PromptMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/SourceUrlMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TextMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranscriptionMetadataModel"
                },
                {
                  "$ref": "#/components/schemas/TranslatedPromptMetadataModel"
                }
              ],
              "discriminator": {
                "propertyName": "_t"
              }
            }
          },
          "identifier": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TextMetadataModel": {
        "title": "TextMetadata",
        "required": [
          "_t",
          "text"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "TextMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for TextMetadata",
            "default": "TextMetadata",
            "example": "TextMetadata"
          },
          "text": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TranscriptionMetadataInput": {
        "title": "TranscriptionMetadataInput",
        "required": [
          "_t",
          "transcription"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "TranscriptionMetadataInput"
            ],
            "type": "string",
            "description": "Discriminator value for TranscriptionMetadataInput",
            "default": "TranscriptionMetadataInput",
            "example": "TranscriptionMetadataInput"
          },
          "transcription": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TranscriptionMetadataModel": {
        "title": "TranscriptionMetadataModel",
        "required": [
          "_t",
          "transcription"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "TranscriptionMetadataModel"
            ],
            "type": "string",
            "description": "Discriminator value for TranscriptionMetadataModel",
            "default": "TranscriptionMetadataModel",
            "example": "TranscriptionMetadataModel"
          },
          "transcription": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "TranslatedPromptMetadataModel": {
        "title": "TranslatedPromptMetadata",
        "required": [
          "_t",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "_t": {
            "enum": [
              "TranslatedPromptMetadata"
            ],
            "type": "string",
            "description": "Discriminator value for TranslatedPromptMetadata",
            "default": "TranslatedPromptMetadata",
            "example": "TranslatedPromptMetadata"
          },
          "prompt": {
            "$ref": "#/components/schemas/TranslatedString"
          }
        },
        "additionalProperties": false
      },
      "TranslatedString": {
        "required": [
          "englishText",
          "targetLanguage",
          "text",
          "wasTranslated"
        ],
        "type": "object",
        "properties": {
          "wasTranslated": {
            "type": "boolean"
          },
          "englishText": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "targetLanguage": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UploadFilesFromS3BucketModel": {
        "required": [
          "bucketName",
          "clearDataset",
          "datasetId",
          "sourcePrefix",
          "useCustomAwsCredentials"
        ],
        "type": "object",
        "properties": {
          "datasetId": {
            "type": "string",
            "description": "The id of the dataset to upload the files to."
          },
          "bucketName": {
            "type": "string",
            "description": "The name of the S3 bucket to upload the files from."
          },
          "region": {
            "type": "string",
            "description": "The region of the S3 bucket.",
            "nullable": true
          },
          "sourcePrefix": {
            "type": "string",
            "description": "The prefix of the files to upload."
          },
          "accessKey": {
            "type": "string",
            "description": "The access key to use for the S3 bucket.",
            "nullable": true
          },
          "secretKey": {
            "type": "string",
            "description": "The secret key to use for the S3 bucket.",
            "nullable": true
          },
          "useCustomAwsCredentials": {
            "type": "boolean",
            "description": "Whether to use custom AWS credentials."
          },
          "clearDataset": {
            "type": "boolean",
            "description": "Whether to clear the dataset before uploading the files."
          }
        },
        "additionalProperties": false,
        "description": "The model for uploading files from an S3 bucket to a dataset."
      },
      "UploadFromS3Result": {
        "type": "object",
        "properties": {
          "estimatedCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "UploadTextSourcesToDatasetModel": {
        "required": [
          "datasetId",
          "textSources"
        ],
        "type": "object",
        "properties": {
          "datasetId": {
            "type": "string",
            "description": "The id of the dataset to upload the text sources to."
          },
          "textSources": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The text sources to upload."
          },
          "sortIndex": {
            "type": "integer",
            "description": "The index will be used to keep the datapoints in order. Useful if upload is parallelized",
            "format": "int64",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The model for uploading text sources to a dataset."
      }
    },
    "securitySchemes": {
      "bearer": {
        "type": "apiKey",
        "description": "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
        "name": "Authorization",
        "in": "header"
      },
      "oauth2": {
        "type": "openIdConnect",
        "description": "OAuth2 authorization code flow, supporting OpenID Connect.",
        "openIdConnectUrl": "https://auth.rapidata.dev/.well-known/openid-configuration"
      }
    }
  },
  "security": [
    {
      "bearer": []
    },
    {
      "oauth2": [
        "openid",
        "profile",
        "email"
      ]
    }
  ]
}