---
title: "POST /v1/{+parent}/connectionProfiles:discover"
method: POST
path: "/v1/{+parent}/connectionProfiles:discover"
tags: ["projects"]
---

# POST /v1/{+parent}/connectionProfiles:discover

`POST /v1/{+parent}/connectionProfiles:discover`

Use this method to discover a connection profile. The discover API call exposes the data objects and metadata belonging to the profile. Typically, a request returns children data objects of a parent data object that's optionally supplied in the request.

## Path parameters

- `parent` string, required

## Request body

- DiscoverConnectionProfileRequest — Request message for 'discover' ConnectionProfile request.
  - `sourceCatalog` SourceCatalog — Source catalog.
    - `objects` SourceObject[] — Optional. Source objects in the catalog.
      - `properties` SourceProperty[] — Optional. Source properties. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.
        - `propertyName` string — Required. The property name.
        - `properties` SourceProperty[] — Optional. Source properties. When specified, it means that the current property contains nested properties of its own. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.
        - `primaryKey` boolean — Optional. Whether or not the property is a primary key.
      - `objectName` string — Required. The object name.
  - `connectionProfile` ConnectionProfile — A set of reusable connection configurations to be used as a source or destination for a stream.
    - `gcsProfile` GcsProfile — Profile for connecting to a Cloud Storage destination.
      - `bucket` string — Required. The Cloud Storage bucket name.
      - `rootPath` string — Optional. The root path inside the Cloud Storage bucket.
    - `satisfiesPzs` boolean — Output only. Reserved for future use.
    - `bigqueryProfile` BigQueryProfile — Profile for connecting to a BigQuery destination.
    - `salesforceMarketingCloudProfile` SalesforceMarketingCloudProfile — Profile for connecting to a Salesforce Marketing Cloud source.
      - `subdomain` string — Required. Subdomain for the Salesforce Marketing Cloud connection. Example: if your specific endpoint is `https://{your-specific-subdomain}.rest.marketingcloudapis.com/`, the subdomain is `{your-specific-subdomain}`. Must be 1-63 characters, start and end with an alphanumeric character, and contain only lowercase letters, numbers, and hyphens (-).
      - `oauthClientCredentials` OauthClientCredentials — OAuth Client Credentials.
        - `clientSecret` Secret — A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.
          - `rawValue` string — Optional. Input only. The actual raw value of the secret as plain text.
          - `secretVersion` string — Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}
        - `clientId` string — Required. Client ID for OAuth Client Credentials.
    - `updateTime` string, google-datetime — Output only. The update time of the resource.
    - `sqlServerProfile` SqlServerProfile — Profile for connecting to a SQLServer source.
      - `database` string — Required. Database for the SQLServer connection.
      - `sslConfig` SqlServerSslConfig — SQL Server SSL configuration information.
        - `basicEncryption` BasicEncryption — Message to represent the option where Datastream will enforce encryption without authenticating server identity. Server certificates will be trusted by default.
        - `encryptionNotEnforced` EncryptionNotEnforced — Message to represent the option where encryption is not enforced. An empty message right now to allow future extensibility.
        - `encryptionAndServerValidation` EncryptionAndServerValidation — Message to represent the option where Datastream will enforce encryption and authenticate server identity. ca_certificate must be set if user selects this option.
          - `serverCertificateHostname` string — Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. This field is used for bypassing the hostname validation while verifying server certificate. This is required for scenarios where the host name that datastream connects to is different from the certificate's subject. This specifically happens for private connectivity. It could also happen when the customer provides a public IP in connection profile but the same is not present in the server certificate.
          - `caCertificate` string — Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
      - `hostname` string — Required. Hostname for the SQLServer connection.
      - `password` string — Optional. Password for the SQLServer connection. Mutually exclusive with the `secret_manager_stored_password` field.
      - `username` string — Required. Username for the SQLServer connection.
      - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.
      - `port` integer — Port for the SQLServer connection, default value is 1433.
    - `serviceNowProfile` ServiceNowProfile — Profile for connecting to a ServiceNow source.
      - `userPasswordCredentials` UserPasswordCredentials — User-password credentials.
        - `username` string — Required. Username for the connection.
        - `password` Secret — A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.
          - `rawValue` string — Optional. Input only. The actual raw value of the secret as plain text.
          - `secretVersion` string — Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}
      - `oauthClientCredentials` OauthClientCredentials — OAuth Client Credentials.
        - `clientSecret` Secret — A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.
          - `rawValue` string — Optional. Input only. The actual raw value of the secret as plain text.
          - `secretVersion` string — Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}
        - `clientId` string — Required. Client ID for OAuth Client Credentials.
      - `instance` string — Required. The instance of the ServiceNow account. This is the `` part of the URL `https://.service-now.com`.
    - `postgresqlProfile` PostgresqlProfile — Profile for connecting to a PostgreSQL source.
      - `database` string — Required. Database for the PostgreSQL connection.
      - `sslConfig` PostgresqlSslConfig — PostgreSQL SSL configuration information.
        - `serverVerification` ServerVerification — Message represents the option where Datastream will enforce the encryption and authenticate the server identity. ca_certificate must be set if user selects this option.
          - `caCertificate` string — Required. Input only. PEM-encoded server root CA certificate.
          - `serverCertificateHostname` string — Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.
        - `serverAndClientVerification` ServerAndClientVerification — Message represents the option where Datastream will enforce the encryption and authenticate the server identity as well as the client identity. ca_certificate, client_certificate and client_key must be set if user selects this option.
          - `clientKey` string — Optional. Input only. PEM-encoded private key associated with the client certificate. This value will be used during the SSL/TLS handshake, allowing the PostgreSQL server to authenticate the client's identity, i.e. identity of the Datastream.
          - `clientCertificate` string — Required. Input only. PEM-encoded certificate used by the source database to authenticate the client identity (i.e., the Datastream's identity). This certificate is signed by either a root certificate trusted by the server or one or more intermediate certificates (which is stored with the leaf certificate) to link the this certificate to the trusted root certificate.
          - `serverCertificateHostname` string — Optional. The hostname mentioned in the Subject or SAN extension of the server certificate. If this field is not provided, the hostname in the server certificate is not validated.
          - `caCertificate` string — Required. Input only. PEM-encoded server root CA certificate.
      - `hostname` string — Required. Hostname for the PostgreSQL connection.
      - `password` string — Optional. Password for the PostgreSQL connection. Mutually exclusive with the `secret_manager_stored_password` field.
      - `username` string — Required. Username for the PostgreSQL connection.
      - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the PostgreSQL connection password. Mutually exclusive with the `password` field.
      - `port` integer — Port for the PostgreSQL connection, default value is 5432.
    - `spannerProfile` SpannerProfile — Profile for connecting to a Spanner source.
      - `host` string — Optional. The Spanner endpoint to connect to. Defaults to the global endpoint (https://spanner.googleapis.com). Must be in the format: https://spanner.{region}.rep.googleapis.com.
      - `database` string — Required. Immutable. Cloud Spanner database resource. This field is immutable. Must be in the format: projects/{project}/instances/{instance}/databases/{database_id}.
    - `dataverseProfile` DataverseProfile — Profile for connecting to a Dataverse source.
      - `oauthClientCredentials` OauthClientCredentials — OAuth Client Credentials.
        - `clientSecret` Secret — A confidential piece of information where the actual value is either directly specified in the message as a raw string or stored in GCP secret manager.
          - `rawValue` string — Optional. Input only. The actual raw value of the secret as plain text.
          - `secretVersion` string — Optional. A Secret Manager resource name storing the actual value of the secret. Supported formats: * projects/{project}/locations/{location}/secrets/{secret}/versions/{version} * projects/{project}/secrets/{secret}/versions/{version}
        - `clientId` string — Required. Client ID for OAuth Client Credentials.
      - `tenantId` string — Required. Tenant id of the Microsoft Dataverse instance.
      - `environmentUrl` string — Required. Environment URL of the Microsoft Dataverse instance. Example: `.crm.dynamics.com`
    - `name` string — Output only. Identifier. The resource's name.
    - `oracleProfile` OracleProfile — Profile for connecting to an Oracle source.
      - `port` integer — Port for the Oracle connection, default value is 1521.
      - `username` string — Required. Username for the Oracle connection.
      - `password` string — Optional. Password for the Oracle connection. Mutually exclusive with the `secret_manager_stored_password` field.
      - `oracleSslConfig` OracleSslConfig — Oracle SSL configuration information.
        - `caCertificate` string — Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
        - `caCertificateSet` boolean — Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.
        - `serverCertificateDistinguishedName` string — Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.
      - `oracleAsmConfig` OracleAsmConfig — Configuration for Oracle Automatic Storage Management (ASM) connection.
        - `connectionAttributes` object — Optional. Connection string attributes
        - `hostname` string — Required. Hostname for the Oracle ASM connection.
        - `password` string — Optional. Password for the Oracle ASM connection. Mutually exclusive with the `secret_manager_stored_password` field.
        - `asmService` string — Required. ASM service name for the Oracle ASM connection.
        - `username` string — Required. Username for the Oracle ASM connection.
        - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the Oracle ASM connection password. Mutually exclusive with the `password` field.
        - `port` integer — Required. Port for the Oracle ASM connection.
        - `oracleSslConfig` OracleSslConfig — Oracle SSL configuration information.
          - `caCertificate` string — Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
          - `caCertificateSet` boolean — Output only. Indicates whether the ca_certificate field has been set for this Connection-Profile.
          - `serverCertificateDistinguishedName` string — Optional. The distinguished name (DN) mentioned in the server certificate. This corresponds to SSL_SERVER_CERT_DN sqlnet parameter. Refer https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-70AB0695-A9AA-4A94-B141-4C605236EEB7 If this field is not provided, the DN matching is not enforced.
      - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the Oracle connection password. Mutually exclusive with the `password` field.
      - `databaseService` string — Required. Database for the Oracle connection.
      - `hostname` string — Required. Hostname for the Oracle connection.
      - `connectionAttributes` object — Connection string attributes
    - `satisfiesPzi` boolean — Output only. Reserved for future use.
    - `mongodbProfile` MongodbProfile — Profile for connecting to a MongoDB source.
      - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the SQLServer connection password. Mutually exclusive with the `password` field.
      - `replicaSet` string — Optional. Name of the replica set. Only needed for self hosted replica set type MongoDB cluster. For SRV connection format, this field must be empty. For Standard connection format, this field must be specified.
      - `additionalOptions` object — Optional. Specifies additional options for the MongoDB connection. The options should be sent as key-value pairs, for example: `additional_options = {"serverSelectionTimeoutMS": "10000", "directConnection": "true"}`. Keys are case-sensitive and should match the official MongoDB connection string options: https://www.mongodb.com/docs/manual/reference/connection-string-options/ The server will not modify the values provided by the user.
      - `sslConfig` MongodbSslConfig — MongoDB SSL configuration information.
        - `clientCertificate` string — Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.
        - `clientCertificateSet` boolean — Output only. Indicates whether the client_certificate field is set.
        - `secretManagerStoredClientKey` string — Optional. Input only. A reference to a Secret Manager resource name storing the PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory. Mutually exclusive with the `client_key` field.
        - `clientKeySet` boolean — Output only. Indicates whether the client_key field is set.
        - `clientKey` string — Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.
        - `caCertificate` string — Optional. Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
        - `caCertificateSet` boolean — Output only. Indicates whether the ca_certificate field is set.
      - `standardConnectionFormat` StandardConnectionFormat — Standard connection format.
        - `directConnection` boolean — Optional. Deprecated: Use the `additional_options` map to specify the `directConnection` parameter instead. For example: `additional_options = {"directConnection": "true"}`. Specifies whether the client connects directly to the host[:port] in the connection URI.
      - `srvConnectionFormat` SrvConnectionFormat — Srv connection format.
      - `username` string — Required. Username for the MongoDB connection.
      - `hostAddresses` HostAddress[] — Required. List of host addresses for a MongoDB cluster. For SRV connection format, this list must contain exactly one DNS host without a port. For Standard connection format, this list must contain all the required hosts in the cluster with their respective ports.
        - `hostname` string — Required. Hostname for the connection.
        - `port` integer — Optional. Port for the connection.
      - `password` string — Optional. Password for the MongoDB connection. Mutually exclusive with the `secret_manager_stored_password` field.
    - `staticServiceIpConnectivity` StaticServiceIpConnectivity — Static IP address connectivity. Used when the source database is configured to allow incoming connections from the Datastream public IP addresses for the region specified in the connection profile.
    - `forwardSshConnectivity` ForwardSshTunnelConnectivity — Forward SSH Tunnel connectivity.
      - `privateKey` string — Input only. SSH private key.
      - `hostname` string — Required. Hostname for the SSH tunnel.
      - `password` string — Input only. SSH password.
      - `port` integer — Port for the SSH tunnel, default value is 22.
      - `username` string — Required. Username for the SSH tunnel.
    - `labels` object — Labels.
    - `mysqlProfile` MysqlProfile — Profile for connecting to a MySQL source.
      - `hostname` string — Required. Hostname for the MySQL connection.
      - `password` string — Optional. Input only. Password for the MySQL connection. Mutually exclusive with the `secret_manager_stored_password` field.
      - `sslConfig` MysqlSslConfig — MySQL SSL configuration information.
        - `clientKey` string — Optional. Input only. PEM-encoded private key associated with the Client Certificate. If this field is used then the 'client_certificate' and the 'ca_certificate' fields are mandatory.
        - `clientKeySet` boolean — Output only. Indicates whether the client_key field is set.
        - `caCertificate` string — Input only. PEM-encoded certificate of the CA that signed the source database server's certificate.
        - `caCertificateSet` boolean — Output only. Indicates whether the ca_certificate field is set.
        - `clientCertificate` string — Optional. Input only. PEM-encoded certificate that will be used by the replica to authenticate against the source database server. If this field is used then the 'client_key' and the 'ca_certificate' fields are mandatory.
        - `clientCertificateSet` boolean — Output only. Indicates whether the client_certificate field is set.
      - `port` integer — Port for the MySQL connection, default value is 3306.
      - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the MySQL connection password. Mutually exclusive with the `password` field.
      - `username` string — Required. Username for the MySQL connection.
    - `salesforceProfile` SalesforceProfile — Profile for connecting to a Salesforce source.
      - `userCredentials` UserCredentials — Deprecated: Salesforce is retiring Username-Password authentication. Use `Oauth2ClientCredentials` instead.
        - `password` string — Optional. Password for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_password` field.
        - `securityToken` string — Optional. Security token for the Salesforce connection. Mutually exclusive with the `secret_manager_stored_security_token` field.
        - `secretManagerStoredPassword` string — Optional. A reference to a Secret Manager resource name storing the Salesforce connection's password. Mutually exclusive with the `password` field.
        - `username` string — Required. Username for the Salesforce connection.
        - `secretManagerStoredSecurityToken` string — Optional. A reference to a Secret Manager resource name storing the Salesforce connection's security token. Mutually exclusive with the `security_token` field.
      - `oauth2ClientCredentials` Oauth2ClientCredentials — OAuth2 Client Credentials.
        - `clientSecret` string — Optional. Client secret for Salesforce OAuth2 Client Credentials. Mutually exclusive with the `secret_manager_stored_client_secret` field.
        - `clientId` string — Required. Client ID for Salesforce OAuth2 Client Credentials.
        - `secretManagerStoredClientSecret` string — Optional. A reference to a Secret Manager resource name storing the Salesforce OAuth2 client_secret. Mutually exclusive with the `client_secret` field.
      - `domain` string — Required. Domain endpoint for the Salesforce connection.
    - `privateConnectivity` PrivateConnectivity — Private Connectivity
      - `privateConnection` string — Required. A reference to a private connection resource. Format: `projects/{project}/locations/{location}/privateConnections/{name}`
    - `createTime` string, google-datetime — Output only. The create time of the resource.
    - `displayName` string — Required. Display name.
  - `connectionProfileName` string — Optional. A reference to an existing connection profile.
  - `sqlServerRdbms` SqlServerRdbms — SQLServer database structure.
    - `schemas` SqlServerSchema[] — SQLServer schemas in the database server.
      - `schema` string — The schema name.
      - `tables` SqlServerTable[] — Tables in the schema.
        - `table` string — The table name.
        - `columns` SqlServerColumn[] — SQLServer columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.
          - `length` integer — Column length.
          - `scale` integer — Column scale.
          - `primaryKey` boolean — Whether or not the column represents a primary key.
          - `dataType` string — The SQLServer data type.
          - `precision` integer — Column precision.
          - `ordinalPosition` integer — The ordinal position of the column in the table.
          - `nullable` boolean — Whether or not the column can accept a null value.
          - `column` string — The column name.
  - `mongodbCluster` MongodbCluster — MongoDB Cluster structure.
    - `databases` MongodbDatabase[] — MongoDB databases in the cluster.
      - `database` string — The database name.
      - `collections` MongodbCollection[] — Collections in the database.
        - `fields` MongodbField[] — Fields in the collection.
          - `field` string — The field name.
        - `collection` string — The collection name.
  - `fullHierarchy` boolean — Optional. Whether to retrieve the full hierarchy of data objects (TRUE) or only the current level (FALSE).
  - `hierarchyDepth` integer — Optional. The number of hierarchy levels below the current level to be retrieved.
  - `salesforceOrg` SalesforceOrg — Salesforce organization structure.
    - `objects` SalesforceObject[] — Salesforce objects in the database server.
      - `objectName` string — The object name.
      - `fields` SalesforceField[] — Salesforce fields. When unspecified as part of include objects, includes everything, when unspecified as part of exclude objects, excludes nothing.
        - `dataType` string — The data type.
        - `nillable` boolean — Indicates whether the field can accept nil values.
        - `name` string — The field name.
  - `spannerDatabase` SpannerDatabase — Spanner database structure.
    - `schemas` SpannerSchema[] — Optional. Spanner schemas in the database.
      - `tables` SpannerTable[] — Optional. Spanner tables in the schema.
        - `columns` SpannerColumn[] — Optional. Spanner columns in the table.
          - `ordinalPosition` string, int64 — Optional. The ordinal position of the column in the table.
          - `isPrimaryKey` boolean — Optional. Whether or not the column is a primary key.
          - `column` string — Required. The column name.
          - `dataType` string — Optional. Spanner data type.
        - `table` string — Required. The table name.
      - `schema` string — Required. The schema name.
  - `mysqlRdbms` MysqlRdbms — MySQL database structure
    - `mysqlDatabases` MysqlDatabase[] — Mysql databases on the server
      - `database` string — The database name.
      - `mysqlTables` MysqlTable[] — Tables in the database.
        - `table` string — The table name.
        - `mysqlColumns` MysqlColumn[] — MySQL columns in the database. When unspecified as part of include/exclude objects, includes/excludes everything.
          - `column` string — The column name.
          - `nullable` boolean — Whether or not the column can accept a null value.
          - `ordinalPosition` integer — The ordinal position of the column in the table.
          - `collation` string — Column collation.
          - `primaryKey` boolean — Whether or not the column represents a primary key.
          - `scale` integer — Column scale.
          - `precision` integer — Column precision.
          - `dataType` string — The MySQL data type. Full data types list can be found here: https://dev.mysql.com/doc/refman/8.0/en/data-types.html
          - `length` integer — Column length.
  - `oracleRdbms` OracleRdbms — Oracle database structure.
    - `oracleSchemas` OracleSchema[] — Oracle schemas/databases in the database server.
      - `oracleTables` OracleTable[] — Tables in the schema.
        - `oracleColumns` OracleColumn[] — Oracle columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.
          - `encoding` string — Column encoding.
          - `scale` integer — Column scale.
          - `primaryKey` boolean — Whether or not the column represents a primary key.
          - `nullable` boolean — Whether or not the column can accept a null value.
          - `column` string — The column name.
          - `ordinalPosition` integer — The ordinal position of the column in the table.
          - `dataType` string — The Oracle data type.
          - `length` integer — Column length.
          - `precision` integer — Column precision.
        - `table` string — The table name.
      - `schema` string — The schema name.
  - `postgresqlRdbms` PostgresqlRdbms — PostgreSQL database structure.
    - `postgresqlSchemas` PostgresqlSchema[] — PostgreSQL schemas in the database server.
      - `postgresqlTables` PostgresqlTable[] — Tables in the schema.
        - `postgresqlColumns` PostgresqlColumn[] — PostgreSQL columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.
          - `dataType` string — The PostgreSQL data type.
          - `length` integer — Column length.
          - `scale` integer — Column scale.
          - `primaryKey` boolean — Whether or not the column represents a primary key.
          - `nullable` boolean — Whether or not the column can accept a null value.
          - `column` string — The column name.
          - `precision` integer — Column precision.
          - `ordinalPosition` integer — The ordinal position of the column in the table.
        - `table` string — The table name.
      - `schema` string — The schema name.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/datastream.md) · [All operations](https://skmtc.net/google/apis/datastream/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/datastream/versions/f9da70538976/schema)
