> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truestate.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Pipeline Versions



## OpenAPI

````yaml https://api.truestate.io/openapi.json get /pipelines/{pipeline_id}/versions/
openapi: 3.1.0
info:
  title: TrueState Backend API
  summary: >-
    TrueState is an AI platform for business users to create high-impact AI
    solutions.
  description: >

    This **[TrueState](https://www.truestate.io/)** backend API allows our
    clients to automate and more powerfully retrieve and modify data from the
    TrueState platform.


    Example use cases include:


    - Accessing embeddings for a dataset.

    - Automating the process of dataset creation and model retraining as your
    data changes.

    - Much more.


    Our backend is built using the [FastAPI](https://fastapi.tiangolo.com/)
    framework in python

    using [Auth0](https://auth0.com/) and [Client API
    Keys](https://docs.truestate.io/docs/api/client-api-keys) for internal an
    external authentication, respectively.

    Our backend is designed to be secure, scalable, easy to use and well
    documented _(each router with its own linked docs page)_.

    Clients can only access data from their own organisation, as setup in Auth0
    our the Client API Keys. See how
    **[here](https://docs.truestate.io/docs/api/overview)**.


    **PS**: You can view this API documentation in either
    **[Swagger](swagger/docs)** or **[Redoc](redoc/)**, but only the swagger
    lets you test calls.
  contact:
    name: True State Support
    url: http://docs.truestate.io/
    email: support@truestate.io
  license:
    name: Private
    url: https://www.apache.org/licenses/LICENSE-2.0.html
  version: 0.11.78
servers: []
security: []
tags:
  - name: assistants
    description: Management of assistants
  - name: api-keys
    description: Management of each user personal Client API Keys, used to access this API.
  - name: models
    description: Management of models
  - name: secrets
    description: Management of client secrets for accessing external services
  - name: deployments
    description: Management of deployments.
  - name: pipelines
    description: Management of pipelines.
  - name: pipeline-runs
    description: Management of pipeline runs.
  - name: automations
    description: Management of Automations.
  - name: automation-sessions
    description: Management of Automation Sessions.
  - name: chatbots
    description: Chatbot endpoints.
  - name: check-auto-recharge
    description: ''
  - name: classification-classes
    description: >-
      Management of zero shot classifications (using ai to apply new categories
      to a dataset).
  - name: conversations
    description: Management of conversations
  - name: conventions
    description: Management of conventions - best practices for actuators and agents
  - name: credit-usage
    description: Management of Credits.
  - name: dashboards
    description: Management of Dashboards.
  - name: data
    description: Bigquery inference services
  - name: data-dictionary
    description: Data Dictionary endpoints.
  - name: datasets
    description: Dataset endpoints.
  - name: documents
    description: Document endpoints.
  - name: default
    description: Default health checks.
  - name: embedding-search
    description: ''
  - name: inference
    description: Model inference services
  - name: messages
    description: Management of messages
  - name: notebooks
    description: ''
  - name: notebook-services
    description: ''
  - name: organisations
    description: Management of Organisations.
  - name: payment-methods
    description: Management of Payment methods.
  - name: private-tasks
    description: ''
  - name: private-pipelines
    description: ''
  - name: private-data
    description: ''
  - name: renew-seats
    description: ''
  - name: tagging-lists
    description: Management of Tagging Lists.
  - name: tasks
    description: ''
  - name: task-templates
    description: Management of task templates (definitions and schedules).
  - name: agents
    description: ''
  - name: user
    description: Management of User.
  - name: user-context
    description: Management of User Context.
  - name: private-messages
    description: ''
  - name: private-llm-call
    description: ''
  - name: admin-organisations
    description: ''
  - name: private-warehouser
    description: ''
  - name: private-pipeline-tracking
    description: ''
  - name: private-pipeline-runs
    description: ''
  - name: private-reports
    description: ''
  - name: private-bootstrap
    description: ''
  - name: reports
    description: ''
  - name: private-conversations
    description: ''
  - name: private-datasets
    description: ''
  - name: private-dashboards
    description: ''
  - name: private-conventions
    description: ''
  - name: private-documents
    description: ''
paths:
  /pipelines/{pipeline_id}/versions/:
    get:
      tags:
        - pipelines
      summary: Get Pipeline Versions
      operationId: get_pipeline_versions_pipelines__pipeline_id__versions__get
      parameters:
        - name: pipeline_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Pipeline Id
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            title: Offset
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 10
            title: Limit
        - name: Api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Api-Key
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PipelineVersionRead'
                title: >-
                  Response Get Pipeline Versions Pipelines  Pipeline Id 
                  Versions  Get
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    PipelineVersionRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        pipeline_id:
          type: string
          format: uuid
          title: Pipeline Id
        steps:
          items:
            $ref: '#/components/schemas/PipelineStepRead'
          type: array
          title: Steps
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
        - id
        - pipeline_id
        - steps
        - created_at
      title: PipelineVersionRead
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PipelineStepRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        config:
          anyOf:
            - $ref: '#/components/schemas/DataTransformConfig'
            - $ref: '#/components/schemas/EmbeddingConfig'
            - $ref: '#/components/schemas/BulkPromptConfig'
            - $ref: '#/components/schemas/TabularRegressorTrainingConfig'
            - $ref: '#/components/schemas/TabularRegressorInferenceConfig'
            - $ref: '#/components/schemas/EnsembleRegressorTrainingConfig-Output'
            - $ref: '#/components/schemas/EnsembleRegressorInferenceConfig'
            - $ref: '#/components/schemas/TabularClassifierTrainingConfig'
            - $ref: '#/components/schemas/TabularClassifierInferenceConfig'
            - $ref: '#/components/schemas/EnsembleClassifierTrainingConfig-Output'
            - $ref: '#/components/schemas/EnsembleClassifierInferenceConfig'
            - $ref: '#/components/schemas/HyperparameterSearchCategoryConfig-Output'
            - $ref: '#/components/schemas/HyperparameterSearchRegressorConfig-Output'
            - $ref: '#/components/schemas/IntegrationConfig-Output'
            - $ref: '#/components/schemas/IntegrationExportConfig-Output'
            - $ref: '#/components/schemas/TabularRegressorShapConfig'
            - $ref: '#/components/schemas/BatchAutomationConfig'
            - $ref: '#/components/schemas/LinearRegressorTrainingConfig'
            - $ref: '#/components/schemas/LinearRegressorInferenceConfig'
            - $ref: '#/components/schemas/ClusteringInferenceConfig'
            - $ref: '#/components/schemas/ClusteringTrainingConfig'
            - $ref: '#/components/schemas/OptimisationConfig'
          title: Config
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
        - name
        - config
        - created_at
      title: PipelineStepRead
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    DataTransformConfig:
      properties:
        job_type:
          type: string
          const: data-transform
          title: Job Type
          default: data-transform
        query_type:
          $ref: '#/components/schemas/DataTransformQueryType'
        query:
          type: string
          title: Query
        input_datasets:
          items:
            type: string
          type: array
          title: Input Datasets
        output_datasets:
          items:
            type: string
          type: array
          title: Output Datasets
      type: object
      required:
        - query_type
        - query
        - input_datasets
        - output_datasets
      title: DataTransformConfig
      description: >-
        Configuration for a data transformation job.


        This job type is used to transform data from one dataset to another.
        This can be done by running a SQL query or by running a pandas script.
        This job accepts multiple input datasets and maps them to possible
        multiple output datasets. It is typically used to perform ETL operations
        including data cleaning and feature engineering.


        Attributes:
            job_type (JobType): Must be 'data-transform'.
            query_type (DataTransformQueryType): Indicates whether the query is an SQL query or something else.
            query (str): The SQL or other query to be executed during data transformation. Include a comment at the beginning of the query explaining the query in a way that is easy to understand. Preface the query with a -- using standard SQL comment syntax. Do not reference BigQuery in the comment.
            input_datasets (list[DatasetName]): List of input datasets.
            output_datasets (list[DatasetName]): List of output datasets.
    EmbeddingConfig:
      properties:
        job_type:
          type: string
          const: apply-embeddings
          title: Job Type
          default: apply-embeddings
        column_name:
          type: string
          title: Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - column_name
        - input_dataset
        - output_dataset
      title: EmbeddingConfig
      description: >-
        Configuration for an embedding job.


        This job type is used to embed data into a vector space by running an
        embedding model. It will apply the embedding model to the column
        specified by the column_name attribute on the input dataset and output
        the results to the output dataset. A new column will be added to the
        output dataset with the generated embeddings. This dataset can be
        searched using a vector search engine.


        Attributes:
            job_type (JobType): Must be 'apply-embeddings'.
            column_name (str): The name of the column to embed.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    BulkPromptConfig:
      properties:
        job_type:
          type: string
          const: bulk-prompt
          title: Job Type
          default: bulk-prompt
        prompt:
          type: string
          title: Prompt
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
        base_model_type:
          $ref: '#/components/schemas/BulkPromptBaseModelType'
        max_new_tokens:
          type: integer
          title: Max New Tokens
          default: 4096
        output_column_name:
          type: string
          title: Output Column Name
          default: generated_text
      type: object
      required:
        - prompt
        - input_dataset
        - output_dataset
        - base_model_type
      title: BulkPromptConfig
      description: >-
        Configuration for a bulk prompt job.


        This job type is used to apply a prompt to a dataset. The prompt is a
        Python-style f-string which accepts column names as variables within the
        {} brackets. The formatted prompt is applied to each record of the
        dataset and fed to an LLM. The LLM's response is then added as a new
        column to the output dataset.


        Attributes:
            job_type (JobType): Must be 'bulk-prompt'.
            prompt (str): The prompt to apply to the dataset.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
            base_model_type (BulkPromptBaseModelType): The type of base model to use.
            max_new_tokens (int): The maximum number of tokens to generate.
            output_column_name (str): The name of the column to output the generated text to.
    TabularRegressorTrainingConfig:
      properties:
        job_type:
          type: string
          const: tabular-regressor-training
          title: Job Type
          default: tabular-regressor-training
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        regressor_config:
          $ref: '#/components/schemas/XGBoostRegressorConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - regressor_config
      title: TabularRegressorTrainingConfig
      description: >-
        Configuration for a tabular regressor training job.


        This job type is used to train a tabular regressor model on a dataset.
        The model will be trained using the feature columns specified by the
        input_feature_column_names attribute on the input dataset to predict the
        target column specified by the output_target_column_name attribute on
        the input dataset. It uses the XGBoost regressor with settings
        customisable by the regressor_config attribute. It predicts a
        quantitative value.


        Attributes:
            job_type (JobType): Must be 'tabular-regressor-training'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset.
            output_model (ModelName): The output model.
    TabularRegressorInferenceConfig:
      properties:
        job_type:
          type: string
          const: tabular-regressor-inference
          title: Job Type
          default: tabular-regressor-inference
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: TabularRegressorInferenceConfig
      description: >-
        Configuration for a tabular regressor inference job.


        This job type is used to infer the regression of a model on a dataset.
        This job accepts a model trained using the
        TabularRegressorTrainingConfig and applies it to a dataset. The model
        will be applied to the columns specified by the
        input_feature_column_names attribute on the input dataset and output the
        results to the output dataset. The output dataset will have a new column
        called 'output_column_name' which will contain the regression for each
        record.


        Attributes:
            job_type (JobType): Must be 'tabular-regressor-inference'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    EnsembleRegressorTrainingConfig-Output:
      properties:
        job_type:
          type: string
          const: ensemble-regressor-training
          title: Job Type
          default: ensemble-regressor-training
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        ensemble_config:
          $ref: '#/components/schemas/EnsembleRegressorConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - ensemble_config
      title: EnsembleRegressorTrainingConfig
      description: >-
        Configuration for an ensemble regressor.


        This configuration defines the XGBoost regressor configurations to use
        for each model in the ensemble. The ensemble size is determined by the
        number of configurations provided.


        Attributes:
            regressor_configs (list[TabularRegressorConfig]): List of XGBoost regressor configurations to use for each model. Each model in the ensemble will use the corresponding config (cycling through if needed).
    EnsembleRegressorInferenceConfig:
      properties:
        job_type:
          type: string
          const: ensemble-regressor-inference
          title: Job Type
          default: ensemble-regressor-inference
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: EnsembleRegressorInferenceConfig
      description: >-
        Configuration for an ensemble regressor inference job.


        This job type is used to infer the regression of an ensemble model on a
        dataset. This job accepts a model trained using the
        EnsembleRegressorTrainingConfig and applies it to a dataset. The model
        will be applied to the columns specified by the
        input_feature_column_names attribute on the input dataset and output the
        results to the output dataset. The output dataset will have a new column
        called 'output_column_name' which will contain the regression for each
        record.


        Attributes:
            job_type (JobType): Must be 'ensemble-regressor-inference'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    TabularClassifierTrainingConfig:
      properties:
        job_type:
          type: string
          const: tabular-classifier-training
          title: Job Type
          default: tabular-classifier-training
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        classifier_config:
          $ref: '#/components/schemas/XGBoostClassifierConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - classifier_config
      title: TabularClassifierTrainingConfig
      description: >-
        Configuration for a tabular classifier training job.


        This job type is used to train a tabular classifier model on a dataset.
        The model will be trained using the feature columns specified by the
        input_feature_column_names attribute on the input dataset to predict the
        label column specified by the output_target_column_name attribute on the
        input dataset. It uses the XGBoost classifier with settings customisable
        by the classifier_config attribute. It predicts a categorical value.


        Attributes:
            job_type (JobType): Must be 'tabular-classifier-training'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset.
            output_model (ModelName): The output model.
    TabularClassifierInferenceConfig:
      properties:
        job_type:
          type: string
          const: tabular-classifier-inference
          title: Job Type
          default: tabular-classifier-inference
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: TabularClassifierInferenceConfig
      description: >-
        Configuration for a tabular classifier inference job.


        This job type is used to infer the classification of a model on a
        dataset. This job accepts a model trained using the
        TabularClassifierTrainingConfig and applies it to a dataset. The model
        will be applied to the columns specified by the
        input_feature_column_names attribute on the input dataset and output the
        results to the output dataset. The output dataset will have a new column
        called 'output_column_name' which will contain the classification for
        each record.


        Attributes:
            job_type (JobType): Must be 'tabular-classifier-inference'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    EnsembleClassifierTrainingConfig-Output:
      properties:
        job_type:
          type: string
          const: ensemble-classifier-training
          title: Job Type
          default: ensemble-classifier-training
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        ensemble_config:
          $ref: '#/components/schemas/EnsembleClassifierConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - ensemble_config
      title: EnsembleClassifierTrainingConfig
      description: >-
        Configuration for an ensemble classifier training job.


        This job type is used to train an ensemble of XGBoost classifier models
        using bagging. Each model is trained on a bootstrap sample of the
        training data. The ensemble uses majority voting for predictions.


        Attributes:
            job_type (JobType): Must be 'ensemble-classifier-training'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset.
            output_model (ModelName): The output model.
            ensemble_config (EnsembleClassifierConfig): Configuration for the ensemble including size and classifier settings.
    EnsembleClassifierInferenceConfig:
      properties:
        job_type:
          type: string
          const: ensemble-classifier-inference
          title: Job Type
          default: ensemble-classifier-inference
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: EnsembleClassifierInferenceConfig
      description: >-
        Configuration for an ensemble classifier inference job.


        This job type is used to infer the classification of an ensemble model
        on a dataset. This job accepts a model trained using the
        EnsembleClassifierTrainingConfig and applies it to a dataset. The model
        will be applied to the columns specified by the
        input_feature_column_names attribute on the input dataset and output the
        results to the output dataset. The output dataset will have a new column
        called 'output_column_name' which will contain the classification for
        each record.


        Attributes:
            job_type (JobType): Must be 'ensemble-classifier-inference'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    HyperparameterSearchCategoryConfig-Output:
      properties:
        job_type:
          type: string
          const: hyperparameter-search-category
          title: Job Type
          default: hyperparameter-search-category
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        output_dataset:
          type: string
          title: Output Dataset
        search_config:
          $ref: '#/components/schemas/HyperparameterSearchConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - output_dataset
        - search_config
      title: HyperparameterSearchCategoryConfig
      description: >-
        Configuration for a hyperparameter search job for tabular classifiers.


        This job type is used to find optimal hyperparameters for an XGBoost
        classifier using grid search. It accepts a single input dataset which is
        automatically split into training and test sets (typically 80/20). The
        model will be trained using the feature columns specified by the
        input_feature_column_names attribute on the input dataset to predict the
        label column specified by the output_target_column_name attribute. Grid
        search is performed using cross-validation on the training set, and the
        best model (based on the optimization metric) is evaluated on the test
        set. The job outputs the best model and an evaluation dataset containing
        one row per trial with metrics and hyperparameters.


        Attributes:
            job_type (JobType): Must be 'hyperparameter-search-category'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset that will be split into training and test sets internally.
            output_model (ModelName): The output model trained with the best hyperparameters.
            output_dataset (DatasetName): The output dataset containing one row per trial with hyperparameters, CV scores, and test metrics.
            search_config (HyperparameterSearchConfig): Configuration for the hyperparameter search including search space and optimization settings.
    HyperparameterSearchRegressorConfig-Output:
      properties:
        job_type:
          type: string
          const: hyperparameter-search-regressor
          title: Job Type
          default: hyperparameter-search-regressor
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        output_dataset:
          type: string
          title: Output Dataset
        search_config:
          $ref: '#/components/schemas/HyperparameterSearchRegressorSearchConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - output_dataset
        - search_config
      title: HyperparameterSearchRegressorConfig
      description: >-
        Configuration for a hyperparameter search job for tabular regressors.


        This job type is used to find optimal hyperparameters for an XGBoost
        regressor using grid search. It accepts a single input dataset which is
        automatically split into training and test sets (typically 80/20). The
        model will be trained using the feature columns specified by the
        input_feature_column_names attribute on the input dataset to predict the
        target column specified by the output_target_column_name attribute. Grid
        search is performed using cross-validation on the training set, and the
        best model (based on the optimization metric) is evaluated on the test
        set. The job outputs the best model and an evaluation dataset containing
        one row per trial with metrics and hyperparameters.


        Attributes:
            job_type (JobType): Must be 'hyperparameter-search-regressor'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset that will be split into training and test sets internally.
            output_model (ModelName): The output model trained with the best hyperparameters.
            output_dataset (DatasetName): The output dataset containing one row per trial with hyperparameters, CV scores, and test metrics.
            search_config (HyperparameterSearchRegressorSearchConfig): Configuration for the hyperparameter search including search space and optimization settings.
    IntegrationConfig-Output:
      properties:
        job_type:
          type: string
          const: integration
          title: Job Type
          default: integration
        integration_config:
          oneOf:
            - $ref: '#/components/schemas/SalesforceIntegrationParams'
            - $ref: '#/components/schemas/GoogleCloudStorageIntegrationParams'
            - $ref: '#/components/schemas/AzureBlobStorageIntegrationParams'
            - $ref: '#/components/schemas/AwsS3IntegrationParams'
            - $ref: '#/components/schemas/SqlServerIntegrationParams'
            - $ref: '#/components/schemas/SharepointIntegrationParams'
            - $ref: '#/components/schemas/BigqueryIntegrationParams'
            - $ref: '#/components/schemas/FabricWarehouseIntegrationParams'
            - $ref: '#/components/schemas/SnowflakeIntegrationParams'
            - $ref: '#/components/schemas/TaboolaIntegrationParams'
            - $ref: '#/components/schemas/OutbrainIntegrationParams'
            - $ref: '#/components/schemas/D365BusinessCentralIntegrationParams'
          title: Integration Config
          discriminator:
            propertyName: source
            mapping:
              aws-s3: '#/components/schemas/AwsS3IntegrationParams'
              azure-blob-storage: '#/components/schemas/AzureBlobStorageIntegrationParams'
              bigquery: '#/components/schemas/BigqueryIntegrationParams'
              dynamics-365-business-central: '#/components/schemas/D365BusinessCentralIntegrationParams'
              fabric-warehouse: '#/components/schemas/FabricWarehouseIntegrationParams'
              google-cloud-storage: '#/components/schemas/GoogleCloudStorageIntegrationParams'
              outbrain: '#/components/schemas/OutbrainIntegrationParams'
              salesforce: '#/components/schemas/SalesforceIntegrationParams'
              sharepoint: '#/components/schemas/SharepointIntegrationParams'
              snowflake: '#/components/schemas/SnowflakeIntegrationParams'
              sql-server: '#/components/schemas/SqlServerIntegrationParams'
              taboola: '#/components/schemas/TaboolaIntegrationParams'
        credential_secret:
          type: string
          title: Credential Secret
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - integration_config
        - credential_secret
        - output_dataset
      title: IntegrationConfig
    IntegrationExportConfig-Output:
      properties:
        job_type:
          type: string
          const: integration-export
          title: Job Type
          default: integration-export
        integration_config:
          oneOf:
            - $ref: '#/components/schemas/GoogleCloudStorageIntegrationParams'
            - $ref: '#/components/schemas/AzureBlobStorageIntegrationParams'
            - $ref: '#/components/schemas/AwsS3IntegrationParams'
            - $ref: '#/components/schemas/SqlServerIntegrationExportParams'
            - $ref: '#/components/schemas/SnowflakeIntegrationExportParams'
          title: Integration Config
          discriminator:
            propertyName: source
            mapping:
              aws-s3: '#/components/schemas/AwsS3IntegrationParams'
              azure-blob-storage: '#/components/schemas/AzureBlobStorageIntegrationParams'
              google-cloud-storage: '#/components/schemas/GoogleCloudStorageIntegrationParams'
              snowflake: '#/components/schemas/SnowflakeIntegrationExportParams'
              sql-server: '#/components/schemas/SqlServerIntegrationExportParams'
        credential_secret:
          type: string
          title: Credential Secret
        input_dataset:
          type: string
          title: Input Dataset
      type: object
      required:
        - integration_config
        - credential_secret
        - input_dataset
      title: IntegrationExportConfig
    TabularRegressorShapConfig:
      properties:
        job_type:
          type: string
          const: tabular-regressor-shap
          title: Job Type
          default: tabular-regressor-shap
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: TabularRegressorShapConfig
      description: >-
        Configuration for a tabular regressor OR tabular inference SHAP job.


        This job type is used to calculate the SHAP values for a tabular
        regressor or tabular inference model on a dataset. The SHAP values are
        calculated for each record in the dataset and added as new columns to
        the output dataset. The input_feature_column_names and
        output_target_column_name must match the input_feature_column_names and
        output_target_column_name of the input model. Typically this job is used
        to explain the predictions of a model on a dataset.


        Attributes:
            job_type (JobType): Must be 'tabular-regressor-shap'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    BatchAutomationConfig:
      properties:
        job_type:
          type: string
          const: batch-automation
          title: Job Type
          default: batch-automation
        input_column_names:
          items:
            type: string
          type: array
          title: Input Column Names
        output_column_name:
          type: string
          title: Output Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
        automation:
          $ref: '#/components/schemas/AutomationConfig'
      type: object
      required:
        - input_column_names
        - output_column_name
        - input_dataset
        - output_dataset
        - automation
      title: BatchAutomationConfig
    LinearRegressorTrainingConfig:
      properties:
        job_type:
          type: string
          const: linear-regressor-training
          title: Job Type
          default: linear-regressor-training
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        regressor_config:
          $ref: '#/components/schemas/LinearRegressorConfig'
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_dataset
        - output_model
        - regressor_config
      title: LinearRegressorTrainingConfig
      description: >-
        Configuration for a linear regressor training job.


        This job type is used to train a linear regressor model on a dataset.
        The model will be trained using the feature columns specified by the
        input_feature_column_names attribute on the input dataset to predict the
        target column specified by the output_target_column_name attribute on
        the input dataset. It uses the scikit-learn linear regressor with
        settings customisable by the regressor_config attribute. It predicts a
        quantitative value.


        Attributes:
            job_type (JobType): Must be 'linear-regressor-training'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_dataset (DatasetName): The input dataset.
            output_model (ModelName): The output model.
    LinearRegressorInferenceConfig:
      properties:
        job_type:
          type: string
          const: linear-regressor-inference
          title: Job Type
          default: linear-regressor-inference
        input_feature_column_names:
          items:
            type: string
          type: array
          title: Input Feature Column Names
        output_target_column_name:
          type: string
          title: Output Target Column Name
        input_model:
          type: string
          title: Input Model
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_feature_column_names
        - output_target_column_name
        - input_model
        - input_dataset
        - output_dataset
      title: LinearRegressorInferenceConfig
      description: >-
        Configuration for a linear regressor inference job.


        This job type is used to infer the regression of a model on a dataset.
        This job accepts a model trained using the LinearRegressorTrainingConfig
        and applies it to a dataset. The model will be applied to the columns
        specified by the input_feature_column_names attribute on the input
        dataset and output the results to the output dataset. The output dataset
        will have a new column called 'output_column_name' which will contain
        the regression for each record.


        Attributes:
            job_type (JobType): Must be 'linear-regressor-inference'.
            input_feature_column_names (list[str]): The names of the columns to use as the feature input.
            output_target_column_name (str): The name of the column to use as the target output.
            input_model (ModelName): The input model.
            input_dataset (DatasetName): The input dataset.
            output_dataset (DatasetName): The output dataset.
    ClusteringInferenceConfig:
      properties:
        job_type:
          type: string
          const: clustering-inference
          title: Job Type
          default: clustering-inference
        input_dataset:
          type: string
          title: Input Dataset
        input_model:
          type: string
          title: Input Model
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - input_dataset
        - input_model
        - output_dataset
      title: ClusteringInferenceConfig
      description: >-
        This job type is used to apply a previously trained clustering model to
        a dataset.


        The clustering model assigns a cluster label to each input row. The
        resulting dataset, including the predicted cluster labels, is written to
        the output_dataset.
    ClusteringTrainingConfig:
      properties:
        job_type:
          type: string
          const: clustering-training
          title: Job Type
          default: clustering-training
        input_column_names:
          items:
            type: string
          type: array
          title: Input Column Names
        input_dataset:
          type: string
          title: Input Dataset
        output_model:
          type: string
          title: Output Model
        clustering_params:
          $ref: '#/components/schemas/KMeansParams'
      type: object
      required:
        - input_column_names
        - input_dataset
        - output_model
        - clustering_params
      title: ClusteringTrainingConfig
      description: >-
        This job type is used to train an unsupervised clustering model on a
        dataset.


        The model is trained using the columns specified by the
        input_column_names attribute from the input_dataset. No target or label
        column is required. The default training process will apply 1. median +
        missing indicator for null numeric values and 2. one hot encoding
        including the missing value to non numeric columns
    OptimisationConfig:
      properties:
        job_type:
          type: string
          const: optimisation
          title: Job Type
          default: optimisation
        script:
          type: string
          title: Script
        input_dataset:
          type: string
          title: Input Dataset
        output_dataset:
          type: string
          title: Output Dataset
      type: object
      required:
        - script
        - input_dataset
        - output_dataset
      title: OptimisationConfig
      description: >-
        This job type is used to run combinatorial optimisation using Or-Tools.


        'script' field must have a function `def run():` which will contain your
        optimisation code and return a pandas dataframe as the output. This this
        function will be run in an isolated python environment that only allows
        standard packages, 'pandas' and 'ortools' packages so don't use any
        others.


        The input_dataset name can be directly used as a python variable in the
        script and is a pandas DataFrame. The  `run()` function must return a
        pandas dataframe which will be saved as the output_dataset.


        Example script:


        import pandas as pd

        from ortools.sat.python import cp_model


        def run():
            # replace the input_dataset_name
            df = <input_dataset_name>

            model = cp_model.CpModel()

            n = len(df)

            # Decision variables: calls per account (0, 1, or 2)
            calls = {
                i: model.NewIntVar(0, 2, f"calls_{i}")
                for i in range(n)
            }

            # Constraint: total calls ≤ 50
            max_total_calls = 50
            model.Add(sum(calls[i] for i in range(n)) <= max_total_calls)

            # Objective: maximize total net value
            objective_terms = []
            for i in range(n):
                expected_value = int(df.loc[i, "expected_value"])
                per_call_cost = int(df.loc[i, "per_call_cost"])

                # expected_value − cost × calls
                objective_terms.append(
                    expected_value - per_call_cost * calls[i]
                )

            model.Maximize(sum(objective_terms))

            # Solve
            solver = cp_model.CpSolver()
            solver.parameters.max_time_in_seconds = 10
            status = solver.Solve(model)

            if status not in (cp_model.OPTIMAL, cp_model.FEASIBLE):
                raise RuntimeError("No solution found")

            # Build result DataFrame
            result = df.copy()
            result["allocated_calls"] = [
                solver.Value(calls[i]) for i in range(n)
            ]

            result["net_value"] = (
                result["expected_value"]
                - result["per_call_cost"] * result["allocated_calls"]
            )

            return result
    DataTransformQueryType:
      type: string
      enum:
        - sql
        - python
        - pandas
      title: DataTransformQueryType
    BulkPromptBaseModelType:
      type: string
      enum:
        - gemini_2_5_flash
      title: BulkPromptBaseModelType
    XGBoostRegressorConfig:
      properties:
        tree_method:
          type: string
          title: Tree Method
          default: auto
        learning_rate:
          type: number
          title: Learning Rate
          default: 0.3
        gamma:
          type: number
          title: Gamma
          default: 0
        max_depth:
          type: integer
          title: Max Depth
          default: 6
        min_child_weight:
          type: number
          title: Min Child Weight
          default: 1
        max_delta_step:
          type: number
          title: Max Delta Step
          default: 0
        subsample:
          type: number
          title: Subsample
          default: 1
        sampling_method:
          type: string
          title: Sampling Method
          default: uniform
        colsample_bytree:
          type: number
          title: Colsample Bytree
          default: 1
        colsample_bylevel:
          type: number
          title: Colsample Bylevel
          default: 1
        colsample_bynode:
          type: number
          title: Colsample Bynode
          default: 1
        reg_lambda:
          type: number
          title: Reg Lambda
          default: 1
        reg_alpha:
          type: number
          title: Reg Alpha
          default: 0
        grow_policy:
          type: string
          title: Grow Policy
          default: depthwise
        max_bin:
          type: integer
          title: Max Bin
          default: 256
        num_parallel_tree:
          type: integer
          title: Num Parallel Tree
          default: 1
        num_boost_round:
          type: integer
          title: Num Boost Round
          default: 10
        early_stopping_rounds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Early Stopping Rounds
        log_steps:
          type: integer
          title: Log Steps
          default: 1000
      type: object
      title: XGBoostRegressorConfig
    EnsembleRegressorConfig:
      properties:
        regressor_configs:
          items:
            $ref: '#/components/schemas/XGBoostRegressorConfig'
          type: array
          title: Regressor Configs
      type: object
      required:
        - regressor_configs
      title: EnsembleRegressorConfig
    XGBoostClassifierConfig:
      properties:
        tree_method:
          type: string
          title: Tree Method
          default: auto
        learning_rate:
          type: number
          title: Learning Rate
          default: 0.3
        gamma:
          type: number
          title: Gamma
          default: 0
        max_depth:
          type: integer
          title: Max Depth
          default: 6
        min_child_weight:
          type: number
          title: Min Child Weight
          default: 1
        max_delta_step:
          type: number
          title: Max Delta Step
          default: 0
        subsample:
          type: number
          title: Subsample
          default: 1
        sampling_method:
          type: string
          title: Sampling Method
          default: uniform
        colsample_bytree:
          type: number
          title: Colsample Bytree
          default: 1
        colsample_bylevel:
          type: number
          title: Colsample Bylevel
          default: 1
        colsample_bynode:
          type: number
          title: Colsample Bynode
          default: 1
        reg_lambda:
          type: number
          title: Reg Lambda
          default: 1
        reg_alpha:
          type: number
          title: Reg Alpha
          default: 0
        grow_policy:
          type: string
          title: Grow Policy
          default: depthwise
        max_bin:
          type: integer
          title: Max Bin
          default: 256
        num_parallel_tree:
          type: integer
          title: Num Parallel Tree
          default: 1
        num_boost_round:
          type: integer
          title: Num Boost Round
          default: 10
        early_stopping_rounds:
          anyOf:
            - type: integer
            - type: 'null'
          title: Early Stopping Rounds
        log_steps:
          type: integer
          title: Log Steps
          default: 1000
      type: object
      title: XGBoostClassifierConfig
    EnsembleClassifierConfig:
      properties:
        classifier_configs:
          items:
            $ref: '#/components/schemas/XGBoostClassifierConfig'
          type: array
          title: Classifier Configs
      type: object
      required:
        - classifier_configs
      title: EnsembleClassifierConfig
      description: >-
        Configuration for an ensemble classifier.


        This configuration defines the XGBoost classifier configurations to use
        for each model in the ensemble. The ensemble size is determined by the
        number of configurations provided.


        Attributes:
            classifier_configs (list[TabularClassifierConfig]): List of XGBoost classifier configurations to use for each model. Each model in the ensemble will use the corresponding config (cycling through if needed).
    HyperparameterSearchConfig:
      properties:
        search_space:
          additionalProperties:
            items: {}
            type: array
          propertyNames:
            $ref: '#/components/schemas/SearchableHyperparameter'
          type: object
          title: Search Space
          default: {}
        optimization_metric:
          type: string
          title: Optimization Metric
          default: f1
        metric_direction:
          type: string
          title: Metric Direction
          default: maximize
        cv_folds:
          type: integer
          title: Cv Folds
          default: 5
        fixed_params:
          additionalProperties: true
          type: object
          title: Fixed Params
          default: {}
      type: object
      title: HyperparameterSearchConfig
      description: >-
        Configuration for hyperparameter search for classifiers.


        This configuration defines the search space, optimization metric, and
        other settings for finding optimal hyperparameters using grid search on
        an XGBoost classifier.


        Attributes:
            search_space (Dict[SearchableHyperparameter, list]): Dictionary mapping hyperparameters to lists of discrete values to search. Example: {SearchableHyperparameter.learning_rate: [0.01, 0.1, 0.3], SearchableHyperparameter.max_depth: [3, 5, 7]}.
            optimization_metric (str): The metric to optimize. Options: "precision", "recall", "f1", "accuracy", "auc", "mlogloss". Note: "auc" is only supported for binary classification (2 classes). Default: "f1".
            metric_direction (str): Whether to maximize or minimize the metric. Options: "maximize" or "minimize". Default: "maximize".
            cv_folds (int): Number of cross-validation folds to use on the training set. Default: 5.
            fixed_params (dict): Fixed hyperparameters that are not searched, applied to all trials. These should match XGBoostClassifierConfig structure.
    HyperparameterSearchRegressorSearchConfig:
      properties:
        search_space:
          additionalProperties:
            items: {}
            type: array
          propertyNames:
            $ref: '#/components/schemas/SearchableHyperparameter'
          type: object
          title: Search Space
          default: {}
        optimization_metric:
          type: string
          title: Optimization Metric
          default: rmse
        metric_direction:
          type: string
          title: Metric Direction
          default: minimize
        cv_folds:
          type: integer
          title: Cv Folds
          default: 5
        fixed_params:
          additionalProperties: true
          type: object
          title: Fixed Params
          default: {}
      type: object
      title: HyperparameterSearchRegressorSearchConfig
      description: >-
        Configuration for hyperparameter search for regressors.


        This configuration defines the search space, optimization metric, and
        other settings for finding optimal hyperparameters using grid search on
        an XGBoost regressor.


        Attributes:
            search_space (Dict[SearchableHyperparameter, list]): Dictionary mapping hyperparameters to lists of discrete values to search. Example: {SearchableHyperparameter.learning_rate: [0.01, 0.1, 0.3], SearchableHyperparameter.max_depth: [3, 5, 7]}.
            optimization_metric (str): The metric to optimize. Options: "rmse", "mae", "r2". Default: "rmse".
            metric_direction (str): Whether to maximize or minimize the metric. For RMSE and MAE, use "minimize". For R2, use "maximize". Default: "minimize".
            cv_folds (int): Number of cross-validation folds to use on the training set. Default: 5.
            fixed_params (dict): Fixed hyperparameters that are not searched, applied to all trials. These should match XGBoostRegressorConfig structure.
    SalesforceIntegrationParams:
      properties:
        source:
          type: string
          const: salesforce
          title: Source
          default: salesforce
        domain:
          type: string
          title: Domain
        query_type:
          $ref: '#/components/schemas/SalesforceQueryType'
        query:
          type: string
          title: Query
      type: object
      required:
        - domain
        - query_type
        - query
      title: SalesforceIntegrationParams
    GoogleCloudStorageIntegrationParams:
      properties:
        source:
          type: string
          const: google-cloud-storage
          title: Source
          default: google-cloud-storage
        path:
          type: string
          title: Path
        filetype:
          $ref: '#/components/schemas/IntegrationFileType'
      type: object
      required:
        - path
        - filetype
      title: GoogleCloudStorageIntegrationParams
    AzureBlobStorageIntegrationParams:
      properties:
        source:
          type: string
          const: azure-blob-storage
          title: Source
          default: azure-blob-storage
        path:
          type: string
          title: Path
        filetype:
          $ref: '#/components/schemas/IntegrationFileType'
      type: object
      required:
        - path
        - filetype
      title: AzureBlobStorageIntegrationParams
    AwsS3IntegrationParams:
      properties:
        source:
          type: string
          const: aws-s3
          title: Source
          default: aws-s3
        path:
          type: string
          title: Path
        filetype:
          $ref: '#/components/schemas/IntegrationFileType'
      type: object
      required:
        - path
        - filetype
      title: AwsS3IntegrationParams
    SqlServerIntegrationParams:
      properties:
        source:
          type: string
          const: sql-server
          title: Source
          default: sql-server
        server:
          type: string
          title: Server
        database:
          type: string
          title: Database
        query:
          type: string
          title: Query
        table_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Table Name
      type: object
      required:
        - server
        - database
        - query
      title: SqlServerIntegrationParams
    SharepointIntegrationParams:
      properties:
        source:
          type: string
          const: sharepoint
          title: Source
          default: sharepoint
        tenant_id:
          type: string
          title: Tenant Id
        site_name:
          type: string
          title: Site Name
        file_path:
          type: string
          title: File Path
          default: ''
      type: object
      required:
        - tenant_id
        - site_name
      title: SharepointIntegrationParams
    BigqueryIntegrationParams:
      properties:
        source:
          type: string
          const: bigquery
          title: Source
          default: bigquery
        query:
          type: string
          title: Query
        bq_location:
          type: string
          title: Bq Location
          default: ''
      type: object
      required:
        - query
      title: BigqueryIntegrationParams
    FabricWarehouseIntegrationParams:
      properties:
        source:
          type: string
          const: fabric-warehouse
          title: Source
          default: fabric-warehouse
        sql_endpoint:
          type: string
          title: Sql Endpoint
        warehouse_name:
          type: string
          title: Warehouse Name
        query:
          type: string
          title: Query
      type: object
      required:
        - sql_endpoint
        - warehouse_name
        - query
      title: FabricWarehouseIntegrationParams
    SnowflakeIntegrationParams:
      properties:
        source:
          type: string
          const: snowflake
          title: Source
          default: snowflake
        account_identifier:
          type: string
          title: Account Identifier
        database:
          type: string
          title: Database
        query:
          type: string
          title: Query
        database_schema:
          type: string
          title: Database Schema
          default: public
        warehouse:
          anyOf:
            - type: string
            - type: 'null'
          title: Warehouse
        role:
          anyOf:
            - type: string
            - type: 'null'
          title: Role
      type: object
      required:
        - account_identifier
        - database
        - query
      title: SnowflakeIntegrationParams
    TaboolaIntegrationParams:
      properties:
        source:
          type: string
          const: taboola
          title: Source
          default: taboola
        level:
          type: string
          enum:
            - campaign
            - item
          title: Level
        account_id:
          type: string
          title: Account Id
        start_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Date
        end_date:
          anyOf:
            - type: string
            - type: 'null'
          title: End Date
        last_n_days:
          anyOf:
            - type: integer
            - type: 'null'
          title: Last N Days
          default: 30
      type: object
      required:
        - level
        - account_id
      title: TaboolaIntegrationParams
    OutbrainIntegrationParams:
      properties:
        source:
          type: string
          const: outbrain
          title: Source
          default: outbrain
        marketer_id:
          type: string
          title: Marketer Id
        include_archived:
          type: boolean
          title: Include Archived
          default: true
        start_date:
          anyOf:
            - type: string
            - type: 'null'
          title: Start Date
        end_date:
          anyOf:
            - type: string
            - type: 'null'
          title: End Date
        last_n_days:
          anyOf:
            - type: integer
            - type: 'null'
          title: Last N Days
      type: object
      required:
        - marketer_id
      title: OutbrainIntegrationParams
    D365BusinessCentralIntegrationParams:
      properties:
        source:
          type: string
          const: dynamics-365-business-central
          title: Source
          default: dynamics-365-business-central
        tenant:
          type: string
          title: Tenant
        environment:
          type: string
          title: Environment
        entity:
          type: string
          title: Entity
        is_company_child:
          type: boolean
          title: Is Company Child
        query_params:
          anyOf:
            - type: string
            - type: 'null'
          title: Query Params
        publisher:
          anyOf:
            - type: string
            - type: 'null'
          title: Publisher
        group:
          anyOf:
            - type: string
            - type: 'null'
          title: Group
      type: object
      required:
        - tenant
        - environment
        - entity
        - is_company_child
      title: D365BusinessCentralIntegrationParams
    SqlServerIntegrationExportParams:
      properties:
        source:
          type: string
          const: sql-server
          title: Source
          default: sql-server
        server:
          type: string
          title: Server
        database:
          type: string
          title: Database
        table_name:
          type: string
          title: Table Name
        database_schema:
          type: string
          title: Database Schema
          default: dbo
      type: object
      required:
        - server
        - database
        - table_name
      title: SqlServerIntegrationExportParams
    SnowflakeIntegrationExportParams:
      properties:
        source:
          type: string
          const: snowflake
          title: Source
          default: snowflake
        account_identifier:
          type: string
          title: Account Identifier
        database:
          type: string
          title: Database
        table_name:
          type: string
          title: Table Name
        database_schema:
          type: string
          title: Database Schema
          default: public
        warehouse:
          anyOf:
            - type: string
            - type: 'null'
          title: Warehouse
        role:
          anyOf:
            - type: string
            - type: 'null'
          title: Role
      type: object
      required:
        - account_identifier
        - database
        - table_name
      title: SnowflakeIntegrationExportParams
    AutomationConfig:
      properties:
        id:
          type: string
          format: uuid
          title: Id
      type: object
      required:
        - id
      title: AutomationConfig
    LinearRegressorConfig:
      properties:
        fit_intercept:
          type: boolean
          title: Fit Intercept
          default: true
      type: object
      title: LinearRegressorConfig
    KMeansParams:
      properties:
        algorithm:
          type: string
          const: K_MEANS
          title: Algorithm
          default: K_MEANS
        n_clusters:
          type: integer
          title: N Clusters
        max_iter:
          type: integer
          title: Max Iter
          default: 300
        tol:
          type: number
          title: Tol
          default: 0.001
      type: object
      required:
        - n_clusters
      title: KMeansParams
    SalesforceQueryType:
      type: string
      enum:
        - soql
      title: SalesforceQueryType
    IntegrationFileType:
      type: string
      enum:
        - csv
        - parquet
      title: IntegrationFileType
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````