REST Resource: projects.locations.collections

Resource: Collection

Collection is a container for configuring resources and access to a set of DataStores.

JSON representation
{
  "name": string,
  "displayName": string,
  "dataConnector": {
    object (DataConnector)
  },
  "createTime": string
}
Fields
name

string

Immutable. The full resource name of the Collection. Format: projects/{project}/locations/{location}/collections/{collectionId}.

This field must be a UTF-8 encoded string with a length limit of 1024 characters.

displayName

string

Required. The Collection display name.

This field must be a UTF-8 encoded string with a length limit of 128 characters. Otherwise, an INVALID_ARGUMENT error is returned.

dataConnector

object (DataConnector)

Output only. The data connector, if present, manages the connection for data stores in the Collection. To set up the connector, use DataConnectorService.SetUpDataConnector method, which creates a new Collection while setting up the DataConnector singleton resource. Setting up connector on an existing Collection is not supported.

This output only field contains a subset of the DataConnector fields, including name, dataSource, entities.entity_name and entities.data_store.

To get more details about a data connector, use the [DataConnector.GetDataConnector][] method.

createTime

string (Timestamp format)

Output only. timestamp the Collection was created at.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

DataConnector

Manages the connection to external data sources for all data stores grouped under a Collection. It's a singleton resource of Collection. The initialization is only supported through [SetUpDataConnector][] method, which will create a new Collection and initialize its DataConnector.

//

JSON representation
{
  "name": string,
  "state": enum (State),
  "dataSource": string,
  "params": {
    object
  },
  "refreshInterval": string,
  "nextSyncTime": {
    object (DateTime)
  },
  "entities": [
    {
      object (SourceEntity)
    }
  ],
  "createTime": string,
  "latestPauseTime": string,
  "lastSyncTime": string,
  "updateTime": string,
  "errors": [
    {
      object (Status)
    }
  ],
  "syncMode": enum (SyncMode),
  "autoRunDisabled": boolean,
  "kmsKeyName": string,
  "destinationConfigs": [
    {
      object (DestinationConfig)
    }
  ],
  "actionConfig": {
    object (ActionConfig)
  },
  "staticIpEnabled": boolean,
  "staticIpAddresses": [
    string
  ],
  "blockingReasons": [
    enum (BlockingReason)
  ],
  "identityRefreshInterval": string,
  "identityScheduleConfig": {
    object (IdentityScheduleConfig)
  },
  "privateConnectivityProjectId": string
}
Fields
name

string

Output only. The full resource name of the data Connector. Format: projects/*/locations/*/collections/*/dataConnector.

state

enum (State)

Output only. state of the connector.

dataSource

string

Required. The name of the data source. Supported values: salesforce, jira, confluence, bigquery.

params

object (Struct format)

Required. params needed to access the source in the format of (Key, value) pairs.

Required parameters for all data sources:

  • Key: instance_uri
  • value: type STRING. The uri to access the data source.

Required parameters for sources that support OAUTH, i.e. salesforce:

  • Key: clientId
  • value: type STRING. The client id for the third party service provider to identify your application.
  • Key: client_secret
  • value:type STRING. The client secret generated by the third party authorization server.
  • Key: accessToken
  • value: type STRING. OAuth token for UCS to access to the protected resource.
  • Key: refreshToken
  • value: type STRING. OAuth refresh token for UCS to obtain a new access token without user interaction.

Required parameters for sources that support basic API token auth, i.e. jira, confluence:

  • Key: userAccount
  • value: type STRING. The username or email with the source.
  • Key: apiToken
  • value: type STRING. The API token generated for the source account, that is used for authenticating anywhere where you would have used a password.

Example:

{
  "instance_uri": "https://xxx.atlassian.net",
  "userAccount": "xxxx.xxx@xxx.com",
  "apiToken": "test-token"
}

Optional parameter to specify the authorization type to use for multiple authorization types support:

  • Key: auth_type
  • value: type STRING. The authorization type for the data source. Supported values: BASIC_AUTH, OAUTH, OAUTH_ACCESS_TOKEN, OAUTH_TWO_LEGGED, OAUTH_JWT_BEARER, OAUTH_PASSWORD_GRANT, JWT, API_TOKEN, FEDERATED_CREDENTIAL.
refreshInterval

string (Duration format)

Required. The refresh interval for data sync. If duration is set to 0, the data will be synced in real time. The streaming feature is not supported yet. The minimum is 30 minutes and maximum is 7 days.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

nextSyncTime

object (DateTime)

The UTC time when the next data sync is expected to start for the data Connector. Customers are only able to specify the hour and minute to schedule the data sync. This is utilized when the data connector has a refresh interval greater than 1 day.

entities[]

object (SourceEntity)

List of entities from the connected data source to ingest.

createTime

string (Timestamp format)

Output only. timestamp the DataConnector was created at.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

latestPauseTime

string (Timestamp format)

Output only. The most recent timestamp when this DataConnector was paused, affecting all functionalities such as data synchronization. Pausing a connector has the following effects: - All functionalities, including data synchronization, are halted. - Any ongoing data synchronization job will be canceled. - No future data synchronization runs will be scheduled nor can be triggered.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

lastSyncTime

string (Timestamp format)

Output only. For periodic connectors only, the last time a data sync was completed.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

updateTime

string (Timestamp format)

Output only. timestamp the DataConnector was last updated.

A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits. Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z".

errors[]

object (Status)

Output only. The errors from initialization or from the latest connector run.

syncMode

enum (SyncMode)

The data synchronization mode supported by the data connector.

autoRunDisabled

boolean

Indicates whether the connector is disabled for auto run. It can be used to pause periodical and real time sync.

kmsKeyName

string

Input only. The KMS key to be used to protect the DataStores managed by this connector.

Must be set for requests that need to comply with CMEK Org Policy protections.

If this field is set and processed successfully, the DataStores created by this connector will be protected by the KMS key.

destinationConfigs[]

object (DestinationConfig)

Optional. Any target destinations used to connect to third-party services.

actionConfig

object (ActionConfig)

Optional. Action configurations to make the connector support actions.

staticIpEnabled

boolean

Optional. Whether customer has enabled static IP addresses for this connector.

staticIpAddresses[]

string

Output only. The static IP addresses used by this connector.

blockingReasons[]

enum (BlockingReason)

Output only. User actions that must be completed before the connector can start syncing data.

identityRefreshInterval
(deprecated)

string (Duration format)

The refresh interval to sync the Access Control List information for the documents ingested by this connector. If not set, the access control list will be refreshed at the default interval of 30 minutes. The identity refresh interval can be at least 30 minutes and at most 7 days.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

identityScheduleConfig

object (IdentityScheduleConfig)

The configuration for the identity data synchronization runs. This contains the refresh interval to sync the Access Control List information for the documents ingested by this connector.

privateConnectivityProjectId

string

Output only. The tenant project id associated with private connectivity connectors. This project must be allowlisted by in order for the connector to function.

State

The state of connector.

Enums
STATE_UNSPECIFIED Default value.
CREATING The connector is being set up.
ACTIVE The connector is successfully set up and awaiting next sync run.
FAILED The connector is in error. The error details can be found in DataConnector.errors. If the error is unfixable, the DataConnector can be deleted by [CollectionService.DeleteCollection] API.
RUNNING The connector is actively syncing records from the data source.
WARNING The connector has completed a sync run, but encountered non-fatal errors.

DateTime

Represents civil time (or occasionally physical time).

This type can represent a civil time in one of a few possible ways:

  • When utcOffset is set and timeZone is unset: a civil time on a calendar day with a particular offset from UTC.
  • When timeZone is set and utcOffset is unset: a civil time on a calendar day in a particular time zone.
  • When neither timeZone nor utcOffset is set: a civil time on a calendar day in local time.

The date is relative to the Proleptic Gregorian Calendar.

If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively.

This type may also be used to represent a physical time if all the date and time fields are set and either case of the time_offset oneof is set. Consider using timestamp message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field.

This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.

JSON representation
{
  "year": integer,
  "month": integer,
  "day": integer,
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer,

  // Union field time_offset can be only one of the following:
  "utcOffset": string,
  "timeZone": {
    object (TimeZone)
  }
  // End of list of possible types for union field time_offset.
}
Fields
year

integer

Optional. year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.

month

integer

Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.

day

integer

Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.

hours

integer

Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.

minutes

integer

Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.

seconds

integer

Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.

nanos

integer

Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.

Union field time_offset. Optional. Specifies either the UTC offset or the time zone of the DateTime. Choose carefully between them, considering that time zone data may change in the future (for example, a country modifies their DST start/end dates, and future DateTimes in the affected range had already been stored). If omitted, the DateTime is considered to be in local time. time_offset can be only one of the following:
utcOffset

string (Duration format)

UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

timeZone

object (TimeZone)

time zone.

TimeZone

Represents a time zone from the IANA time Zone Database.

JSON representation
{
  "id": string,
  "version": string
}
Fields
id

string

IANA time Zone Database time zone. For example "America/New_York".

version

string

Optional. IANA time Zone Database version number. For example "2019a".

SourceEntity

Represents an entity in the data source. For example, the Account object in Salesforce.

JSON representation
{
  "entityName": string,
  "keyPropertyMappings": {
    string: string,
    ...
  },
  "dataStore": string,
  "params": {
    object
  }
}
Fields
entityName

string

The name of the entity. Supported values by data source:

  • Salesforce: Lead, Opportunity, Contact, Account, Case, Contract, Campaign
  • Jira: Issue
  • Confluence: Content, Space
keyPropertyMappings

map (key: string, value: string)

Attributes for indexing. Key: Field name. value: The key property to map a field to, such as title, and description. Supported key properties:

  • title: The title for data record. This would be displayed on search results.
  • description: The description for data record. This would be displayed on search results.
dataStore

string

Output only. The full resource name of the associated data store for the source entity. Format: projects/*/locations/*/collections/*/dataStores/*. When the connector is initialized by the DataConnectorService.SetUpDataConnector method, a DataStore is automatically created for each source entity.

params

object (Struct format)

The parameters for the entity to facilitate data ingestion. E.g. for BQ connectors: * Key: document_id_column * value: type STRING. The value of the column id.

SyncMode

Defines the data synchronization mode supported by the data connector.

Enums
PERIODIC The connector will sync data periodically based on the refreshInterval. Use it with autoRunDisabled to pause the periodic sync, or indicate a one-time sync.

DestinationConfig

Defines target endpoints used to connect to third-party sources.

JSON representation
{
  "key": string,
  "destinations": [
    {
      object (Destination)
    }
  ],
  "params": {
    object
  }
}
Fields
key

string

Optional. Unique destination identifier that is supported by the connector.

destinations[]

object (Destination)

Optional. The destinations for the corresponding key.

params

object (Struct format)

Optional. Additional parameters for this destination config.

Destination

Defines a target endpoint

JSON representation
{
  "port": integer,

  // Union field destination can be only one of the following:
  "host": string
  // End of list of possible types for union field destination.
}
Fields
port

integer

Optional. Target port number accepted by the destination.

Union field destination. The endpoint destination. destination can be only one of the following:
host

string

Publicly routable host.

ActionConfig

Informations to support actions on the connector.

JSON representation
{
  "isActionConfigured": boolean,
  "actionParams": {
    object
  }
}
Fields
isActionConfigured

boolean

Output only. The connector contains the necessary parameters and is configured to support actions.

actionParams

object (Struct format)

Required. params needed to support actions in the format of (Key, value) pairs.

Required parameters for sources that support OAUTH, i.e. gmail, google_calendar, jira, workday, salesforce, confluence:

  • Key: clientId
  • value: type STRING. The client id for the service provider to identify your application.
  • Key: client_secret
  • value:type STRING. The client secret generated by the application's authorization server.

BlockingReason

User actions that must be completed before the connector can start syncing data.

Enums
BLOCKING_REASON_UNSPECIFIED Default value.
ALLOWLIST_STATIC_IP Connector requires customer to allowlist static IPs.
ALLOWLIST_IN_SERVICE_ATTACHMENT Connector requires customer to allowlist our project in their service attachment.

IdentityScheduleConfig

The configuration for the identity data synchronization runs.

JSON representation
{
  "refreshInterval": string
}
Fields
refreshInterval

string (Duration format)

Optional. The refresh interval to sync the Access Control List information for the documents ingested by this connector. If not set, the access control list will be refreshed at the default interval of 30 minutes. The identity refresh interval can be at least 30 minutes and at most 7 days.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

Methods

delete

Deletes a Collection.

get

Gets a Collection.

getDataConnector

Gets the DataConnector.

list

Gets a list of Collections.

patch

Updates a Collection.

updateDataConnector

Updates a DataConnector.