REST Resource: projects.databases.collectionGroups.fields

Resource: Field

Represents a single field in the database.

Fields are grouped by their "Collection Group", which represent all collections in the database with the same ID.

JSON representation
{
  "name": string,
  "indexConfig": {
    object (IndexConfig)
  },
  "ttlConfig": {
    object (TtlConfig)
  }
}
Fields
name

string

Required. A field name of the form projects/{projectId}/databases/{databaseId}/collectionGroups/{collectionId}/fields/{fieldPath}

A field path may be a simple field name, e.g. address or a path to fields within mapValue , e.g. address.city, or a special field path. The only valid special field is *, which represents any field.

Field paths may be quoted using (backtick). The only character that needs to be escaped within a quoted field path is the backtick character itself, escaped using a backslash. Special characters in field paths that must be quoted include:*,., ``` (backtick),[,]`, as well as any ascii symbolic characters.

Examples: (Note: Comments here are written in markdown syntax, so there is an additional layer of backticks to represent a code block) \address.city`represents a field namedaddress.city, not the map key cityin the fieldaddress. `*`represents a field named*`, not any field.

A special Field contains the default indexing settings for all fields. This field's resource name is: projects/{projectId}/databases/{databaseId}/collectionGroups/__default__/fields/* Indexes defined on this Field will be applied to all fields which do not have their own Field index configuration.

indexConfig

object (IndexConfig)

The index configuration for this field. If unset, field indexing will revert to the configuration defined by the ancestorField. To explicitly remove all indexes for this field, specify an index config with an empty list of indexes.

ttlConfig

object (TtlConfig)

The TTL configuration for this Field. Setting or unsetting this will enable or disable the TTL for documents that have this Field.

IndexConfig

The index configuration for this field.

JSON representation
{
  "indexes": [
    {
      object (Index)
    }
  ],
  "usesAncestorConfig": boolean,
  "ancestorField": string,
  "reverting": boolean
}
Fields
indexes[]

object (Index)

The indexes supported for this field.

usesAncestorConfig

boolean

Output only. When true, the Field's index configuration is set from the configuration specified by the ancestorField. When false, the Field's index configuration is defined explicitly.

ancestorField

string

Output only. Specifies the resource name of the Field from which this field's index configuration is set (when usesAncestorConfig is true), or from which it would be set if this field had no index configuration (when usesAncestorConfig is false).

reverting

boolean

Output only When true, the Field's index configuration is in the process of being reverted. Once complete, the index config will transition to the same state as the field specified by ancestorField, at which point usesAncestorConfig will be true and reverting will be false.

TtlConfig

The TTL (time-to-live) configuration for documents that have this Field set.

Storing a timestamp value into a TTL-enabled field will be treated as the document's absolute expiration time. Timestamp values in the past indicate that the document is eligible for immediate expiration. Using any other data type or leaving the field absent will disable expiration for the individual document.

JSON representation
{
  "state": enum (State)
}
Fields
state

enum (State)

Output only. The state of the TTL configuration.

State

The state of applying the TTL configuration to all documents.

Enums
STATE_UNSPECIFIED The state is unspecified or unknown.
CREATING The TTL is being applied. There is an active long-running operation to track the change. Newly written documents will have TTLs applied as requested. Requested TTLs on existing documents are still being processed. When TTLs on all existing documents have been processed, the state will move to 'ACTIVE'.
ACTIVE The TTL is active for all documents.
NEEDS_REPAIR The TTL configuration could not be enabled for all existing documents. Newly written documents will continue to have their TTL applied. The LRO returned when last attempting to enable TTL for this Field has failed, and may have more details.

Methods

get

Gets the metadata and configuration for a Field.

list

Lists the field configuration and metadata for this database.

patch

Updates a field configuration.