firestore

package
v8.5.0 Latest Latest
Warning

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

Go to latest
Published: Oct 8, 2024 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 BackupSchedule

type BackupSchedule struct {
	pulumi.CustomResourceState

	// For a schedule that runs daily.
	DailyRecurrence BackupScheduleDailyRecurrencePtrOutput `pulumi:"dailyRecurrence"`
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrOutput `pulumi:"database"`
	// The unique backup schedule identifier across all locations and databases for the given project. Format:
	// `projects/{{project}}/databases/{{database}}/backupSchedules/{{backupSchedule}}`
	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"`
	// At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	// You can set this to a value up to 14 weeks.
	//
	// ***
	Retention pulumi.StringOutput `pulumi:"retention"`
	// For a schedule that runs weekly on a specific day.
	// Structure is documented below.
	WeeklyRecurrence BackupScheduleWeeklyRecurrencePtrOutput `pulumi:"weeklyRecurrence"`
}

A backup schedule for a Cloud Firestore Database. This resource is owned by the database it is backing up, and is deleted along with the database. The actual backups are not though.

To get more information about BackupSchedule, see:

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

> **Warning:** This resource creates a Firestore Backup Schedule on a project that already has a Firestore database. This resource is owned by the database it is backing up, and is deleted along with the database. The actual backups are not though.

## Example Usage

### Firestore Backup Schedule Daily

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewBackupSchedule(ctx, "daily-backup", &firestore.BackupScheduleArgs{
			Project:         pulumi.String("my-project-name"),
			Database:        database.Name,
			Retention:       pulumi.String("8467200s"),
			DailyRecurrence: nil,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Backup Schedule Weekly

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewBackupSchedule(ctx, "weekly-backup", &firestore.BackupScheduleArgs{
			Project:   pulumi.String("my-project-name"),
			Database:  database.Name,
			Retention: pulumi.String("8467200s"),
			WeeklyRecurrence: &firestore.BackupScheduleWeeklyRecurrenceArgs{
				Day: pulumi.String("SUNDAY"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

BackupSchedule can be imported using any of these accepted formats:

* `projects/{{project}}/databases/{{database}}/backupSchedules/{{name}}`

* `{{project}}/{{database}}/{{name}}`

* `{{database}}/{{name}}`

When using the `pulumi import` command, BackupSchedule can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:firestore/backupSchedule:BackupSchedule default projects/{{project}}/databases/{{database}}/backupSchedules/{{name}} ```

```sh $ pulumi import gcp:firestore/backupSchedule:BackupSchedule default {{project}}/{{database}}/{{name}} ```

```sh $ pulumi import gcp:firestore/backupSchedule:BackupSchedule default {{database}}/{{name}} ```

func GetBackupSchedule

func GetBackupSchedule(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BackupScheduleState, opts ...pulumi.ResourceOption) (*BackupSchedule, error)

GetBackupSchedule gets an existing BackupSchedule 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 NewBackupSchedule

func NewBackupSchedule(ctx *pulumi.Context,
	name string, args *BackupScheduleArgs, opts ...pulumi.ResourceOption) (*BackupSchedule, error)

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

func (*BackupSchedule) ElementType

func (*BackupSchedule) ElementType() reflect.Type

func (*BackupSchedule) ToBackupScheduleOutput

func (i *BackupSchedule) ToBackupScheduleOutput() BackupScheduleOutput

func (*BackupSchedule) ToBackupScheduleOutputWithContext

func (i *BackupSchedule) ToBackupScheduleOutputWithContext(ctx context.Context) BackupScheduleOutput

type BackupScheduleArgs

type BackupScheduleArgs struct {
	// For a schedule that runs daily.
	DailyRecurrence BackupScheduleDailyRecurrencePtrInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database 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
	// At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	// You can set this to a value up to 14 weeks.
	//
	// ***
	Retention pulumi.StringInput
	// For a schedule that runs weekly on a specific day.
	// Structure is documented below.
	WeeklyRecurrence BackupScheduleWeeklyRecurrencePtrInput
}

The set of arguments for constructing a BackupSchedule resource.

func (BackupScheduleArgs) ElementType

func (BackupScheduleArgs) ElementType() reflect.Type

type BackupScheduleArray

type BackupScheduleArray []BackupScheduleInput

func (BackupScheduleArray) ElementType

func (BackupScheduleArray) ElementType() reflect.Type

func (BackupScheduleArray) ToBackupScheduleArrayOutput

func (i BackupScheduleArray) ToBackupScheduleArrayOutput() BackupScheduleArrayOutput

func (BackupScheduleArray) ToBackupScheduleArrayOutputWithContext

func (i BackupScheduleArray) ToBackupScheduleArrayOutputWithContext(ctx context.Context) BackupScheduleArrayOutput

type BackupScheduleArrayInput

type BackupScheduleArrayInput interface {
	pulumi.Input

	ToBackupScheduleArrayOutput() BackupScheduleArrayOutput
	ToBackupScheduleArrayOutputWithContext(context.Context) BackupScheduleArrayOutput
}

BackupScheduleArrayInput is an input type that accepts BackupScheduleArray and BackupScheduleArrayOutput values. You can construct a concrete instance of `BackupScheduleArrayInput` via:

BackupScheduleArray{ BackupScheduleArgs{...} }

type BackupScheduleArrayOutput

type BackupScheduleArrayOutput struct{ *pulumi.OutputState }

func (BackupScheduleArrayOutput) ElementType

func (BackupScheduleArrayOutput) ElementType() reflect.Type

func (BackupScheduleArrayOutput) Index

func (BackupScheduleArrayOutput) ToBackupScheduleArrayOutput

func (o BackupScheduleArrayOutput) ToBackupScheduleArrayOutput() BackupScheduleArrayOutput

func (BackupScheduleArrayOutput) ToBackupScheduleArrayOutputWithContext

func (o BackupScheduleArrayOutput) ToBackupScheduleArrayOutputWithContext(ctx context.Context) BackupScheduleArrayOutput

type BackupScheduleDailyRecurrence

type BackupScheduleDailyRecurrence struct {
}

type BackupScheduleDailyRecurrenceArgs

type BackupScheduleDailyRecurrenceArgs struct {
}

func (BackupScheduleDailyRecurrenceArgs) ElementType

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutput

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutput() BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutputWithContext

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutputWithContext(ctx context.Context) BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutput

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutputWithContext

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleDailyRecurrencePtrOutput

type BackupScheduleDailyRecurrenceInput

type BackupScheduleDailyRecurrenceInput interface {
	pulumi.Input

	ToBackupScheduleDailyRecurrenceOutput() BackupScheduleDailyRecurrenceOutput
	ToBackupScheduleDailyRecurrenceOutputWithContext(context.Context) BackupScheduleDailyRecurrenceOutput
}

BackupScheduleDailyRecurrenceInput is an input type that accepts BackupScheduleDailyRecurrenceArgs and BackupScheduleDailyRecurrenceOutput values. You can construct a concrete instance of `BackupScheduleDailyRecurrenceInput` via:

BackupScheduleDailyRecurrenceArgs{...}

type BackupScheduleDailyRecurrenceOutput

type BackupScheduleDailyRecurrenceOutput struct{ *pulumi.OutputState }

func (BackupScheduleDailyRecurrenceOutput) ElementType

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutput

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutput() BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutputWithContext

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutputWithContext(ctx context.Context) BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutput

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleDailyRecurrencePtrOutput

type BackupScheduleDailyRecurrencePtrInput

type BackupScheduleDailyRecurrencePtrInput interface {
	pulumi.Input

	ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput
	ToBackupScheduleDailyRecurrencePtrOutputWithContext(context.Context) BackupScheduleDailyRecurrencePtrOutput
}

BackupScheduleDailyRecurrencePtrInput is an input type that accepts BackupScheduleDailyRecurrenceArgs, BackupScheduleDailyRecurrencePtr and BackupScheduleDailyRecurrencePtrOutput values. You can construct a concrete instance of `BackupScheduleDailyRecurrencePtrInput` via:

        BackupScheduleDailyRecurrenceArgs{...}

or:

        nil

type BackupScheduleDailyRecurrencePtrOutput

type BackupScheduleDailyRecurrencePtrOutput struct{ *pulumi.OutputState }

func (BackupScheduleDailyRecurrencePtrOutput) Elem

func (BackupScheduleDailyRecurrencePtrOutput) ElementType

func (BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutput

func (o BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext

func (o BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleDailyRecurrencePtrOutput

type BackupScheduleInput

type BackupScheduleInput interface {
	pulumi.Input

	ToBackupScheduleOutput() BackupScheduleOutput
	ToBackupScheduleOutputWithContext(ctx context.Context) BackupScheduleOutput
}

type BackupScheduleMap

type BackupScheduleMap map[string]BackupScheduleInput

func (BackupScheduleMap) ElementType

func (BackupScheduleMap) ElementType() reflect.Type

func (BackupScheduleMap) ToBackupScheduleMapOutput

func (i BackupScheduleMap) ToBackupScheduleMapOutput() BackupScheduleMapOutput

func (BackupScheduleMap) ToBackupScheduleMapOutputWithContext

func (i BackupScheduleMap) ToBackupScheduleMapOutputWithContext(ctx context.Context) BackupScheduleMapOutput

type BackupScheduleMapInput

type BackupScheduleMapInput interface {
	pulumi.Input

	ToBackupScheduleMapOutput() BackupScheduleMapOutput
	ToBackupScheduleMapOutputWithContext(context.Context) BackupScheduleMapOutput
}

BackupScheduleMapInput is an input type that accepts BackupScheduleMap and BackupScheduleMapOutput values. You can construct a concrete instance of `BackupScheduleMapInput` via:

BackupScheduleMap{ "key": BackupScheduleArgs{...} }

type BackupScheduleMapOutput

type BackupScheduleMapOutput struct{ *pulumi.OutputState }

func (BackupScheduleMapOutput) ElementType

func (BackupScheduleMapOutput) ElementType() reflect.Type

func (BackupScheduleMapOutput) MapIndex

func (BackupScheduleMapOutput) ToBackupScheduleMapOutput

func (o BackupScheduleMapOutput) ToBackupScheduleMapOutput() BackupScheduleMapOutput

func (BackupScheduleMapOutput) ToBackupScheduleMapOutputWithContext

func (o BackupScheduleMapOutput) ToBackupScheduleMapOutputWithContext(ctx context.Context) BackupScheduleMapOutput

type BackupScheduleOutput

type BackupScheduleOutput struct{ *pulumi.OutputState }

func (BackupScheduleOutput) DailyRecurrence

For a schedule that runs daily.

func (BackupScheduleOutput) Database

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

func (BackupScheduleOutput) ElementType

func (BackupScheduleOutput) ElementType() reflect.Type

func (BackupScheduleOutput) Name

The unique backup schedule identifier across all locations and databases for the given project. Format: `projects/{{project}}/databases/{{database}}/backupSchedules/{{backupSchedule}}`

func (BackupScheduleOutput) Project

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

func (BackupScheduleOutput) Retention

At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s". You can set this to a value up to 14 weeks.

***

func (BackupScheduleOutput) ToBackupScheduleOutput

func (o BackupScheduleOutput) ToBackupScheduleOutput() BackupScheduleOutput

func (BackupScheduleOutput) ToBackupScheduleOutputWithContext

func (o BackupScheduleOutput) ToBackupScheduleOutputWithContext(ctx context.Context) BackupScheduleOutput

func (BackupScheduleOutput) WeeklyRecurrence

For a schedule that runs weekly on a specific day. Structure is documented below.

type BackupScheduleState

type BackupScheduleState struct {
	// For a schedule that runs daily.
	DailyRecurrence BackupScheduleDailyRecurrencePtrInput
	// The Firestore database id. Defaults to `"(default)"`.
	Database pulumi.StringPtrInput
	// The unique backup schedule identifier across all locations and databases for the given project. Format:
	// `projects/{{project}}/databases/{{database}}/backupSchedules/{{backupSchedule}}`
	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
	// At what relative time in the future, compared to its creation time, the backup should be deleted, e.g. keep backups for 7 days.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	// You can set this to a value up to 14 weeks.
	//
	// ***
	Retention pulumi.StringPtrInput
	// For a schedule that runs weekly on a specific day.
	// Structure is documented below.
	WeeklyRecurrence BackupScheduleWeeklyRecurrencePtrInput
}

func (BackupScheduleState) ElementType

func (BackupScheduleState) ElementType() reflect.Type

type BackupScheduleWeeklyRecurrence

type BackupScheduleWeeklyRecurrence struct {
	// The day of week to run.
	// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
	Day *string `pulumi:"day"`
}

type BackupScheduleWeeklyRecurrenceArgs

type BackupScheduleWeeklyRecurrenceArgs struct {
	// The day of week to run.
	// Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.
	Day pulumi.StringPtrInput `pulumi:"day"`
}

func (BackupScheduleWeeklyRecurrenceArgs) ElementType

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutput

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutput() BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutputWithContext

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutputWithContext(ctx context.Context) BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutput

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleWeeklyRecurrencePtrOutput

type BackupScheduleWeeklyRecurrenceInput

type BackupScheduleWeeklyRecurrenceInput interface {
	pulumi.Input

	ToBackupScheduleWeeklyRecurrenceOutput() BackupScheduleWeeklyRecurrenceOutput
	ToBackupScheduleWeeklyRecurrenceOutputWithContext(context.Context) BackupScheduleWeeklyRecurrenceOutput
}

BackupScheduleWeeklyRecurrenceInput is an input type that accepts BackupScheduleWeeklyRecurrenceArgs and BackupScheduleWeeklyRecurrenceOutput values. You can construct a concrete instance of `BackupScheduleWeeklyRecurrenceInput` via:

BackupScheduleWeeklyRecurrenceArgs{...}

type BackupScheduleWeeklyRecurrenceOutput

type BackupScheduleWeeklyRecurrenceOutput struct{ *pulumi.OutputState }

func (BackupScheduleWeeklyRecurrenceOutput) Day

The day of week to run. Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.

func (BackupScheduleWeeklyRecurrenceOutput) ElementType

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutput

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutput() BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutputWithContext

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutputWithContext(ctx context.Context) BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutput

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleWeeklyRecurrencePtrOutput

type BackupScheduleWeeklyRecurrencePtrInput

type BackupScheduleWeeklyRecurrencePtrInput interface {
	pulumi.Input

	ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput
	ToBackupScheduleWeeklyRecurrencePtrOutputWithContext(context.Context) BackupScheduleWeeklyRecurrencePtrOutput
}

BackupScheduleWeeklyRecurrencePtrInput is an input type that accepts BackupScheduleWeeklyRecurrenceArgs, BackupScheduleWeeklyRecurrencePtr and BackupScheduleWeeklyRecurrencePtrOutput values. You can construct a concrete instance of `BackupScheduleWeeklyRecurrencePtrInput` via:

        BackupScheduleWeeklyRecurrenceArgs{...}

or:

        nil

type BackupScheduleWeeklyRecurrencePtrOutput

type BackupScheduleWeeklyRecurrencePtrOutput struct{ *pulumi.OutputState }

func (BackupScheduleWeeklyRecurrencePtrOutput) Day

The day of week to run. Possible values are: `DAY_OF_WEEK_UNSPECIFIED`, `MONDAY`, `TUESDAY`, `WEDNESDAY`, `THURSDAY`, `FRIDAY`, `SATURDAY`, `SUNDAY`.

func (BackupScheduleWeeklyRecurrencePtrOutput) Elem

func (BackupScheduleWeeklyRecurrencePtrOutput) ElementType

func (BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutput

func (o BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext

func (o BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext(ctx context.Context) BackupScheduleWeeklyRecurrencePtrOutput

type Database

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 CMEK (Customer Managed Encryption Key) configuration for a Firestore
	// database. If not present, the database is secured by the default Google
	// encryption key.
	// Structure is documented below.
	CmekConfig DatabaseCmekConfigPtrOutput `pulumi:"cmekConfig"`
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode pulumi.StringOutput `pulumi:"concurrencyMode"`
	// Output only. The timestamp at which this database was created.
	CreateTime            pulumi.StringOutput    `pulumi:"createTime"`
	DeleteProtectionState pulumi.StringOutput    `pulumi:"deleteProtectionState"`
	DeletionPolicy        pulumi.StringPtrOutput `pulumi:"deletionPolicy"`
	// Output only. The earliest timestamp at which older versions of the data can be read from the database. See versionRetentionPeriod above; this field is populated with now - versionRetentionPeriod.
	// This value is continuously updated, and becomes stale the moment it is queried. If you are using this value to recover data, make sure to account for the time from the moment when the value is queried to the moment when you initiate the recovery.
	// 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".
	EarliestVersionTime pulumi.StringOutput `pulumi:"earliestVersionTime"`
	// Output only. 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 locations 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"`
	// Whether to enable the PITR feature on this database.
	// If `POINT_IN_TIME_RECOVERY_ENABLED` is selected, reads are supported on selected versions of the data from within the past 7 days.
	// versionRetentionPeriod and earliestVersionTime can be used to determine the supported versions. These include reads against any timestamp within the past hour
	// and reads against 1-minute snapshots beyond 1 hour and within 7 days.
	// If `POINT_IN_TIME_RECOVERY_DISABLED` is selected, reads are supported on any version of the data from within the past 1 hour.
	// Default value is `POINT_IN_TIME_RECOVERY_DISABLED`.
	// Possible values are: `POINT_IN_TIME_RECOVERY_ENABLED`, `POINT_IN_TIME_RECOVERY_DISABLED`.
	PointInTimeRecoveryEnablement pulumi.StringPtrOutput `pulumi:"pointInTimeRecoveryEnablement"`
	// 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"`
	// Output only. The system-generated UUID4 for this Database.
	Uid pulumi.StringOutput `pulumi:"uid"`
	// Output only. The timestamp at which this database was most recently updated.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
	// Output only. The period during which past versions of data are retained in the database.
	// Any read or query can specify a readTime within this window, and will read the state of the database at that time.
	// If the PITR feature is enabled, the retention period is 7 days. Otherwise, the retention period is 1 hour.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	VersionRetentionPeriod pulumi.StringOutput `pulumi:"versionRetentionPeriod"`
}

A Cloud Firestore Database.

If you wish to use Firestore with App Engine, use the `appengine.Application` resource instead. If you were previously using the `appengine.Application` resource exclusively for managing a Firestore database and would like to use the `firestore.Database` resource instead, please follow the instructions [here](https://cloud.google.com/firestore/docs/app-engine-requirement).

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

### Firestore Default Database

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:    pulumi.String("my-project-name"),
			Name:       pulumi.String("(default)"),
			LocationId: pulumi.String("nam5"),
			Type:       pulumi.String("FIRESTORE_NATIVE"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Database

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:                       pulumi.String("my-project-name"),
			Name:                          pulumi.String("database-id"),
			LocationId:                    pulumi.String("nam5"),
			Type:                          pulumi.String("FIRESTORE_NATIVE"),
			ConcurrencyMode:               pulumi.String("OPTIMISTIC"),
			AppEngineIntegrationMode:      pulumi.String("DISABLED"),
			PointInTimeRecoveryEnablement: pulumi.String("POINT_IN_TIME_RECOVERY_ENABLED"),
			DeleteProtectionState:         pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:                pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Cmek Database

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		keyRing, err := kms.NewKeyRing(ctx, "key_ring", &kms.KeyRingArgs{
			Name:     pulumi.String("kms-key-ring"),
			Location: pulumi.String("us"),
		})
		if err != nil {
			return err
		}
		cryptoKey, err := kms.NewCryptoKey(ctx, "crypto_key", &kms.CryptoKeyArgs{
			Name:    pulumi.String("kms-key"),
			KeyRing: keyRing.ID(),
			Purpose: pulumi.String("ENCRYPT_DECRYPT"),
		})
		if err != nil {
			return err
		}
		firestoreCmekKeyuser, err := kms.NewCryptoKeyIAMBinding(ctx, "firestore_cmek_keyuser", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-firestore.iam.gserviceaccount.com", project.Number),
			},
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:                       pulumi.String("my-project-name"),
			Name:                          pulumi.String("cmek-database-id"),
			LocationId:                    pulumi.String("nam5"),
			Type:                          pulumi.String("FIRESTORE_NATIVE"),
			ConcurrencyMode:               pulumi.String("OPTIMISTIC"),
			AppEngineIntegrationMode:      pulumi.String("DISABLED"),
			PointInTimeRecoveryEnablement: pulumi.String("POINT_IN_TIME_RECOVERY_ENABLED"),
			DeleteProtectionState:         pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:                pulumi.String("DELETE"),
			CmekConfig: &firestore.DatabaseCmekConfigArgs{
				KmsKeyName: cryptoKey.ID(),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			firestoreCmekKeyuser,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Default Database In Datastore Mode

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewDatabase(ctx, "datastore_mode_database", &firestore.DatabaseArgs{
			Project:    pulumi.String("my-project-name"),
			Name:       pulumi.String("(default)"),
			LocationId: pulumi.String("nam5"),
			Type:       pulumi.String("DATASTORE_MODE"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Database In Datastore Mode

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := firestore.NewDatabase(ctx, "datastore_mode_database", &firestore.DatabaseArgs{
			Project:                       pulumi.String("my-project-name"),
			Name:                          pulumi.String("database-id"),
			LocationId:                    pulumi.String("nam5"),
			Type:                          pulumi.String("DATASTORE_MODE"),
			ConcurrencyMode:               pulumi.String("OPTIMISTIC"),
			AppEngineIntegrationMode:      pulumi.String("DISABLED"),
			PointInTimeRecoveryEnablement: pulumi.String("POINT_IN_TIME_RECOVERY_ENABLED"),
			DeleteProtectionState:         pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:                pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Cmek Database In Datastore Mode

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		keyRing, err := kms.NewKeyRing(ctx, "key_ring", &kms.KeyRingArgs{
			Name:     pulumi.String("kms-key-ring"),
			Location: pulumi.String("us"),
		})
		if err != nil {
			return err
		}
		cryptoKey, err := kms.NewCryptoKey(ctx, "crypto_key", &kms.CryptoKeyArgs{
			Name:    pulumi.String("kms-key"),
			KeyRing: keyRing.ID(),
			Purpose: pulumi.String("ENCRYPT_DECRYPT"),
		})
		if err != nil {
			return err
		}
		firestoreCmekKeyuser, err := kms.NewCryptoKeyIAMBinding(ctx, "firestore_cmek_keyuser", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.Sprintf("serviceAccount:service-%v@gcp-sa-firestore.iam.gserviceaccount.com", project.Number),
			},
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:                       pulumi.String("my-project-name"),
			Name:                          pulumi.String("cmek-database-id"),
			LocationId:                    pulumi.String("nam5"),
			Type:                          pulumi.String("DATASTORE_MODE"),
			ConcurrencyMode:               pulumi.String("OPTIMISTIC"),
			AppEngineIntegrationMode:      pulumi.String("DISABLED"),
			PointInTimeRecoveryEnablement: pulumi.String("POINT_IN_TIME_RECOVERY_ENABLED"),
			DeleteProtectionState:         pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:                pulumi.String("DELETE"),
			CmekConfig: &firestore.DatabaseCmekConfigArgs{
				KmsKeyName: cryptoKey.ID(),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			firestoreCmekKeyuser,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Database can be imported using any of these accepted formats:

* `projects/{{project}}/databases/{{name}}`

* `{{project}}/{{name}}`

* `{{name}}`

When using the `pulumi import` command, Database can be imported using one of the formats above. For example:

```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

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

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

func (*Database) ElementType() reflect.Type

func (*Database) ToDatabaseOutput

func (i *Database) ToDatabaseOutput() DatabaseOutput

func (*Database) ToDatabaseOutputWithContext

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

type DatabaseArgs

type DatabaseArgs struct {
	// The App Engine integration mode to use for this database.
	// Possible values are: `ENABLED`, `DISABLED`.
	AppEngineIntegrationMode pulumi.StringPtrInput
	// The CMEK (Customer Managed Encryption Key) configuration for a Firestore
	// database. If not present, the database is secured by the default Google
	// encryption key.
	// Structure is documented below.
	CmekConfig DatabaseCmekConfigPtrInput
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode       pulumi.StringPtrInput
	DeleteProtectionState pulumi.StringPtrInput
	DeletionPolicy        pulumi.StringPtrInput
	// The location of the database. Available locations 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
	// Whether to enable the PITR feature on this database.
	// If `POINT_IN_TIME_RECOVERY_ENABLED` is selected, reads are supported on selected versions of the data from within the past 7 days.
	// versionRetentionPeriod and earliestVersionTime can be used to determine the supported versions. These include reads against any timestamp within the past hour
	// and reads against 1-minute snapshots beyond 1 hour and within 7 days.
	// If `POINT_IN_TIME_RECOVERY_DISABLED` is selected, reads are supported on any version of the data from within the past 1 hour.
	// Default value is `POINT_IN_TIME_RECOVERY_DISABLED`.
	// Possible values are: `POINT_IN_TIME_RECOVERY_ENABLED`, `POINT_IN_TIME_RECOVERY_DISABLED`.
	PointInTimeRecoveryEnablement 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

func (DatabaseArgs) ElementType() reflect.Type

type DatabaseArray

type DatabaseArray []DatabaseInput

func (DatabaseArray) ElementType

func (DatabaseArray) ElementType() reflect.Type

func (DatabaseArray) ToDatabaseArrayOutput

func (i DatabaseArray) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArray) ToDatabaseArrayOutputWithContext

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

type DatabaseArrayInput

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

type DatabaseArrayOutput struct{ *pulumi.OutputState }

func (DatabaseArrayOutput) ElementType

func (DatabaseArrayOutput) ElementType() reflect.Type

func (DatabaseArrayOutput) Index

func (DatabaseArrayOutput) ToDatabaseArrayOutput

func (o DatabaseArrayOutput) ToDatabaseArrayOutput() DatabaseArrayOutput

func (DatabaseArrayOutput) ToDatabaseArrayOutputWithContext

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

type DatabaseCmekConfig

type DatabaseCmekConfig struct {
	// (Output)
	// Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
	// During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be
	// multiple in-use key versions.
	// The expected format is
	// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
	ActiveKeyVersions []string `pulumi:"activeKeyVersions"`
	// The resource ID of a Cloud KMS key. If set, the database created will
	// be a Customer-managed Encryption Key (CMEK) database encrypted with
	// this key. This feature is allowlist only in initial launch.
	// Only keys in the same location as this database are allowed to be used
	// for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS
	// multi-region us. For Firestore's eur3 multi-region, this corresponds to
	// Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations.
	// This value should be the KMS key resource ID in the format of
	// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
	// How to retrive this resource ID is listed at
	// https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.
	KmsKeyName string `pulumi:"kmsKeyName"`
}

type DatabaseCmekConfigArgs

type DatabaseCmekConfigArgs struct {
	// (Output)
	// Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions).
	// During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be
	// multiple in-use key versions.
	// The expected format is
	// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.
	ActiveKeyVersions pulumi.StringArrayInput `pulumi:"activeKeyVersions"`
	// The resource ID of a Cloud KMS key. If set, the database created will
	// be a Customer-managed Encryption Key (CMEK) database encrypted with
	// this key. This feature is allowlist only in initial launch.
	// Only keys in the same location as this database are allowed to be used
	// for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS
	// multi-region us. For Firestore's eur3 multi-region, this corresponds to
	// Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations.
	// This value should be the KMS key resource ID in the format of
	// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.
	// How to retrive this resource ID is listed at
	// https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
}

func (DatabaseCmekConfigArgs) ElementType

func (DatabaseCmekConfigArgs) ElementType() reflect.Type

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutput

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutput() DatabaseCmekConfigOutput

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutputWithContext

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutputWithContext(ctx context.Context) DatabaseCmekConfigOutput

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutput

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutputWithContext

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutputWithContext(ctx context.Context) DatabaseCmekConfigPtrOutput

type DatabaseCmekConfigInput

type DatabaseCmekConfigInput interface {
	pulumi.Input

	ToDatabaseCmekConfigOutput() DatabaseCmekConfigOutput
	ToDatabaseCmekConfigOutputWithContext(context.Context) DatabaseCmekConfigOutput
}

DatabaseCmekConfigInput is an input type that accepts DatabaseCmekConfigArgs and DatabaseCmekConfigOutput values. You can construct a concrete instance of `DatabaseCmekConfigInput` via:

DatabaseCmekConfigArgs{...}

type DatabaseCmekConfigOutput

type DatabaseCmekConfigOutput struct{ *pulumi.OutputState }

func (DatabaseCmekConfigOutput) ActiveKeyVersions

func (o DatabaseCmekConfigOutput) ActiveKeyVersions() pulumi.StringArrayOutput

(Output) Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be multiple in-use key versions. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.

func (DatabaseCmekConfigOutput) ElementType

func (DatabaseCmekConfigOutput) ElementType() reflect.Type

func (DatabaseCmekConfigOutput) KmsKeyName

The resource ID of a Cloud KMS key. If set, the database created will be a Customer-managed Encryption Key (CMEK) database encrypted with this key. This feature is allowlist only in initial launch. Only keys in the same location as this database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. This value should be the KMS key resource ID in the format of `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. How to retrive this resource ID is listed at https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutput

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutput() DatabaseCmekConfigOutput

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutputWithContext

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutputWithContext(ctx context.Context) DatabaseCmekConfigOutput

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutput

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutputWithContext

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutputWithContext(ctx context.Context) DatabaseCmekConfigPtrOutput

type DatabaseCmekConfigPtrInput

type DatabaseCmekConfigPtrInput interface {
	pulumi.Input

	ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput
	ToDatabaseCmekConfigPtrOutputWithContext(context.Context) DatabaseCmekConfigPtrOutput
}

DatabaseCmekConfigPtrInput is an input type that accepts DatabaseCmekConfigArgs, DatabaseCmekConfigPtr and DatabaseCmekConfigPtrOutput values. You can construct a concrete instance of `DatabaseCmekConfigPtrInput` via:

        DatabaseCmekConfigArgs{...}

or:

        nil

type DatabaseCmekConfigPtrOutput

type DatabaseCmekConfigPtrOutput struct{ *pulumi.OutputState }

func (DatabaseCmekConfigPtrOutput) ActiveKeyVersions

(Output) Currently in-use KMS key versions (https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). During key rotation (https://cloud.google.com/kms/docs/key-rotation), there can be multiple in-use key versions. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.

func (DatabaseCmekConfigPtrOutput) Elem

func (DatabaseCmekConfigPtrOutput) ElementType

func (DatabaseCmekConfigPtrOutput) KmsKeyName

The resource ID of a Cloud KMS key. If set, the database created will be a Customer-managed Encryption Key (CMEK) database encrypted with this key. This feature is allowlist only in initial launch. Only keys in the same location as this database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. This value should be the KMS key resource ID in the format of `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. How to retrive this resource ID is listed at https://cloud.google.com/kms/docs/getting-resource-ids#getting_the_id_for_a_key_and_version.

func (DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutput

func (o DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutputWithContext

func (o DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutputWithContext(ctx context.Context) DatabaseCmekConfigPtrOutput

type DatabaseInput

type DatabaseInput interface {
	pulumi.Input

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

type DatabaseMap

type DatabaseMap map[string]DatabaseInput

func (DatabaseMap) ElementType

func (DatabaseMap) ElementType() reflect.Type

func (DatabaseMap) ToDatabaseMapOutput

func (i DatabaseMap) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMap) ToDatabaseMapOutputWithContext

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

type DatabaseMapInput

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

type DatabaseMapOutput struct{ *pulumi.OutputState }

func (DatabaseMapOutput) ElementType

func (DatabaseMapOutput) ElementType() reflect.Type

func (DatabaseMapOutput) MapIndex

func (DatabaseMapOutput) ToDatabaseMapOutput

func (o DatabaseMapOutput) ToDatabaseMapOutput() DatabaseMapOutput

func (DatabaseMapOutput) ToDatabaseMapOutputWithContext

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

type DatabaseOutput

type DatabaseOutput struct{ *pulumi.OutputState }

func (DatabaseOutput) AppEngineIntegrationMode

func (o DatabaseOutput) AppEngineIntegrationMode() pulumi.StringOutput

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

func (DatabaseOutput) CmekConfig

The CMEK (Customer Managed Encryption Key) configuration for a Firestore database. If not present, the database is secured by the default Google encryption key. Structure is documented below.

func (DatabaseOutput) ConcurrencyMode

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

func (o DatabaseOutput) CreateTime() pulumi.StringOutput

Output only. The timestamp at which this database was created.

func (DatabaseOutput) DeleteProtectionState

func (o DatabaseOutput) DeleteProtectionState() pulumi.StringOutput

func (DatabaseOutput) DeletionPolicy

func (o DatabaseOutput) DeletionPolicy() pulumi.StringPtrOutput

func (DatabaseOutput) EarliestVersionTime

func (o DatabaseOutput) EarliestVersionTime() pulumi.StringOutput

Output only. The earliest timestamp at which older versions of the data can be read from the database. See versionRetentionPeriod above; this field is populated with now - versionRetentionPeriod. This value is continuously updated, and becomes stale the moment it is queried. If you are using this value to recover data, make sure to account for the time from the moment when the value is queried to the moment when you initiate the recovery. 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".

func (DatabaseOutput) ElementType

func (DatabaseOutput) ElementType() reflect.Type

func (DatabaseOutput) Etag

Output only. 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

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

func (o DatabaseOutput) LocationId() pulumi.StringOutput

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

func (DatabaseOutput) Name

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) PointInTimeRecoveryEnablement

func (o DatabaseOutput) PointInTimeRecoveryEnablement() pulumi.StringPtrOutput

Whether to enable the PITR feature on this database. If `POINT_IN_TIME_RECOVERY_ENABLED` is selected, reads are supported on selected versions of the data from within the past 7 days. versionRetentionPeriod and earliestVersionTime can be used to determine the supported versions. These include reads against any timestamp within the past hour and reads against 1-minute snapshots beyond 1 hour and within 7 days. If `POINT_IN_TIME_RECOVERY_DISABLED` is selected, reads are supported on any version of the data from within the past 1 hour. Default value is `POINT_IN_TIME_RECOVERY_DISABLED`. Possible values are: `POINT_IN_TIME_RECOVERY_ENABLED`, `POINT_IN_TIME_RECOVERY_DISABLED`.

func (DatabaseOutput) Project

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

func (o DatabaseOutput) ToDatabaseOutput() DatabaseOutput

func (DatabaseOutput) ToDatabaseOutputWithContext

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

func (DatabaseOutput) Type

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`.

***

func (DatabaseOutput) Uid

Output only. The system-generated UUID4 for this Database.

func (DatabaseOutput) UpdateTime

func (o DatabaseOutput) UpdateTime() pulumi.StringOutput

Output only. The timestamp at which this database was most recently updated.

func (DatabaseOutput) VersionRetentionPeriod

func (o DatabaseOutput) VersionRetentionPeriod() pulumi.StringOutput

Output only. The period during which past versions of data are retained in the database. Any read or query can specify a readTime within this window, and will read the state of the database at that time. If the PITR feature is enabled, the retention period is 7 days. Otherwise, the retention period is 1 hour. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

type DatabaseState

type DatabaseState struct {
	// The App Engine integration mode to use for this database.
	// Possible values are: `ENABLED`, `DISABLED`.
	AppEngineIntegrationMode pulumi.StringPtrInput
	// The CMEK (Customer Managed Encryption Key) configuration for a Firestore
	// database. If not present, the database is secured by the default Google
	// encryption key.
	// Structure is documented below.
	CmekConfig DatabaseCmekConfigPtrInput
	// The concurrency control mode to use for this database.
	// Possible values are: `OPTIMISTIC`, `PESSIMISTIC`, `OPTIMISTIC_WITH_ENTITY_GROUPS`.
	ConcurrencyMode pulumi.StringPtrInput
	// Output only. The timestamp at which this database was created.
	CreateTime            pulumi.StringPtrInput
	DeleteProtectionState pulumi.StringPtrInput
	DeletionPolicy        pulumi.StringPtrInput
	// Output only. The earliest timestamp at which older versions of the data can be read from the database. See versionRetentionPeriod above; this field is populated with now - versionRetentionPeriod.
	// This value is continuously updated, and becomes stale the moment it is queried. If you are using this value to recover data, make sure to account for the time from the moment when the value is queried to the moment when you initiate the recovery.
	// 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".
	EarliestVersionTime pulumi.StringPtrInput
	// Output only. 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 locations 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
	// Whether to enable the PITR feature on this database.
	// If `POINT_IN_TIME_RECOVERY_ENABLED` is selected, reads are supported on selected versions of the data from within the past 7 days.
	// versionRetentionPeriod and earliestVersionTime can be used to determine the supported versions. These include reads against any timestamp within the past hour
	// and reads against 1-minute snapshots beyond 1 hour and within 7 days.
	// If `POINT_IN_TIME_RECOVERY_DISABLED` is selected, reads are supported on any version of the data from within the past 1 hour.
	// Default value is `POINT_IN_TIME_RECOVERY_DISABLED`.
	// Possible values are: `POINT_IN_TIME_RECOVERY_ENABLED`, `POINT_IN_TIME_RECOVERY_DISABLED`.
	PointInTimeRecoveryEnablement 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
	// Output only. The system-generated UUID4 for this Database.
	Uid pulumi.StringPtrInput
	// Output only. The timestamp at which this database was most recently updated.
	UpdateTime pulumi.StringPtrInput
	// Output only. The period during which past versions of data are retained in the database.
	// Any read or query can specify a readTime within this window, and will read the state of the database at that time.
	// If the PITR feature is enabled, the retention period is 7 days. Otherwise, the retention period is 1 hour.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	VersionRetentionPeriod pulumi.StringPtrInput
}

func (DatabaseState) ElementType

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 document. 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/v8/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/projects"
"github.com/pulumi/pulumi-time/sdk/go/time"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId:      pulumi.String("project-id"),
			Name:           pulumi.String("project-id"),
			OrgId:          pulumi.String("123456789"),
			DeletionPolicy: pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		wait60Seconds, err := time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{
			CreateDuration: "60s",
		}, pulumi.DependsOn([]pulumi.Resource{
			project,
		}))
		if err != nil {
			return err
		}
		firestore, err := projects.NewService(ctx, "firestore", &projects.ServiceArgs{
			Project: project.ProjectId,
			Service: pulumi.String("firestore.googleapis.com"),
		}, pulumi.DependsOn([]pulumi.Resource{
			wait60Seconds,
		}))
		if err != nil {
			return err
		}
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:    project.ProjectId,
			Name:       pulumi.String("(default)"),
			LocationId: pulumi.String("nam5"),
			Type:       pulumi.String("FIRESTORE_NATIVE"),
		}, pulumi.DependsOn([]pulumi.Resource{
			firestore,
		}))
		if err != nil {
			return err
		}
		_, err = firestore.NewDocument(ctx, "mydoc", &firestore.DocumentArgs{
			Project:    project.ProjectId,
			Database:   database.Name,
			Collection: pulumi.String("somenewcollection"),
			DocumentId: pulumi.String("my-doc-id"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Document Nested Document

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/projects"
"github.com/pulumi/pulumi-time/sdk/go/time"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.NewProject(ctx, "project", &organizations.ProjectArgs{
			ProjectId:      pulumi.String("project-id"),
			Name:           pulumi.String("project-id"),
			OrgId:          pulumi.String("123456789"),
			DeletionPolicy: pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		wait60Seconds, err := time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{
			CreateDuration: "60s",
		}, pulumi.DependsOn([]pulumi.Resource{
			project,
		}))
		if err != nil {
			return err
		}
		firestore, err := projects.NewService(ctx, "firestore", &projects.ServiceArgs{
			Project: project.ProjectId,
			Service: pulumi.String("firestore.googleapis.com"),
		}, pulumi.DependsOn([]pulumi.Resource{
			wait60Seconds,
		}))
		if err != nil {
			return err
		}
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:    project.ProjectId,
			Name:       pulumi.String("(default)"),
			LocationId: pulumi.String("nam5"),
			Type:       pulumi.String("FIRESTORE_NATIVE"),
		}, pulumi.DependsOn([]pulumi.Resource{
			firestore,
		}))
		if err != nil {
			return err
		}
		mydoc, err := firestore.NewDocument(ctx, "mydoc", &firestore.DocumentArgs{
			Project:    project.ProjectId,
			Database:   database.Name,
			Collection: pulumi.String("somenewcollection"),
			DocumentId: pulumi.String("my-doc-id"),
			Fields:     pulumi.String("{\"something\":{\"mapValue\":{\"fields\":{\"akey\":{\"stringValue\":\"avalue\"}}}}}"),
		})
		if err != nil {
			return err
		}
		subDocument, err := firestore.NewDocument(ctx, "sub_document", &firestore.DocumentArgs{
			Project:  project.ProjectId,
			Database: database.Name,
			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\"}}}}}"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewDocument(ctx, "sub_sub_document", &firestore.DocumentArgs{
			Project:  project.ProjectId,
			Database: database.Name,
			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\"}}}}}"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Document can be imported using any of these accepted formats:

* `{{name}}`

When using the `pulumi import` command, Document can be imported using one of the formats above. For example:

```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

func (o DocumentOutput) Collection() pulumi.StringOutput

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

func (DocumentOutput) CreateTime

func (o DocumentOutput) CreateTime() pulumi.StringOutput

Creation timestamp in RFC3339 format.

func (DocumentOutput) Database

func (o DocumentOutput) Database() pulumi.StringPtrOutput

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

func (DocumentOutput) DocumentId

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

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

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

func (DocumentOutput) Path

A relative path to the collection this document exists within

func (DocumentOutput) Project

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

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 document. 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

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"`
	// The TTL configuration for this Field. If set to an empty block (i.e. `ttlConfig {}`), a TTL policy is configured based on the field. If unset, a TTL policy is not configured (or will be disabled upon updating the resource).
	// 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/v8/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewField(ctx, "basic", &firestore.FieldArgs{
			Project:    pulumi.String("my-project-name"),
			Database:   database.Name,
			Collection: pulumi.String("chatrooms__16511"),
			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"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Field Timestamp

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewField(ctx, "timestamp", &firestore.FieldArgs{
			Project:     pulumi.String("my-project-name"),
			Database:    database.Name,
			Collection:  pulumi.String("chatrooms"),
			Field:       pulumi.String("timestamp"),
			TtlConfig:   nil,
			IndexConfig: nil,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Field Match Override

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_ENABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewField(ctx, "match_override", &firestore.FieldArgs{
			Project:    pulumi.String("my-project-name"),
			Database:   database.Name,
			Collection: pulumi.String("chatrooms__8493"),
			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"),
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Field can be imported using any of these accepted formats:

* `{{name}}`

When using the `pulumi import` command, Field can be imported using one of the formats above. For example:

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

func GetField

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

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

func (*Field) ElementType() reflect.Type

func (*Field) ToFieldOutput

func (i *Field) ToFieldOutput() FieldOutput

func (*Field) ToFieldOutputWithContext

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

type FieldArgs

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
	// The TTL configuration for this Field. If set to an empty block (i.e. `ttlConfig {}`), a TTL policy is configured based on the field. If unset, a TTL policy is not configured (or will be disabled upon updating the resource).
	// Structure is documented below.
	TtlConfig FieldTtlConfigPtrInput
}

The set of arguments for constructing a Field resource.

func (FieldArgs) ElementType

func (FieldArgs) ElementType() reflect.Type

type FieldArray

type FieldArray []FieldInput

func (FieldArray) ElementType

func (FieldArray) ElementType() reflect.Type

func (FieldArray) ToFieldArrayOutput

func (i FieldArray) ToFieldArrayOutput() FieldArrayOutput

func (FieldArray) ToFieldArrayOutputWithContext

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

type FieldArrayInput

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

type FieldArrayOutput struct{ *pulumi.OutputState }

func (FieldArrayOutput) ElementType

func (FieldArrayOutput) ElementType() reflect.Type

func (FieldArrayOutput) Index

func (FieldArrayOutput) ToFieldArrayOutput

func (o FieldArrayOutput) ToFieldArrayOutput() FieldArrayOutput

func (FieldArrayOutput) ToFieldArrayOutputWithContext

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

type FieldIndexConfig

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

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

func (FieldIndexConfigArgs) ElementType() reflect.Type

func (FieldIndexConfigArgs) ToFieldIndexConfigOutput

func (i FieldIndexConfigArgs) ToFieldIndexConfigOutput() FieldIndexConfigOutput

func (FieldIndexConfigArgs) ToFieldIndexConfigOutputWithContext

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

func (FieldIndexConfigArgs) ToFieldIndexConfigPtrOutput

func (i FieldIndexConfigArgs) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigArgs) ToFieldIndexConfigPtrOutputWithContext

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

type FieldIndexConfigIndex

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

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

func (FieldIndexConfigIndexArgs) ElementType() reflect.Type

func (FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutput

func (i FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutput() FieldIndexConfigIndexOutput

func (FieldIndexConfigIndexArgs) ToFieldIndexConfigIndexOutputWithContext

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

type FieldIndexConfigIndexArray

type FieldIndexConfigIndexArray []FieldIndexConfigIndexInput

func (FieldIndexConfigIndexArray) ElementType

func (FieldIndexConfigIndexArray) ElementType() reflect.Type

func (FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutput

func (i FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutput() FieldIndexConfigIndexArrayOutput

func (FieldIndexConfigIndexArray) ToFieldIndexConfigIndexArrayOutputWithContext

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

type FieldIndexConfigIndexArrayInput

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

type FieldIndexConfigIndexArrayOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigIndexArrayOutput) ElementType

func (FieldIndexConfigIndexArrayOutput) Index

func (FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutput

func (o FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutput() FieldIndexConfigIndexArrayOutput

func (FieldIndexConfigIndexArrayOutput) ToFieldIndexConfigIndexArrayOutputWithContext

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

type FieldIndexConfigIndexInput

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

type FieldIndexConfigIndexOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigIndexOutput) ArrayConfig

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

func (FieldIndexConfigIndexOutput) ElementType

func (FieldIndexConfigIndexOutput) 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 (FieldIndexConfigIndexOutput) QueryScope

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

func (o FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutput() FieldIndexConfigIndexOutput

func (FieldIndexConfigIndexOutput) ToFieldIndexConfigIndexOutputWithContext

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

type FieldIndexConfigInput

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

type FieldIndexConfigOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigOutput) ElementType

func (FieldIndexConfigOutput) ElementType() reflect.Type

func (FieldIndexConfigOutput) Indexes

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

func (FieldIndexConfigOutput) ToFieldIndexConfigOutput

func (o FieldIndexConfigOutput) ToFieldIndexConfigOutput() FieldIndexConfigOutput

func (FieldIndexConfigOutput) ToFieldIndexConfigOutputWithContext

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

func (FieldIndexConfigOutput) ToFieldIndexConfigPtrOutput

func (o FieldIndexConfigOutput) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigOutput) ToFieldIndexConfigPtrOutputWithContext

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

type FieldIndexConfigPtrInput

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

type FieldIndexConfigPtrOutput

type FieldIndexConfigPtrOutput struct{ *pulumi.OutputState }

func (FieldIndexConfigPtrOutput) Elem

func (FieldIndexConfigPtrOutput) ElementType

func (FieldIndexConfigPtrOutput) ElementType() reflect.Type

func (FieldIndexConfigPtrOutput) Indexes

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

func (FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutput

func (o FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutput() FieldIndexConfigPtrOutput

func (FieldIndexConfigPtrOutput) ToFieldIndexConfigPtrOutputWithContext

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

type FieldInput

type FieldInput interface {
	pulumi.Input

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

type FieldMap

type FieldMap map[string]FieldInput

func (FieldMap) ElementType

func (FieldMap) ElementType() reflect.Type

func (FieldMap) ToFieldMapOutput

func (i FieldMap) ToFieldMapOutput() FieldMapOutput

func (FieldMap) ToFieldMapOutputWithContext

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

type FieldMapInput

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

type FieldMapOutput struct{ *pulumi.OutputState }

func (FieldMapOutput) ElementType

func (FieldMapOutput) ElementType() reflect.Type

func (FieldMapOutput) MapIndex

func (FieldMapOutput) ToFieldMapOutput

func (o FieldMapOutput) ToFieldMapOutput() FieldMapOutput

func (FieldMapOutput) ToFieldMapOutputWithContext

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

type FieldOutput

type FieldOutput struct{ *pulumi.OutputState }

func (FieldOutput) Collection

func (o FieldOutput) Collection() pulumi.StringOutput

The id of the collection group to configure.

func (FieldOutput) Database

func (o FieldOutput) Database() pulumi.StringPtrOutput

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

func (FieldOutput) ElementType

func (FieldOutput) ElementType() reflect.Type

func (FieldOutput) Field

func (o FieldOutput) Field() pulumi.StringOutput

The id of the field to configure.

***

func (FieldOutput) IndexConfig

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

func (o FieldOutput) Name() pulumi.StringOutput

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

func (FieldOutput) Project

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

func (o FieldOutput) ToFieldOutput() FieldOutput

func (FieldOutput) ToFieldOutputWithContext

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

func (FieldOutput) TtlConfig

func (o FieldOutput) TtlConfig() FieldTtlConfigPtrOutput

The TTL configuration for this Field. If set to an empty block (i.e. `ttlConfig {}`), a TTL policy is configured based on the field. If unset, a TTL policy is not configured (or will be disabled upon updating the resource). Structure is documented below.

type FieldState

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
	// The TTL configuration for this Field. If set to an empty block (i.e. `ttlConfig {}`), a TTL policy is configured based on the field. If unset, a TTL policy is not configured (or will be disabled upon updating the resource).
	// Structure is documented below.
	TtlConfig FieldTtlConfigPtrInput
}

func (FieldState) ElementType

func (FieldState) ElementType() reflect.Type

type FieldTtlConfig

type FieldTtlConfig struct {
	// (Output)
	// The state of TTL (time-to-live) configuration for documents that have this Field set.
	State *string `pulumi:"state"`
}

type FieldTtlConfigArgs

type FieldTtlConfigArgs struct {
	// (Output)
	// The state of TTL (time-to-live) configuration for documents that have this Field set.
	State pulumi.StringPtrInput `pulumi:"state"`
}

func (FieldTtlConfigArgs) ElementType

func (FieldTtlConfigArgs) ElementType() reflect.Type

func (FieldTtlConfigArgs) ToFieldTtlConfigOutput

func (i FieldTtlConfigArgs) ToFieldTtlConfigOutput() FieldTtlConfigOutput

func (FieldTtlConfigArgs) ToFieldTtlConfigOutputWithContext

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

func (FieldTtlConfigArgs) ToFieldTtlConfigPtrOutput

func (i FieldTtlConfigArgs) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigArgs) ToFieldTtlConfigPtrOutputWithContext

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

type FieldTtlConfigInput

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

type FieldTtlConfigOutput struct{ *pulumi.OutputState }

func (FieldTtlConfigOutput) ElementType

func (FieldTtlConfigOutput) ElementType() reflect.Type

func (FieldTtlConfigOutput) State

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

func (FieldTtlConfigOutput) ToFieldTtlConfigOutput

func (o FieldTtlConfigOutput) ToFieldTtlConfigOutput() FieldTtlConfigOutput

func (FieldTtlConfigOutput) ToFieldTtlConfigOutputWithContext

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

func (FieldTtlConfigOutput) ToFieldTtlConfigPtrOutput

func (o FieldTtlConfigOutput) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigOutput) ToFieldTtlConfigPtrOutputWithContext

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

type FieldTtlConfigPtrInput

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

type FieldTtlConfigPtrOutput

type FieldTtlConfigPtrOutput struct{ *pulumi.OutputState }

func (FieldTtlConfigPtrOutput) Elem

func (FieldTtlConfigPtrOutput) ElementType

func (FieldTtlConfigPtrOutput) ElementType() reflect.Type

func (FieldTtlConfigPtrOutput) State

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

func (FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutput

func (o FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutput() FieldTtlConfigPtrOutput

func (FieldTtlConfigPtrOutput) ToFieldTtlConfigPtrOutputWithContext

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

type Index

type Index struct {
	pulumi.CustomResourceState

	// The API scope at which a query is run. Default value: "ANY_API" Possible values: ["ANY_API", "DATASTORE_MODE_API"]
	ApiScope pulumi.StringPtrOutput `pulumi:"apiScope"`
	// 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 non-stored 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"`
	Project pulumi.StringOutput `pulumi:"project"`
	// The scope at which a query is run. Default value: "COLLECTION" Possible values: ["COLLECTION", "COLLECTION_GROUP",
	// "COLLECTION_RECURSIVE"]
	QueryScope pulumi.StringPtrOutput `pulumi:"queryScope"`
}

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

Both Firestore Native and Datastore Mode indexes are supported.
This resource manages composite indexes and not single field indexes.
To manage single field indexes, use the `firestore.Field` resource instead.

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 and `locationId` set to your chosen location. If you wish to use App Engine, you may instead create a `appengine.Application` resource. 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/v8/go/gcp/firestore"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_DISABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewIndex(ctx, "my-index", &firestore.IndexArgs{
			Project:    pulumi.String("my-project-name"),
			Database:   database.Name,
			Collection: pulumi.String("atestcollection"),
			Fields: firestore.IndexFieldArray{
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("name"),
					Order:     pulumi.String("ASCENDING"),
				},
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("description"),
					Order:     pulumi.String("DESCENDING"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Index Datastore Mode

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id-dm"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("DATASTORE_MODE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_DISABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewIndex(ctx, "my-index", &firestore.IndexArgs{
			Project:    pulumi.String("my-project-name"),
			Database:   database.Name,
			Collection: pulumi.String("atestcollection"),
			QueryScope: pulumi.String("COLLECTION_RECURSIVE"),
			ApiScope:   pulumi.String("DATASTORE_MODE_API"),
			Fields: firestore.IndexFieldArray{
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("name"),
					Order:     pulumi.String("ASCENDING"),
				},
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("description"),
					Order:     pulumi.String("DESCENDING"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Firestore Index Vector

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		database, err := firestore.NewDatabase(ctx, "database", &firestore.DatabaseArgs{
			Project:               pulumi.String("my-project-name"),
			Name:                  pulumi.String("database-id-vector"),
			LocationId:            pulumi.String("nam5"),
			Type:                  pulumi.String("FIRESTORE_NATIVE"),
			DeleteProtectionState: pulumi.String("DELETE_PROTECTION_DISABLED"),
			DeletionPolicy:        pulumi.String("DELETE"),
		})
		if err != nil {
			return err
		}
		_, err = firestore.NewIndex(ctx, "my-index", &firestore.IndexArgs{
			Project:    pulumi.String("my-project-name"),
			Database:   database.Name,
			Collection: pulumi.String("atestcollection"),
			Fields: firestore.IndexFieldArray{
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("field_name"),
					Order:     pulumi.String("ASCENDING"),
				},
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("__name__"),
					Order:     pulumi.String("ASCENDING"),
				},
				&firestore.IndexFieldArgs{
					FieldPath: pulumi.String("description"),
					VectorConfig: &firestore.IndexFieldVectorConfigArgs{
						Dimension: pulumi.Int(128),
						Flat:      nil,
					},
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Index can be imported using any of these accepted formats:

* `{{name}}`

When using the `pulumi import` command, Index can be imported using one of the formats above. For example:

```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 API scope at which a query is run. Default value: "ANY_API" Possible values: ["ANY_API", "DATASTORE_MODE_API"]
	ApiScope pulumi.StringPtrInput
	// 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 non-stored 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
	Project pulumi.StringPtrInput
	// The scope at which a query is run. Default value: "COLLECTION" Possible values: ["COLLECTION", "COLLECTION_GROUP",
	// "COLLECTION_RECURSIVE"]
	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`, `arrayConfig`, and
	// `vectorConfig` 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`, `arrayConfig`, and `vectorConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order *string `pulumi:"order"`
	// Indicates that this field supports vector search operations. Only one of `order`, `arrayConfig`, and
	// `vectorConfig` can be specified. Vector Fields should come after the field path `__name__`.
	// Structure is documented below.
	VectorConfig *IndexFieldVectorConfig `pulumi:"vectorConfig"`
}

type IndexFieldArgs

type IndexFieldArgs struct {
	// Indicates that this field supports operations on arrayValues. Only one of `order`, `arrayConfig`, and
	// `vectorConfig` 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`, `arrayConfig`, and `vectorConfig` can be specified.
	// Possible values are: `ASCENDING`, `DESCENDING`.
	Order pulumi.StringPtrInput `pulumi:"order"`
	// Indicates that this field supports vector search operations. Only one of `order`, `arrayConfig`, and
	// `vectorConfig` can be specified. Vector Fields should come after the field path `__name__`.
	// Structure is documented below.
	VectorConfig IndexFieldVectorConfigPtrInput `pulumi:"vectorConfig"`
}

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`, `arrayConfig`, and `vectorConfig` 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`, `arrayConfig`, and `vectorConfig` 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

func (IndexFieldOutput) VectorConfig

Indicates that this field supports vector search operations. Only one of `order`, `arrayConfig`, and `vectorConfig` can be specified. Vector Fields should come after the field path `__name__`. Structure is documented below.

type IndexFieldVectorConfig

type IndexFieldVectorConfig struct {
	// The resulting index will only include vectors of this dimension, and can be used for vector search
	// with the same dimension.
	Dimension *int `pulumi:"dimension"`
	// Indicates the vector index is a flat index.
	//
	// ***
	Flat *IndexFieldVectorConfigFlat `pulumi:"flat"`
}

type IndexFieldVectorConfigArgs

type IndexFieldVectorConfigArgs struct {
	// The resulting index will only include vectors of this dimension, and can be used for vector search
	// with the same dimension.
	Dimension pulumi.IntPtrInput `pulumi:"dimension"`
	// Indicates the vector index is a flat index.
	//
	// ***
	Flat IndexFieldVectorConfigFlatPtrInput `pulumi:"flat"`
}

func (IndexFieldVectorConfigArgs) ElementType

func (IndexFieldVectorConfigArgs) ElementType() reflect.Type

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutput

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutput() IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutputWithContext

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutputWithContext(ctx context.Context) IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutput

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutputWithContext

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigPtrOutput

type IndexFieldVectorConfigFlat

type IndexFieldVectorConfigFlat struct {
}

type IndexFieldVectorConfigFlatArgs

type IndexFieldVectorConfigFlatArgs struct {
}

func (IndexFieldVectorConfigFlatArgs) ElementType

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutput

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutput() IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutputWithContext

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutputWithContext(ctx context.Context) IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutput

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutputWithContext

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigFlatPtrOutput

type IndexFieldVectorConfigFlatInput

type IndexFieldVectorConfigFlatInput interface {
	pulumi.Input

	ToIndexFieldVectorConfigFlatOutput() IndexFieldVectorConfigFlatOutput
	ToIndexFieldVectorConfigFlatOutputWithContext(context.Context) IndexFieldVectorConfigFlatOutput
}

IndexFieldVectorConfigFlatInput is an input type that accepts IndexFieldVectorConfigFlatArgs and IndexFieldVectorConfigFlatOutput values. You can construct a concrete instance of `IndexFieldVectorConfigFlatInput` via:

IndexFieldVectorConfigFlatArgs{...}

type IndexFieldVectorConfigFlatOutput

type IndexFieldVectorConfigFlatOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigFlatOutput) ElementType

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutput

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutput() IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutputWithContext

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutputWithContext(ctx context.Context) IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutput

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigFlatPtrOutput

type IndexFieldVectorConfigFlatPtrInput

type IndexFieldVectorConfigFlatPtrInput interface {
	pulumi.Input

	ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput
	ToIndexFieldVectorConfigFlatPtrOutputWithContext(context.Context) IndexFieldVectorConfigFlatPtrOutput
}

IndexFieldVectorConfigFlatPtrInput is an input type that accepts IndexFieldVectorConfigFlatArgs, IndexFieldVectorConfigFlatPtr and IndexFieldVectorConfigFlatPtrOutput values. You can construct a concrete instance of `IndexFieldVectorConfigFlatPtrInput` via:

        IndexFieldVectorConfigFlatArgs{...}

or:

        nil

type IndexFieldVectorConfigFlatPtrOutput

type IndexFieldVectorConfigFlatPtrOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigFlatPtrOutput) Elem

func (IndexFieldVectorConfigFlatPtrOutput) ElementType

func (IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutput

func (o IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext

func (o IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigFlatPtrOutput

type IndexFieldVectorConfigInput

type IndexFieldVectorConfigInput interface {
	pulumi.Input

	ToIndexFieldVectorConfigOutput() IndexFieldVectorConfigOutput
	ToIndexFieldVectorConfigOutputWithContext(context.Context) IndexFieldVectorConfigOutput
}

IndexFieldVectorConfigInput is an input type that accepts IndexFieldVectorConfigArgs and IndexFieldVectorConfigOutput values. You can construct a concrete instance of `IndexFieldVectorConfigInput` via:

IndexFieldVectorConfigArgs{...}

type IndexFieldVectorConfigOutput

type IndexFieldVectorConfigOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigOutput) Dimension

The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension.

func (IndexFieldVectorConfigOutput) ElementType

func (IndexFieldVectorConfigOutput) Flat

Indicates the vector index is a flat index.

***

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutput

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutput() IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutputWithContext

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutputWithContext(ctx context.Context) IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutput

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutputWithContext

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigPtrOutput

type IndexFieldVectorConfigPtrInput

type IndexFieldVectorConfigPtrInput interface {
	pulumi.Input

	ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput
	ToIndexFieldVectorConfigPtrOutputWithContext(context.Context) IndexFieldVectorConfigPtrOutput
}

IndexFieldVectorConfigPtrInput is an input type that accepts IndexFieldVectorConfigArgs, IndexFieldVectorConfigPtr and IndexFieldVectorConfigPtrOutput values. You can construct a concrete instance of `IndexFieldVectorConfigPtrInput` via:

        IndexFieldVectorConfigArgs{...}

or:

        nil

type IndexFieldVectorConfigPtrOutput

type IndexFieldVectorConfigPtrOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigPtrOutput) Dimension

The resulting index will only include vectors of this dimension, and can be used for vector search with the same dimension.

func (IndexFieldVectorConfigPtrOutput) Elem

func (IndexFieldVectorConfigPtrOutput) ElementType

func (IndexFieldVectorConfigPtrOutput) Flat

Indicates the vector index is a flat index.

***

func (IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutput

func (o IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutputWithContext

func (o IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutputWithContext(ctx context.Context) IndexFieldVectorConfigPtrOutput

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) ApiScope

func (o IndexOutput) ApiScope() pulumi.StringPtrOutput

The API scope at which a query is run. Default value: "ANY_API" Possible values: ["ANY_API", "DATASTORE_MODE_API"]

func (IndexOutput) Collection

func (o IndexOutput) Collection() pulumi.StringOutput

The collection being indexed.

func (IndexOutput) Database

func (o IndexOutput) Database() pulumi.StringPtrOutput

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

func (IndexOutput) ElementType

func (IndexOutput) ElementType() reflect.Type

func (IndexOutput) Fields

The fields supported by this index. The last non-stored 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

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

func (o IndexOutput) Project() pulumi.StringOutput

func (IndexOutput) QueryScope

func (o IndexOutput) QueryScope() pulumi.StringPtrOutput

The scope at which a query is run. Default value: "COLLECTION" Possible values: ["COLLECTION", "COLLECTION_GROUP", "COLLECTION_RECURSIVE"]

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 API scope at which a query is run. Default value: "ANY_API" Possible values: ["ANY_API", "DATASTORE_MODE_API"]
	ApiScope pulumi.StringPtrInput
	// 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 non-stored 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
	Project pulumi.StringPtrInput
	// The scope at which a query is run. Default value: "COLLECTION" Possible values: ["COLLECTION", "COLLECTION_GROUP",
	// "COLLECTION_RECURSIVE"]
	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