firestore

package
v7.20.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackupSchedule added in v7.1.0

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/v7/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/v7/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 added in v7.1.0

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 added in v7.1.0

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 added in v7.1.0

func (*BackupSchedule) ElementType() reflect.Type

func (*BackupSchedule) ToBackupScheduleOutput added in v7.1.0

func (i *BackupSchedule) ToBackupScheduleOutput() BackupScheduleOutput

func (*BackupSchedule) ToBackupScheduleOutputWithContext added in v7.1.0

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

type BackupScheduleArgs added in v7.1.0

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 added in v7.1.0

func (BackupScheduleArgs) ElementType() reflect.Type

type BackupScheduleArray added in v7.1.0

type BackupScheduleArray []BackupScheduleInput

func (BackupScheduleArray) ElementType added in v7.1.0

func (BackupScheduleArray) ElementType() reflect.Type

func (BackupScheduleArray) ToBackupScheduleArrayOutput added in v7.1.0

func (i BackupScheduleArray) ToBackupScheduleArrayOutput() BackupScheduleArrayOutput

func (BackupScheduleArray) ToBackupScheduleArrayOutputWithContext added in v7.1.0

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

type BackupScheduleArrayInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleArrayOutput struct{ *pulumi.OutputState }

func (BackupScheduleArrayOutput) ElementType added in v7.1.0

func (BackupScheduleArrayOutput) ElementType() reflect.Type

func (BackupScheduleArrayOutput) Index added in v7.1.0

func (BackupScheduleArrayOutput) ToBackupScheduleArrayOutput added in v7.1.0

func (o BackupScheduleArrayOutput) ToBackupScheduleArrayOutput() BackupScheduleArrayOutput

func (BackupScheduleArrayOutput) ToBackupScheduleArrayOutputWithContext added in v7.1.0

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

type BackupScheduleDailyRecurrence added in v7.1.0

type BackupScheduleDailyRecurrence struct {
}

type BackupScheduleDailyRecurrenceArgs added in v7.1.0

type BackupScheduleDailyRecurrenceArgs struct {
}

func (BackupScheduleDailyRecurrenceArgs) ElementType added in v7.1.0

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutput added in v7.1.0

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutput() BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrenceOutputWithContext added in v7.1.0

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

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutput added in v7.1.0

func (i BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrenceArgs) ToBackupScheduleDailyRecurrencePtrOutputWithContext added in v7.1.0

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

type BackupScheduleDailyRecurrenceInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleDailyRecurrenceOutput struct{ *pulumi.OutputState }

func (BackupScheduleDailyRecurrenceOutput) ElementType added in v7.1.0

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutput added in v7.1.0

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutput() BackupScheduleDailyRecurrenceOutput

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrenceOutputWithContext added in v7.1.0

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

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutput added in v7.1.0

func (o BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrenceOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext added in v7.1.0

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

type BackupScheduleDailyRecurrencePtrInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleDailyRecurrencePtrOutput struct{ *pulumi.OutputState }

func (BackupScheduleDailyRecurrencePtrOutput) Elem added in v7.1.0

func (BackupScheduleDailyRecurrencePtrOutput) ElementType added in v7.1.0

func (BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutput added in v7.1.0

func (o BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutput() BackupScheduleDailyRecurrencePtrOutput

func (BackupScheduleDailyRecurrencePtrOutput) ToBackupScheduleDailyRecurrencePtrOutputWithContext added in v7.1.0

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

type BackupScheduleInput added in v7.1.0

type BackupScheduleInput interface {
	pulumi.Input

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

type BackupScheduleMap added in v7.1.0

type BackupScheduleMap map[string]BackupScheduleInput

func (BackupScheduleMap) ElementType added in v7.1.0

func (BackupScheduleMap) ElementType() reflect.Type

func (BackupScheduleMap) ToBackupScheduleMapOutput added in v7.1.0

func (i BackupScheduleMap) ToBackupScheduleMapOutput() BackupScheduleMapOutput

func (BackupScheduleMap) ToBackupScheduleMapOutputWithContext added in v7.1.0

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

type BackupScheduleMapInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleMapOutput struct{ *pulumi.OutputState }

func (BackupScheduleMapOutput) ElementType added in v7.1.0

func (BackupScheduleMapOutput) ElementType() reflect.Type

func (BackupScheduleMapOutput) MapIndex added in v7.1.0

func (BackupScheduleMapOutput) ToBackupScheduleMapOutput added in v7.1.0

func (o BackupScheduleMapOutput) ToBackupScheduleMapOutput() BackupScheduleMapOutput

func (BackupScheduleMapOutput) ToBackupScheduleMapOutputWithContext added in v7.1.0

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

type BackupScheduleOutput added in v7.1.0

type BackupScheduleOutput struct{ *pulumi.OutputState }

func (BackupScheduleOutput) DailyRecurrence added in v7.1.0

For a schedule that runs daily.

func (BackupScheduleOutput) Database added in v7.1.0

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

func (BackupScheduleOutput) ElementType added in v7.1.0

func (BackupScheduleOutput) ElementType() reflect.Type

func (BackupScheduleOutput) Name added in v7.1.0

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

func (BackupScheduleOutput) Project added in v7.1.0

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

func (BackupScheduleOutput) Retention added in v7.1.0

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 added in v7.1.0

func (o BackupScheduleOutput) ToBackupScheduleOutput() BackupScheduleOutput

func (BackupScheduleOutput) ToBackupScheduleOutputWithContext added in v7.1.0

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

func (BackupScheduleOutput) WeeklyRecurrence added in v7.1.0

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

type BackupScheduleState added in v7.1.0

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 added in v7.1.0

func (BackupScheduleState) ElementType() reflect.Type

type BackupScheduleWeeklyRecurrence added in v7.1.0

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 added in v7.1.0

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 added in v7.1.0

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutput added in v7.1.0

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutput() BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrenceOutputWithContext added in v7.1.0

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

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutput added in v7.1.0

func (i BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrenceArgs) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext added in v7.1.0

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

type BackupScheduleWeeklyRecurrenceInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleWeeklyRecurrenceOutput struct{ *pulumi.OutputState }

func (BackupScheduleWeeklyRecurrenceOutput) Day added in v7.1.0

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

func (BackupScheduleWeeklyRecurrenceOutput) ElementType added in v7.1.0

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutput added in v7.1.0

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutput() BackupScheduleWeeklyRecurrenceOutput

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrenceOutputWithContext added in v7.1.0

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

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutput added in v7.1.0

func (o BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrenceOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext added in v7.1.0

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

type BackupScheduleWeeklyRecurrencePtrInput added in v7.1.0

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 added in v7.1.0

type BackupScheduleWeeklyRecurrencePtrOutput struct{ *pulumi.OutputState }

func (BackupScheduleWeeklyRecurrencePtrOutput) Day added in v7.1.0

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

func (BackupScheduleWeeklyRecurrencePtrOutput) Elem added in v7.1.0

func (BackupScheduleWeeklyRecurrencePtrOutput) ElementType added in v7.1.0

func (BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutput added in v7.1.0

func (o BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutput() BackupScheduleWeeklyRecurrencePtrOutput

func (BackupScheduleWeeklyRecurrencePtrOutput) ToBackupScheduleWeeklyRecurrencePtrOutputWithContext added in v7.1.0

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"`
	// State of delete protection for the database. When delete protection is enabled, this database cannot be deleted. The
	// default value is 'DELETE_PROTECTION_STATE_UNSPECIFIED', which is currently equivalent to 'DELETE_PROTECTION_DISABLED'.
	// **Note:** Additionally, to delete this database using 'terraform destroy', 'deletion_policy' must be set to 'DELETE'.
	// Possible values: ["DELETE_PROTECTION_STATE_UNSPECIFIED", "DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]
	DeleteProtectionState pulumi.StringOutput `pulumi:"deleteProtectionState"`
	// Deletion behavior for this database. If the deletion policy is 'ABANDON', the database will be removed from Terraform
	// state but not deleted from Google Cloud upon destruction. If the deletion policy is 'DELETE', the database will both be
	// removed from Terraform state and deleted from Google Cloud upon destruction. The default value is 'ABANDON'. See also
	// 'delete_protection'.
	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/v7/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/v7/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/v7/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v7/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
		}
		_, 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(),
			},
		})
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKeyIAMBinding(ctx, "firestore_cmek_keyuser", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-firestore.iam.gserviceaccount.com", project.Number)),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

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

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/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/v7/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/v7/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v7/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
		}
		_, 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(),
			},
		})
		if err != nil {
			return err
		}
		_, err = kms.NewCryptoKeyIAMBinding(ctx, "firestore_cmek_keyuser", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-firestore.iam.gserviceaccount.com", project.Number)),
			},
		})
		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
	// State of delete protection for the database. When delete protection is enabled, this database cannot be deleted. The
	// default value is 'DELETE_PROTECTION_STATE_UNSPECIFIED', which is currently equivalent to 'DELETE_PROTECTION_DISABLED'.
	// **Note:** Additionally, to delete this database using 'terraform destroy', 'deletion_policy' must be set to 'DELETE'.
	// Possible values: ["DELETE_PROTECTION_STATE_UNSPECIFIED", "DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]
	DeleteProtectionState pulumi.StringPtrInput
	// Deletion behavior for this database. If the deletion policy is 'ABANDON', the database will be removed from Terraform
	// state but not deleted from Google Cloud upon destruction. If the deletion policy is 'DELETE', the database will both be
	// removed from Terraform state and deleted from Google Cloud upon destruction. The default value is 'ABANDON'. See also
	// 'delete_protection'.
	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 added in v7.15.0

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 added in v7.15.0

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 added in v7.15.0

func (DatabaseCmekConfigArgs) ElementType() reflect.Type

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutput added in v7.15.0

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutput() DatabaseCmekConfigOutput

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigOutputWithContext added in v7.15.0

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

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutput added in v7.15.0

func (i DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigArgs) ToDatabaseCmekConfigPtrOutputWithContext added in v7.15.0

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

type DatabaseCmekConfigInput added in v7.15.0

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 added in v7.15.0

type DatabaseCmekConfigOutput struct{ *pulumi.OutputState }

func (DatabaseCmekConfigOutput) ActiveKeyVersions added in v7.15.0

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 added in v7.15.0

func (DatabaseCmekConfigOutput) ElementType() reflect.Type

func (DatabaseCmekConfigOutput) KmsKeyName added in v7.15.0

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 added in v7.15.0

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutput() DatabaseCmekConfigOutput

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigOutputWithContext added in v7.15.0

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

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutput added in v7.15.0

func (o DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigOutput) ToDatabaseCmekConfigPtrOutputWithContext added in v7.15.0

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

type DatabaseCmekConfigPtrInput added in v7.15.0

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

func DatabaseCmekConfigPtr added in v7.15.0

func DatabaseCmekConfigPtr(v *DatabaseCmekConfigArgs) DatabaseCmekConfigPtrInput

type DatabaseCmekConfigPtrOutput added in v7.15.0

type DatabaseCmekConfigPtrOutput struct{ *pulumi.OutputState }

func (DatabaseCmekConfigPtrOutput) ActiveKeyVersions added in v7.15.0

(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 added in v7.15.0

func (DatabaseCmekConfigPtrOutput) ElementType added in v7.15.0

func (DatabaseCmekConfigPtrOutput) KmsKeyName added in v7.15.0

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 added in v7.15.0

func (o DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutput() DatabaseCmekConfigPtrOutput

func (DatabaseCmekConfigPtrOutput) ToDatabaseCmekConfigPtrOutputWithContext added in v7.15.0

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 added in v7.15.0

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

State of delete protection for the database. When delete protection is enabled, this database cannot be deleted. The default value is 'DELETE_PROTECTION_STATE_UNSPECIFIED', which is currently equivalent to 'DELETE_PROTECTION_DISABLED'. **Note:** Additionally, to delete this database using 'terraform destroy', 'deletion_policy' must be set to 'DELETE'. Possible values: ["DELETE_PROTECTION_STATE_UNSPECIFIED", "DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]

func (DatabaseOutput) DeletionPolicy added in v7.3.0

func (o DatabaseOutput) DeletionPolicy() pulumi.StringPtrOutput

Deletion behavior for this database. If the deletion policy is 'ABANDON', the database will be removed from Terraform state but not deleted from Google Cloud upon destruction. If the deletion policy is 'DELETE', the database will both be removed from Terraform state and deleted from Google Cloud upon destruction. The default value is 'ABANDON'. See also 'delete_protection'.

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
	// State of delete protection for the database. When delete protection is enabled, this database cannot be deleted. The
	// default value is 'DELETE_PROTECTION_STATE_UNSPECIFIED', which is currently equivalent to 'DELETE_PROTECTION_DISABLED'.
	// **Note:** Additionally, to delete this database using 'terraform destroy', 'deletion_policy' must be set to 'DELETE'.
	// Possible values: ["DELETE_PROTECTION_STATE_UNSPECIFIED", "DELETE_PROTECTION_ENABLED", "DELETE_PROTECTION_DISABLED"]
	DeleteProtectionState pulumi.StringPtrInput
	// Deletion behavior for this database. If the deletion policy is 'ABANDON', the database will be removed from Terraform
	// state but not deleted from Google Cloud upon destruction. If the deletion policy is 'DELETE', the database will both be
	// removed from Terraform state and deleted from Google Cloud upon destruction. The default value is 'ABANDON'. See also
	// 'delete_protection'.
	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/v7/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/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"),
		})
		if err != nil {
			return err
		}
		_, err = time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{
			CreateDuration: "60s",
		})
		if err != nil {
			return err
		}
		_, err = projects.NewService(ctx, "firestore", &projects.ServiceArgs{
			Project: project.ProjectId,
			Service: pulumi.String("firestore.googleapis.com"),
		})
		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"),
		})
		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/v7/go/gcp/firestore"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/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"),
		})
		if err != nil {
			return err
		}
		_, err = time.NewSleep(ctx, "wait_60_seconds", &time.SleepArgs{
			CreateDuration: "60s",
		})
		if err != nil {
			return err
		}
		_, err = projects.NewService(ctx, "firestore", &projects.ServiceArgs{
			Project: project.ProjectId,
			Service: pulumi.String("firestore.googleapis.com"),
		})
		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"),
		})
		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/v7/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__34962"),
			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/v7/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/v7/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__74000"),
			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.

This resource manages composite indexes and not single

field indexes.

To get more information about Index, see:

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

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

## Example Usage

### Firestore Index Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v7/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/v7/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/v7/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 added in v7.19.0

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 added in v7.19.0

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 added in v7.19.0

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 added in v7.19.0

func (IndexFieldVectorConfigArgs) ElementType() reflect.Type

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutput added in v7.19.0

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutput() IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigOutputWithContext added in v7.19.0

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

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutput added in v7.19.0

func (i IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigArgs) ToIndexFieldVectorConfigPtrOutputWithContext added in v7.19.0

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

type IndexFieldVectorConfigFlat added in v7.19.0

type IndexFieldVectorConfigFlat struct {
}

type IndexFieldVectorConfigFlatArgs added in v7.19.0

type IndexFieldVectorConfigFlatArgs struct {
}

func (IndexFieldVectorConfigFlatArgs) ElementType added in v7.19.0

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutput added in v7.19.0

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutput() IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatOutputWithContext added in v7.19.0

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

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutput added in v7.19.0

func (i IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatArgs) ToIndexFieldVectorConfigFlatPtrOutputWithContext added in v7.19.0

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

type IndexFieldVectorConfigFlatInput added in v7.19.0

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 added in v7.19.0

type IndexFieldVectorConfigFlatOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigFlatOutput) ElementType added in v7.19.0

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutput added in v7.19.0

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutput() IndexFieldVectorConfigFlatOutput

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatOutputWithContext added in v7.19.0

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

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutput added in v7.19.0

func (o IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext added in v7.19.0

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

type IndexFieldVectorConfigFlatPtrInput added in v7.19.0

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

func IndexFieldVectorConfigFlatPtr added in v7.19.0

type IndexFieldVectorConfigFlatPtrOutput added in v7.19.0

type IndexFieldVectorConfigFlatPtrOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigFlatPtrOutput) Elem added in v7.19.0

func (IndexFieldVectorConfigFlatPtrOutput) ElementType added in v7.19.0

func (IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutput added in v7.19.0

func (o IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutput() IndexFieldVectorConfigFlatPtrOutput

func (IndexFieldVectorConfigFlatPtrOutput) ToIndexFieldVectorConfigFlatPtrOutputWithContext added in v7.19.0

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

type IndexFieldVectorConfigInput added in v7.19.0

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 added in v7.19.0

type IndexFieldVectorConfigOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigOutput) Dimension added in v7.19.0

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

func (IndexFieldVectorConfigOutput) ElementType added in v7.19.0

func (IndexFieldVectorConfigOutput) Flat added in v7.19.0

Indicates the vector index is a flat index.

***

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutput added in v7.19.0

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutput() IndexFieldVectorConfigOutput

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigOutputWithContext added in v7.19.0

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

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutput added in v7.19.0

func (o IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigOutput) ToIndexFieldVectorConfigPtrOutputWithContext added in v7.19.0

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

type IndexFieldVectorConfigPtrInput added in v7.19.0

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

func IndexFieldVectorConfigPtr added in v7.19.0

func IndexFieldVectorConfigPtr(v *IndexFieldVectorConfigArgs) IndexFieldVectorConfigPtrInput

type IndexFieldVectorConfigPtrOutput added in v7.19.0

type IndexFieldVectorConfigPtrOutput struct{ *pulumi.OutputState }

func (IndexFieldVectorConfigPtrOutput) Dimension added in v7.19.0

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

func (IndexFieldVectorConfigPtrOutput) Elem added in v7.19.0

func (IndexFieldVectorConfigPtrOutput) ElementType added in v7.19.0

func (IndexFieldVectorConfigPtrOutput) Flat added in v7.19.0

Indicates the vector index is a flat index.

***

func (IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutput added in v7.19.0

func (o IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutput() IndexFieldVectorConfigPtrOutput

func (IndexFieldVectorConfigPtrOutput) ToIndexFieldVectorConfigPtrOutputWithContext added in v7.19.0

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 added in v7.1.0

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