{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-purview/json-schema/microsoft-purview-data-source-list-schema.json",
  "title": "DataSourceList",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-purview-data-sources-api-openapi.yml#/components/schemas/DataSourceList",
  "type": "object",
  "properties": {
    "value": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DataSource"
      }
    },
    "nextLink": {
      "type": "string"
    },
    "count": {
      "type": "integer",
      "format": "int64"
    }
  },
  "$defs": {
    "CollectionReference": {
      "type": "object",
      "properties": {
        "referenceName": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    },
    "ConnectedVia": {
      "type": "object",
      "properties": {
        "referenceName": {
          "type": "string"
        },
        "integrationRuntimeType": {
          "type": "string"
        }
      }
    },
    "DataSource": {
      "type": "object",
      "description": "A registered data source",
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true
        },
        "name": {
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "The data source type",
          "enum": [
            "AzureSubscription",
            "AzureResourceGroup",
            "AzureSynapseWorkspace",
            "AzureSynapse",
            "AdlsGen1",
            "AdlsGen2",
            "AmazonAccount",
            "AmazonS3",
            "AmazonSql",
            "AzureCosmosDb",
            "AzureDataExplorer",
            "AzureFileService",
            "AzureSqlDatabase",
            "AzureSqlDatabaseManagedInstance",
            "AzureSqlDataWarehouse",
            "AzureMySql",
            "AzurePostgreSql",
            "AzureStorage",
            "Teradata",
            "Oracle",
            "SapS4Hana",
            "SapEcc",
            "PowerBI"
          ]
        },
        "properties": {
          "type": "object",
          "description": "Data source properties",
          "properties": {
            "endpoint": {
              "type": "string"
            },
            "resourceGroup": {
              "type": "string"
            },
            "subscriptionId": {
              "type": "string"
            },
            "location": {
              "type": "string"
            },
            "resourceName": {
              "type": "string"
            },
            "resourceId": {
              "type": "string"
            },
            "collection": {
              "$ref": "#/$defs/CollectionReference"
            },
            "dataSourceCollectionMovingState": {
              "type": "integer",
              "format": "int32"
            },
            "createdAt": {
              "type": "string",
              "format": "date-time"
            },
            "lastModifiedAt": {
              "type": "string",
              "format": "date-time"
            }
          }
        },
        "scans": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Scan"
          }
        }
      }
    },
    "Scan": {
      "type": "object",
      "description": "A scan configuration",
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true
        },
        "name": {
          "type": "string"
        },
        "kind": {
          "type": "string",
          "description": "The scan type"
        },
        "properties": {
          "type": "object",
          "properties": {
            "scanRulesetName": {
              "type": "string"
            },
            "scanRulesetType": {
              "type": "string",
              "enum": [
                "Custom",
                "System"
              ]
            },
            "collection": {
              "$ref": "#/$defs/CollectionReference"
            },
            "connectedVia": {
              "$ref": "#/$defs/ConnectedVia"
            },
            "createdAt": {
              "type": "string",
              "format": "date-time"
            },
            "lastModifiedAt": {
              "type": "string",
              "format": "date-time"
            },
            "lastScheduled": {
              "type": "string",
              "format": "date-time"
            }
          }
        }
      }
    }
  }
}