Datasource Type#
A datasource type is an object that represents a source of the data. This can be a database (MongoDB, MySQL), file storage (Dropbox, Google Cloud Storage), generic protocol or API (FTP, HTTP).
Note
For the full list, get all DatasourceTypes objects (Retrieving a DatasourceType) or refer to the IBM documentation.
Datasource objects are used as arguments when creating Connection objects.
Note
To read more about connections see Connections.
The SDK provides functionality to interact with datasource types.
- This includes operations such as:
Retrieving DatasourceType(s)
Retrieving a DatasourceType#
In the UI, the list of all DatasourceType objects is displayed during creation of Connection
(See: Creating a Connection).
In the SDK, a Connection can be retrieved using Project.connections property.
You can also further filter and refine the connections returned based on attributes including
name, context, properties and datasource_type.
A DatasourceType can be retrieved using Platform.datasources property.
You can also further filter and refine the connections returned based on attributes including
environment, perspective and product.
This property returns a DatasourceTypes object.
>>> # Return first datasource type matching given `name`
>>> platform.datasources.get(name='jdbc')
DatasourceType(name='jdbc')
>>> # Return first datasource type matching given `perspective`
>>> platform.datasources.get(perspective='wx')
DatasourceType(name='informix')
>>> # Return a list of all datasource types that match `perspective`
>>> platform.datasources.get_all(perspective='wx')
[DatasourceType(name='informix'), DatasourceType(name='postgresql-ibmcloud'), ...]
>>> # Return a list of all datasource types
>>> platform.datasources
[DatasourceType(name='informix'), DatasourceType(name='postgresql-ibmcloud'), ...]
Tip
For detailed information about parameters and values refer to https://cloud.ibm.com/apidocs/data-ai-common-core#listdatasourcetypes.
Retrieving a DatasourceType connection properties#
In the UI, available connection fields depend on previously selected DatasourceType (See: Retrieving a DatasourceType).
For example, JDBC connection by default requires 3 parameters - JDBC Connection String, Username, Password.
HTTP connection on the other hand by default requires only one parameters - File URL.
In the SDK to get all properties available for a DatasourceType
object use DatasourceType.properties
property (which will return DatasourceTypeProperties object).
Then you can call DatasourceTypeProperties.connection
to retrieve all available connection properties.
>>> # Get datasource object
>>> datasource = platform.datasources.get(name='informix')
>>> datasource
DatasourceType(name='informix')
>>> datasource.properties.connection
[DatasourceTypeProperty(name='cluster_access_token'), DatasourceTypeProperty(name='cluster_user_name'), ...]
>>> # You can get list of all required properties
>>> required_properties = datasource.required_connection_properties
>>> required_properties
[DatasourceTypeProperty(name='host'), DatasourceTypeProperty(name='password'), ...]
>>> # Or get details about the property
>>> required_property_1 = required_properties[0]
>>> required_property_1
DatasourceTypeProperty(name='host')
>>> required_property_1.type
'string'
>>> required_property_1.label
'Hostname or IP address'