# Search for Synthetic data connectors

Endpoint: POST /synthetic/connectors/search
Version: 3.30.0
Security: ApiKeyAuth

## Security:

  - `ApiKeyAuth` (unknown)
    apiKey in header Authorization

## Query parameters:

  - `limit` (integer)
    Maximum number of objects to return per query. The value must be between 1 and 1000. Default is 100.

  - `cursor` (string)
    Cursor to fetch the next or previous page of results. The value of this property must be extracted from the 'prev_cursor' or 'next_cursor' property of a PaginatedResponseMetadata which is contained in the response of list and search API endpoints.

  - `sort` (string)
    The field to sort results by. A property name with a prepended '-' signifies a descending order.

## Request body:

  - `application/json` (unknown)
    A request body containing a filter expression. This enables searching
for items matching arbitrarily complex conditions. The list of
attributes which can be used in filter expressions is available
in the x-filterable vendor extension.
# Filter Expression Overview
**Note: All keywords are case-insensitive**
## Comparison Operators
| Operator | Description | Example |
|  --- | --- | --- |
| CONTAINS | Substring or membership testing for string and list attributes respectively. | field3 CONTAINS 'foobar', field4 CONTAINS TRUE |
| IN | Tests if field is a member of a list literal. List can contain a maximum of 100 values | field2 IN ['Goku', 'Vegeta'] |
| GE | Tests if a field is greater than or equal to a literal value | field1 GE 1.2e-2 |
| GT | Tests if a field is greater than a literal value | field1 GT 1.2e-2 |
| LE | Tests if a field is less than or equal to a literal value | field1 LE 9000 |
| LT | Tests if a field is less than a literal value | field1 LT 9.02 |
| NE | Tests if a field is not equal to a literal value | field1 NE 42 |
| EQ | Tests if a field is equal to a literal value | field1 EQ 42 |

## Search Operator
The SEARCH operator filters for items which have any filterable
attribute that contains the input string as a substring, comparison
is done case-insensitively. This is not restricted to attributes with
string values. Specifically `SEARCH '12'` would match an item with an
attribute with an integer value of `123`.
## Logical Operators
Ordered by precedence.
| Operator | Description | Example |
|  --- | --- | --- |
| NOT | Logical NOT (Right associative) | NOT field1 LE 9000 |
| AND | Logical AND (Left Associative) | field1 GT 9000 AND field2 EQ 'Goku' |
| OR | Logical OR (Left Associative) | field1 GT 9000 OR field2 EQ 'Goku' |

## Grouping
Parenthesis `()` can be used to override operator precedence.
For example:
NOT (field1 LT 1234 AND field2 CONTAINS 'foo')
## Literal Values
| Literal | Description | Examples |
|  --- | --- | --- |
| Nil | Represents the absence of a value | nil, Nil, nIl, NIL |
| Boolean | true/false boolean | true, false, True, False, TRUE, FALSE |
| Number | Signed integer and floating point numbers. Also supports scientific notation. | 0, 1, -1, 1.2, 0.35, 1.2e-2, -1.2e+2 |
| String | Single or double quoted | "foo", "bar", "foo bar", 'foo', 'bar', 'foo bar' |
| Datetime | Formatted according to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) | 2018-04-27T18:39:26.397237+00:00 |
| List | Comma-separated literals wrapped in square brackets | [0], [0, 1], ['foo', "bar"] |

## Limitations
- A maximum of 8 unique identifiers may be used inside a filter expression.

## Request fields (application/json):

  - `filter_expression` (string)
    Example: string_field CONTAINS "over" AND numberic_field GT 9000 OR string_field2 EQ "Goku"

## Request examples:

  - `Nested Object Comparison` (unknown)
    An example of a nested Object comparison testing that at least one repository has a
version which is equal to 19.0.0.

  - `Relative comparison` (unknown)
    An example of a relative comparison testing that field1 has a
value which is less than 123.

  - `Absence of an attribute value` (unknown)
    An example of using nil to test for the absence of a value for field2.

  - `Existence of an attribute value` (unknown)
    An example of using nil to test for the existence of a value for field2.

  - `Use of the CONTAINS operator` (unknown)
    An example of using the 'CONTAINS' operator to check if
field2 contains the string 'foo'. If field2 is string valued
then this is checking if 'foo' is a substring of field2. If
field2 is a list of strings then this is checking if 'foo'
is a member of the list.

  - `Use of the IN operator` (unknown)
    An example of using the 'IN' operator to check if field1
is an element of a list literal.

  - `Use of the SEARCH operator` (unknown)
    An example of using the 'SEARCH' operator to retrieve all elements
for which 'foo' is a substring of a filterable attribute.

  - `Overriding operator precedence` (unknown)
    An example of parenthesis being used to group operators & override
operator precedence.

## Response 200:

  - `200` (unknown)
    OK

## Response 200 fields (application/json):

  - `items` (array)

  - `items.id` (string)
    The id of the connector

  - `items.name` (string)
    The name of this connector. This value must be unique among all synthetic data connectors.

  - `items.description` (string)
    An optional description for this connector.

  - `items.application_id` (string)
    An Application associated with the connector.

  - `items.is_reference` (boolean)
    Indicates if its reference connector

  - `items.is_target` (boolean)
    Indicates if its target connector

  - `items.reference_connector_id` (string)
    The ID of the reference connector in case its target connector

  - `items.connector_type` (string)
    The type of synthetic data connector. Currently supports Database only.
    Enum: "DATABASE"

  - `items.connector_subtype` (string)
    The database or file variant, such as Oracle, Postgres, MSSQL Server, JSON etc for synthetic database connector. Currently supports Oracle and EXTENDED. EXTENDED allows using a user-uploaded JDBC driver.
    Enum: "ORACLE", "EXTENDED"

  - `items.jdbc_driver_id` (string)
    The ID of the JDBC driver used by this connector. Only present for EXTENDED connectors.

  - `items.jdbc_driver_name` (string)
    The name of the JDBC driver used by this connector. Only present for EXTENDED connectors.

  - `items.connector_sync_status` (string)
    The status of the synthetic data connector sync status. This is only applicable for reference connectors.
    Enum: "NO_DISCOVERY", "DISCOVERING", "ACTIVE", "ERROR"

  - `items.schema_sync_statuses` (array)
    Per-schema discovery status breakdown for a reference connector, one entry per schema the connector spans. Present only for reference connectors. The aggregate connector_sync_status is derived from these per-schema statuses.

  - `items.schema_sync_statuses.schema_name` (string)
    The schema this status applies to. Null for a connector that spans no explicit schema (a single default-schema mapping).

  - `items.schema_sync_statuses.last_sync_start_date` (string)
    When discovery for this schema last started. Null if it has never started.

  - `items.schema_sync_statuses.last_sync_end_date` (string)
    When discovery for this schema last reached a terminal state (success, failure, or cancellation). Null if it has never finished.

  - `items.last_sync_date` (string)
    The date this connector was last synced. This will be only present for reference connector.

  - `items.database_config` (object)
    Database connector config parameters
    Example: {"host":"db.example.com","port":1521,"authentication_type":"USERNAME_PASSWORD","username":"user1","password":"******","schema_names":["dbo"],"sid":"ORCL"}

  - `items.database_config.host` (string)
    The hostname or IP address of the database server.

  - `items.database_config.port` (integer)
    The TCP port number of the database server.

  - `items.database_config.authentication_type` (string)
    The authentication type for synthetic data connector. Currently supports UsernamePassword only.
    Enum: "USERNAME_PASSWORD"

  - `items.database_config.username` (string)
    The username this Connector will use to connect to the database.

  - `items.database_config.password` (string)
    The password this Connector will use to connect to the database.

  - `items.database_config.schema_names` (array)
    Schemas this connector spans. Required for Oracle reference connectors;  optional for EXTENDED. Target connectors inherit the reference connector's  schemas: an empty list or absent value is accepted as a no-op, but naming  any schema on one fails with a 400.

  - `items.database_config.database_name` (string)
    The database name for this connector.

  - `items.database_config.sid` (string)
    The SID value for this connector. This field is specific to database connectors of type Oracle and is mutually exclusive with service_name.

  - `items.database_config.service_name` (string)
    The service name for Oracle connectors. Mutually exclusive with sid.

  - `items.database_config.jdbc_url` (string)
    The JDBC URL for this connector. When present, this parameter takes precedence over other connection parameters.

  - `items.database_config.connection_properties_file_id` (string)
    Id of a previously uploaded file (CSV or .properties) whose parsed key-value pairs are persisted as this connector's connection properties. The file must belong to the caller's account and must parse successfully, or the request fails atomically. Null if none set. JSON-nullable when used in SyntheticConnectorTestRequest: absent means the saved connector's properties file carries over unchanged; explicit null clears it for that test.

  - `items.database_config.connection_properties` (object)
    Parsed key-value pairs from connection_properties_file_id. Null if no file reference is set; {} if a file reference is set and it parsed to an empty map. Derived/persisted state -- cannot be set directly, only via connection_properties_file_id; a create/test request that sets this field directly fails with a 400. Secret-shaped keys (case-insensitive match on user/username/ password/url, keys containing "password", or matching SecurityToken/OAuthClientId/OAuthClientSecret) are masked as "********" wherever this field is returned.

  - `items.account_id` (integer)
    The ID of the account who created this connector.

  - `items.creation_date` (string)
    The date this connector was created.

  - `items.updated_date` (string)
    The date this connector was last updated.

  - `items.sync_progress_percent` (integer)
    Connector sync progress from 0 to 100. Populated only while a sync is currently
running for this connector; null when no sync has ever been triggered or when
the most recent sync has completed (success or failure).

  - `items.sync_start_time` (string)
    When the current connector sync started. Populated only while a sync is currently
running; null otherwise.

  - `items.sync_estimated_remaining_seconds` (integer)
    Estimated remaining time, in seconds. Populated only while a sync is currently
running AND progress is greater than 0%; null otherwise. Clients are expected to
format this for display.

  - `response_metadata` (object)

  - `response_metadata.prev_cursor` (string)
    Pointer to the previous page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.

  - `response_metadata.next_cursor` (string)
    Pointer to the next page of results. Use this value as a cursor query parameter in a subsequent request, along with limit, to navigate through the collection by virtual page.

  - `response_metadata.total` (integer)
    The total number of results. This value may not be provided.

