firestore

package
v6.57.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 30, 2023 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database added in v6.50.0

type Database struct {
	pulumi.CustomResourceState

	// The App Engine integration mode to use for this database.
	// Possible values are: `ENABLED`, `DISABLED`.
	AppEngineIntegrationMode pulumi.StringOutput `pulumi:"appEngineIntegrationMode"`
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode pulumi.StringOutput `pulumi:"concurrencyMode"`
	// The timestamp at which this database was created.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// This checksum is computed by the server based on the value of other fields,
	// and may be sent on update and delete requests to ensure the client has an
	// up-to-date value before proceeding.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Output only. The keyPrefix for this database.
	// This keyPrefix is used, in combination with the project id ("~") to construct the application id
	// that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes.
	// This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo).
	KeyPrefix pulumi.StringOutput `pulumi:"keyPrefix"`
	// The location of the database. Available databases are listed at
	// https://cloud.google.com/firestore/docs/locations.
	LocationId pulumi.StringOutput `pulumi:"locationId"`
	// The ID to use for the database, which will become the final
	// component of the database's resource name. This value should be 4-63
	// characters. Valid characters are /[a-z][0-9]-/ with first character
	// a letter and the last a letter or a number. Must not be
	// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
	// "(default)" database id is also valid.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The type of the database.
	// See https://cloud.google.com/datastore/docs/firestore-or-datastore
	// for information about how to choose.
	// Possible values are: `FIRESTORE_NATIVE`, `DATASTORE_MODE`.
	//
	// ***
	Type pulumi.StringOutput `pulumi:"type"`
}

A Cloud Firestore Database. Currently only one database is allowed per Cloud project; this database must have a `databaseId` of '(default)'.

If you wish to use Firestore with App Engine, use the `appengine.Application` resource instead.

To get more information about Database, see:

* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases) * How-to Guides

## Example Usage

## Import

Database can be imported using any of these accepted formats

```sh

$ pulumi import gcp:firestore/database:Database default projects/{{project}}/databases/{{name}}

```

```sh

$ pulumi import gcp:firestore/database:Database default {{project}}/{{name}}

```

```sh

$ pulumi import gcp:firestore/database:Database default {{name}}

```

func GetDatabase added in v6.50.0

func GetDatabase(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DatabaseState, opts ...pulumi.ResourceOption) (*Database, error)

GetDatabase gets an existing Database resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDatabase added in v6.50.0

func NewDatabase(ctx *pulumi.Context,
	name string, args *DatabaseArgs, opts ...pulumi.ResourceOption) (*Database, error)

NewDatabase registers a new resource with the given unique name, arguments, and options.

func (*Database) ElementType added in v6.50.0

func (*Database) ElementType() reflect.Type

func (*Database) ToDatabaseOutput added in v6.50.0

func (i *Database) ToDatabaseOutput() DatabaseOutput

func (*Database) ToDatabaseOutputWithContext added in v6.50.0

func (i *Database) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

type DatabaseArgs added in v6.50.0

type DatabaseArgs struct {
	// The App Engine integration mode to use for this database.
	// Possible values are: `ENABLED`, `DISABLED`.
	AppEngineIntegrationMode pulumi.StringPtrInput
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode pulumi.StringPtrInput
	// The location of the database. Available databases are listed at
	// https://cloud.google.com/firestore/docs/locations.
	LocationId pulumi.StringInput
	// The ID to use for the database, which will become the final
	// component of the database's resource name. This value should be 4-63
	// characters. Valid characters are /[a-z][0-9]-/ with first character
	// a letter and the last a letter or a number. Must not be
	// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
	// "(default)" database id is also valid.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The type of the database.
	// See https://cloud.google.com/datastore/docs/firestore-or-datastore
	// for information about how to choose.
	// Possible values are: `FIRESTORE_NATIVE`, `DATASTORE_MODE`.
	//
	// ***
	Type pulumi.StringInput
}

The set of arguments for constructing a Database resource.

func (DatabaseArgs) ElementType added in v6.50.0

func (DatabaseArgs) ElementType() reflect.Type

type DatabaseArray added in v6.50.0

type DatabaseArray []DatabaseInput

func (DatabaseArray) ElementType added in v6.50.0

func (DatabaseArray) ElementType() reflect.Type

func (DatabaseArray) ToDatabaseArrayOutput added in v6.50.0

func (i DatabaseArray) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArray) ToDatabaseArrayOutputWithContext added in v6.50.0

func (i DatabaseArray) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseArrayInput added in v6.50.0

type DatabaseArrayInput interface {
	pulumi.Input

	ToDatabaseArrayOutput() DatabaseArrayOutput
	ToDatabaseArrayOutputWithContext(context.Context) DatabaseArrayOutput
}

DatabaseArrayInput is an input type that accepts DatabaseArray and DatabaseArrayOutput values. You can construct a concrete instance of `DatabaseArrayInput` via:

DatabaseArray{ DatabaseArgs{...} }

type DatabaseArrayOutput added in v6.50.0

type DatabaseArrayOutput struct{ *pulumi.OutputState }

func (DatabaseArrayOutput) ElementType added in v6.50.0

func (DatabaseArrayOutput) ElementType() reflect.Type

func (DatabaseArrayOutput) Index added in v6.50.0

func (DatabaseArrayOutput) ToDatabaseArrayOutput added in v6.50.0

func (o DatabaseArrayOutput) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArrayOutput) ToDatabaseArrayOutputWithContext added in v6.50.0

func (o DatabaseArrayOutput) ToDatabaseArrayOutputWithContext(ctx context.Context) DatabaseArrayOutput

type DatabaseInput added in v6.50.0

type DatabaseInput interface {
	pulumi.Input

	ToDatabaseOutput() DatabaseOutput
	ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput
}

type DatabaseMap added in v6.50.0

type DatabaseMap map[string]DatabaseInput

func (DatabaseMap) ElementType added in v6.50.0

func (DatabaseMap) ElementType() reflect.Type

func (DatabaseMap) ToDatabaseMapOutput added in v6.50.0

func (i DatabaseMap) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMap) ToDatabaseMapOutputWithContext added in v6.50.0

func (i DatabaseMap) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseMapInput added in v6.50.0

type DatabaseMapInput interface {
	pulumi.Input

	ToDatabaseMapOutput() DatabaseMapOutput
	ToDatabaseMapOutputWithContext(context.Context) DatabaseMapOutput
}

DatabaseMapInput is an input type that accepts DatabaseMap and DatabaseMapOutput values. You can construct a concrete instance of `DatabaseMapInput` via:

DatabaseMap{ "key": DatabaseArgs{...} }

type DatabaseMapOutput added in v6.50.0

type DatabaseMapOutput struct{ *pulumi.OutputState }

func (DatabaseMapOutput) ElementType added in v6.50.0

func (DatabaseMapOutput) ElementType() reflect.Type

func (DatabaseMapOutput) MapIndex added in v6.50.0

func (DatabaseMapOutput) ToDatabaseMapOutput added in v6.50.0

func (o DatabaseMapOutput) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMapOutput) ToDatabaseMapOutputWithContext added in v6.50.0

func (o DatabaseMapOutput) ToDatabaseMapOutputWithContext(ctx context.Context) DatabaseMapOutput

type DatabaseOutput added in v6.50.0

type DatabaseOutput struct{ *pulumi.OutputState }

func (DatabaseOutput) AppEngineIntegrationMode added in v6.50.0

func (o DatabaseOutput) AppEngineIntegrationMode() pulumi.StringOutput

The App Engine integration mode to use for this database. Possible values are: `ENABLED`, `DISABLED`.

func (DatabaseOutput) ConcurrencyMode added in v6.50.0

func (o DatabaseOutput) ConcurrencyMode() pulumi.StringOutput

The concurrency control mode to use for this database. Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.

func (DatabaseOutput) CreateTime added in v6.50.0

func (o DatabaseOutput) CreateTime() pulumi.StringOutput

The timestamp at which this database was created.

func (DatabaseOutput) ElementType added in v6.50.0

func (DatabaseOutput) ElementType() reflect.Type

func (DatabaseOutput) Etag added in v6.50.0

This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.

func (DatabaseOutput) KeyPrefix added in v6.50.0

func (o DatabaseOutput) KeyPrefix() pulumi.StringOutput

Output only. The keyPrefix for this database. This keyPrefix is used, in combination with the project id ("~") to construct the application id that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes. This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo).

func (DatabaseOutput) LocationId added in v6.50.0

func (o DatabaseOutput) LocationId() pulumi.StringOutput

The location of the database. Available databases are listed at https://cloud.google.com/firestore/docs/locations.

func (DatabaseOutput) Name added in v6.50.0

The ID to use for the database, which will become the final component of the database's resource name. This value should be 4-63 characters. Valid characters are /[a-z][0-9]-/ with first character a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. "(default)" database id is also valid.

func (DatabaseOutput) Project added in v6.50.0

func (o DatabaseOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (DatabaseOutput) ToDatabaseOutput added in v6.50.0

func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput

func (DatabaseOutput) ToDatabaseOutputWithContext added in v6.50.0

func (o DatabaseOutput) ToDatabaseOutputWithContext(ctx context.Context) DatabaseOutput

func (DatabaseOutput) Type added in v6.50.0

The type of the database. See https://cloud.google.com/datastore/docs/firestore-or-datastore for information about how to choose. Possible values are: `FIRESTORE_NATIVE`, `DATASTORE_MODE`.

***

type DatabaseState added in v6.50.0

type DatabaseState struct {
	// The App Engine integration mode to use for this database.
	// Possible values are: `ENABLED`, `DISABLED`.
	AppEngineIntegrationMode pulumi.StringPtrInput
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode pulumi.StringPtrInput
	// The timestamp at which this database was created.
	CreateTime pulumi.StringPtrInput
	// This checksum is computed by the server based on the value of other fields,
	// and may be sent on update and delete requests to ensure the client has an
	// up-to-date value before proceeding.
	Etag pulumi.StringPtrInput
	// Output only. The keyPrefix for this database.
	// This keyPrefix is used, in combination with the project id ("~") to construct the application id
	// that is returned from the Cloud Datastore APIs in Google App Engine first generation runtimes.
	// This value may be empty in which case the appid to use for URL-encoded keys is the projectId (eg: foo instead of v~foo).
	KeyPrefix pulumi.StringPtrInput
	// The location of the database. Available databases are listed at
	// https://cloud.google.com/firestore/docs/locations.
	LocationId pulumi.StringPtrInput
	// The ID to use for the database, which will become the final
	// component of the database's resource name. This value should be 4-63
	// characters. Valid characters are /[a-z][0-9]-/ with first character
	// a letter and the last a letter or a number. Must not be
	// UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/.
	// "(default)" database id is also valid.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The type of the database.
	// See https://cloud.google.com/datastore/docs/firestore-or-datastore
	// for information about how to choose.
	// Possible values are: `FIRESTORE_NATIVE`, `DATASTORE_MODE`.
	//
	// ***
	Type pulumi.StringPtrInput
}

func (DatabaseState) ElementType added in v6.50.0

func (DatabaseState) ElementType() reflect.Type

type Document

type Document struct {
	pulumi.CustomResourceState

	// The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.
	Collection pulumi.StringOutput `pulumi:"collection"`
	// Creation timestamp in RFC3339 format.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrOutput `pulumi:"database"`
	// The client-assigned document ID to use for this document during creation.
	//
	// ***
	DocumentId pulumi.StringOutput `pulumi:"documentId"`
	// The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.
	Fields pulumi.StringOutput `pulumi:"fields"`
	// A server defined name for this index. Format:
	// `projects/{{project_id}}/databases/{{database_id}}/documents/{{path}}/{{document_id}}`
	Name pulumi.StringOutput `pulumi:"name"`
	// A relative path to the collection this document exists within
	Path pulumi.StringOutput `pulumi:"path"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Last update timestamp in RFC3339 format.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
}

In Cloud Firestore, the unit of storage is the document. A document is a lightweight record that contains fields, which map to values. Each document is identified by a name.

To get more information about Document, see:

* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) * How-to Guides

> **Warning:** This resource creates a Firestore Document on a project that already has a Firestore database. If you haven't already created it, you may create a `firestore.Database` resource with `type` set to `"FIRESTORE_NATIVE"` and `locationId` set to your chosen location. If you wish to use App Engine, you may instead create a `appengine.Application` resource with `databaseType` set to `"CLOUD_FIRESTORE"`. Your Firestore location will be the same as the App Engine location specified.

## Example Usage ### Firestore Document Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewDocument(ctx, "mydoc", &firestore.DocumentArgs{
			Collection: pulumi.String("somenewcollection"),
			DocumentId: pulumi.String("my-doc-id"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}"),
			Project:    pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Document Nested Document

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		mydoc, err := firestore.NewDocument(ctx, "mydoc", &firestore.DocumentArgs{
			Collection: pulumi.String("somenewcollection"),
			DocumentId: pulumi.String("my-doc-id"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}"),
			Project:    pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		subDocument, err := firestore.NewDocument(ctx, "subDocument", &firestore.DocumentArgs{
			Collection: mydoc.Path.ApplyT(func(path string) (string, error) {
				return fmt.Sprintf("%v/subdocs", path), nil
			}).(pulumi.StringOutput),
			DocumentId: pulumi.String("bitcoinkey"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"ayo\":{\"stringValue\":\"val2\"}}}}}"),
			Project:    pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewDocument(ctx, "subSubDocument", &firestore.DocumentArgs{
			Collection: subDocument.Path.ApplyT(func(path string) (string, error) {
				return fmt.Sprintf("%v/subsubdocs", path), nil
			}).(pulumi.StringOutput),
			DocumentId: pulumi.String("asecret"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"secret\":{\"stringValue\":\"hithere\"}}}}}"),
			Project:    pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Document can be imported using any of these accepted formats

```sh

$ pulumi import gcp:firestore/document:Document default {{name}}

```

func GetDocument

func GetDocument(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DocumentState, opts ...pulumi.ResourceOption) (*Document, error)

GetDocument gets an existing Document resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewDocument

func NewDocument(ctx *pulumi.Context,
	name string, args *DocumentArgs, opts ...pulumi.ResourceOption) (*Document, error)

NewDocument registers a new resource with the given unique name, arguments, and options.

func (*Document) ElementType

func (*Document) ElementType() reflect.Type

func (*Document) ToDocumentOutput

func (i *Document) ToDocumentOutput() DocumentOutput

func (*Document) ToDocumentOutputWithContext

func (i *Document) ToDocumentOutputWithContext(ctx context.Context) DocumentOutput

type DocumentArgs

type DocumentArgs struct {
	// The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.
	Collection pulumi.StringInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The client-assigned document ID to use for this document during creation.
	//
	// ***
	DocumentId pulumi.StringInput
	// The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.
	Fields pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a Document resource.

func (DocumentArgs) ElementType

func (DocumentArgs) ElementType() reflect.Type

type DocumentArray

type DocumentArray []DocumentInput

func (DocumentArray) ElementType

func (DocumentArray) ElementType() reflect.Type

func (DocumentArray) ToDocumentArrayOutput

func (i DocumentArray) ToDocumentArrayOutput() DocumentArrayOutput

func (DocumentArray) ToDocumentArrayOutputWithContext

func (i DocumentArray) ToDocumentArrayOutputWithContext(ctx context.Context) DocumentArrayOutput

type DocumentArrayInput

type DocumentArrayInput interface {
	pulumi.Input

	ToDocumentArrayOutput() DocumentArrayOutput
	ToDocumentArrayOutputWithContext(context.Context) DocumentArrayOutput
}

DocumentArrayInput is an input type that accepts DocumentArray and DocumentArrayOutput values. You can construct a concrete instance of `DocumentArrayInput` via:

DocumentArray{ DocumentArgs{...} }

type DocumentArrayOutput

type DocumentArrayOutput struct{ *pulumi.OutputState }

func (DocumentArrayOutput) ElementType

func (DocumentArrayOutput) ElementType() reflect.Type

func (DocumentArrayOutput) Index

func (DocumentArrayOutput) ToDocumentArrayOutput

func (o DocumentArrayOutput) ToDocumentArrayOutput() DocumentArrayOutput

func (DocumentArrayOutput) ToDocumentArrayOutputWithContext

func (o DocumentArrayOutput) ToDocumentArrayOutputWithContext(ctx context.Context) DocumentArrayOutput

type DocumentInput

type DocumentInput interface {
	pulumi.Input

	ToDocumentOutput() DocumentOutput
	ToDocumentOutputWithContext(ctx context.Context) DocumentOutput
}

type DocumentMap

type DocumentMap map[string]DocumentInput

func (DocumentMap) ElementType

func (DocumentMap) ElementType() reflect.Type

func (DocumentMap) ToDocumentMapOutput

func (i DocumentMap) ToDocumentMapOutput() DocumentMapOutput

func (DocumentMap) ToDocumentMapOutputWithContext

func (i DocumentMap) ToDocumentMapOutputWithContext(ctx context.Context) DocumentMapOutput

type DocumentMapInput

type DocumentMapInput interface {
	pulumi.Input

	ToDocumentMapOutput() DocumentMapOutput
	ToDocumentMapOutputWithContext(context.Context) DocumentMapOutput
}

DocumentMapInput is an input type that accepts DocumentMap and DocumentMapOutput values. You can construct a concrete instance of `DocumentMapInput` via:

DocumentMap{ "key": DocumentArgs{...} }

type DocumentMapOutput

type DocumentMapOutput struct{ *pulumi.OutputState }

func (DocumentMapOutput) ElementType

func (DocumentMapOutput) ElementType() reflect.Type

func (DocumentMapOutput) MapIndex

func (DocumentMapOutput) ToDocumentMapOutput

func (o DocumentMapOutput) ToDocumentMapOutput() DocumentMapOutput

func (DocumentMapOutput) ToDocumentMapOutputWithContext

func (o DocumentMapOutput) ToDocumentMapOutputWithContext(ctx context.Context) DocumentMapOutput

type DocumentOutput

type DocumentOutput struct{ *pulumi.OutputState }

func (DocumentOutput) Collection added in v6.23.0

func (o DocumentOutput) Collection() pulumi.StringOutput

The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.

func (DocumentOutput) CreateTime added in v6.23.0

func (o DocumentOutput) CreateTime() pulumi.StringOutput

Creation timestamp in RFC3339 format.

func (DocumentOutput) Database added in v6.23.0

func (o DocumentOutput) Database() pulumi.StringPtrOutput

The Firestore database id. Defaults to `"(default)"`.

func (DocumentOutput) DocumentId added in v6.23.0

func (o DocumentOutput) DocumentId() pulumi.StringOutput

The client-assigned document ID to use for this document during creation.

***

func (DocumentOutput) ElementType

func (DocumentOutput) ElementType() reflect.Type

func (DocumentOutput) Fields added in v6.23.0

func (o DocumentOutput) Fields() pulumi.StringOutput

The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.

func (DocumentOutput) Name added in v6.23.0

A server defined name for this index. Format: `projects/{{project_id}}/databases/{{database_id}}/documents/{{path}}/{{document_id}}`

func (DocumentOutput) Path added in v6.23.0

A relative path to the collection this document exists within

func (DocumentOutput) Project added in v6.23.0

func (o DocumentOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (DocumentOutput) ToDocumentOutput

func (o DocumentOutput) ToDocumentOutput() DocumentOutput

func (DocumentOutput) ToDocumentOutputWithContext

func (o DocumentOutput) ToDocumentOutputWithContext(ctx context.Context) DocumentOutput

func (DocumentOutput) UpdateTime added in v6.23.0

func (o DocumentOutput) UpdateTime() pulumi.StringOutput

Last update timestamp in RFC3339 format.

type DocumentState

type DocumentState struct {
	// The collection ID, relative to database. For example: chatrooms or chatrooms/my-document/private-messages.
	Collection pulumi.StringPtrInput
	// Creation timestamp in RFC3339 format.
	CreateTime pulumi.StringPtrInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The client-assigned document ID to use for this document during creation.
	//
	// ***
	DocumentId pulumi.StringPtrInput
	// The document's [fields](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.documents) formated as a json string.
	Fields pulumi.StringPtrInput
	// A server defined name for this index. Format:
	// `projects/{{project_id}}/databases/{{database_id}}/documents/{{path}}/{{document_id}}`
	Name pulumi.StringPtrInput
	// A relative path to the collection this document exists within
	Path pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Last update timestamp in RFC3339 format.
	UpdateTime pulumi.StringPtrInput
}

func (DocumentState) ElementType

func (DocumentState) ElementType() reflect.Type

type Field added in v6.56.0

type Field struct {
	pulumi.CustomResourceState

	// The id of the collection group to configure.
	Collection pulumi.StringOutput `pulumi:"collection"`
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrOutput `pulumi:"database"`
	// The id of the field to configure.
	//
	// ***
	Field pulumi.StringOutput `pulumi:"field"`
	// The single field index configuration for this field.
	// Creating an index configuration for this field will override any inherited configuration with the
	// indexes specified. Configuring the index configuration with an empty block disables all indexes on
	// the field.
	// Structure is documented below.
	IndexConfig FieldIndexConfigPtrOutput `pulumi:"indexConfig"`
	// The name of this field. Format:
	// `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/fields/{{field}}`
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// If set, this field is configured for TTL deletion.
	// Structure is documented below.
	TtlConfig FieldTtlConfigPtrOutput `pulumi:"ttlConfig"`
}

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.

To get more information about Field, see:

* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.collectionGroups.fields) * How-to Guides

> **Warning:** This resource creates a Firestore Single Field override on a project that

already has a Firestore database. If you haven't already created it, you may

create a `firestore.Database` resource with `locationId` set to your chosen location.

## Example Usage ### Firestore Field Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewField(ctx, "basic", &firestore.FieldArgs{
			Collection: pulumi.String("chatrooms_%{random_suffix}"),
			Database:   pulumi.String("(default)"),
			Field:      pulumi.String("basic"),
			IndexConfig: &firestore.FieldIndexConfigArgs{
				Indexes: firestore.FieldIndexConfigIndexArray{
					&firestore.FieldIndexConfigIndexArgs{
						Order:      pulumi.String("ASCENDING"),
						QueryScope: pulumi.String("COLLECTION_GROUP"),
					},
					&firestore.FieldIndexConfigIndexArgs{
						ArrayConfig: pulumi.String("CONTAINS"),
					},
				},
			},
			Project:   pulumi.String("my-project-name"),
			TtlConfig: nil,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Field Timestamp

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewField(ctx, "timestamp", &firestore.FieldArgs{
			Collection:  pulumi.String("chatrooms_%{random_suffix}"),
			Field:       pulumi.String("timestamp"),
			IndexConfig: nil,
			Project:     pulumi.String("my-project-name"),
			TtlConfig:   nil,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Field Match Override

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewField(ctx, "matchOverride", &firestore.FieldArgs{
			Collection: pulumi.String("chatrooms_%{random_suffix}"),
			Field:      pulumi.String("field_with_same_configuration_as_ancestor"),
			IndexConfig: &firestore.FieldIndexConfigArgs{
				Indexes: firestore.FieldIndexConfigIndexArray{
					&firestore.FieldIndexConfigIndexArgs{
						Order: pulumi.String("ASCENDING"),
					},
					&firestore.FieldIndexConfigIndexArgs{
						Order: pulumi.String("DESCENDING"),
					},
					&firestore.FieldIndexConfigIndexArgs{
						ArrayConfig: pulumi.String("CONTAINS"),
					},
				},
			},
			Project: pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Field can be imported using any of these accepted formats

```sh

$ pulumi import gcp:firestore/field:Field default {{name}}

```

func GetField added in v6.56.0

func GetField(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FieldState, opts ...pulumi.ResourceOption) (*Field, error)

GetField gets an existing Field resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewField added in v6.56.0

func NewField(ctx *pulumi.Context,
	name string, args *FieldArgs, opts ...pulumi.ResourceOption) (*Field, error)

NewField registers a new resource with the given unique name, arguments, and options.

func (*Field) ElementType added in v6.56.0

func (*Field) ElementType() reflect.Type

func (*Field) ToFieldOutput added in v6.56.0

func (i *Field) ToFieldOutput() FieldOutput

func (*Field) ToFieldOutputWithContext added in v6.56.0

func (i *Field) ToFieldOutputWithContext(ctx context.Context) FieldOutput

type FieldArgs added in v6.56.0

type FieldArgs struct {
	// The id of the collection group to configure.
	Collection pulumi.StringInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The id of the field to configure.
	//
	// ***
	Field pulumi.StringInput
	// The single field index configuration for this field.
	// Creating an index configuration for this field will override any inherited configuration with the
	// indexes specified. Configuring the index configuration with an empty block disables all indexes on
	// the field.
	// Structure is documented below.
	IndexConfig FieldIndexConfigPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If set, this field is configured for TTL deletion.
	// Structure is documented below.
	TtlConfig FieldTtlConfigPtrInput
}

The set of arguments for constructing a Field resource.

func (FieldArgs) ElementType added in v6.56.0

func (FieldArgs) ElementType() reflect.Type

type FieldArray added in v6.56.0

type FieldArray []FieldInput

func (FieldArray) ElementType added in v6.56.0

func (FieldArray) ElementType() reflect.Type

func (FieldArray) ToFieldArrayOutput added in v6.56.0

func (i FieldArray) ToFieldArrayOutput() FieldArrayOutput

func (FieldArray) ToFieldArrayOutputWithContext added in v6.56.0

func (i FieldArray) ToFieldArrayOutputWithContext(ctx context.Context) FieldArrayOutput

type FieldArrayInput added in v6.56.0

type FieldArrayInput interface {
	pulumi.Input

	ToFieldArrayOutput() FieldArrayOutput
	ToFieldArrayOutputWithContext(context.Context) FieldArrayOutput
}

FieldArrayInput is an input type that accepts FieldArray and FieldArrayOutput values. You can construct a concrete instance of `FieldArrayInput` via:

FieldArray{ FieldArgs{...} }

type FieldArrayOutput added in v6.56.0

type FieldArrayOutput struct{ *pulumi.OutputState }

func (FieldArrayOutput) ElementType added in v6.56.0

func (FieldArrayOutput) ElementType() reflect.Type

func (FieldArrayOutput) Index added in v6.56.0

func (FieldArrayOutput) ToFieldArrayOutput added in v6.56.0

func (o FieldArrayOutput) ToFieldArrayOutput() FieldArrayOutput

func (FieldArrayOutput) ToFieldArrayOutputWithContext added in v6.56.0

func (o FieldArrayOutput) ToFieldArrayOutputWithContext(ctx context.Context) FieldArrayOutput

type FieldIndexConfig added in v6.56.0

type FieldIndexConfig struct {
	// The indexes to configure on the field. Order or array contains must be specified.
	// Structure is documented below.
	Indexes []FieldIndexConfigIndex `pulumi:"indexes"`
}

type FieldIndexConfigArgs added in v6.56.0

type FieldIndexConfigArgs struct {
	// The indexes to configure on the field. Order or array contains must be specified.
	// Structure is documented below.
	Indexes FieldIndexConfigIndexArrayInput `pulumi:"indexes"`
}

func (FieldIndexConfigArgs) ElementType added in v6.56.0

func (FieldIndexConfigArgs) ElementType() reflect.Type

func (FieldIndexConfigArgs) ToFieldIndexConfigOutput added in v6.56.0

func (i FieldIndexConfigArgs) ToFieldIndexConfigOutput() FieldIndexConfigOutput

func (FieldIndexConfigArgs) ToFieldIndexConfigOutputWithContext added in v6.56.0

func (i FieldIndexConfigArgs) ToFieldIndexConfigOutputWithContext(ctx context.Context) FieldIndexConfigOutput

func (FieldIndexConfigArgs) ToFieldIndexConfigPtrOutput added in v6.56.0

func (i FieldIndexConfigArgs) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigArgs) ToFieldIndexConfigPtrOutputWithContext added in v6.56.0

func (i FieldIndexConfigArgs) ToFieldIndexConfigPtrOutputWithContext(ctx context.Context) FieldIndexConfigPtrOutput

type FieldIndexConfigIndex added in v6.56.0

type FieldIndexConfigIndex struct {
	// Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can
	// be specified.
	// Possible values are: `CONTAINS`.
	ArrayConfig *string `pulumi:"arrayConfig"`
	// Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=, !=.
	// Only one of `order` and `arrayConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order *string `pulumi:"order"`
	// The scope at which a query is run. Collection scoped queries require you specify
	// the collection at query time. Collection group scope allows queries across all
	// collections with the same id.
	// Default value is `COLLECTION`.
	// Possible values are: `COLLECTION`, `COLLECTION_GROUP`.
	QueryScope *string `pulumi:"queryScope"`
}

type FieldIndexConfigIndexArgs added in v6.56.0

type FieldIndexConfigIndexArgs struct {
	// Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can
	// be specified.
	// Possible values are: `CONTAINS`.
	ArrayConfig pulumi.StringPtrInput `pulumi:"arrayConfig"`
	// Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=, !=.
	// Only one of `order` and `arrayConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order pulumi.StringPtrInput `pulumi:"order"`
	// The scope at which a query is run. Collection scoped queries require you specify
	// the collection at query time. Collection group scope allows queries across all
	// collections with the same id.
	// Default value is `COLLECTION`.
	// Possible values are: `COLLECTION`, `COLLECTION_GROUP`.
	QueryScope pulumi.StringPtrInput `pulumi:"queryScope"`
}

func (FieldIndexConfigIndexArgs) ElementType added in v6.56.0

func (FieldIndexConfigIndexArgs) ElementType() reflect.Type

func (FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutput added in v6.56.0

func (i FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutput() FieldIndexConfigIndexOutput

func (FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutputWithContext added in v6.56.0

func (i FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutputWithContext(ctx context.Context) FieldIndexConfigIndexOutput

type FieldIndexConfigIndexArray added in v6.56.0

type FieldIndexConfigIndexArray []FieldIndexConfigIndexInput

func (FieldIndexConfigIndexArray) ElementType added in v6.56.0

func (FieldIndexConfigIndexArray) ElementType() reflect.Type

func (FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutput added in v6.56.0

func (i FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutput() FieldIndexConfigIndexArrayOutput

func (FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutputWithContext added in v6.56.0

func (i FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutputWithContext(ctx context.Context) FieldIndexConfigIndexArrayOutput

type FieldIndexConfigIndexArrayInput added in v6.56.0

type FieldIndexConfigIndexArrayInput interface {
	pulumi.Input

	ToFieldIndexConfigIndexArrayOutput() FieldIndexConfigIndexArrayOutput
	ToFieldIndexConfigIndexArrayOutputWithContext(context.Context) FieldIndexConfigIndexArrayOutput
}

FieldIndexConfigIndexArrayInput is an input type that accepts FieldIndexConfigIndexArray and FieldIndexConfigIndexArrayOutput values. You can construct a concrete instance of `FieldIndexConfigIndexArrayInput` via:

FieldIndexConfigIndexArray{ FieldIndexConfigIndexArgs{...} }

type FieldIndexConfigIndexArrayOutput added in v6.56.0

type FieldIndexConfigIndexArrayOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigIndexArrayOutput) ElementType added in v6.56.0

func (FieldIndexConfigIndexArrayOutput) Index added in v6.56.0

func (FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutput added in v6.56.0

func (o FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutput() FieldIndexConfigIndexArrayOutput

func (FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutputWithContext added in v6.56.0

func (o FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutputWithContext(ctx context.Context) FieldIndexConfigIndexArrayOutput

type FieldIndexConfigIndexInput added in v6.56.0

type FieldIndexConfigIndexInput interface {
	pulumi.Input

	ToFieldIndexConfigIndexOutput() FieldIndexConfigIndexOutput
	ToFieldIndexConfigIndexOutputWithContext(context.Context) FieldIndexConfigIndexOutput
}

FieldIndexConfigIndexInput is an input type that accepts FieldIndexConfigIndexArgs and FieldIndexConfigIndexOutput values. You can construct a concrete instance of `FieldIndexConfigIndexInput` via:

FieldIndexConfigIndexArgs{...}

type FieldIndexConfigIndexOutput added in v6.56.0

type FieldIndexConfigIndexOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigIndexOutput) ArrayConfig added in v6.56.0

Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can be specified. Possible values are: `CONTAINS`.

func (FieldIndexConfigIndexOutput) ElementType added in v6.56.0

func (FieldIndexConfigIndexOutput) Order added in v6.56.0

Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=, !=. Only one of `order` and `arrayConfig` can be specified. Possible values are: `ASCENDING`, `DESCENDING`.

func (FieldIndexConfigIndexOutput) QueryScope added in v6.56.0

The scope at which a query is run. Collection scoped queries require you specify the collection at query time. Collection group scope allows queries across all collections with the same id. Default value is `COLLECTION`. Possible values are: `COLLECTION`, `COLLECTION_GROUP`.

func (FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutput added in v6.56.0

func (o FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutput() FieldIndexConfigIndexOutput

func (FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutputWithContext added in v6.56.0

func (o FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutputWithContext(ctx context.Context) FieldIndexConfigIndexOutput

type FieldIndexConfigInput added in v6.56.0

type FieldIndexConfigInput interface {
	pulumi.Input

	ToFieldIndexConfigOutput() FieldIndexConfigOutput
	ToFieldIndexConfigOutputWithContext(context.Context) FieldIndexConfigOutput
}

FieldIndexConfigInput is an input type that accepts FieldIndexConfigArgs and FieldIndexConfigOutput values. You can construct a concrete instance of `FieldIndexConfigInput` via:

FieldIndexConfigArgs{...}

type FieldIndexConfigOutput added in v6.56.0

type FieldIndexConfigOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigOutput) ElementType added in v6.56.0

func (FieldIndexConfigOutput) ElementType() reflect.Type

func (FieldIndexConfigOutput) Indexes added in v6.56.0

The indexes to configure on the field. Order or array contains must be specified. Structure is documented below.

func (FieldIndexConfigOutput) ToFieldIndexConfigOutput added in v6.56.0

func (o FieldIndexConfigOutput) ToFieldIndexConfigOutput() FieldIndexConfigOutput

func (FieldIndexConfigOutput) ToFieldIndexConfigOutputWithContext added in v6.56.0

func (o FieldIndexConfigOutput) ToFieldIndexConfigOutputWithContext(ctx context.Context) FieldIndexConfigOutput

func (FieldIndexConfigOutput) ToFieldIndexConfigPtrOutput added in v6.56.0

func (o FieldIndexConfigOutput) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigOutput) ToFieldIndexConfigPtrOutputWithContext added in v6.56.0

func (o FieldIndexConfigOutput) ToFieldIndexConfigPtrOutputWithContext(ctx context.Context) FieldIndexConfigPtrOutput

type FieldIndexConfigPtrInput added in v6.56.0

type FieldIndexConfigPtrInput interface {
	pulumi.Input

	ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput
	ToFieldIndexConfigPtrOutputWithContext(context.Context) FieldIndexConfigPtrOutput
}

FieldIndexConfigPtrInput is an input type that accepts FieldIndexConfigArgs, FieldIndexConfigPtr and FieldIndexConfigPtrOutput values. You can construct a concrete instance of `FieldIndexConfigPtrInput` via:

        FieldIndexConfigArgs{...}

or:

        nil

func FieldIndexConfigPtr added in v6.56.0

func FieldIndexConfigPtr(v *FieldIndexConfigArgs) FieldIndexConfigPtrInput

type FieldIndexConfigPtrOutput added in v6.56.0

type FieldIndexConfigPtrOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigPtrOutput) Elem added in v6.56.0

func (FieldIndexConfigPtrOutput) ElementType added in v6.56.0

func (FieldIndexConfigPtrOutput) ElementType() reflect.Type

func (FieldIndexConfigPtrOutput) Indexes added in v6.56.0

The indexes to configure on the field. Order or array contains must be specified. Structure is documented below.

func (FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutput added in v6.56.0

func (o FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutputWithContext added in v6.56.0

func (o FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutputWithContext(ctx context.Context) FieldIndexConfigPtrOutput

type FieldInput added in v6.56.0

type FieldInput interface {
	pulumi.Input

	ToFieldOutput() FieldOutput
	ToFieldOutputWithContext(ctx context.Context) FieldOutput
}

type FieldMap added in v6.56.0

type FieldMap map[string]FieldInput

func (FieldMap) ElementType added in v6.56.0

func (FieldMap) ElementType() reflect.Type

func (FieldMap) ToFieldMapOutput added in v6.56.0

func (i FieldMap) ToFieldMapOutput() FieldMapOutput

func (FieldMap) ToFieldMapOutputWithContext added in v6.56.0

func (i FieldMap) ToFieldMapOutputWithContext(ctx context.Context) FieldMapOutput

type FieldMapInput added in v6.56.0

type FieldMapInput interface {
	pulumi.Input

	ToFieldMapOutput() FieldMapOutput
	ToFieldMapOutputWithContext(context.Context) FieldMapOutput
}

FieldMapInput is an input type that accepts FieldMap and FieldMapOutput values. You can construct a concrete instance of `FieldMapInput` via:

FieldMap{ "key": FieldArgs{...} }

type FieldMapOutput added in v6.56.0

type FieldMapOutput struct{ *pulumi.OutputState }

func (FieldMapOutput) ElementType added in v6.56.0

func (FieldMapOutput) ElementType() reflect.Type

func (FieldMapOutput) MapIndex added in v6.56.0

func (FieldMapOutput) ToFieldMapOutput added in v6.56.0

func (o FieldMapOutput) ToFieldMapOutput() FieldMapOutput

func (FieldMapOutput) ToFieldMapOutputWithContext added in v6.56.0

func (o FieldMapOutput) ToFieldMapOutputWithContext(ctx context.Context) FieldMapOutput

type FieldOutput added in v6.56.0

type FieldOutput struct{ *pulumi.OutputState }

func (FieldOutput) Collection added in v6.56.0

func (o FieldOutput) Collection() pulumi.StringOutput

The id of the collection group to configure.

func (FieldOutput) Database added in v6.56.0

func (o FieldOutput) Database() pulumi.StringPtrOutput

The Firestore database id. Defaults to `"(default)"`.

func (FieldOutput) ElementType added in v6.56.0

func (FieldOutput) ElementType() reflect.Type

func (FieldOutput) Field added in v6.56.0

func (o FieldOutput) Field() pulumi.StringOutput

The id of the field to configure.

***

func (FieldOutput) IndexConfig added in v6.56.0

func (o FieldOutput) IndexConfig() FieldIndexConfigPtrOutput

The single field index configuration for this field. Creating an index configuration for this field will override any inherited configuration with the indexes specified. Configuring the index configuration with an empty block disables all indexes on the field. Structure is documented below.

func (FieldOutput) Name added in v6.56.0

func (o FieldOutput) Name() pulumi.StringOutput

The name of this field. Format: `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/fields/{{field}}`

func (FieldOutput) Project added in v6.56.0

func (o FieldOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (FieldOutput) ToFieldOutput added in v6.56.0

func (o FieldOutput) ToFieldOutput() FieldOutput

func (FieldOutput) ToFieldOutputWithContext added in v6.56.0

func (o FieldOutput) ToFieldOutputWithContext(ctx context.Context) FieldOutput

func (FieldOutput) TtlConfig added in v6.56.0

func (o FieldOutput) TtlConfig() FieldTtlConfigPtrOutput

If set, this field is configured for TTL deletion. Structure is documented below.

type FieldState added in v6.56.0

type FieldState struct {
	// The id of the collection group to configure.
	Collection pulumi.StringPtrInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The id of the field to configure.
	//
	// ***
	Field pulumi.StringPtrInput
	// The single field index configuration for this field.
	// Creating an index configuration for this field will override any inherited configuration with the
	// indexes specified. Configuring the index configuration with an empty block disables all indexes on
	// the field.
	// Structure is documented below.
	IndexConfig FieldIndexConfigPtrInput
	// The name of this field. Format:
	// `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/fields/{{field}}`
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If set, this field is configured for TTL deletion.
	// Structure is documented below.
	TtlConfig FieldTtlConfigPtrInput
}

func (FieldState) ElementType added in v6.56.0

func (FieldState) ElementType() reflect.Type

type FieldTtlConfig added in v6.56.0

type FieldTtlConfig struct {
	// (Output)
	// The state of the TTL configuration.
	State *string `pulumi:"state"`
}

type FieldTtlConfigArgs added in v6.56.0

type FieldTtlConfigArgs struct {
	// (Output)
	// The state of the TTL configuration.
	State pulumi.StringPtrInput `pulumi:"state"`
}

func (FieldTtlConfigArgs) ElementType added in v6.56.0

func (FieldTtlConfigArgs) ElementType() reflect.Type

func (FieldTtlConfigArgs) ToFieldTtlConfigOutput added in v6.56.0

func (i FieldTtlConfigArgs) ToFieldTtlConfigOutput() FieldTtlConfigOutput

func (FieldTtlConfigArgs) ToFieldTtlConfigOutputWithContext added in v6.56.0

func (i FieldTtlConfigArgs) ToFieldTtlConfigOutputWithContext(ctx context.Context) FieldTtlConfigOutput

func (FieldTtlConfigArgs) ToFieldTtlConfigPtrOutput added in v6.56.0

func (i FieldTtlConfigArgs) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigArgs) ToFieldTtlConfigPtrOutputWithContext added in v6.56.0

func (i FieldTtlConfigArgs) ToFieldTtlConfigPtrOutputWithContext(ctx context.Context) FieldTtlConfigPtrOutput

type FieldTtlConfigInput added in v6.56.0

type FieldTtlConfigInput interface {
	pulumi.Input

	ToFieldTtlConfigOutput() FieldTtlConfigOutput
	ToFieldTtlConfigOutputWithContext(context.Context) FieldTtlConfigOutput
}

FieldTtlConfigInput is an input type that accepts FieldTtlConfigArgs and FieldTtlConfigOutput values. You can construct a concrete instance of `FieldTtlConfigInput` via:

FieldTtlConfigArgs{...}

type FieldTtlConfigOutput added in v6.56.0

type FieldTtlConfigOutput struct{ *pulumi.OutputState }

func (FieldTtlConfigOutput) ElementType added in v6.56.0

func (FieldTtlConfigOutput) ElementType() reflect.Type

func (FieldTtlConfigOutput) State added in v6.56.0

(Output) The state of the TTL configuration.

func (FieldTtlConfigOutput) ToFieldTtlConfigOutput added in v6.56.0

func (o FieldTtlConfigOutput) ToFieldTtlConfigOutput() FieldTtlConfigOutput

func (FieldTtlConfigOutput) ToFieldTtlConfigOutputWithContext added in v6.56.0

func (o FieldTtlConfigOutput) ToFieldTtlConfigOutputWithContext(ctx context.Context) FieldTtlConfigOutput

func (FieldTtlConfigOutput) ToFieldTtlConfigPtrOutput added in v6.56.0

func (o FieldTtlConfigOutput) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigOutput) ToFieldTtlConfigPtrOutputWithContext added in v6.56.0

func (o FieldTtlConfigOutput) ToFieldTtlConfigPtrOutputWithContext(ctx context.Context) FieldTtlConfigPtrOutput

type FieldTtlConfigPtrInput added in v6.56.0

type FieldTtlConfigPtrInput interface {
	pulumi.Input

	ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput
	ToFieldTtlConfigPtrOutputWithContext(context.Context) FieldTtlConfigPtrOutput
}

FieldTtlConfigPtrInput is an input type that accepts FieldTtlConfigArgs, FieldTtlConfigPtr and FieldTtlConfigPtrOutput values. You can construct a concrete instance of `FieldTtlConfigPtrInput` via:

        FieldTtlConfigArgs{...}

or:

        nil

func FieldTtlConfigPtr added in v6.56.0

func FieldTtlConfigPtr(v *FieldTtlConfigArgs) FieldTtlConfigPtrInput

type FieldTtlConfigPtrOutput added in v6.56.0

type FieldTtlConfigPtrOutput struct{ *pulumi.OutputState }

func (FieldTtlConfigPtrOutput) Elem added in v6.56.0

func (FieldTtlConfigPtrOutput) ElementType added in v6.56.0

func (FieldTtlConfigPtrOutput) ElementType() reflect.Type

func (FieldTtlConfigPtrOutput) State added in v6.56.0

(Output) The state of the TTL configuration.

func (FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutput added in v6.56.0

func (o FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutputWithContext added in v6.56.0

func (o FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutputWithContext(ctx context.Context) FieldTtlConfigPtrOutput

type Index

type Index struct {
	pulumi.CustomResourceState

	// The collection being indexed.
	Collection pulumi.StringOutput `pulumi:"collection"`
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrOutput `pulumi:"database"`
	// The fields supported by this index. The last field entry is always for
	// the field path `__name__`. If, on creation, `__name__` was not
	// specified as the last field, it will be added automatically with the
	// same direction as that of the last field defined. If the final field
	// in a composite index is not directional, the `__name__` will be
	// ordered `"ASCENDING"` (unless explicitly specified otherwise).
	// Structure is documented below.
	Fields IndexFieldArrayOutput `pulumi:"fields"`
	// A server defined name for this index. Format:
	// `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/indexes/{{server_generated_id}}`
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The scope at which a query is run.
	// Default value is `COLLECTION`.
	// Possible values are: `COLLECTION`, `COLLECTION_GROUP`.
	QueryScope pulumi.StringPtrOutput `pulumi:"queryScope"`
}

Cloud Firestore indexes enable simple and complex queries against documents in a database.

This resource manages composite indexes and not single

field indexes.

To get more information about Index, see:

* [API documentation](https://cloud.google.com/firestore/docs/reference/rest/v1/projects.databases.collectionGroups.indexes) * How-to Guides

> **Warning:** This resource creates a Firestore Index on a project that already has a Firestore database. If you haven't already created it, you may create a `firestore.Database` resource with `type` set to `"FIRESTORE_NATIVE"` and `locationId` set to your chosen location. If you wish to use App Engine, you may instead create a `appengine.Application` resource with `databaseType` set to `"CLOUD_FIRESTORE"`. Your Firestore location will be the same as the App Engine location specified.

## Example Usage ### Firestore Index Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewIndex(ctx, "my-index", &firestore.IndexArgs{
			Collection: pulumi.String("chatrooms"),
			Fields: firestore.IndexFieldArray{
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("name"),
					Order:     pulumi.String("ASCENDING"),
				},
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("description"),
					Order:     pulumi.String("DESCENDING"),
				},
			},
			Project: pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Index can be imported using any of these accepted formats

```sh

$ pulumi import gcp:firestore/index:Index default {{name}}

```

func GetIndex

func GetIndex(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IndexState, opts ...pulumi.ResourceOption) (*Index, error)

GetIndex gets an existing Index resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewIndex

func NewIndex(ctx *pulumi.Context,
	name string, args *IndexArgs, opts ...pulumi.ResourceOption) (*Index, error)

NewIndex registers a new resource with the given unique name, arguments, and options.

func (*Index) ElementType

func (*Index) ElementType() reflect.Type

func (*Index) ToIndexOutput

func (i *Index) ToIndexOutput() IndexOutput

func (*Index) ToIndexOutputWithContext

func (i *Index) ToIndexOutputWithContext(ctx context.Context) IndexOutput

type IndexArgs

type IndexArgs struct {
	// The collection being indexed.
	Collection pulumi.StringInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The fields supported by this index. The last field entry is always for
	// the field path `__name__`. If, on creation, `__name__` was not
	// specified as the last field, it will be added automatically with the
	// same direction as that of the last field defined. If the final field
	// in a composite index is not directional, the `__name__` will be
	// ordered `"ASCENDING"` (unless explicitly specified otherwise).
	// Structure is documented below.
	Fields IndexFieldArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The scope at which a query is run.
	// Default value is `COLLECTION`.
	// Possible values are: `COLLECTION`, `COLLECTION_GROUP`.
	QueryScope pulumi.StringPtrInput
}

The set of arguments for constructing a Index resource.

func (IndexArgs) ElementType

func (IndexArgs) ElementType() reflect.Type

type IndexArray

type IndexArray []IndexInput

func (IndexArray) ElementType

func (IndexArray) ElementType() reflect.Type

func (IndexArray) ToIndexArrayOutput

func (i IndexArray) ToIndexArrayOutput() IndexArrayOutput

func (IndexArray) ToIndexArrayOutputWithContext

func (i IndexArray) ToIndexArrayOutputWithContext(ctx context.Context) IndexArrayOutput

type IndexArrayInput

type IndexArrayInput interface {
	pulumi.Input

	ToIndexArrayOutput() IndexArrayOutput
	ToIndexArrayOutputWithContext(context.Context) IndexArrayOutput
}

IndexArrayInput is an input type that accepts IndexArray and IndexArrayOutput values. You can construct a concrete instance of `IndexArrayInput` via:

IndexArray{ IndexArgs{...} }

type IndexArrayOutput

type IndexArrayOutput struct{ *pulumi.OutputState }

func (IndexArrayOutput) ElementType

func (IndexArrayOutput) ElementType() reflect.Type

func (IndexArrayOutput) Index

func (IndexArrayOutput) ToIndexArrayOutput

func (o IndexArrayOutput) ToIndexArrayOutput() IndexArrayOutput

func (IndexArrayOutput) ToIndexArrayOutputWithContext

func (o IndexArrayOutput) ToIndexArrayOutputWithContext(ctx context.Context) IndexArrayOutput

type IndexField

type IndexField struct {
	// Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can
	// be specified.
	// Possible values are: `CONTAINS`.
	//
	// ***
	ArrayConfig *string `pulumi:"arrayConfig"`
	// Name of the field.
	FieldPath *string `pulumi:"fieldPath"`
	// Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=.
	// Only one of `order` and `arrayConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order *string `pulumi:"order"`
}

type IndexFieldArgs

type IndexFieldArgs struct {
	// Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can
	// be specified.
	// Possible values are: `CONTAINS`.
	//
	// ***
	ArrayConfig pulumi.StringPtrInput `pulumi:"arrayConfig"`
	// Name of the field.
	FieldPath pulumi.StringPtrInput `pulumi:"fieldPath"`
	// Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=.
	// Only one of `order` and `arrayConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order pulumi.StringPtrInput `pulumi:"order"`
}

func (IndexFieldArgs) ElementType

func (IndexFieldArgs) ElementType() reflect.Type

func (IndexFieldArgs) ToIndexFieldOutput

func (i IndexFieldArgs) ToIndexFieldOutput() IndexFieldOutput

func (IndexFieldArgs) ToIndexFieldOutputWithContext

func (i IndexFieldArgs) ToIndexFieldOutputWithContext(ctx context.Context) IndexFieldOutput

type IndexFieldArray

type IndexFieldArray []IndexFieldInput

func (IndexFieldArray) ElementType

func (IndexFieldArray) ElementType() reflect.Type

func (IndexFieldArray) ToIndexFieldArrayOutput

func (i IndexFieldArray) ToIndexFieldArrayOutput() IndexFieldArrayOutput

func (IndexFieldArray) ToIndexFieldArrayOutputWithContext

func (i IndexFieldArray) ToIndexFieldArrayOutputWithContext(ctx context.Context) IndexFieldArrayOutput

type IndexFieldArrayInput

type IndexFieldArrayInput interface {
	pulumi.Input

	ToIndexFieldArrayOutput() IndexFieldArrayOutput
	ToIndexFieldArrayOutputWithContext(context.Context) IndexFieldArrayOutput
}

IndexFieldArrayInput is an input type that accepts IndexFieldArray and IndexFieldArrayOutput values. You can construct a concrete instance of `IndexFieldArrayInput` via:

IndexFieldArray{ IndexFieldArgs{...} }

type IndexFieldArrayOutput

type IndexFieldArrayOutput struct{ *pulumi.OutputState }

func (IndexFieldArrayOutput) ElementType

func (IndexFieldArrayOutput) ElementType() reflect.Type

func (IndexFieldArrayOutput) Index

func (IndexFieldArrayOutput) ToIndexFieldArrayOutput

func (o IndexFieldArrayOutput) ToIndexFieldArrayOutput() IndexFieldArrayOutput

func (IndexFieldArrayOutput) ToIndexFieldArrayOutputWithContext

func (o IndexFieldArrayOutput) ToIndexFieldArrayOutputWithContext(ctx context.Context) IndexFieldArrayOutput

type IndexFieldInput

type IndexFieldInput interface {
	pulumi.Input

	ToIndexFieldOutput() IndexFieldOutput
	ToIndexFieldOutputWithContext(context.Context) IndexFieldOutput
}

IndexFieldInput is an input type that accepts IndexFieldArgs and IndexFieldOutput values. You can construct a concrete instance of `IndexFieldInput` via:

IndexFieldArgs{...}

type IndexFieldOutput

type IndexFieldOutput struct{ *pulumi.OutputState }

func (IndexFieldOutput) ArrayConfig

func (o IndexFieldOutput) ArrayConfig() pulumi.StringPtrOutput

Indicates that this field supports operations on arrayValues. Only one of `order` and `arrayConfig` can be specified. Possible values are: `CONTAINS`.

***

func (IndexFieldOutput) ElementType

func (IndexFieldOutput) ElementType() reflect.Type

func (IndexFieldOutput) FieldPath

func (o IndexFieldOutput) FieldPath() pulumi.StringPtrOutput

Name of the field.

func (IndexFieldOutput) Order

Indicates that this field supports ordering by the specified order or comparing using =, <, <=, >, >=. Only one of `order` and `arrayConfig` can be specified. Possible values are: `ASCENDING`, `DESCENDING`.

func (IndexFieldOutput) ToIndexFieldOutput

func (o IndexFieldOutput) ToIndexFieldOutput() IndexFieldOutput

func (IndexFieldOutput) ToIndexFieldOutputWithContext

func (o IndexFieldOutput) ToIndexFieldOutputWithContext(ctx context.Context) IndexFieldOutput

type IndexInput

type IndexInput interface {
	pulumi.Input

	ToIndexOutput() IndexOutput
	ToIndexOutputWithContext(ctx context.Context) IndexOutput
}

type IndexMap

type IndexMap map[string]IndexInput

func (IndexMap) ElementType

func (IndexMap) ElementType() reflect.Type

func (IndexMap) ToIndexMapOutput

func (i IndexMap) ToIndexMapOutput() IndexMapOutput

func (IndexMap) ToIndexMapOutputWithContext

func (i IndexMap) ToIndexMapOutputWithContext(ctx context.Context) IndexMapOutput

type IndexMapInput

type IndexMapInput interface {
	pulumi.Input

	ToIndexMapOutput() IndexMapOutput
	ToIndexMapOutputWithContext(context.Context) IndexMapOutput
}

IndexMapInput is an input type that accepts IndexMap and IndexMapOutput values. You can construct a concrete instance of `IndexMapInput` via:

IndexMap{ "key": IndexArgs{...} }

type IndexMapOutput

type IndexMapOutput struct{ *pulumi.OutputState }

func (IndexMapOutput) ElementType

func (IndexMapOutput) ElementType() reflect.Type

func (IndexMapOutput) MapIndex

func (IndexMapOutput) ToIndexMapOutput

func (o IndexMapOutput) ToIndexMapOutput() IndexMapOutput

func (IndexMapOutput) ToIndexMapOutputWithContext

func (o IndexMapOutput) ToIndexMapOutputWithContext(ctx context.Context) IndexMapOutput

type IndexOutput

type IndexOutput struct{ *pulumi.OutputState }

func (IndexOutput) Collection added in v6.23.0

func (o IndexOutput) Collection() pulumi.StringOutput

The collection being indexed.

func (IndexOutput) Database added in v6.23.0

func (o IndexOutput) Database() pulumi.StringPtrOutput

The Firestore database id. Defaults to `"(default)"`.

func (IndexOutput) ElementType

func (IndexOutput) ElementType() reflect.Type

func (IndexOutput) Fields added in v6.23.0

The fields supported by this index. The last field entry is always for the field path `__name__`. If, on creation, `__name__` was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the `__name__` will be ordered `"ASCENDING"` (unless explicitly specified otherwise). Structure is documented below.

func (IndexOutput) Name added in v6.23.0

func (o IndexOutput) Name() pulumi.StringOutput

A server defined name for this index. Format: `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/indexes/{{server_generated_id}}`

func (IndexOutput) Project added in v6.23.0

func (o IndexOutput) Project() pulumi.StringOutput

The ID of the project in which the resource belongs. If it is not provided, the provider project is used.

func (IndexOutput) QueryScope added in v6.23.0

func (o IndexOutput) QueryScope() pulumi.StringPtrOutput

The scope at which a query is run. Default value is `COLLECTION`. Possible values are: `COLLECTION`, `COLLECTION_GROUP`.

func (IndexOutput) ToIndexOutput

func (o IndexOutput) ToIndexOutput() IndexOutput

func (IndexOutput) ToIndexOutputWithContext

func (o IndexOutput) ToIndexOutputWithContext(ctx context.Context) IndexOutput

type IndexState

type IndexState struct {
	// The collection being indexed.
	Collection pulumi.StringPtrInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The fields supported by this index. The last field entry is always for
	// the field path `__name__`. If, on creation, `__name__` was not
	// specified as the last field, it will be added automatically with the
	// same direction as that of the last field defined. If the final field
	// in a composite index is not directional, the `__name__` will be
	// ordered `"ASCENDING"` (unless explicitly specified otherwise).
	// Structure is documented below.
	Fields IndexFieldArrayInput
	// A server defined name for this index. Format:
	// `projects/{{project}}/databases/{{database}}/collectionGroups/{{collection}}/indexes/{{server_generated_id}}`
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The scope at which a query is run.
	// Default value is `COLLECTION`.
	// Possible values are: `COLLECTION`, `COLLECTION_GROUP`.
	QueryScope pulumi.StringPtrInput
}

func (IndexState) ElementType

func (IndexState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL