{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/rivery/json-schema/rivery-data-source-types-response-schema.json",
  "title": "DataSourceTypesResponse",
  "description": "The data source type response",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/rivery-data-flows-metadata-api-openapi.yml#/components/schemas/DataSourceTypesResponse",
  "properties": {
    "next_page": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Next Page",
      "description": "The next page URL"
    },
    "previous_page": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Previous Page",
      "description": "The previous page URL"
    },
    "page": {
      "type": "integer",
      "title": "Page",
      "description": "The page number",
      "default": 1
    },
    "current_page_size": {
      "type": "integer",
      "title": "Current Page Size",
      "description": "The current page size"
    },
    "total_items": {
      "type": "integer",
      "title": "Total Items",
      "description": "The total number of entities fetched",
      "default": 0
    },
    "items": {
      "items": {
        "$ref": "#/$defs/DataSourceTypeResponse"
      },
      "type": "array",
      "title": "Items"
    }
  },
  "type": "object",
  "required": [
    "current_page_size",
    "items"
  ],
  "$defs": {
    "DataSourceTypeResponse": {
      "properties": {
        "id": {
          "type": "string",
          "title": "Id",
          "description": "The internal id of the data source type."
        },
        "name": {
          "type": "string",
          "title": "Name",
          "description": "The name of the data source type."
        },
        "description": {
          "type": "string",
          "title": "Description",
          "description": "The data source type description."
        },
        "documentation_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Documentation Url",
          "description": "The URL to Boomi Data Integration data source type documentation."
        },
        "section_id": {
          "type": "string",
          "title": "Section Id",
          "description": "The section id of the data source type."
        },
        "status": {
          "allOf": [
            {
              "$ref": "#/$defs/DataSourceTypesStatusEnum"
            }
          ],
          "description": "The status of the data source type being supported on Boomi Data Integration."
        },
        "segment": {
          "items": {
            "$ref": "#/$defs/DataSourceTypesSegmentEnum"
          },
          "type": "array",
          "title": "Segment",
          "description": "The list of supported data connections for the data source type"
        },
        "icon": {
          "type": "string",
          "title": "Icon",
          "description": "The logo of the data source type."
        },
        "connection_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Connection Type",
          "description": "The related connection type of the data source, if exists"
        },
        "data_source_type_settings": {
          "allOf": [
            {
              "$ref": "#/$defs/DataSourceTypeSettings"
            }
          ],
          "description": "Settings for data source type entities"
        },
        "labels": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Labels",
          "description": "Additional labels markings for the data source type",
          "default": []
        },
        "feature_flags": {
          "anyOf": [
            {
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "title": "Feature Flags",
          "description": "Feature flags supported by the data source type"
        },
        "api_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Api Name",
          "description": "The name of the data source that the API expects"
        }
      },
      "type": "object",
      "required": [
        "id",
        "name",
        "description",
        "section_id",
        "status",
        "segment",
        "icon",
        "data_source_type_settings"
      ],
      "title": "DataSourceTypeResponse",
      "description": "The response fields for each data source type entity"
    },
    "DataSourceTypeSettings": {
      "properties": {
        "support_high_frequency": {
          "type": "boolean",
          "title": "Support High Frequency",
          "description": "The binary choice for the data source type to support high frequency",
          "default": false
        },
        "support_custom_table": {
          "type": "boolean",
          "title": "Support Custom Table",
          "description": "The binary choice for the data source type to have custom table settings.",
          "default": false
        },
        "support_predefined_reports": {
          "type": "boolean",
          "title": "Support Predefined Reports",
          "description": "The boolean check if the data source type is a predefined report",
          "default": false
        },
        "support_generic_ui": {
          "type": "boolean",
          "title": "Support Generic Ui",
          "description": "Flag to indicate if UI of data source type is generic",
          "default": false
        },
        "is_new_interface": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is New Interface",
          "description": "Flag to indicate if the data source type is using the new interface",
          "default": false
        },
        "is_native": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is Native",
          "description": "Flag to indicate the data source type is a published Native Connector; the frontend uses it to drive the generic native_connector pull-request wire shape.",
          "default": false
        },
        "in_section_ordinal": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "In Section Ordinal",
          "description": "The Order of the source in the UI",
          "default": 1000
        },
        "is_connection_generic_pattern": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Is Connection Generic Pattern",
          "description": "Flag to indicate if the data source type is using the generic connection pattern",
          "default": false
        },
        "supported_file_types_per_data_warehouse": {
          "type": "object",
          "title": "Supported File Types Per Data Warehouse",
          "description": "The supported file formats of the data source type for each data warehouse."
        },
        "logs_settings": {
          "allOf": [
            {
              "$ref": "#/$defs/DataSourceTypesLogsSettings"
            }
          ],
          "description": "Data source types logs related settings"
        },
        "increment_defaults": {
          "type": "object",
          "title": "Increment Defaults",
          "description": "Default incremental loading parameters for the data source type"
        },
        "support_sub_rivers": {
          "type": "boolean",
          "title": "Support Sub Rivers",
          "description": "Flag to indicate if sub rivers are supported",
          "default": false
        },
        "no_schema_migration": {
          "type": "boolean",
          "title": "No Schema Migration",
          "description": "Flag to indicate the data source does not follow a schema -> table structure",
          "default": false
        }
      },
      "type": "object",
      "required": [
        "supported_file_types_per_data_warehouse",
        "logs_settings",
        "increment_defaults"
      ],
      "title": "DataSourceTypeSettings",
      "description": "The settings for the DataSourceType model"
    },
    "DataSourceTypesLogsSettings": {
      "properties": {
        "support_logs": {
          "type": "boolean",
          "title": "Support Logs",
          "description": "Flag to indicate if logs can be exposed for data source type"
        },
        "logs_start_time": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Logs Start Time",
          "description": "The timestamp of when the data source type logs were obfuscated in milliseconds."
        }
      },
      "type": "object",
      "required": [
        "support_logs"
      ],
      "title": "DataSourceTypesLogsSettings",
      "description": "Logs related settings, such as if the logs are enabled or not"
    },
    "DataSourceTypesSegmentEnum": {
      "type": "string",
      "enum": [
        "source",
        "connections",
        "target",
        "technical",
        "not_technical"
      ],
      "title": "DataSourceTypesSegmentEnum",
      "description": "Each data source type has a segments field, which is being used to filter the relevant DS in the UI"
    },
    "DataSourceTypesStatusEnum": {
      "type": "string",
      "enum": [
        "enabled",
        "coming_soon",
        "vote",
        "sunset"
      ],
      "title": "DataSourceTypesStatusEnum",
      "description": "Data source status reflect whether Rivery already support this DS type"
    }
  }
}