3.1.5.2.2.1.3 dataSource

The JSON schema for the dataSource object is as follows.

 {
   "anyOf": [
       {
           "description": "ProviderDataSource object of Tabular Object Model (TOM)",
           "type": "object",
           "properties": {
               "name": {
                   "type": "string"
               },
               "description": {
                   "anyOf": [
                       {
                           "type": "string"
                       },
                       {
                           "type": "array",
                           "items": {
                               "type": "string"
                           }
                       }
                   ]
               },
               "type": {
                   "enum": [
                       "provider",
                       "structured"
                   ]
               },
               "connectionString": {
                   "type": "string"
               },
               "impersonationMode": {
                   "enum": [
                       "default",
                       "impersonateAccount",
                       "impersonateAnonymous",
                       "impersonateCurrentUser",
                       "impersonateServiceAccount",
                       "impersonateUnattendedAccount"
                   ]
               },
               "account": {
                   "type": "string"
               },
               "password": {
                   "type": "string"
               },
               "maxConnections": {
                   "type": "integer"
               },
               "isolation": {
                   "enum": [
                       "readCommitted",
                       "snapshot"
                   ]
               },
               "timeout": {
                   "type": "integer"
               },
               "provider": {
                   "type": "string"
               },
               "annotations": {
                   "type": "array",
                   "items": {
                       ...
                   }
               },
               "extendedProperties": {
                   "type": "array",
                   "items": {
                       ...
                   }
               }
           },
           "additionalProperties": false
       },
       {
           "description": "StructuredDataSource object of Tabular Object Model (TOM)",
           "type": "object",
           "properties": {
               "name": {
                   "type": "string"
               },
               "description": {
                   "anyOf": [
                       {
                           "type": "string"
                       },
                       {
                           "type": "array",
                           "items": {
                               "type": "string"
                           }
                       }
                   ]
               },
               "type": {
                   "enum": [
                       "provider",
                       "structured"
                   ]
               },
               "maxConnections": {
                   "type": "integer"
               },
               "connectionDetails": {
                   "type": "object"
               },
               "options": {
                   "type": "object"
               },
               "credential": {
                   "type": "object"
               },
               "contextExpression": {
                   "anyOf": [
                       {
                           "type": "string"
                       },
                       {
                           "type": "array",
                           "items": {
                               "type": "string"
                           }
                       }
                   ]
               },
               "annotations": {
                   "type": "array",
                   "items": {
                       ...
                   }
               },
               "extendedProperties": {
                   "type": "array",
                   "items": {
                       ...
                   }
               }
           },
           "additionalProperties": false
       }
   ]
 }

The properties correspond to the DataSource object that is defined in section 2.2.5.2.

In addition, the JSON-based dataSource object can include collections of child annotation and extendedProperty objects.