logging

package
v8.8.0 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 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 BillingAccountBucketConfig

type BillingAccountBucketConfig struct {
	pulumi.CustomResourceState

	// The parent resource that contains the logging bucket.
	BillingAccount pulumi.StringOutput `pulumi:"billingAccount"`
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringOutput `pulumi:"bucketId"`
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings BillingAccountBucketConfigCmekSettingsPtrOutput `pulumi:"cmekSettings"`
	// Describes this bucket.
	Description pulumi.StringOutput `pulumi:"description"`
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs BillingAccountBucketConfigIndexConfigArrayOutput `pulumi:"indexConfigs"`
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"`
	// The location of the bucket.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringOutput `pulumi:"name"`
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrOutput `pulumi:"retentionDays"`
}

Manages a billing account level logging bucket config. For more information see [the official logging documentation](https://cloud.google.com/logging/docs/) and [Storing Logs](https://cloud.google.com/logging/docs/storage).

> **Note:** Logging buckets are automatically created for a given folder, project, organization, billingAccount and cannot be deleted. Creating a resource of this type will acquire and update the resource that already exists at the desired location. These buckets cannot be removed so deleting this resource will remove the bucket config from your state but will leave the logging bucket unchanged. The buckets that are currently automatically created are "_Default" and "_Required".

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := organizations.GetBillingAccount(ctx, &organizations.GetBillingAccountArgs{
			BillingAccount: pulumi.StringRef("00AA00-000AAA-00AA0A"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewBillingAccountBucketConfig(ctx, "basic", &logging.BillingAccountBucketConfigArgs{
			BillingAccount: pulumi.String(_default.BillingAccount),
			Location:       pulumi.String("global"),
			RetentionDays:  pulumi.Int(30),
			BucketId:       pulumi.String("_Default"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create logging bucket with index configs

## Import

This resource can be imported using the following format:

* `billingAccounts/{{billingAccount}}/locations/{{location}}/buckets/{{bucket_id}}`

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

```sh $ pulumi import gcp:logging/billingAccountBucketConfig:BillingAccountBucketConfig default billingAccounts/{{billingAccount}}/locations/{{location}}/buckets/{{bucket_id}} ```

func GetBillingAccountBucketConfig

func GetBillingAccountBucketConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BillingAccountBucketConfigState, opts ...pulumi.ResourceOption) (*BillingAccountBucketConfig, error)

GetBillingAccountBucketConfig gets an existing BillingAccountBucketConfig 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 NewBillingAccountBucketConfig

func NewBillingAccountBucketConfig(ctx *pulumi.Context,
	name string, args *BillingAccountBucketConfigArgs, opts ...pulumi.ResourceOption) (*BillingAccountBucketConfig, error)

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

func (*BillingAccountBucketConfig) ElementType

func (*BillingAccountBucketConfig) ElementType() reflect.Type

func (*BillingAccountBucketConfig) ToBillingAccountBucketConfigOutput

func (i *BillingAccountBucketConfig) ToBillingAccountBucketConfigOutput() BillingAccountBucketConfigOutput

func (*BillingAccountBucketConfig) ToBillingAccountBucketConfigOutputWithContext

func (i *BillingAccountBucketConfig) ToBillingAccountBucketConfigOutputWithContext(ctx context.Context) BillingAccountBucketConfigOutput

type BillingAccountBucketConfigArgs

type BillingAccountBucketConfigArgs struct {
	// The parent resource that contains the logging bucket.
	BillingAccount pulumi.StringInput
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings BillingAccountBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs BillingAccountBucketConfigIndexConfigArrayInput
	// The location of the bucket.
	Location pulumi.StringInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

The set of arguments for constructing a BillingAccountBucketConfig resource.

func (BillingAccountBucketConfigArgs) ElementType

type BillingAccountBucketConfigArray

type BillingAccountBucketConfigArray []BillingAccountBucketConfigInput

func (BillingAccountBucketConfigArray) ElementType

func (BillingAccountBucketConfigArray) ToBillingAccountBucketConfigArrayOutput

func (i BillingAccountBucketConfigArray) ToBillingAccountBucketConfigArrayOutput() BillingAccountBucketConfigArrayOutput

func (BillingAccountBucketConfigArray) ToBillingAccountBucketConfigArrayOutputWithContext

func (i BillingAccountBucketConfigArray) ToBillingAccountBucketConfigArrayOutputWithContext(ctx context.Context) BillingAccountBucketConfigArrayOutput

type BillingAccountBucketConfigArrayInput

type BillingAccountBucketConfigArrayInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigArrayOutput() BillingAccountBucketConfigArrayOutput
	ToBillingAccountBucketConfigArrayOutputWithContext(context.Context) BillingAccountBucketConfigArrayOutput
}

BillingAccountBucketConfigArrayInput is an input type that accepts BillingAccountBucketConfigArray and BillingAccountBucketConfigArrayOutput values. You can construct a concrete instance of `BillingAccountBucketConfigArrayInput` via:

BillingAccountBucketConfigArray{ BillingAccountBucketConfigArgs{...} }

type BillingAccountBucketConfigArrayOutput

type BillingAccountBucketConfigArrayOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigArrayOutput) ElementType

func (BillingAccountBucketConfigArrayOutput) Index

func (BillingAccountBucketConfigArrayOutput) ToBillingAccountBucketConfigArrayOutput

func (o BillingAccountBucketConfigArrayOutput) ToBillingAccountBucketConfigArrayOutput() BillingAccountBucketConfigArrayOutput

func (BillingAccountBucketConfigArrayOutput) ToBillingAccountBucketConfigArrayOutputWithContext

func (o BillingAccountBucketConfigArrayOutput) ToBillingAccountBucketConfigArrayOutputWithContext(ctx context.Context) BillingAccountBucketConfigArrayOutput

type BillingAccountBucketConfigCmekSettings

type BillingAccountBucketConfigCmekSettings struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName *string `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name *string `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId *string `pulumi:"serviceAccountId"`
}

type BillingAccountBucketConfigCmekSettingsArgs

type BillingAccountBucketConfigCmekSettingsArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName pulumi.StringPtrInput `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId pulumi.StringPtrInput `pulumi:"serviceAccountId"`
}

func (BillingAccountBucketConfigCmekSettingsArgs) ElementType

func (BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsOutput

func (i BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsOutput() BillingAccountBucketConfigCmekSettingsOutput

func (BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsOutputWithContext

func (i BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsOutputWithContext(ctx context.Context) BillingAccountBucketConfigCmekSettingsOutput

func (BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsPtrOutput

func (i BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsPtrOutput() BillingAccountBucketConfigCmekSettingsPtrOutput

func (BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext

func (i BillingAccountBucketConfigCmekSettingsArgs) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) BillingAccountBucketConfigCmekSettingsPtrOutput

type BillingAccountBucketConfigCmekSettingsInput

type BillingAccountBucketConfigCmekSettingsInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigCmekSettingsOutput() BillingAccountBucketConfigCmekSettingsOutput
	ToBillingAccountBucketConfigCmekSettingsOutputWithContext(context.Context) BillingAccountBucketConfigCmekSettingsOutput
}

BillingAccountBucketConfigCmekSettingsInput is an input type that accepts BillingAccountBucketConfigCmekSettingsArgs and BillingAccountBucketConfigCmekSettingsOutput values. You can construct a concrete instance of `BillingAccountBucketConfigCmekSettingsInput` via:

BillingAccountBucketConfigCmekSettingsArgs{...}

type BillingAccountBucketConfigCmekSettingsOutput

type BillingAccountBucketConfigCmekSettingsOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigCmekSettingsOutput) ElementType

func (BillingAccountBucketConfigCmekSettingsOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (BillingAccountBucketConfigCmekSettingsOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (BillingAccountBucketConfigCmekSettingsOutput) Name

The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"

func (BillingAccountBucketConfigCmekSettingsOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsOutput

func (o BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsOutput() BillingAccountBucketConfigCmekSettingsOutput

func (BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsOutputWithContext

func (o BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsOutputWithContext(ctx context.Context) BillingAccountBucketConfigCmekSettingsOutput

func (BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutput

func (o BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutput() BillingAccountBucketConfigCmekSettingsPtrOutput

func (BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext

func (o BillingAccountBucketConfigCmekSettingsOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) BillingAccountBucketConfigCmekSettingsPtrOutput

type BillingAccountBucketConfigCmekSettingsPtrInput

type BillingAccountBucketConfigCmekSettingsPtrInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigCmekSettingsPtrOutput() BillingAccountBucketConfigCmekSettingsPtrOutput
	ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext(context.Context) BillingAccountBucketConfigCmekSettingsPtrOutput
}

BillingAccountBucketConfigCmekSettingsPtrInput is an input type that accepts BillingAccountBucketConfigCmekSettingsArgs, BillingAccountBucketConfigCmekSettingsPtr and BillingAccountBucketConfigCmekSettingsPtrOutput values. You can construct a concrete instance of `BillingAccountBucketConfigCmekSettingsPtrInput` via:

        BillingAccountBucketConfigCmekSettingsArgs{...}

or:

        nil

type BillingAccountBucketConfigCmekSettingsPtrOutput

type BillingAccountBucketConfigCmekSettingsPtrOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigCmekSettingsPtrOutput) Elem

func (BillingAccountBucketConfigCmekSettingsPtrOutput) ElementType

func (BillingAccountBucketConfigCmekSettingsPtrOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (BillingAccountBucketConfigCmekSettingsPtrOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (BillingAccountBucketConfigCmekSettingsPtrOutput) Name

The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"

func (BillingAccountBucketConfigCmekSettingsPtrOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (BillingAccountBucketConfigCmekSettingsPtrOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutput

func (o BillingAccountBucketConfigCmekSettingsPtrOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutput() BillingAccountBucketConfigCmekSettingsPtrOutput

func (BillingAccountBucketConfigCmekSettingsPtrOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext

func (o BillingAccountBucketConfigCmekSettingsPtrOutput) ToBillingAccountBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) BillingAccountBucketConfigCmekSettingsPtrOutput

type BillingAccountBucketConfigIndexConfig

type BillingAccountBucketConfigIndexConfig struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath string `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type string `pulumi:"type"`
}

type BillingAccountBucketConfigIndexConfigArgs

type BillingAccountBucketConfigIndexConfigArgs struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath pulumi.StringInput `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (BillingAccountBucketConfigIndexConfigArgs) ElementType

func (BillingAccountBucketConfigIndexConfigArgs) ToBillingAccountBucketConfigIndexConfigOutput

func (i BillingAccountBucketConfigIndexConfigArgs) ToBillingAccountBucketConfigIndexConfigOutput() BillingAccountBucketConfigIndexConfigOutput

func (BillingAccountBucketConfigIndexConfigArgs) ToBillingAccountBucketConfigIndexConfigOutputWithContext

func (i BillingAccountBucketConfigIndexConfigArgs) ToBillingAccountBucketConfigIndexConfigOutputWithContext(ctx context.Context) BillingAccountBucketConfigIndexConfigOutput

type BillingAccountBucketConfigIndexConfigArray

type BillingAccountBucketConfigIndexConfigArray []BillingAccountBucketConfigIndexConfigInput

func (BillingAccountBucketConfigIndexConfigArray) ElementType

func (BillingAccountBucketConfigIndexConfigArray) ToBillingAccountBucketConfigIndexConfigArrayOutput

func (i BillingAccountBucketConfigIndexConfigArray) ToBillingAccountBucketConfigIndexConfigArrayOutput() BillingAccountBucketConfigIndexConfigArrayOutput

func (BillingAccountBucketConfigIndexConfigArray) ToBillingAccountBucketConfigIndexConfigArrayOutputWithContext

func (i BillingAccountBucketConfigIndexConfigArray) ToBillingAccountBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) BillingAccountBucketConfigIndexConfigArrayOutput

type BillingAccountBucketConfigIndexConfigArrayInput

type BillingAccountBucketConfigIndexConfigArrayInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigIndexConfigArrayOutput() BillingAccountBucketConfigIndexConfigArrayOutput
	ToBillingAccountBucketConfigIndexConfigArrayOutputWithContext(context.Context) BillingAccountBucketConfigIndexConfigArrayOutput
}

BillingAccountBucketConfigIndexConfigArrayInput is an input type that accepts BillingAccountBucketConfigIndexConfigArray and BillingAccountBucketConfigIndexConfigArrayOutput values. You can construct a concrete instance of `BillingAccountBucketConfigIndexConfigArrayInput` via:

BillingAccountBucketConfigIndexConfigArray{ BillingAccountBucketConfigIndexConfigArgs{...} }

type BillingAccountBucketConfigIndexConfigArrayOutput

type BillingAccountBucketConfigIndexConfigArrayOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigIndexConfigArrayOutput) ElementType

func (BillingAccountBucketConfigIndexConfigArrayOutput) Index

func (BillingAccountBucketConfigIndexConfigArrayOutput) ToBillingAccountBucketConfigIndexConfigArrayOutput

func (o BillingAccountBucketConfigIndexConfigArrayOutput) ToBillingAccountBucketConfigIndexConfigArrayOutput() BillingAccountBucketConfigIndexConfigArrayOutput

func (BillingAccountBucketConfigIndexConfigArrayOutput) ToBillingAccountBucketConfigIndexConfigArrayOutputWithContext

func (o BillingAccountBucketConfigIndexConfigArrayOutput) ToBillingAccountBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) BillingAccountBucketConfigIndexConfigArrayOutput

type BillingAccountBucketConfigIndexConfigInput

type BillingAccountBucketConfigIndexConfigInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigIndexConfigOutput() BillingAccountBucketConfigIndexConfigOutput
	ToBillingAccountBucketConfigIndexConfigOutputWithContext(context.Context) BillingAccountBucketConfigIndexConfigOutput
}

BillingAccountBucketConfigIndexConfigInput is an input type that accepts BillingAccountBucketConfigIndexConfigArgs and BillingAccountBucketConfigIndexConfigOutput values. You can construct a concrete instance of `BillingAccountBucketConfigIndexConfigInput` via:

BillingAccountBucketConfigIndexConfigArgs{...}

type BillingAccountBucketConfigIndexConfigOutput

type BillingAccountBucketConfigIndexConfigOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigIndexConfigOutput) ElementType

func (BillingAccountBucketConfigIndexConfigOutput) FieldPath

The LogEntry field path to index. Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.

func (BillingAccountBucketConfigIndexConfigOutput) ToBillingAccountBucketConfigIndexConfigOutput

func (o BillingAccountBucketConfigIndexConfigOutput) ToBillingAccountBucketConfigIndexConfigOutput() BillingAccountBucketConfigIndexConfigOutput

func (BillingAccountBucketConfigIndexConfigOutput) ToBillingAccountBucketConfigIndexConfigOutputWithContext

func (o BillingAccountBucketConfigIndexConfigOutput) ToBillingAccountBucketConfigIndexConfigOutputWithContext(ctx context.Context) BillingAccountBucketConfigIndexConfigOutput

func (BillingAccountBucketConfigIndexConfigOutput) Type

The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.

type BillingAccountBucketConfigInput

type BillingAccountBucketConfigInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigOutput() BillingAccountBucketConfigOutput
	ToBillingAccountBucketConfigOutputWithContext(ctx context.Context) BillingAccountBucketConfigOutput
}

type BillingAccountBucketConfigMap

type BillingAccountBucketConfigMap map[string]BillingAccountBucketConfigInput

func (BillingAccountBucketConfigMap) ElementType

func (BillingAccountBucketConfigMap) ToBillingAccountBucketConfigMapOutput

func (i BillingAccountBucketConfigMap) ToBillingAccountBucketConfigMapOutput() BillingAccountBucketConfigMapOutput

func (BillingAccountBucketConfigMap) ToBillingAccountBucketConfigMapOutputWithContext

func (i BillingAccountBucketConfigMap) ToBillingAccountBucketConfigMapOutputWithContext(ctx context.Context) BillingAccountBucketConfigMapOutput

type BillingAccountBucketConfigMapInput

type BillingAccountBucketConfigMapInput interface {
	pulumi.Input

	ToBillingAccountBucketConfigMapOutput() BillingAccountBucketConfigMapOutput
	ToBillingAccountBucketConfigMapOutputWithContext(context.Context) BillingAccountBucketConfigMapOutput
}

BillingAccountBucketConfigMapInput is an input type that accepts BillingAccountBucketConfigMap and BillingAccountBucketConfigMapOutput values. You can construct a concrete instance of `BillingAccountBucketConfigMapInput` via:

BillingAccountBucketConfigMap{ "key": BillingAccountBucketConfigArgs{...} }

type BillingAccountBucketConfigMapOutput

type BillingAccountBucketConfigMapOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigMapOutput) ElementType

func (BillingAccountBucketConfigMapOutput) MapIndex

func (BillingAccountBucketConfigMapOutput) ToBillingAccountBucketConfigMapOutput

func (o BillingAccountBucketConfigMapOutput) ToBillingAccountBucketConfigMapOutput() BillingAccountBucketConfigMapOutput

func (BillingAccountBucketConfigMapOutput) ToBillingAccountBucketConfigMapOutputWithContext

func (o BillingAccountBucketConfigMapOutput) ToBillingAccountBucketConfigMapOutputWithContext(ctx context.Context) BillingAccountBucketConfigMapOutput

type BillingAccountBucketConfigOutput

type BillingAccountBucketConfigOutput struct{ *pulumi.OutputState }

func (BillingAccountBucketConfigOutput) BillingAccount

The parent resource that contains the logging bucket.

func (BillingAccountBucketConfigOutput) BucketId

The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.

func (BillingAccountBucketConfigOutput) CmekSettings

The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed.

func (BillingAccountBucketConfigOutput) Description

Describes this bucket.

func (BillingAccountBucketConfigOutput) ElementType

func (BillingAccountBucketConfigOutput) IndexConfigs

A list of indexed fields and related configuration data. Structure is documented below.

func (BillingAccountBucketConfigOutput) LifecycleState

The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).

func (BillingAccountBucketConfigOutput) Location

The location of the bucket.

func (BillingAccountBucketConfigOutput) Name

The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"

func (BillingAccountBucketConfigOutput) RetentionDays

Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.

func (BillingAccountBucketConfigOutput) ToBillingAccountBucketConfigOutput

func (o BillingAccountBucketConfigOutput) ToBillingAccountBucketConfigOutput() BillingAccountBucketConfigOutput

func (BillingAccountBucketConfigOutput) ToBillingAccountBucketConfigOutputWithContext

func (o BillingAccountBucketConfigOutput) ToBillingAccountBucketConfigOutputWithContext(ctx context.Context) BillingAccountBucketConfigOutput

type BillingAccountBucketConfigState

type BillingAccountBucketConfigState struct {
	// The parent resource that contains the logging bucket.
	BillingAccount pulumi.StringPtrInput
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringPtrInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings BillingAccountBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs BillingAccountBucketConfigIndexConfigArrayInput
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringPtrInput
	// The location of the bucket.
	Location pulumi.StringPtrInput
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

func (BillingAccountBucketConfigState) ElementType

type BillingAccountExclusion

type BillingAccountExclusion struct {
	pulumi.CustomResourceState

	// The billing account to create the exclusion for.
	BillingAccount pulumi.StringOutput `pulumi:"billingAccount"`
	// A human-readable description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringOutput `pulumi:"filter"`
	// The name of the logging exclusion.
	Name pulumi.StringOutput `pulumi:"name"`
}

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewBillingAccountExclusion(ctx, "my-exclusion", &logging.BillingAccountExclusionArgs{
			Name:           pulumi.String("my-instance-debug-exclusion"),
			BillingAccount: pulumi.String("ABCDEF-012345-GHIJKL"),
			Description:    pulumi.String("Exclude GCE instance debug logs"),
			Filter:         pulumi.String("resource.type = gce_instance AND severity <= DEBUG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Billing account logging exclusions can be imported using their URI, e.g.

* `billingAccounts/{{billing_account}}/exclusions/{{name}}`

When using the `pulumi import` command, billing account logging exclusions can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/billingAccountExclusion:BillingAccountExclusion default billingAccounts/{{billing_account}}/exclusions/{{name}} ```

func GetBillingAccountExclusion

func GetBillingAccountExclusion(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BillingAccountExclusionState, opts ...pulumi.ResourceOption) (*BillingAccountExclusion, error)

GetBillingAccountExclusion gets an existing BillingAccountExclusion 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 NewBillingAccountExclusion

func NewBillingAccountExclusion(ctx *pulumi.Context,
	name string, args *BillingAccountExclusionArgs, opts ...pulumi.ResourceOption) (*BillingAccountExclusion, error)

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

func (*BillingAccountExclusion) ElementType

func (*BillingAccountExclusion) ElementType() reflect.Type

func (*BillingAccountExclusion) ToBillingAccountExclusionOutput

func (i *BillingAccountExclusion) ToBillingAccountExclusionOutput() BillingAccountExclusionOutput

func (*BillingAccountExclusion) ToBillingAccountExclusionOutputWithContext

func (i *BillingAccountExclusion) ToBillingAccountExclusionOutputWithContext(ctx context.Context) BillingAccountExclusionOutput

type BillingAccountExclusionArgs

type BillingAccountExclusionArgs struct {
	// The billing account to create the exclusion for.
	BillingAccount pulumi.StringInput
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a BillingAccountExclusion resource.

func (BillingAccountExclusionArgs) ElementType

type BillingAccountExclusionArray

type BillingAccountExclusionArray []BillingAccountExclusionInput

func (BillingAccountExclusionArray) ElementType

func (BillingAccountExclusionArray) ToBillingAccountExclusionArrayOutput

func (i BillingAccountExclusionArray) ToBillingAccountExclusionArrayOutput() BillingAccountExclusionArrayOutput

func (BillingAccountExclusionArray) ToBillingAccountExclusionArrayOutputWithContext

func (i BillingAccountExclusionArray) ToBillingAccountExclusionArrayOutputWithContext(ctx context.Context) BillingAccountExclusionArrayOutput

type BillingAccountExclusionArrayInput

type BillingAccountExclusionArrayInput interface {
	pulumi.Input

	ToBillingAccountExclusionArrayOutput() BillingAccountExclusionArrayOutput
	ToBillingAccountExclusionArrayOutputWithContext(context.Context) BillingAccountExclusionArrayOutput
}

BillingAccountExclusionArrayInput is an input type that accepts BillingAccountExclusionArray and BillingAccountExclusionArrayOutput values. You can construct a concrete instance of `BillingAccountExclusionArrayInput` via:

BillingAccountExclusionArray{ BillingAccountExclusionArgs{...} }

type BillingAccountExclusionArrayOutput

type BillingAccountExclusionArrayOutput struct{ *pulumi.OutputState }

func (BillingAccountExclusionArrayOutput) ElementType

func (BillingAccountExclusionArrayOutput) Index

func (BillingAccountExclusionArrayOutput) ToBillingAccountExclusionArrayOutput

func (o BillingAccountExclusionArrayOutput) ToBillingAccountExclusionArrayOutput() BillingAccountExclusionArrayOutput

func (BillingAccountExclusionArrayOutput) ToBillingAccountExclusionArrayOutputWithContext

func (o BillingAccountExclusionArrayOutput) ToBillingAccountExclusionArrayOutputWithContext(ctx context.Context) BillingAccountExclusionArrayOutput

type BillingAccountExclusionInput

type BillingAccountExclusionInput interface {
	pulumi.Input

	ToBillingAccountExclusionOutput() BillingAccountExclusionOutput
	ToBillingAccountExclusionOutputWithContext(ctx context.Context) BillingAccountExclusionOutput
}

type BillingAccountExclusionMap

type BillingAccountExclusionMap map[string]BillingAccountExclusionInput

func (BillingAccountExclusionMap) ElementType

func (BillingAccountExclusionMap) ElementType() reflect.Type

func (BillingAccountExclusionMap) ToBillingAccountExclusionMapOutput

func (i BillingAccountExclusionMap) ToBillingAccountExclusionMapOutput() BillingAccountExclusionMapOutput

func (BillingAccountExclusionMap) ToBillingAccountExclusionMapOutputWithContext

func (i BillingAccountExclusionMap) ToBillingAccountExclusionMapOutputWithContext(ctx context.Context) BillingAccountExclusionMapOutput

type BillingAccountExclusionMapInput

type BillingAccountExclusionMapInput interface {
	pulumi.Input

	ToBillingAccountExclusionMapOutput() BillingAccountExclusionMapOutput
	ToBillingAccountExclusionMapOutputWithContext(context.Context) BillingAccountExclusionMapOutput
}

BillingAccountExclusionMapInput is an input type that accepts BillingAccountExclusionMap and BillingAccountExclusionMapOutput values. You can construct a concrete instance of `BillingAccountExclusionMapInput` via:

BillingAccountExclusionMap{ "key": BillingAccountExclusionArgs{...} }

type BillingAccountExclusionMapOutput

type BillingAccountExclusionMapOutput struct{ *pulumi.OutputState }

func (BillingAccountExclusionMapOutput) ElementType

func (BillingAccountExclusionMapOutput) MapIndex

func (BillingAccountExclusionMapOutput) ToBillingAccountExclusionMapOutput

func (o BillingAccountExclusionMapOutput) ToBillingAccountExclusionMapOutput() BillingAccountExclusionMapOutput

func (BillingAccountExclusionMapOutput) ToBillingAccountExclusionMapOutputWithContext

func (o BillingAccountExclusionMapOutput) ToBillingAccountExclusionMapOutputWithContext(ctx context.Context) BillingAccountExclusionMapOutput

type BillingAccountExclusionOutput

type BillingAccountExclusionOutput struct{ *pulumi.OutputState }

func (BillingAccountExclusionOutput) BillingAccount

The billing account to create the exclusion for.

func (BillingAccountExclusionOutput) Description

A human-readable description.

func (BillingAccountExclusionOutput) Disabled

Whether this exclusion rule should be disabled or not. This defaults to false.

func (BillingAccountExclusionOutput) ElementType

func (BillingAccountExclusionOutput) Filter

The filter to apply when excluding logs. Only log entries that match the filter are excluded. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to write a filter.

func (BillingAccountExclusionOutput) Name

The name of the logging exclusion.

func (BillingAccountExclusionOutput) ToBillingAccountExclusionOutput

func (o BillingAccountExclusionOutput) ToBillingAccountExclusionOutput() BillingAccountExclusionOutput

func (BillingAccountExclusionOutput) ToBillingAccountExclusionOutputWithContext

func (o BillingAccountExclusionOutput) ToBillingAccountExclusionOutputWithContext(ctx context.Context) BillingAccountExclusionOutput

type BillingAccountExclusionState

type BillingAccountExclusionState struct {
	// The billing account to create the exclusion for.
	BillingAccount pulumi.StringPtrInput
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
}

func (BillingAccountExclusionState) ElementType

type BillingAccountSink

type BillingAccountSink struct {
	pulumi.CustomResourceState

	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions BillingAccountSinkBigqueryOptionsOutput `pulumi:"bigqueryOptions"`
	// The billing account exported to the sink.
	BillingAccount pulumi.StringOutput `pulumi:"billingAccount"`
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The destination of the sink (or, in other words, where logs are written to). Can be a
	// Cloud Storage bucket, a PubSub topic, a BigQuery dataset or a Cloud Logging bucket. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]]/locations/global/buckets/[BUCKET_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringOutput `pulumi:"destination"`
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions BillingAccountSinkExclusionArrayOutput `pulumi:"exclusions"`
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// The name of the logging sink.
	Name pulumi.StringOutput `pulumi:"name"`
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringOutput `pulumi:"writerIdentity"`
}

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.sinks) * How-to Guides

> **Note** You must have the "Logs Configuration Writer" IAM role (`roles/logging.configWriter`) [granted on the billing account](https://cloud.google.com/billing/reference/rest/v1/billingAccounts/getIamPolicy) to the credentials used with this provider. [IAM roles granted on a billing account](https://cloud.google.com/billing/docs/how-to/billing-access) are separate from the typical IAM roles granted on a project.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/logging"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "log-bucket", &storage.BucketArgs{
			Name:     pulumi.String("billing-logging-bucket"),
			Location: pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewBillingAccountSink(ctx, "my-sink", &logging.BillingAccountSinkArgs{
			Name:           pulumi.String("my-sink"),
			Description:    pulumi.String("some explanation on what this is"),
			BillingAccount: pulumi.String("ABCDEF-012345-GHIJKL"),
			Destination: log_bucket.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("storage.googleapis.com/%v", name), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		_, err = projects.NewIAMBinding(ctx, "log-writer", &projects.IAMBindingArgs{
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/storage.objectCreator"),
			Members: pulumi.StringArray{
				my_sink.WriterIdentity,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Billing account logging sinks can be imported using this format:

* `billingAccounts/{{billing_account_id}}/sinks/{{sink_id}}`

When using the `pulumi import` command, billing account logging sinks can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/billingAccountSink:BillingAccountSink default billingAccounts/{{billing_account_id}}/sinks/{{sink_id}} ```

func GetBillingAccountSink

func GetBillingAccountSink(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *BillingAccountSinkState, opts ...pulumi.ResourceOption) (*BillingAccountSink, error)

GetBillingAccountSink gets an existing BillingAccountSink 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 NewBillingAccountSink

func NewBillingAccountSink(ctx *pulumi.Context,
	name string, args *BillingAccountSinkArgs, opts ...pulumi.ResourceOption) (*BillingAccountSink, error)

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

func (*BillingAccountSink) ElementType

func (*BillingAccountSink) ElementType() reflect.Type

func (*BillingAccountSink) ToBillingAccountSinkOutput

func (i *BillingAccountSink) ToBillingAccountSinkOutput() BillingAccountSinkOutput

func (*BillingAccountSink) ToBillingAccountSinkOutputWithContext

func (i *BillingAccountSink) ToBillingAccountSinkOutputWithContext(ctx context.Context) BillingAccountSinkOutput

type BillingAccountSinkArgs

type BillingAccountSinkArgs struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions BillingAccountSinkBigqueryOptionsPtrInput
	// The billing account exported to the sink.
	BillingAccount pulumi.StringInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a
	// Cloud Storage bucket, a PubSub topic, a BigQuery dataset or a Cloud Logging bucket. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]]/locations/global/buckets/[BUCKET_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions BillingAccountSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a BillingAccountSink resource.

func (BillingAccountSinkArgs) ElementType

func (BillingAccountSinkArgs) ElementType() reflect.Type

type BillingAccountSinkArray

type BillingAccountSinkArray []BillingAccountSinkInput

func (BillingAccountSinkArray) ElementType

func (BillingAccountSinkArray) ElementType() reflect.Type

func (BillingAccountSinkArray) ToBillingAccountSinkArrayOutput

func (i BillingAccountSinkArray) ToBillingAccountSinkArrayOutput() BillingAccountSinkArrayOutput

func (BillingAccountSinkArray) ToBillingAccountSinkArrayOutputWithContext

func (i BillingAccountSinkArray) ToBillingAccountSinkArrayOutputWithContext(ctx context.Context) BillingAccountSinkArrayOutput

type BillingAccountSinkArrayInput

type BillingAccountSinkArrayInput interface {
	pulumi.Input

	ToBillingAccountSinkArrayOutput() BillingAccountSinkArrayOutput
	ToBillingAccountSinkArrayOutputWithContext(context.Context) BillingAccountSinkArrayOutput
}

BillingAccountSinkArrayInput is an input type that accepts BillingAccountSinkArray and BillingAccountSinkArrayOutput values. You can construct a concrete instance of `BillingAccountSinkArrayInput` via:

BillingAccountSinkArray{ BillingAccountSinkArgs{...} }

type BillingAccountSinkArrayOutput

type BillingAccountSinkArrayOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkArrayOutput) ElementType

func (BillingAccountSinkArrayOutput) Index

func (BillingAccountSinkArrayOutput) ToBillingAccountSinkArrayOutput

func (o BillingAccountSinkArrayOutput) ToBillingAccountSinkArrayOutput() BillingAccountSinkArrayOutput

func (BillingAccountSinkArrayOutput) ToBillingAccountSinkArrayOutputWithContext

func (o BillingAccountSinkArrayOutput) ToBillingAccountSinkArrayOutputWithContext(ctx context.Context) BillingAccountSinkArrayOutput

type BillingAccountSinkBigqueryOptions

type BillingAccountSinkBigqueryOptions struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables bool `pulumi:"usePartitionedTables"`
}

type BillingAccountSinkBigqueryOptionsArgs

type BillingAccountSinkBigqueryOptionsArgs struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables pulumi.BoolInput `pulumi:"usePartitionedTables"`
}

func (BillingAccountSinkBigqueryOptionsArgs) ElementType

func (BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsOutput

func (i BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsOutput() BillingAccountSinkBigqueryOptionsOutput

func (BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsOutputWithContext

func (i BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsOutputWithContext(ctx context.Context) BillingAccountSinkBigqueryOptionsOutput

func (BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsPtrOutput

func (i BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsPtrOutput() BillingAccountSinkBigqueryOptionsPtrOutput

func (BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext

func (i BillingAccountSinkBigqueryOptionsArgs) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) BillingAccountSinkBigqueryOptionsPtrOutput

type BillingAccountSinkBigqueryOptionsInput

type BillingAccountSinkBigqueryOptionsInput interface {
	pulumi.Input

	ToBillingAccountSinkBigqueryOptionsOutput() BillingAccountSinkBigqueryOptionsOutput
	ToBillingAccountSinkBigqueryOptionsOutputWithContext(context.Context) BillingAccountSinkBigqueryOptionsOutput
}

BillingAccountSinkBigqueryOptionsInput is an input type that accepts BillingAccountSinkBigqueryOptionsArgs and BillingAccountSinkBigqueryOptionsOutput values. You can construct a concrete instance of `BillingAccountSinkBigqueryOptionsInput` via:

BillingAccountSinkBigqueryOptionsArgs{...}

type BillingAccountSinkBigqueryOptionsOutput

type BillingAccountSinkBigqueryOptionsOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkBigqueryOptionsOutput) ElementType

func (BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsOutput

func (o BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsOutput() BillingAccountSinkBigqueryOptionsOutput

func (BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsOutputWithContext

func (o BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsOutputWithContext(ctx context.Context) BillingAccountSinkBigqueryOptionsOutput

func (BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsPtrOutput

func (o BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsPtrOutput() BillingAccountSinkBigqueryOptionsPtrOutput

func (BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext

func (o BillingAccountSinkBigqueryOptionsOutput) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) BillingAccountSinkBigqueryOptionsPtrOutput

func (BillingAccountSinkBigqueryOptionsOutput) UsePartitionedTables

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type BillingAccountSinkBigqueryOptionsPtrInput

type BillingAccountSinkBigqueryOptionsPtrInput interface {
	pulumi.Input

	ToBillingAccountSinkBigqueryOptionsPtrOutput() BillingAccountSinkBigqueryOptionsPtrOutput
	ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext(context.Context) BillingAccountSinkBigqueryOptionsPtrOutput
}

BillingAccountSinkBigqueryOptionsPtrInput is an input type that accepts BillingAccountSinkBigqueryOptionsArgs, BillingAccountSinkBigqueryOptionsPtr and BillingAccountSinkBigqueryOptionsPtrOutput values. You can construct a concrete instance of `BillingAccountSinkBigqueryOptionsPtrInput` via:

        BillingAccountSinkBigqueryOptionsArgs{...}

or:

        nil

type BillingAccountSinkBigqueryOptionsPtrOutput

type BillingAccountSinkBigqueryOptionsPtrOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkBigqueryOptionsPtrOutput) Elem

func (BillingAccountSinkBigqueryOptionsPtrOutput) ElementType

func (BillingAccountSinkBigqueryOptionsPtrOutput) ToBillingAccountSinkBigqueryOptionsPtrOutput

func (o BillingAccountSinkBigqueryOptionsPtrOutput) ToBillingAccountSinkBigqueryOptionsPtrOutput() BillingAccountSinkBigqueryOptionsPtrOutput

func (BillingAccountSinkBigqueryOptionsPtrOutput) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext

func (o BillingAccountSinkBigqueryOptionsPtrOutput) ToBillingAccountSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) BillingAccountSinkBigqueryOptionsPtrOutput

func (BillingAccountSinkBigqueryOptionsPtrOutput) UsePartitionedTables

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type BillingAccountSinkExclusion

type BillingAccountSinkExclusion struct {
	// A description of this exclusion.
	Description *string `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled *bool `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter string `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name string `pulumi:"name"`
}

type BillingAccountSinkExclusionArgs

type BillingAccountSinkExclusionArgs struct {
	// A description of this exclusion.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled pulumi.BoolPtrInput `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name pulumi.StringInput `pulumi:"name"`
}

func (BillingAccountSinkExclusionArgs) ElementType

func (BillingAccountSinkExclusionArgs) ToBillingAccountSinkExclusionOutput

func (i BillingAccountSinkExclusionArgs) ToBillingAccountSinkExclusionOutput() BillingAccountSinkExclusionOutput

func (BillingAccountSinkExclusionArgs) ToBillingAccountSinkExclusionOutputWithContext

func (i BillingAccountSinkExclusionArgs) ToBillingAccountSinkExclusionOutputWithContext(ctx context.Context) BillingAccountSinkExclusionOutput

type BillingAccountSinkExclusionArray

type BillingAccountSinkExclusionArray []BillingAccountSinkExclusionInput

func (BillingAccountSinkExclusionArray) ElementType

func (BillingAccountSinkExclusionArray) ToBillingAccountSinkExclusionArrayOutput

func (i BillingAccountSinkExclusionArray) ToBillingAccountSinkExclusionArrayOutput() BillingAccountSinkExclusionArrayOutput

func (BillingAccountSinkExclusionArray) ToBillingAccountSinkExclusionArrayOutputWithContext

func (i BillingAccountSinkExclusionArray) ToBillingAccountSinkExclusionArrayOutputWithContext(ctx context.Context) BillingAccountSinkExclusionArrayOutput

type BillingAccountSinkExclusionArrayInput

type BillingAccountSinkExclusionArrayInput interface {
	pulumi.Input

	ToBillingAccountSinkExclusionArrayOutput() BillingAccountSinkExclusionArrayOutput
	ToBillingAccountSinkExclusionArrayOutputWithContext(context.Context) BillingAccountSinkExclusionArrayOutput
}

BillingAccountSinkExclusionArrayInput is an input type that accepts BillingAccountSinkExclusionArray and BillingAccountSinkExclusionArrayOutput values. You can construct a concrete instance of `BillingAccountSinkExclusionArrayInput` via:

BillingAccountSinkExclusionArray{ BillingAccountSinkExclusionArgs{...} }

type BillingAccountSinkExclusionArrayOutput

type BillingAccountSinkExclusionArrayOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkExclusionArrayOutput) ElementType

func (BillingAccountSinkExclusionArrayOutput) Index

func (BillingAccountSinkExclusionArrayOutput) ToBillingAccountSinkExclusionArrayOutput

func (o BillingAccountSinkExclusionArrayOutput) ToBillingAccountSinkExclusionArrayOutput() BillingAccountSinkExclusionArrayOutput

func (BillingAccountSinkExclusionArrayOutput) ToBillingAccountSinkExclusionArrayOutputWithContext

func (o BillingAccountSinkExclusionArrayOutput) ToBillingAccountSinkExclusionArrayOutputWithContext(ctx context.Context) BillingAccountSinkExclusionArrayOutput

type BillingAccountSinkExclusionInput

type BillingAccountSinkExclusionInput interface {
	pulumi.Input

	ToBillingAccountSinkExclusionOutput() BillingAccountSinkExclusionOutput
	ToBillingAccountSinkExclusionOutputWithContext(context.Context) BillingAccountSinkExclusionOutput
}

BillingAccountSinkExclusionInput is an input type that accepts BillingAccountSinkExclusionArgs and BillingAccountSinkExclusionOutput values. You can construct a concrete instance of `BillingAccountSinkExclusionInput` via:

BillingAccountSinkExclusionArgs{...}

type BillingAccountSinkExclusionOutput

type BillingAccountSinkExclusionOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkExclusionOutput) Description

A description of this exclusion.

func (BillingAccountSinkExclusionOutput) Disabled

If set to True, then this exclusion is disabled and it does not exclude any log entries.

func (BillingAccountSinkExclusionOutput) ElementType

func (BillingAccountSinkExclusionOutput) Filter

An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (BillingAccountSinkExclusionOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.

func (BillingAccountSinkExclusionOutput) ToBillingAccountSinkExclusionOutput

func (o BillingAccountSinkExclusionOutput) ToBillingAccountSinkExclusionOutput() BillingAccountSinkExclusionOutput

func (BillingAccountSinkExclusionOutput) ToBillingAccountSinkExclusionOutputWithContext

func (o BillingAccountSinkExclusionOutput) ToBillingAccountSinkExclusionOutputWithContext(ctx context.Context) BillingAccountSinkExclusionOutput

type BillingAccountSinkInput

type BillingAccountSinkInput interface {
	pulumi.Input

	ToBillingAccountSinkOutput() BillingAccountSinkOutput
	ToBillingAccountSinkOutputWithContext(ctx context.Context) BillingAccountSinkOutput
}

type BillingAccountSinkMap

type BillingAccountSinkMap map[string]BillingAccountSinkInput

func (BillingAccountSinkMap) ElementType

func (BillingAccountSinkMap) ElementType() reflect.Type

func (BillingAccountSinkMap) ToBillingAccountSinkMapOutput

func (i BillingAccountSinkMap) ToBillingAccountSinkMapOutput() BillingAccountSinkMapOutput

func (BillingAccountSinkMap) ToBillingAccountSinkMapOutputWithContext

func (i BillingAccountSinkMap) ToBillingAccountSinkMapOutputWithContext(ctx context.Context) BillingAccountSinkMapOutput

type BillingAccountSinkMapInput

type BillingAccountSinkMapInput interface {
	pulumi.Input

	ToBillingAccountSinkMapOutput() BillingAccountSinkMapOutput
	ToBillingAccountSinkMapOutputWithContext(context.Context) BillingAccountSinkMapOutput
}

BillingAccountSinkMapInput is an input type that accepts BillingAccountSinkMap and BillingAccountSinkMapOutput values. You can construct a concrete instance of `BillingAccountSinkMapInput` via:

BillingAccountSinkMap{ "key": BillingAccountSinkArgs{...} }

type BillingAccountSinkMapOutput

type BillingAccountSinkMapOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkMapOutput) ElementType

func (BillingAccountSinkMapOutput) MapIndex

func (BillingAccountSinkMapOutput) ToBillingAccountSinkMapOutput

func (o BillingAccountSinkMapOutput) ToBillingAccountSinkMapOutput() BillingAccountSinkMapOutput

func (BillingAccountSinkMapOutput) ToBillingAccountSinkMapOutputWithContext

func (o BillingAccountSinkMapOutput) ToBillingAccountSinkMapOutputWithContext(ctx context.Context) BillingAccountSinkMapOutput

type BillingAccountSinkOutput

type BillingAccountSinkOutput struct{ *pulumi.OutputState }

func (BillingAccountSinkOutput) BigqueryOptions

Options that affect sinks exporting data to BigQuery. Structure documented below.

func (BillingAccountSinkOutput) BillingAccount

func (o BillingAccountSinkOutput) BillingAccount() pulumi.StringOutput

The billing account exported to the sink.

func (BillingAccountSinkOutput) Description

A description of this sink. The maximum length of the description is 8000 characters.

func (BillingAccountSinkOutput) Destination

The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset or a Cloud Logging bucket. Examples:

- `storage.googleapis.com/[GCS_BUCKET]` - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]` - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]]/locations/global/buckets/[BUCKET_ID]`

The writer associated with the sink must have access to write to the above resource.

func (BillingAccountSinkOutput) Disabled

If set to True, then this sink is disabled and it does not export any log entries.

func (BillingAccountSinkOutput) ElementType

func (BillingAccountSinkOutput) ElementType() reflect.Type

func (BillingAccountSinkOutput) Exclusions

Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported. Can be repeated multiple times for multiple exclusions. Structure is documented below.

func (BillingAccountSinkOutput) Filter

The filter to apply when exporting logs. Only log entries that match the filter are exported. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (BillingAccountSinkOutput) Name

The name of the logging sink.

func (BillingAccountSinkOutput) ToBillingAccountSinkOutput

func (o BillingAccountSinkOutput) ToBillingAccountSinkOutput() BillingAccountSinkOutput

func (BillingAccountSinkOutput) ToBillingAccountSinkOutputWithContext

func (o BillingAccountSinkOutput) ToBillingAccountSinkOutputWithContext(ctx context.Context) BillingAccountSinkOutput

func (BillingAccountSinkOutput) WriterIdentity

func (o BillingAccountSinkOutput) WriterIdentity() pulumi.StringOutput

The identity associated with this sink. This identity must be granted write access to the configured `destination`.

type BillingAccountSinkState

type BillingAccountSinkState struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions BillingAccountSinkBigqueryOptionsPtrInput
	// The billing account exported to the sink.
	BillingAccount pulumi.StringPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a
	// Cloud Storage bucket, a PubSub topic, a BigQuery dataset or a Cloud Logging bucket. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]]/locations/global/buckets/[BUCKET_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringPtrInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions BillingAccountSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringPtrInput
}

func (BillingAccountSinkState) ElementType

func (BillingAccountSinkState) ElementType() reflect.Type

type FolderBucketConfig

type FolderBucketConfig struct {
	pulumi.CustomResourceState

	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringOutput `pulumi:"bucketId"`
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings FolderBucketConfigCmekSettingsPtrOutput `pulumi:"cmekSettings"`
	// Describes this bucket.
	Description pulumi.StringOutput `pulumi:"description"`
	// The parent resource that contains the logging bucket.
	Folder pulumi.StringOutput `pulumi:"folder"`
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs FolderBucketConfigIndexConfigArrayOutput `pulumi:"indexConfigs"`
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"`
	// The location of the bucket.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringOutput `pulumi:"name"`
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrOutput `pulumi:"retentionDays"`
}

Manages a folder-level logging bucket config. For more information see [the official logging documentation](https://cloud.google.com/logging/docs/) and [Storing Logs](https://cloud.google.com/logging/docs/storage).

> **Note:** Logging buckets are automatically created for a given folder, project, organization, billingAccount and cannot be deleted. Creating a resource of this type will acquire and update the resource that already exists at the desired location. These buckets cannot be removed so deleting this resource will remove the bucket config from your state but will leave the logging bucket unchanged. The buckets that are currently automatically created are "_Default" and "_Required".

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewFolder(ctx, "default", &organizations.FolderArgs{
			DisplayName: pulumi.String("some-folder-name"),
			Parent:      pulumi.String("organizations/123456789"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewFolderBucketConfig(ctx, "basic", &logging.FolderBucketConfigArgs{
			Folder:        _default.Name,
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("_Default"),
			IndexConfigs: logging.FolderBucketConfigIndexConfigArray{
				&logging.FolderBucketConfigIndexConfigArgs{
					FieldPath: pulumi.String("jsonPayload.request.status"),
					Type:      pulumi.String("INDEX_TYPE_STRING"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource can be imported using the following format:

* `folders/{{folder}}/locations/{{location}}/buckets/{{bucket_id}}`

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

```sh $ pulumi import gcp:logging/folderBucketConfig:FolderBucketConfig default folders/{{folder}}/locations/{{location}}/buckets/{{bucket_id}} ```

func GetFolderBucketConfig

func GetFolderBucketConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FolderBucketConfigState, opts ...pulumi.ResourceOption) (*FolderBucketConfig, error)

GetFolderBucketConfig gets an existing FolderBucketConfig 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 NewFolderBucketConfig

func NewFolderBucketConfig(ctx *pulumi.Context,
	name string, args *FolderBucketConfigArgs, opts ...pulumi.ResourceOption) (*FolderBucketConfig, error)

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

func (*FolderBucketConfig) ElementType

func (*FolderBucketConfig) ElementType() reflect.Type

func (*FolderBucketConfig) ToFolderBucketConfigOutput

func (i *FolderBucketConfig) ToFolderBucketConfigOutput() FolderBucketConfigOutput

func (*FolderBucketConfig) ToFolderBucketConfigOutputWithContext

func (i *FolderBucketConfig) ToFolderBucketConfigOutputWithContext(ctx context.Context) FolderBucketConfigOutput

type FolderBucketConfigArgs

type FolderBucketConfigArgs struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings FolderBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// The parent resource that contains the logging bucket.
	Folder pulumi.StringInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs FolderBucketConfigIndexConfigArrayInput
	// The location of the bucket.
	Location pulumi.StringInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

The set of arguments for constructing a FolderBucketConfig resource.

func (FolderBucketConfigArgs) ElementType

func (FolderBucketConfigArgs) ElementType() reflect.Type

type FolderBucketConfigArray

type FolderBucketConfigArray []FolderBucketConfigInput

func (FolderBucketConfigArray) ElementType

func (FolderBucketConfigArray) ElementType() reflect.Type

func (FolderBucketConfigArray) ToFolderBucketConfigArrayOutput

func (i FolderBucketConfigArray) ToFolderBucketConfigArrayOutput() FolderBucketConfigArrayOutput

func (FolderBucketConfigArray) ToFolderBucketConfigArrayOutputWithContext

func (i FolderBucketConfigArray) ToFolderBucketConfigArrayOutputWithContext(ctx context.Context) FolderBucketConfigArrayOutput

type FolderBucketConfigArrayInput

type FolderBucketConfigArrayInput interface {
	pulumi.Input

	ToFolderBucketConfigArrayOutput() FolderBucketConfigArrayOutput
	ToFolderBucketConfigArrayOutputWithContext(context.Context) FolderBucketConfigArrayOutput
}

FolderBucketConfigArrayInput is an input type that accepts FolderBucketConfigArray and FolderBucketConfigArrayOutput values. You can construct a concrete instance of `FolderBucketConfigArrayInput` via:

FolderBucketConfigArray{ FolderBucketConfigArgs{...} }

type FolderBucketConfigArrayOutput

type FolderBucketConfigArrayOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigArrayOutput) ElementType

func (FolderBucketConfigArrayOutput) Index

func (FolderBucketConfigArrayOutput) ToFolderBucketConfigArrayOutput

func (o FolderBucketConfigArrayOutput) ToFolderBucketConfigArrayOutput() FolderBucketConfigArrayOutput

func (FolderBucketConfigArrayOutput) ToFolderBucketConfigArrayOutputWithContext

func (o FolderBucketConfigArrayOutput) ToFolderBucketConfigArrayOutputWithContext(ctx context.Context) FolderBucketConfigArrayOutput

type FolderBucketConfigCmekSettings

type FolderBucketConfigCmekSettings struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName *string `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"
	Name *string `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId *string `pulumi:"serviceAccountId"`
}

type FolderBucketConfigCmekSettingsArgs

type FolderBucketConfigCmekSettingsArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName pulumi.StringPtrInput `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId pulumi.StringPtrInput `pulumi:"serviceAccountId"`
}

func (FolderBucketConfigCmekSettingsArgs) ElementType

func (FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsOutput

func (i FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsOutput() FolderBucketConfigCmekSettingsOutput

func (FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsOutputWithContext

func (i FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsOutputWithContext(ctx context.Context) FolderBucketConfigCmekSettingsOutput

func (FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsPtrOutput

func (i FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsPtrOutput() FolderBucketConfigCmekSettingsPtrOutput

func (FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsPtrOutputWithContext

func (i FolderBucketConfigCmekSettingsArgs) ToFolderBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) FolderBucketConfigCmekSettingsPtrOutput

type FolderBucketConfigCmekSettingsInput

type FolderBucketConfigCmekSettingsInput interface {
	pulumi.Input

	ToFolderBucketConfigCmekSettingsOutput() FolderBucketConfigCmekSettingsOutput
	ToFolderBucketConfigCmekSettingsOutputWithContext(context.Context) FolderBucketConfigCmekSettingsOutput
}

FolderBucketConfigCmekSettingsInput is an input type that accepts FolderBucketConfigCmekSettingsArgs and FolderBucketConfigCmekSettingsOutput values. You can construct a concrete instance of `FolderBucketConfigCmekSettingsInput` via:

FolderBucketConfigCmekSettingsArgs{...}

type FolderBucketConfigCmekSettingsOutput

type FolderBucketConfigCmekSettingsOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigCmekSettingsOutput) ElementType

func (FolderBucketConfigCmekSettingsOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (FolderBucketConfigCmekSettingsOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (FolderBucketConfigCmekSettingsOutput) Name

The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"

func (FolderBucketConfigCmekSettingsOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsOutput

func (o FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsOutput() FolderBucketConfigCmekSettingsOutput

func (FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsOutputWithContext

func (o FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsOutputWithContext(ctx context.Context) FolderBucketConfigCmekSettingsOutput

func (FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsPtrOutput

func (o FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsPtrOutput() FolderBucketConfigCmekSettingsPtrOutput

func (FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsPtrOutputWithContext

func (o FolderBucketConfigCmekSettingsOutput) ToFolderBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) FolderBucketConfigCmekSettingsPtrOutput

type FolderBucketConfigCmekSettingsPtrInput

type FolderBucketConfigCmekSettingsPtrInput interface {
	pulumi.Input

	ToFolderBucketConfigCmekSettingsPtrOutput() FolderBucketConfigCmekSettingsPtrOutput
	ToFolderBucketConfigCmekSettingsPtrOutputWithContext(context.Context) FolderBucketConfigCmekSettingsPtrOutput
}

FolderBucketConfigCmekSettingsPtrInput is an input type that accepts FolderBucketConfigCmekSettingsArgs, FolderBucketConfigCmekSettingsPtr and FolderBucketConfigCmekSettingsPtrOutput values. You can construct a concrete instance of `FolderBucketConfigCmekSettingsPtrInput` via:

        FolderBucketConfigCmekSettingsArgs{...}

or:

        nil

type FolderBucketConfigCmekSettingsPtrOutput

type FolderBucketConfigCmekSettingsPtrOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigCmekSettingsPtrOutput) Elem

func (FolderBucketConfigCmekSettingsPtrOutput) ElementType

func (FolderBucketConfigCmekSettingsPtrOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (FolderBucketConfigCmekSettingsPtrOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (FolderBucketConfigCmekSettingsPtrOutput) Name

The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"

func (FolderBucketConfigCmekSettingsPtrOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (FolderBucketConfigCmekSettingsPtrOutput) ToFolderBucketConfigCmekSettingsPtrOutput

func (o FolderBucketConfigCmekSettingsPtrOutput) ToFolderBucketConfigCmekSettingsPtrOutput() FolderBucketConfigCmekSettingsPtrOutput

func (FolderBucketConfigCmekSettingsPtrOutput) ToFolderBucketConfigCmekSettingsPtrOutputWithContext

func (o FolderBucketConfigCmekSettingsPtrOutput) ToFolderBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) FolderBucketConfigCmekSettingsPtrOutput

type FolderBucketConfigIndexConfig

type FolderBucketConfigIndexConfig struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath string `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type string `pulumi:"type"`
}

type FolderBucketConfigIndexConfigArgs

type FolderBucketConfigIndexConfigArgs struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath pulumi.StringInput `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (FolderBucketConfigIndexConfigArgs) ElementType

func (FolderBucketConfigIndexConfigArgs) ToFolderBucketConfigIndexConfigOutput

func (i FolderBucketConfigIndexConfigArgs) ToFolderBucketConfigIndexConfigOutput() FolderBucketConfigIndexConfigOutput

func (FolderBucketConfigIndexConfigArgs) ToFolderBucketConfigIndexConfigOutputWithContext

func (i FolderBucketConfigIndexConfigArgs) ToFolderBucketConfigIndexConfigOutputWithContext(ctx context.Context) FolderBucketConfigIndexConfigOutput

type FolderBucketConfigIndexConfigArray

type FolderBucketConfigIndexConfigArray []FolderBucketConfigIndexConfigInput

func (FolderBucketConfigIndexConfigArray) ElementType

func (FolderBucketConfigIndexConfigArray) ToFolderBucketConfigIndexConfigArrayOutput

func (i FolderBucketConfigIndexConfigArray) ToFolderBucketConfigIndexConfigArrayOutput() FolderBucketConfigIndexConfigArrayOutput

func (FolderBucketConfigIndexConfigArray) ToFolderBucketConfigIndexConfigArrayOutputWithContext

func (i FolderBucketConfigIndexConfigArray) ToFolderBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) FolderBucketConfigIndexConfigArrayOutput

type FolderBucketConfigIndexConfigArrayInput

type FolderBucketConfigIndexConfigArrayInput interface {
	pulumi.Input

	ToFolderBucketConfigIndexConfigArrayOutput() FolderBucketConfigIndexConfigArrayOutput
	ToFolderBucketConfigIndexConfigArrayOutputWithContext(context.Context) FolderBucketConfigIndexConfigArrayOutput
}

FolderBucketConfigIndexConfigArrayInput is an input type that accepts FolderBucketConfigIndexConfigArray and FolderBucketConfigIndexConfigArrayOutput values. You can construct a concrete instance of `FolderBucketConfigIndexConfigArrayInput` via:

FolderBucketConfigIndexConfigArray{ FolderBucketConfigIndexConfigArgs{...} }

type FolderBucketConfigIndexConfigArrayOutput

type FolderBucketConfigIndexConfigArrayOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigIndexConfigArrayOutput) ElementType

func (FolderBucketConfigIndexConfigArrayOutput) Index

func (FolderBucketConfigIndexConfigArrayOutput) ToFolderBucketConfigIndexConfigArrayOutput

func (o FolderBucketConfigIndexConfigArrayOutput) ToFolderBucketConfigIndexConfigArrayOutput() FolderBucketConfigIndexConfigArrayOutput

func (FolderBucketConfigIndexConfigArrayOutput) ToFolderBucketConfigIndexConfigArrayOutputWithContext

func (o FolderBucketConfigIndexConfigArrayOutput) ToFolderBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) FolderBucketConfigIndexConfigArrayOutput

type FolderBucketConfigIndexConfigInput

type FolderBucketConfigIndexConfigInput interface {
	pulumi.Input

	ToFolderBucketConfigIndexConfigOutput() FolderBucketConfigIndexConfigOutput
	ToFolderBucketConfigIndexConfigOutputWithContext(context.Context) FolderBucketConfigIndexConfigOutput
}

FolderBucketConfigIndexConfigInput is an input type that accepts FolderBucketConfigIndexConfigArgs and FolderBucketConfigIndexConfigOutput values. You can construct a concrete instance of `FolderBucketConfigIndexConfigInput` via:

FolderBucketConfigIndexConfigArgs{...}

type FolderBucketConfigIndexConfigOutput

type FolderBucketConfigIndexConfigOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigIndexConfigOutput) ElementType

func (FolderBucketConfigIndexConfigOutput) FieldPath

The LogEntry field path to index. Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.

func (FolderBucketConfigIndexConfigOutput) ToFolderBucketConfigIndexConfigOutput

func (o FolderBucketConfigIndexConfigOutput) ToFolderBucketConfigIndexConfigOutput() FolderBucketConfigIndexConfigOutput

func (FolderBucketConfigIndexConfigOutput) ToFolderBucketConfigIndexConfigOutputWithContext

func (o FolderBucketConfigIndexConfigOutput) ToFolderBucketConfigIndexConfigOutputWithContext(ctx context.Context) FolderBucketConfigIndexConfigOutput

func (FolderBucketConfigIndexConfigOutput) Type

The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.

type FolderBucketConfigInput

type FolderBucketConfigInput interface {
	pulumi.Input

	ToFolderBucketConfigOutput() FolderBucketConfigOutput
	ToFolderBucketConfigOutputWithContext(ctx context.Context) FolderBucketConfigOutput
}

type FolderBucketConfigMap

type FolderBucketConfigMap map[string]FolderBucketConfigInput

func (FolderBucketConfigMap) ElementType

func (FolderBucketConfigMap) ElementType() reflect.Type

func (FolderBucketConfigMap) ToFolderBucketConfigMapOutput

func (i FolderBucketConfigMap) ToFolderBucketConfigMapOutput() FolderBucketConfigMapOutput

func (FolderBucketConfigMap) ToFolderBucketConfigMapOutputWithContext

func (i FolderBucketConfigMap) ToFolderBucketConfigMapOutputWithContext(ctx context.Context) FolderBucketConfigMapOutput

type FolderBucketConfigMapInput

type FolderBucketConfigMapInput interface {
	pulumi.Input

	ToFolderBucketConfigMapOutput() FolderBucketConfigMapOutput
	ToFolderBucketConfigMapOutputWithContext(context.Context) FolderBucketConfigMapOutput
}

FolderBucketConfigMapInput is an input type that accepts FolderBucketConfigMap and FolderBucketConfigMapOutput values. You can construct a concrete instance of `FolderBucketConfigMapInput` via:

FolderBucketConfigMap{ "key": FolderBucketConfigArgs{...} }

type FolderBucketConfigMapOutput

type FolderBucketConfigMapOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigMapOutput) ElementType

func (FolderBucketConfigMapOutput) MapIndex

func (FolderBucketConfigMapOutput) ToFolderBucketConfigMapOutput

func (o FolderBucketConfigMapOutput) ToFolderBucketConfigMapOutput() FolderBucketConfigMapOutput

func (FolderBucketConfigMapOutput) ToFolderBucketConfigMapOutputWithContext

func (o FolderBucketConfigMapOutput) ToFolderBucketConfigMapOutputWithContext(ctx context.Context) FolderBucketConfigMapOutput

type FolderBucketConfigOutput

type FolderBucketConfigOutput struct{ *pulumi.OutputState }

func (FolderBucketConfigOutput) BucketId

The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.

func (FolderBucketConfigOutput) CmekSettings

The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed.

func (FolderBucketConfigOutput) Description

Describes this bucket.

func (FolderBucketConfigOutput) ElementType

func (FolderBucketConfigOutput) ElementType() reflect.Type

func (FolderBucketConfigOutput) Folder

The parent resource that contains the logging bucket.

func (FolderBucketConfigOutput) IndexConfigs

A list of indexed fields and related configuration data. Structure is documented below.

func (FolderBucketConfigOutput) LifecycleState

func (o FolderBucketConfigOutput) LifecycleState() pulumi.StringOutput

The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).

func (FolderBucketConfigOutput) Location

The location of the bucket.

func (FolderBucketConfigOutput) Name

The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"

func (FolderBucketConfigOutput) RetentionDays

func (o FolderBucketConfigOutput) RetentionDays() pulumi.IntPtrOutput

Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.

func (FolderBucketConfigOutput) ToFolderBucketConfigOutput

func (o FolderBucketConfigOutput) ToFolderBucketConfigOutput() FolderBucketConfigOutput

func (FolderBucketConfigOutput) ToFolderBucketConfigOutputWithContext

func (o FolderBucketConfigOutput) ToFolderBucketConfigOutputWithContext(ctx context.Context) FolderBucketConfigOutput

type FolderBucketConfigState

type FolderBucketConfigState struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringPtrInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings FolderBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// The parent resource that contains the logging bucket.
	Folder pulumi.StringPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs FolderBucketConfigIndexConfigArrayInput
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringPtrInput
	// The location of the bucket.
	Location pulumi.StringPtrInput
	// The resource name of the bucket. For example: "folders/my-folder-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

func (FolderBucketConfigState) ElementType

func (FolderBucketConfigState) ElementType() reflect.Type

type FolderExclusion

type FolderExclusion struct {
	pulumi.CustomResourceState

	// A human-readable description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringOutput `pulumi:"filter"`
	// The folder to be exported to the sink. Note that either [FOLDER_ID] or "folders/[FOLDER_ID]" is
	// accepted.
	Folder pulumi.StringOutput `pulumi:"folder"`
	// The name of the logging exclusion.
	Name pulumi.StringOutput `pulumi:"name"`
}

Manages a folder-level logging exclusion. For more information see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/folders.exclusions) * How-to Guides

> You can specify exclusions for log sinks created by the provider by using the exclusions field of `logging.FolderSink`

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewFolder(ctx, "my-folder", &organizations.FolderArgs{
			DisplayName: pulumi.String("My folder"),
			Parent:      pulumi.String("organizations/123456"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewFolderExclusion(ctx, "my-exclusion", &logging.FolderExclusionArgs{
			Name:        pulumi.String("my-instance-debug-exclusion"),
			Folder:      my_folder.Name,
			Description: pulumi.String("Exclude GCE instance debug logs"),
			Filter:      pulumi.String("resource.type = gce_instance AND severity <= DEBUG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Folder-level logging exclusions can be imported using their URI, e.g.

* `folders/{{folder}}/exclusions/{{name}}`

When using the `pulumi import` command, folder-level logging exclusions can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/folderExclusion:FolderExclusion default folders/{{folder}}/exclusions/{{name}} ```

func GetFolderExclusion

func GetFolderExclusion(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FolderExclusionState, opts ...pulumi.ResourceOption) (*FolderExclusion, error)

GetFolderExclusion gets an existing FolderExclusion 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 NewFolderExclusion

func NewFolderExclusion(ctx *pulumi.Context,
	name string, args *FolderExclusionArgs, opts ...pulumi.ResourceOption) (*FolderExclusion, error)

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

func (*FolderExclusion) ElementType

func (*FolderExclusion) ElementType() reflect.Type

func (*FolderExclusion) ToFolderExclusionOutput

func (i *FolderExclusion) ToFolderExclusionOutput() FolderExclusionOutput

func (*FolderExclusion) ToFolderExclusionOutputWithContext

func (i *FolderExclusion) ToFolderExclusionOutputWithContext(ctx context.Context) FolderExclusionOutput

type FolderExclusionArgs

type FolderExclusionArgs struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput
	// The folder to be exported to the sink. Note that either [FOLDER_ID] or "folders/[FOLDER_ID]" is
	// accepted.
	Folder pulumi.StringInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a FolderExclusion resource.

func (FolderExclusionArgs) ElementType

func (FolderExclusionArgs) ElementType() reflect.Type

type FolderExclusionArray

type FolderExclusionArray []FolderExclusionInput

func (FolderExclusionArray) ElementType

func (FolderExclusionArray) ElementType() reflect.Type

func (FolderExclusionArray) ToFolderExclusionArrayOutput

func (i FolderExclusionArray) ToFolderExclusionArrayOutput() FolderExclusionArrayOutput

func (FolderExclusionArray) ToFolderExclusionArrayOutputWithContext

func (i FolderExclusionArray) ToFolderExclusionArrayOutputWithContext(ctx context.Context) FolderExclusionArrayOutput

type FolderExclusionArrayInput

type FolderExclusionArrayInput interface {
	pulumi.Input

	ToFolderExclusionArrayOutput() FolderExclusionArrayOutput
	ToFolderExclusionArrayOutputWithContext(context.Context) FolderExclusionArrayOutput
}

FolderExclusionArrayInput is an input type that accepts FolderExclusionArray and FolderExclusionArrayOutput values. You can construct a concrete instance of `FolderExclusionArrayInput` via:

FolderExclusionArray{ FolderExclusionArgs{...} }

type FolderExclusionArrayOutput

type FolderExclusionArrayOutput struct{ *pulumi.OutputState }

func (FolderExclusionArrayOutput) ElementType

func (FolderExclusionArrayOutput) ElementType() reflect.Type

func (FolderExclusionArrayOutput) Index

func (FolderExclusionArrayOutput) ToFolderExclusionArrayOutput

func (o FolderExclusionArrayOutput) ToFolderExclusionArrayOutput() FolderExclusionArrayOutput

func (FolderExclusionArrayOutput) ToFolderExclusionArrayOutputWithContext

func (o FolderExclusionArrayOutput) ToFolderExclusionArrayOutputWithContext(ctx context.Context) FolderExclusionArrayOutput

type FolderExclusionInput

type FolderExclusionInput interface {
	pulumi.Input

	ToFolderExclusionOutput() FolderExclusionOutput
	ToFolderExclusionOutputWithContext(ctx context.Context) FolderExclusionOutput
}

type FolderExclusionMap

type FolderExclusionMap map[string]FolderExclusionInput

func (FolderExclusionMap) ElementType

func (FolderExclusionMap) ElementType() reflect.Type

func (FolderExclusionMap) ToFolderExclusionMapOutput

func (i FolderExclusionMap) ToFolderExclusionMapOutput() FolderExclusionMapOutput

func (FolderExclusionMap) ToFolderExclusionMapOutputWithContext

func (i FolderExclusionMap) ToFolderExclusionMapOutputWithContext(ctx context.Context) FolderExclusionMapOutput

type FolderExclusionMapInput

type FolderExclusionMapInput interface {
	pulumi.Input

	ToFolderExclusionMapOutput() FolderExclusionMapOutput
	ToFolderExclusionMapOutputWithContext(context.Context) FolderExclusionMapOutput
}

FolderExclusionMapInput is an input type that accepts FolderExclusionMap and FolderExclusionMapOutput values. You can construct a concrete instance of `FolderExclusionMapInput` via:

FolderExclusionMap{ "key": FolderExclusionArgs{...} }

type FolderExclusionMapOutput

type FolderExclusionMapOutput struct{ *pulumi.OutputState }

func (FolderExclusionMapOutput) ElementType

func (FolderExclusionMapOutput) ElementType() reflect.Type

func (FolderExclusionMapOutput) MapIndex

func (FolderExclusionMapOutput) ToFolderExclusionMapOutput

func (o FolderExclusionMapOutput) ToFolderExclusionMapOutput() FolderExclusionMapOutput

func (FolderExclusionMapOutput) ToFolderExclusionMapOutputWithContext

func (o FolderExclusionMapOutput) ToFolderExclusionMapOutputWithContext(ctx context.Context) FolderExclusionMapOutput

type FolderExclusionOutput

type FolderExclusionOutput struct{ *pulumi.OutputState }

func (FolderExclusionOutput) Description

A human-readable description.

func (FolderExclusionOutput) Disabled

Whether this exclusion rule should be disabled or not. This defaults to false.

func (FolderExclusionOutput) ElementType

func (FolderExclusionOutput) ElementType() reflect.Type

func (FolderExclusionOutput) Filter

The filter to apply when excluding logs. Only log entries that match the filter are excluded. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to write a filter.

func (FolderExclusionOutput) Folder

The folder to be exported to the sink. Note that either [FOLDER_ID] or "folders/[FOLDER_ID]" is accepted.

func (FolderExclusionOutput) Name

The name of the logging exclusion.

func (FolderExclusionOutput) ToFolderExclusionOutput

func (o FolderExclusionOutput) ToFolderExclusionOutput() FolderExclusionOutput

func (FolderExclusionOutput) ToFolderExclusionOutputWithContext

func (o FolderExclusionOutput) ToFolderExclusionOutputWithContext(ctx context.Context) FolderExclusionOutput

type FolderExclusionState

type FolderExclusionState struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The folder to be exported to the sink. Note that either [FOLDER_ID] or "folders/[FOLDER_ID]" is
	// accepted.
	Folder pulumi.StringPtrInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
}

func (FolderExclusionState) ElementType

func (FolderExclusionState) ElementType() reflect.Type

type FolderSettings

type FolderSettings struct {
	pulumi.CustomResourceState

	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolOutput `pulumi:"disableDefaultSink"`
	// The folder for which to retrieve settings.
	//
	// ***
	Folder pulumi.StringOutput `pulumi:"folder"`
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringOutput `pulumi:"kmsKeyName"`
	// The service account that will be used by the Log Router to access your Cloud KMS key.
	KmsServiceAccountId pulumi.StringOutput `pulumi:"kmsServiceAccountId"`
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId pulumi.StringOutput `pulumi:"loggingServiceAccountId"`
	// The resource name of the settings.
	Name pulumi.StringOutput `pulumi:"name"`
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringOutput `pulumi:"storageLocation"`
}

Default resource settings control whether CMEK is required for new log buckets. These settings also determine the storage location for the _Default and _Required log buckets, and whether the _Default sink is enabled or disabled.

To get more information about FolderSettings, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getSettings) * How-to Guides

## Example Usage

### Logging Folder Settings All

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myFolder, err := organizations.NewFolder(ctx, "my_folder", &organizations.FolderArgs{
			DisplayName:        pulumi.String("folder-name"),
			Parent:             pulumi.String("organizations/123456789"),
			DeletionProtection: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		settings := logging.LookupFolderSettingsOutput(ctx, logging.GetFolderSettingsOutputArgs{
			Folder: myFolder.FolderId,
		}, nil)
		iam, err := kms.NewCryptoKeyIAMMember(ctx, "iam", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.String("kms-key"),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Member: settings.ApplyT(func(settings logging.GetFolderSettingsResult) (string, error) {
				return fmt.Sprintf("serviceAccount:%v", settings.KmsServiceAccountId), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewFolderSettings(ctx, "example", &logging.FolderSettingsArgs{
			DisableDefaultSink: pulumi.Bool(true),
			Folder:             myFolder.FolderId,
			KmsKeyName:         pulumi.String("kms-key"),
			StorageLocation:    pulumi.String("us-central1"),
		}, pulumi.DependsOn([]pulumi.Resource{
			iam,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

FolderSettings can be imported using any of these accepted formats:

* `folders/{{folder}}/settings`

* `{{folder}}`

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

```sh $ pulumi import gcp:logging/folderSettings:FolderSettings default folders/{{folder}}/settings ```

```sh $ pulumi import gcp:logging/folderSettings:FolderSettings default {{folder}} ```

func GetFolderSettings

func GetFolderSettings(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FolderSettingsState, opts ...pulumi.ResourceOption) (*FolderSettings, error)

GetFolderSettings gets an existing FolderSettings 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 NewFolderSettings

func NewFolderSettings(ctx *pulumi.Context,
	name string, args *FolderSettingsArgs, opts ...pulumi.ResourceOption) (*FolderSettings, error)

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

func (*FolderSettings) ElementType

func (*FolderSettings) ElementType() reflect.Type

func (*FolderSettings) ToFolderSettingsOutput

func (i *FolderSettings) ToFolderSettingsOutput() FolderSettingsOutput

func (*FolderSettings) ToFolderSettingsOutputWithContext

func (i *FolderSettings) ToFolderSettingsOutputWithContext(ctx context.Context) FolderSettingsOutput

type FolderSettingsArgs

type FolderSettingsArgs struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolPtrInput
	// The folder for which to retrieve settings.
	//
	// ***
	Folder pulumi.StringInput
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringPtrInput
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringPtrInput
}

The set of arguments for constructing a FolderSettings resource.

func (FolderSettingsArgs) ElementType

func (FolderSettingsArgs) ElementType() reflect.Type

type FolderSettingsArray

type FolderSettingsArray []FolderSettingsInput

func (FolderSettingsArray) ElementType

func (FolderSettingsArray) ElementType() reflect.Type

func (FolderSettingsArray) ToFolderSettingsArrayOutput

func (i FolderSettingsArray) ToFolderSettingsArrayOutput() FolderSettingsArrayOutput

func (FolderSettingsArray) ToFolderSettingsArrayOutputWithContext

func (i FolderSettingsArray) ToFolderSettingsArrayOutputWithContext(ctx context.Context) FolderSettingsArrayOutput

type FolderSettingsArrayInput

type FolderSettingsArrayInput interface {
	pulumi.Input

	ToFolderSettingsArrayOutput() FolderSettingsArrayOutput
	ToFolderSettingsArrayOutputWithContext(context.Context) FolderSettingsArrayOutput
}

FolderSettingsArrayInput is an input type that accepts FolderSettingsArray and FolderSettingsArrayOutput values. You can construct a concrete instance of `FolderSettingsArrayInput` via:

FolderSettingsArray{ FolderSettingsArgs{...} }

type FolderSettingsArrayOutput

type FolderSettingsArrayOutput struct{ *pulumi.OutputState }

func (FolderSettingsArrayOutput) ElementType

func (FolderSettingsArrayOutput) ElementType() reflect.Type

func (FolderSettingsArrayOutput) Index

func (FolderSettingsArrayOutput) ToFolderSettingsArrayOutput

func (o FolderSettingsArrayOutput) ToFolderSettingsArrayOutput() FolderSettingsArrayOutput

func (FolderSettingsArrayOutput) ToFolderSettingsArrayOutputWithContext

func (o FolderSettingsArrayOutput) ToFolderSettingsArrayOutputWithContext(ctx context.Context) FolderSettingsArrayOutput

type FolderSettingsInput

type FolderSettingsInput interface {
	pulumi.Input

	ToFolderSettingsOutput() FolderSettingsOutput
	ToFolderSettingsOutputWithContext(ctx context.Context) FolderSettingsOutput
}

type FolderSettingsMap

type FolderSettingsMap map[string]FolderSettingsInput

func (FolderSettingsMap) ElementType

func (FolderSettingsMap) ElementType() reflect.Type

func (FolderSettingsMap) ToFolderSettingsMapOutput

func (i FolderSettingsMap) ToFolderSettingsMapOutput() FolderSettingsMapOutput

func (FolderSettingsMap) ToFolderSettingsMapOutputWithContext

func (i FolderSettingsMap) ToFolderSettingsMapOutputWithContext(ctx context.Context) FolderSettingsMapOutput

type FolderSettingsMapInput

type FolderSettingsMapInput interface {
	pulumi.Input

	ToFolderSettingsMapOutput() FolderSettingsMapOutput
	ToFolderSettingsMapOutputWithContext(context.Context) FolderSettingsMapOutput
}

FolderSettingsMapInput is an input type that accepts FolderSettingsMap and FolderSettingsMapOutput values. You can construct a concrete instance of `FolderSettingsMapInput` via:

FolderSettingsMap{ "key": FolderSettingsArgs{...} }

type FolderSettingsMapOutput

type FolderSettingsMapOutput struct{ *pulumi.OutputState }

func (FolderSettingsMapOutput) ElementType

func (FolderSettingsMapOutput) ElementType() reflect.Type

func (FolderSettingsMapOutput) MapIndex

func (FolderSettingsMapOutput) ToFolderSettingsMapOutput

func (o FolderSettingsMapOutput) ToFolderSettingsMapOutput() FolderSettingsMapOutput

func (FolderSettingsMapOutput) ToFolderSettingsMapOutputWithContext

func (o FolderSettingsMapOutput) ToFolderSettingsMapOutputWithContext(ctx context.Context) FolderSettingsMapOutput

type FolderSettingsOutput

type FolderSettingsOutput struct{ *pulumi.OutputState }

func (FolderSettingsOutput) DisableDefaultSink

func (o FolderSettingsOutput) DisableDefaultSink() pulumi.BoolOutput

If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.

func (FolderSettingsOutput) ElementType

func (FolderSettingsOutput) ElementType() reflect.Type

func (FolderSettingsOutput) Folder

The folder for which to retrieve settings.

***

func (FolderSettingsOutput) KmsKeyName

func (o FolderSettingsOutput) KmsKeyName() pulumi.StringOutput

The resource name for the configured Cloud KMS key.

func (FolderSettingsOutput) KmsServiceAccountId

func (o FolderSettingsOutput) KmsServiceAccountId() pulumi.StringOutput

The service account that will be used by the Log Router to access your Cloud KMS key.

func (FolderSettingsOutput) LoggingServiceAccountId

func (o FolderSettingsOutput) LoggingServiceAccountId() pulumi.StringOutput

The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.

func (FolderSettingsOutput) Name

The resource name of the settings.

func (FolderSettingsOutput) StorageLocation

func (o FolderSettingsOutput) StorageLocation() pulumi.StringOutput

The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.

func (FolderSettingsOutput) ToFolderSettingsOutput

func (o FolderSettingsOutput) ToFolderSettingsOutput() FolderSettingsOutput

func (FolderSettingsOutput) ToFolderSettingsOutputWithContext

func (o FolderSettingsOutput) ToFolderSettingsOutputWithContext(ctx context.Context) FolderSettingsOutput

type FolderSettingsState

type FolderSettingsState struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolPtrInput
	// The folder for which to retrieve settings.
	//
	// ***
	Folder pulumi.StringPtrInput
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringPtrInput
	// The service account that will be used by the Log Router to access your Cloud KMS key.
	KmsServiceAccountId pulumi.StringPtrInput
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId pulumi.StringPtrInput
	// The resource name of the settings.
	Name pulumi.StringPtrInput
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringPtrInput
}

func (FolderSettingsState) ElementType

func (FolderSettingsState) ElementType() reflect.Type

type FolderSink

type FolderSink struct {
	pulumi.CustomResourceState

	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions FolderSinkBigqueryOptionsOutput `pulumi:"bigqueryOptions"`
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringOutput `pulumi:"destination"`
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions FolderSinkExclusionArrayOutput `pulumi:"exclusions"`
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// The folder to be exported to the sink. Note that either `[FOLDER_ID]` or `folders/[FOLDER_ID]` is
	// accepted.
	Folder pulumi.StringOutput `pulumi:"folder"`
	// Whether or not to include children folders in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided folder are included.
	IncludeChildren pulumi.BoolPtrOutput `pulumi:"includeChildren"`
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrOutput `pulumi:"interceptChildren"`
	// The name of the logging sink.
	Name pulumi.StringOutput `pulumi:"name"`
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringOutput `pulumi:"writerIdentity"`
}

Manages a folder-level logging sink. For more information see: * [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/folders.sinks) * How-to Guides

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/logging"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "log-bucket", &storage.BucketArgs{
			Name:     pulumi.String("folder-logging-bucket"),
			Location: pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		_, err = organizations.NewFolder(ctx, "my-folder", &organizations.FolderArgs{
			DisplayName: pulumi.String("My folder"),
			Parent:      pulumi.String("organizations/123456"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewFolderSink(ctx, "my-sink", &logging.FolderSinkArgs{
			Name:        pulumi.String("my-sink"),
			Description: pulumi.String("some explanation on what this is"),
			Folder:      my_folder.Name,
			Destination: log_bucket.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("storage.googleapis.com/%v", name), nil
			}).(pulumi.StringOutput),
			Filter: pulumi.String("resource.type = gce_instance AND severity >= WARNING"),
		})
		if err != nil {
			return err
		}
		_, err = projects.NewIAMBinding(ctx, "log-writer", &projects.IAMBindingArgs{
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/storage.objectCreator"),
			Members: pulumi.StringArray{
				my_sink.WriterIdentity,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Folder-level logging sinks can be imported using this format:

* `folders/{{folder_id}}/sinks/{{name}}`

When using the `pulumi import` command, folder-level logging sinks can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/folderSink:FolderSink default folders/{{folder_id}}/sinks/{{name}} ```

func GetFolderSink

func GetFolderSink(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FolderSinkState, opts ...pulumi.ResourceOption) (*FolderSink, error)

GetFolderSink gets an existing FolderSink 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 NewFolderSink

func NewFolderSink(ctx *pulumi.Context,
	name string, args *FolderSinkArgs, opts ...pulumi.ResourceOption) (*FolderSink, error)

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

func (*FolderSink) ElementType

func (*FolderSink) ElementType() reflect.Type

func (*FolderSink) ToFolderSinkOutput

func (i *FolderSink) ToFolderSinkOutput() FolderSinkOutput

func (*FolderSink) ToFolderSinkOutputWithContext

func (i *FolderSink) ToFolderSinkOutputWithContext(ctx context.Context) FolderSinkOutput

type FolderSinkArgs

type FolderSinkArgs struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions FolderSinkBigqueryOptionsPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions FolderSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The folder to be exported to the sink. Note that either `[FOLDER_ID]` or `folders/[FOLDER_ID]` is
	// accepted.
	Folder pulumi.StringInput
	// Whether or not to include children folders in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided folder are included.
	IncludeChildren pulumi.BoolPtrInput
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
}

The set of arguments for constructing a FolderSink resource.

func (FolderSinkArgs) ElementType

func (FolderSinkArgs) ElementType() reflect.Type

type FolderSinkArray

type FolderSinkArray []FolderSinkInput

func (FolderSinkArray) ElementType

func (FolderSinkArray) ElementType() reflect.Type

func (FolderSinkArray) ToFolderSinkArrayOutput

func (i FolderSinkArray) ToFolderSinkArrayOutput() FolderSinkArrayOutput

func (FolderSinkArray) ToFolderSinkArrayOutputWithContext

func (i FolderSinkArray) ToFolderSinkArrayOutputWithContext(ctx context.Context) FolderSinkArrayOutput

type FolderSinkArrayInput

type FolderSinkArrayInput interface {
	pulumi.Input

	ToFolderSinkArrayOutput() FolderSinkArrayOutput
	ToFolderSinkArrayOutputWithContext(context.Context) FolderSinkArrayOutput
}

FolderSinkArrayInput is an input type that accepts FolderSinkArray and FolderSinkArrayOutput values. You can construct a concrete instance of `FolderSinkArrayInput` via:

FolderSinkArray{ FolderSinkArgs{...} }

type FolderSinkArrayOutput

type FolderSinkArrayOutput struct{ *pulumi.OutputState }

func (FolderSinkArrayOutput) ElementType

func (FolderSinkArrayOutput) ElementType() reflect.Type

func (FolderSinkArrayOutput) Index

func (FolderSinkArrayOutput) ToFolderSinkArrayOutput

func (o FolderSinkArrayOutput) ToFolderSinkArrayOutput() FolderSinkArrayOutput

func (FolderSinkArrayOutput) ToFolderSinkArrayOutputWithContext

func (o FolderSinkArrayOutput) ToFolderSinkArrayOutputWithContext(ctx context.Context) FolderSinkArrayOutput

type FolderSinkBigqueryOptions

type FolderSinkBigqueryOptions struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables bool `pulumi:"usePartitionedTables"`
}

type FolderSinkBigqueryOptionsArgs

type FolderSinkBigqueryOptionsArgs struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables pulumi.BoolInput `pulumi:"usePartitionedTables"`
}

func (FolderSinkBigqueryOptionsArgs) ElementType

func (FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsOutput

func (i FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsOutput() FolderSinkBigqueryOptionsOutput

func (FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsOutputWithContext

func (i FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsOutputWithContext(ctx context.Context) FolderSinkBigqueryOptionsOutput

func (FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsPtrOutput

func (i FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsPtrOutput() FolderSinkBigqueryOptionsPtrOutput

func (FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsPtrOutputWithContext

func (i FolderSinkBigqueryOptionsArgs) ToFolderSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) FolderSinkBigqueryOptionsPtrOutput

type FolderSinkBigqueryOptionsInput

type FolderSinkBigqueryOptionsInput interface {
	pulumi.Input

	ToFolderSinkBigqueryOptionsOutput() FolderSinkBigqueryOptionsOutput
	ToFolderSinkBigqueryOptionsOutputWithContext(context.Context) FolderSinkBigqueryOptionsOutput
}

FolderSinkBigqueryOptionsInput is an input type that accepts FolderSinkBigqueryOptionsArgs and FolderSinkBigqueryOptionsOutput values. You can construct a concrete instance of `FolderSinkBigqueryOptionsInput` via:

FolderSinkBigqueryOptionsArgs{...}

type FolderSinkBigqueryOptionsOutput

type FolderSinkBigqueryOptionsOutput struct{ *pulumi.OutputState }

func (FolderSinkBigqueryOptionsOutput) ElementType

func (FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsOutput

func (o FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsOutput() FolderSinkBigqueryOptionsOutput

func (FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsOutputWithContext

func (o FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsOutputWithContext(ctx context.Context) FolderSinkBigqueryOptionsOutput

func (FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsPtrOutput

func (o FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsPtrOutput() FolderSinkBigqueryOptionsPtrOutput

func (FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsPtrOutputWithContext

func (o FolderSinkBigqueryOptionsOutput) ToFolderSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) FolderSinkBigqueryOptionsPtrOutput

func (FolderSinkBigqueryOptionsOutput) UsePartitionedTables

func (o FolderSinkBigqueryOptionsOutput) UsePartitionedTables() pulumi.BoolOutput

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type FolderSinkBigqueryOptionsPtrInput

type FolderSinkBigqueryOptionsPtrInput interface {
	pulumi.Input

	ToFolderSinkBigqueryOptionsPtrOutput() FolderSinkBigqueryOptionsPtrOutput
	ToFolderSinkBigqueryOptionsPtrOutputWithContext(context.Context) FolderSinkBigqueryOptionsPtrOutput
}

FolderSinkBigqueryOptionsPtrInput is an input type that accepts FolderSinkBigqueryOptionsArgs, FolderSinkBigqueryOptionsPtr and FolderSinkBigqueryOptionsPtrOutput values. You can construct a concrete instance of `FolderSinkBigqueryOptionsPtrInput` via:

        FolderSinkBigqueryOptionsArgs{...}

or:

        nil

type FolderSinkBigqueryOptionsPtrOutput

type FolderSinkBigqueryOptionsPtrOutput struct{ *pulumi.OutputState }

func (FolderSinkBigqueryOptionsPtrOutput) Elem

func (FolderSinkBigqueryOptionsPtrOutput) ElementType

func (FolderSinkBigqueryOptionsPtrOutput) ToFolderSinkBigqueryOptionsPtrOutput

func (o FolderSinkBigqueryOptionsPtrOutput) ToFolderSinkBigqueryOptionsPtrOutput() FolderSinkBigqueryOptionsPtrOutput

func (FolderSinkBigqueryOptionsPtrOutput) ToFolderSinkBigqueryOptionsPtrOutputWithContext

func (o FolderSinkBigqueryOptionsPtrOutput) ToFolderSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) FolderSinkBigqueryOptionsPtrOutput

func (FolderSinkBigqueryOptionsPtrOutput) UsePartitionedTables

func (o FolderSinkBigqueryOptionsPtrOutput) UsePartitionedTables() pulumi.BoolPtrOutput

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables, the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type FolderSinkExclusion

type FolderSinkExclusion struct {
	// A description of this exclusion.
	Description *string `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled *bool `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter string `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name string `pulumi:"name"`
}

type FolderSinkExclusionArgs

type FolderSinkExclusionArgs struct {
	// A description of this exclusion.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled pulumi.BoolPtrInput `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name pulumi.StringInput `pulumi:"name"`
}

func (FolderSinkExclusionArgs) ElementType

func (FolderSinkExclusionArgs) ElementType() reflect.Type

func (FolderSinkExclusionArgs) ToFolderSinkExclusionOutput

func (i FolderSinkExclusionArgs) ToFolderSinkExclusionOutput() FolderSinkExclusionOutput

func (FolderSinkExclusionArgs) ToFolderSinkExclusionOutputWithContext

func (i FolderSinkExclusionArgs) ToFolderSinkExclusionOutputWithContext(ctx context.Context) FolderSinkExclusionOutput

type FolderSinkExclusionArray

type FolderSinkExclusionArray []FolderSinkExclusionInput

func (FolderSinkExclusionArray) ElementType

func (FolderSinkExclusionArray) ElementType() reflect.Type

func (FolderSinkExclusionArray) ToFolderSinkExclusionArrayOutput

func (i FolderSinkExclusionArray) ToFolderSinkExclusionArrayOutput() FolderSinkExclusionArrayOutput

func (FolderSinkExclusionArray) ToFolderSinkExclusionArrayOutputWithContext

func (i FolderSinkExclusionArray) ToFolderSinkExclusionArrayOutputWithContext(ctx context.Context) FolderSinkExclusionArrayOutput

type FolderSinkExclusionArrayInput

type FolderSinkExclusionArrayInput interface {
	pulumi.Input

	ToFolderSinkExclusionArrayOutput() FolderSinkExclusionArrayOutput
	ToFolderSinkExclusionArrayOutputWithContext(context.Context) FolderSinkExclusionArrayOutput
}

FolderSinkExclusionArrayInput is an input type that accepts FolderSinkExclusionArray and FolderSinkExclusionArrayOutput values. You can construct a concrete instance of `FolderSinkExclusionArrayInput` via:

FolderSinkExclusionArray{ FolderSinkExclusionArgs{...} }

type FolderSinkExclusionArrayOutput

type FolderSinkExclusionArrayOutput struct{ *pulumi.OutputState }

func (FolderSinkExclusionArrayOutput) ElementType

func (FolderSinkExclusionArrayOutput) Index

func (FolderSinkExclusionArrayOutput) ToFolderSinkExclusionArrayOutput

func (o FolderSinkExclusionArrayOutput) ToFolderSinkExclusionArrayOutput() FolderSinkExclusionArrayOutput

func (FolderSinkExclusionArrayOutput) ToFolderSinkExclusionArrayOutputWithContext

func (o FolderSinkExclusionArrayOutput) ToFolderSinkExclusionArrayOutputWithContext(ctx context.Context) FolderSinkExclusionArrayOutput

type FolderSinkExclusionInput

type FolderSinkExclusionInput interface {
	pulumi.Input

	ToFolderSinkExclusionOutput() FolderSinkExclusionOutput
	ToFolderSinkExclusionOutputWithContext(context.Context) FolderSinkExclusionOutput
}

FolderSinkExclusionInput is an input type that accepts FolderSinkExclusionArgs and FolderSinkExclusionOutput values. You can construct a concrete instance of `FolderSinkExclusionInput` via:

FolderSinkExclusionArgs{...}

type FolderSinkExclusionOutput

type FolderSinkExclusionOutput struct{ *pulumi.OutputState }

func (FolderSinkExclusionOutput) Description

A description of this exclusion.

func (FolderSinkExclusionOutput) Disabled

If set to True, then this exclusion is disabled and it does not exclude any log entries.

func (FolderSinkExclusionOutput) ElementType

func (FolderSinkExclusionOutput) ElementType() reflect.Type

func (FolderSinkExclusionOutput) Filter

An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (FolderSinkExclusionOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.

func (FolderSinkExclusionOutput) ToFolderSinkExclusionOutput

func (o FolderSinkExclusionOutput) ToFolderSinkExclusionOutput() FolderSinkExclusionOutput

func (FolderSinkExclusionOutput) ToFolderSinkExclusionOutputWithContext

func (o FolderSinkExclusionOutput) ToFolderSinkExclusionOutputWithContext(ctx context.Context) FolderSinkExclusionOutput

type FolderSinkInput

type FolderSinkInput interface {
	pulumi.Input

	ToFolderSinkOutput() FolderSinkOutput
	ToFolderSinkOutputWithContext(ctx context.Context) FolderSinkOutput
}

type FolderSinkMap

type FolderSinkMap map[string]FolderSinkInput

func (FolderSinkMap) ElementType

func (FolderSinkMap) ElementType() reflect.Type

func (FolderSinkMap) ToFolderSinkMapOutput

func (i FolderSinkMap) ToFolderSinkMapOutput() FolderSinkMapOutput

func (FolderSinkMap) ToFolderSinkMapOutputWithContext

func (i FolderSinkMap) ToFolderSinkMapOutputWithContext(ctx context.Context) FolderSinkMapOutput

type FolderSinkMapInput

type FolderSinkMapInput interface {
	pulumi.Input

	ToFolderSinkMapOutput() FolderSinkMapOutput
	ToFolderSinkMapOutputWithContext(context.Context) FolderSinkMapOutput
}

FolderSinkMapInput is an input type that accepts FolderSinkMap and FolderSinkMapOutput values. You can construct a concrete instance of `FolderSinkMapInput` via:

FolderSinkMap{ "key": FolderSinkArgs{...} }

type FolderSinkMapOutput

type FolderSinkMapOutput struct{ *pulumi.OutputState }

func (FolderSinkMapOutput) ElementType

func (FolderSinkMapOutput) ElementType() reflect.Type

func (FolderSinkMapOutput) MapIndex

func (FolderSinkMapOutput) ToFolderSinkMapOutput

func (o FolderSinkMapOutput) ToFolderSinkMapOutput() FolderSinkMapOutput

func (FolderSinkMapOutput) ToFolderSinkMapOutputWithContext

func (o FolderSinkMapOutput) ToFolderSinkMapOutputWithContext(ctx context.Context) FolderSinkMapOutput

type FolderSinkOutput

type FolderSinkOutput struct{ *pulumi.OutputState }

func (FolderSinkOutput) BigqueryOptions

Options that affect sinks exporting data to BigQuery. Structure documented below.

func (FolderSinkOutput) Description

func (o FolderSinkOutput) Description() pulumi.StringPtrOutput

A description of this sink. The maximum length of the description is 8000 characters.

func (FolderSinkOutput) Destination

func (o FolderSinkOutput) Destination() pulumi.StringOutput

The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:

- `storage.googleapis.com/[GCS_BUCKET]` - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]` - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]`

The writer associated with the sink must have access to write to the above resource.

func (FolderSinkOutput) Disabled

func (o FolderSinkOutput) Disabled() pulumi.BoolPtrOutput

If set to True, then this sink is disabled and it does not export any log entries.

func (FolderSinkOutput) ElementType

func (FolderSinkOutput) ElementType() reflect.Type

func (FolderSinkOutput) Exclusions

Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported. Can be repeated multiple times for multiple exclusions. Structure is documented below.

func (FolderSinkOutput) Filter

The filter to apply when exporting logs. Only log entries that match the filter are exported. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (FolderSinkOutput) Folder

The folder to be exported to the sink. Note that either `[FOLDER_ID]` or `folders/[FOLDER_ID]` is accepted.

func (FolderSinkOutput) IncludeChildren

func (o FolderSinkOutput) IncludeChildren() pulumi.BoolPtrOutput

Whether or not to include children folders in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided folder are included.

func (FolderSinkOutput) InterceptChildren

func (o FolderSinkOutput) InterceptChildren() pulumi.BoolPtrOutput

Whether or not to intercept logs from child projects. If true, matching logs will not match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.

func (FolderSinkOutput) Name

The name of the logging sink.

func (FolderSinkOutput) ToFolderSinkOutput

func (o FolderSinkOutput) ToFolderSinkOutput() FolderSinkOutput

func (FolderSinkOutput) ToFolderSinkOutputWithContext

func (o FolderSinkOutput) ToFolderSinkOutputWithContext(ctx context.Context) FolderSinkOutput

func (FolderSinkOutput) WriterIdentity

func (o FolderSinkOutput) WriterIdentity() pulumi.StringOutput

The identity associated with this sink. This identity must be granted write access to the configured `destination`.

type FolderSinkState

type FolderSinkState struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions FolderSinkBigqueryOptionsPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringPtrInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions FolderSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The folder to be exported to the sink. Note that either `[FOLDER_ID]` or `folders/[FOLDER_ID]` is
	// accepted.
	Folder pulumi.StringPtrInput
	// Whether or not to include children folders in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided folder are included.
	IncludeChildren pulumi.BoolPtrInput
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringPtrInput
}

func (FolderSinkState) ElementType

func (FolderSinkState) ElementType() reflect.Type

type GetProjectCmekSettingsArgs

type GetProjectCmekSettingsArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName *string `pulumi:"kmsKeyName"`
	// The ID of the project.
	Project string `pulumi:"project"`
}

A collection of arguments for invoking getProjectCmekSettings.

type GetProjectCmekSettingsOutputArgs

type GetProjectCmekSettingsOutputArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName pulumi.StringPtrInput `pulumi:"kmsKeyName"`
	// The ID of the project.
	Project pulumi.StringInput `pulumi:"project"`
}

A collection of arguments for invoking getProjectCmekSettings.

func (GetProjectCmekSettingsOutputArgs) ElementType

type GetProjectCmekSettingsResult

type GetProjectCmekSettingsResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName *string `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'`
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName string `pulumi:"kmsKeyVersionName"`
	// The resource name of the CMEK settings.
	Name    string `pulumi:"name"`
	Project string `pulumi:"project"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId string `pulumi:"serviceAccountId"`
}

A collection of values returned by getProjectCmekSettings.

func GetProjectCmekSettings

func GetProjectCmekSettings(ctx *pulumi.Context, args *GetProjectCmekSettingsArgs, opts ...pulumi.InvokeOption) (*GetProjectCmekSettingsResult, error)

Describes the customer-managed encryption key (CMEK) settings associated with a project.

To get more information about Service, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects/getCmekSettings) * [Enable CMEK](https://cloud.google.com/logging/docs/routing/managed-encryption-storage#enable).

## Example Usage

### Logging Project Cmek Settings Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.GetProjectCmekSettings(ctx, &logging.GetProjectCmekSettingsArgs{
			Project: "my-project-name",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetProjectCmekSettingsResultOutput

type GetProjectCmekSettingsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getProjectCmekSettings.

func (GetProjectCmekSettingsResultOutput) ElementType

func (GetProjectCmekSettingsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetProjectCmekSettingsResultOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (GetProjectCmekSettingsResultOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'` For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (GetProjectCmekSettingsResultOutput) Name

The resource name of the CMEK settings.

func (GetProjectCmekSettingsResultOutput) Project

func (GetProjectCmekSettingsResultOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (GetProjectCmekSettingsResultOutput) ToGetProjectCmekSettingsResultOutput

func (o GetProjectCmekSettingsResultOutput) ToGetProjectCmekSettingsResultOutput() GetProjectCmekSettingsResultOutput

func (GetProjectCmekSettingsResultOutput) ToGetProjectCmekSettingsResultOutputWithContext

func (o GetProjectCmekSettingsResultOutput) ToGetProjectCmekSettingsResultOutputWithContext(ctx context.Context) GetProjectCmekSettingsResultOutput

type GetProjectSettingsArgs

type GetProjectSettingsArgs struct {
	// The ID of the project for which to retrieve settings.
	Project string `pulumi:"project"`
}

A collection of arguments for invoking getProjectSettings.

type GetProjectSettingsOutputArgs

type GetProjectSettingsOutputArgs struct {
	// The ID of the project for which to retrieve settings.
	Project pulumi.StringInput `pulumi:"project"`
}

A collection of arguments for invoking getProjectSettings.

func (GetProjectSettingsOutputArgs) ElementType

type GetProjectSettingsResult

type GetProjectSettingsResult struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink bool `pulumi:"disableDefaultSink"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsServiceAccountId string `pulumi:"kmsServiceAccountId"`
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId string `pulumi:"loggingServiceAccountId"`
	// The resource name of the settings.
	Name    string `pulumi:"name"`
	Project string `pulumi:"project"`
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation string `pulumi:"storageLocation"`
}

A collection of values returned by getProjectSettings.

func GetProjectSettings

func GetProjectSettings(ctx *pulumi.Context, args *GetProjectSettingsArgs, opts ...pulumi.InvokeOption) (*GetProjectSettingsResult, error)

Describes the settings associated with a project.

To get more information about LoggingProjectSettings, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects/getSettings) * [Configure default settings for organizations and folders](https://cloud.google.com/logging/docs/default-settings).

## Example Usage

### Logging Project Settings Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.GetProjectSettings(ctx, &logging.GetProjectSettingsArgs{
			Project: "my-project-name",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetProjectSettingsResultOutput

type GetProjectSettingsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getProjectSettings.

func (GetProjectSettingsResultOutput) DisableDefaultSink

func (o GetProjectSettingsResultOutput) DisableDefaultSink() pulumi.BoolOutput

If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.

func (GetProjectSettingsResultOutput) ElementType

func (GetProjectSettingsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetProjectSettingsResultOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (GetProjectSettingsResultOutput) KmsServiceAccountId

func (o GetProjectSettingsResultOutput) KmsServiceAccountId() pulumi.StringOutput

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (GetProjectSettingsResultOutput) LoggingServiceAccountId

func (o GetProjectSettingsResultOutput) LoggingServiceAccountId() pulumi.StringOutput

The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.

func (GetProjectSettingsResultOutput) Name

The resource name of the settings.

func (GetProjectSettingsResultOutput) Project

func (GetProjectSettingsResultOutput) StorageLocation

The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.

func (GetProjectSettingsResultOutput) ToGetProjectSettingsResultOutput

func (o GetProjectSettingsResultOutput) ToGetProjectSettingsResultOutput() GetProjectSettingsResultOutput

func (GetProjectSettingsResultOutput) ToGetProjectSettingsResultOutputWithContext

func (o GetProjectSettingsResultOutput) ToGetProjectSettingsResultOutputWithContext(ctx context.Context) GetProjectSettingsResultOutput

type GetSinkArgs

type GetSinkArgs struct {
	// The identifier for the resource.
	// Examples:
	//
	// - `projects/[PROJECT_ID]/sinks/[SINK_NAME]`
	// - `organizations/[ORGANIZATION_ID]/sinks/[SINK_NAME]`
	// -  `billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_NAME]`
	// - `folders/[FOLDER_ID]/sinks/[SINK_NAME]`
	Id string `pulumi:"id"`
}

A collection of arguments for invoking getSink.

type GetSinkBigqueryOption

type GetSinkBigqueryOption struct {
	// Whether [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables) are used.
	UsePartitionedTables bool `pulumi:"usePartitionedTables"`
}

type GetSinkBigqueryOptionArgs

type GetSinkBigqueryOptionArgs struct {
	// Whether [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables) are used.
	UsePartitionedTables pulumi.BoolInput `pulumi:"usePartitionedTables"`
}

func (GetSinkBigqueryOptionArgs) ElementType

func (GetSinkBigqueryOptionArgs) ElementType() reflect.Type

func (GetSinkBigqueryOptionArgs) ToGetSinkBigqueryOptionOutput

func (i GetSinkBigqueryOptionArgs) ToGetSinkBigqueryOptionOutput() GetSinkBigqueryOptionOutput

func (GetSinkBigqueryOptionArgs) ToGetSinkBigqueryOptionOutputWithContext

func (i GetSinkBigqueryOptionArgs) ToGetSinkBigqueryOptionOutputWithContext(ctx context.Context) GetSinkBigqueryOptionOutput

type GetSinkBigqueryOptionArray

type GetSinkBigqueryOptionArray []GetSinkBigqueryOptionInput

func (GetSinkBigqueryOptionArray) ElementType

func (GetSinkBigqueryOptionArray) ElementType() reflect.Type

func (GetSinkBigqueryOptionArray) ToGetSinkBigqueryOptionArrayOutput

func (i GetSinkBigqueryOptionArray) ToGetSinkBigqueryOptionArrayOutput() GetSinkBigqueryOptionArrayOutput

func (GetSinkBigqueryOptionArray) ToGetSinkBigqueryOptionArrayOutputWithContext

func (i GetSinkBigqueryOptionArray) ToGetSinkBigqueryOptionArrayOutputWithContext(ctx context.Context) GetSinkBigqueryOptionArrayOutput

type GetSinkBigqueryOptionArrayInput

type GetSinkBigqueryOptionArrayInput interface {
	pulumi.Input

	ToGetSinkBigqueryOptionArrayOutput() GetSinkBigqueryOptionArrayOutput
	ToGetSinkBigqueryOptionArrayOutputWithContext(context.Context) GetSinkBigqueryOptionArrayOutput
}

GetSinkBigqueryOptionArrayInput is an input type that accepts GetSinkBigqueryOptionArray and GetSinkBigqueryOptionArrayOutput values. You can construct a concrete instance of `GetSinkBigqueryOptionArrayInput` via:

GetSinkBigqueryOptionArray{ GetSinkBigqueryOptionArgs{...} }

type GetSinkBigqueryOptionArrayOutput

type GetSinkBigqueryOptionArrayOutput struct{ *pulumi.OutputState }

func (GetSinkBigqueryOptionArrayOutput) ElementType

func (GetSinkBigqueryOptionArrayOutput) Index

func (GetSinkBigqueryOptionArrayOutput) ToGetSinkBigqueryOptionArrayOutput

func (o GetSinkBigqueryOptionArrayOutput) ToGetSinkBigqueryOptionArrayOutput() GetSinkBigqueryOptionArrayOutput

func (GetSinkBigqueryOptionArrayOutput) ToGetSinkBigqueryOptionArrayOutputWithContext

func (o GetSinkBigqueryOptionArrayOutput) ToGetSinkBigqueryOptionArrayOutputWithContext(ctx context.Context) GetSinkBigqueryOptionArrayOutput

type GetSinkBigqueryOptionInput

type GetSinkBigqueryOptionInput interface {
	pulumi.Input

	ToGetSinkBigqueryOptionOutput() GetSinkBigqueryOptionOutput
	ToGetSinkBigqueryOptionOutputWithContext(context.Context) GetSinkBigqueryOptionOutput
}

GetSinkBigqueryOptionInput is an input type that accepts GetSinkBigqueryOptionArgs and GetSinkBigqueryOptionOutput values. You can construct a concrete instance of `GetSinkBigqueryOptionInput` via:

GetSinkBigqueryOptionArgs{...}

type GetSinkBigqueryOptionOutput

type GetSinkBigqueryOptionOutput struct{ *pulumi.OutputState }

func (GetSinkBigqueryOptionOutput) ElementType

func (GetSinkBigqueryOptionOutput) ToGetSinkBigqueryOptionOutput

func (o GetSinkBigqueryOptionOutput) ToGetSinkBigqueryOptionOutput() GetSinkBigqueryOptionOutput

func (GetSinkBigqueryOptionOutput) ToGetSinkBigqueryOptionOutputWithContext

func (o GetSinkBigqueryOptionOutput) ToGetSinkBigqueryOptionOutputWithContext(ctx context.Context) GetSinkBigqueryOptionOutput

func (GetSinkBigqueryOptionOutput) UsePartitionedTables

func (o GetSinkBigqueryOptionOutput) UsePartitionedTables() pulumi.BoolOutput

Whether [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables) are used.

type GetSinkExclusion

type GetSinkExclusion struct {
	// A description of this exclusion.
	Description string `pulumi:"description"`
	// Whether this exclusion is disabled and it does not exclude any log entries.
	Disabled bool `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded.
	Filter string `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`.
	Name string `pulumi:"name"`
}

type GetSinkExclusionArgs

type GetSinkExclusionArgs struct {
	// A description of this exclusion.
	Description pulumi.StringInput `pulumi:"description"`
	// Whether this exclusion is disabled and it does not exclude any log entries.
	Disabled pulumi.BoolInput `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded.
	Filter pulumi.StringInput `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`.
	Name pulumi.StringInput `pulumi:"name"`
}

func (GetSinkExclusionArgs) ElementType

func (GetSinkExclusionArgs) ElementType() reflect.Type

func (GetSinkExclusionArgs) ToGetSinkExclusionOutput

func (i GetSinkExclusionArgs) ToGetSinkExclusionOutput() GetSinkExclusionOutput

func (GetSinkExclusionArgs) ToGetSinkExclusionOutputWithContext

func (i GetSinkExclusionArgs) ToGetSinkExclusionOutputWithContext(ctx context.Context) GetSinkExclusionOutput

type GetSinkExclusionArray

type GetSinkExclusionArray []GetSinkExclusionInput

func (GetSinkExclusionArray) ElementType

func (GetSinkExclusionArray) ElementType() reflect.Type

func (GetSinkExclusionArray) ToGetSinkExclusionArrayOutput

func (i GetSinkExclusionArray) ToGetSinkExclusionArrayOutput() GetSinkExclusionArrayOutput

func (GetSinkExclusionArray) ToGetSinkExclusionArrayOutputWithContext

func (i GetSinkExclusionArray) ToGetSinkExclusionArrayOutputWithContext(ctx context.Context) GetSinkExclusionArrayOutput

type GetSinkExclusionArrayInput

type GetSinkExclusionArrayInput interface {
	pulumi.Input

	ToGetSinkExclusionArrayOutput() GetSinkExclusionArrayOutput
	ToGetSinkExclusionArrayOutputWithContext(context.Context) GetSinkExclusionArrayOutput
}

GetSinkExclusionArrayInput is an input type that accepts GetSinkExclusionArray and GetSinkExclusionArrayOutput values. You can construct a concrete instance of `GetSinkExclusionArrayInput` via:

GetSinkExclusionArray{ GetSinkExclusionArgs{...} }

type GetSinkExclusionArrayOutput

type GetSinkExclusionArrayOutput struct{ *pulumi.OutputState }

func (GetSinkExclusionArrayOutput) ElementType

func (GetSinkExclusionArrayOutput) Index

func (GetSinkExclusionArrayOutput) ToGetSinkExclusionArrayOutput

func (o GetSinkExclusionArrayOutput) ToGetSinkExclusionArrayOutput() GetSinkExclusionArrayOutput

func (GetSinkExclusionArrayOutput) ToGetSinkExclusionArrayOutputWithContext

func (o GetSinkExclusionArrayOutput) ToGetSinkExclusionArrayOutputWithContext(ctx context.Context) GetSinkExclusionArrayOutput

type GetSinkExclusionInput

type GetSinkExclusionInput interface {
	pulumi.Input

	ToGetSinkExclusionOutput() GetSinkExclusionOutput
	ToGetSinkExclusionOutputWithContext(context.Context) GetSinkExclusionOutput
}

GetSinkExclusionInput is an input type that accepts GetSinkExclusionArgs and GetSinkExclusionOutput values. You can construct a concrete instance of `GetSinkExclusionInput` via:

GetSinkExclusionArgs{...}

type GetSinkExclusionOutput

type GetSinkExclusionOutput struct{ *pulumi.OutputState }

func (GetSinkExclusionOutput) Description

func (o GetSinkExclusionOutput) Description() pulumi.StringOutput

A description of this exclusion.

func (GetSinkExclusionOutput) Disabled

Whether this exclusion is disabled and it does not exclude any log entries.

func (GetSinkExclusionOutput) ElementType

func (GetSinkExclusionOutput) ElementType() reflect.Type

func (GetSinkExclusionOutput) Filter

An advanced logs filter that matches the log entries to be excluded.

func (GetSinkExclusionOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`.

func (GetSinkExclusionOutput) ToGetSinkExclusionOutput

func (o GetSinkExclusionOutput) ToGetSinkExclusionOutput() GetSinkExclusionOutput

func (GetSinkExclusionOutput) ToGetSinkExclusionOutputWithContext

func (o GetSinkExclusionOutput) ToGetSinkExclusionOutputWithContext(ctx context.Context) GetSinkExclusionOutput

type GetSinkOutputArgs

type GetSinkOutputArgs struct {
	// The identifier for the resource.
	// Examples:
	//
	// - `projects/[PROJECT_ID]/sinks/[SINK_NAME]`
	// - `organizations/[ORGANIZATION_ID]/sinks/[SINK_NAME]`
	// -  `billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_NAME]`
	// - `folders/[FOLDER_ID]/sinks/[SINK_NAME]`
	Id pulumi.StringInput `pulumi:"id"`
}

A collection of arguments for invoking getSink.

func (GetSinkOutputArgs) ElementType

func (GetSinkOutputArgs) ElementType() reflect.Type

type GetSinkResult

type GetSinkResult struct {
	// Options that affect sinks exporting data to BigQuery. Structure is documented below.
	BigqueryOptions []GetSinkBigqueryOption `pulumi:"bigqueryOptions"`
	// A description of this exclusion.
	Description string `pulumi:"description"`
	// The destination of the sink (or, in other words, where logs are written to).
	Destination string `pulumi:"destination"`
	// Whether this exclusion is disabled and it does not exclude any log entries.
	Disabled bool `pulumi:"disabled"`
	// Log entries that match any of the exclusion filters are not exported. Structure is documented below.
	Exclusions []GetSinkExclusion `pulumi:"exclusions"`
	// An advanced logs filter that matches the log entries to be excluded.
	Filter string `pulumi:"filter"`
	Id     string `pulumi:"id"`
	// A client-assigned identifier, such as `load-balancer-exclusion`.
	Name string `pulumi:"name"`
	// The identity associated with this sink. This identity must be granted write access to the configured `destination`.
	WriterIdentity string `pulumi:"writerIdentity"`
}

A collection of values returned by getSink.

func GetSink

func GetSink(ctx *pulumi.Context, args *GetSinkArgs, opts ...pulumi.InvokeOption) (*GetSinkResult, error)

Use this data source to get a project, folder, organization or billing account logging sink details. To get more information about Service, see:

[API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/sinks)

## Example Usage

### Retrieve Project Logging Sink Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.GetSink(ctx, &logging.GetSinkArgs{
			Id: "projects/0123456789/sinks/my-sink-name",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetSinkResultOutput

type GetSinkResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSink.

func (GetSinkResultOutput) BigqueryOptions

Options that affect sinks exporting data to BigQuery. Structure is documented below.

func (GetSinkResultOutput) Description

func (o GetSinkResultOutput) Description() pulumi.StringOutput

A description of this exclusion.

func (GetSinkResultOutput) Destination

func (o GetSinkResultOutput) Destination() pulumi.StringOutput

The destination of the sink (or, in other words, where logs are written to).

func (GetSinkResultOutput) Disabled

func (o GetSinkResultOutput) Disabled() pulumi.BoolOutput

Whether this exclusion is disabled and it does not exclude any log entries.

func (GetSinkResultOutput) ElementType

func (GetSinkResultOutput) ElementType() reflect.Type

func (GetSinkResultOutput) Exclusions

Log entries that match any of the exclusion filters are not exported. Structure is documented below.

func (GetSinkResultOutput) Filter

An advanced logs filter that matches the log entries to be excluded.

func (GetSinkResultOutput) Id

func (GetSinkResultOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`.

func (GetSinkResultOutput) ToGetSinkResultOutput

func (o GetSinkResultOutput) ToGetSinkResultOutput() GetSinkResultOutput

func (GetSinkResultOutput) ToGetSinkResultOutputWithContext

func (o GetSinkResultOutput) ToGetSinkResultOutputWithContext(ctx context.Context) GetSinkResultOutput

func (GetSinkResultOutput) WriterIdentity

func (o GetSinkResultOutput) WriterIdentity() pulumi.StringOutput

The identity associated with this sink. This identity must be granted write access to the configured `destination`.

type LinkedDataset

type LinkedDataset struct {
	pulumi.CustomResourceState

	// The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along
	// with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery
	// Views corresponding to the LogViews in the bucket.
	// Structure is documented below.
	BigqueryDatasets LinkedDatasetBigqueryDatasetArrayOutput `pulumi:"bigqueryDatasets"`
	// The bucket to which the linked dataset is attached.
	//
	// ***
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// Output only. The creation timestamp of the link. 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".
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Describes this link. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Output only. The linked dataset lifecycle state.
	LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"`
	// The id of the linked dataset.
	LinkId pulumi.StringOutput `pulumi:"linkId"`
	// The location of the linked dataset.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the linked dataset. The name can have up to 100 characters. A valid link id
	// (at the end of the link name) must only have alphanumeric characters and underscores within it.
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the linked dataset.
	Parent pulumi.StringOutput `pulumi:"parent"`
}

Describes a BigQuery linked dataset

To get more information about LinkedDataset, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/locations.buckets.links) * How-to Guides

## Example Usage

### Logging Linked Dataset Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		loggingLinkedDataset, err := logging.NewProjectBucketConfig(ctx, "logging_linked_dataset", &logging.ProjectBucketConfigArgs{
			Location:        pulumi.String("global"),
			Project:         pulumi.String("my-project-name"),
			EnableAnalytics: pulumi.Bool(true),
			BucketId:        pulumi.String("my-bucket"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewLinkedDataset(ctx, "logging_linked_dataset", &logging.LinkedDatasetArgs{
			LinkId:      pulumi.String("mylink"),
			Bucket:      loggingLinkedDataset.ID(),
			Description: pulumi.String("Linked dataset test"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Logging Linked Dataset All Params

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		loggingLinkedDataset, err := logging.NewProjectBucketConfig(ctx, "logging_linked_dataset", &logging.ProjectBucketConfigArgs{
			Location:        pulumi.String("global"),
			Project:         pulumi.String("my-project-name"),
			EnableAnalytics: pulumi.Bool(true),
			BucketId:        pulumi.String("my-bucket"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewLinkedDataset(ctx, "logging_linked_dataset", &logging.LinkedDatasetArgs{
			LinkId:      pulumi.String("mylink"),
			Bucket:      pulumi.String("my-bucket"),
			Parent:      pulumi.String("projects/my-project-name"),
			Location:    pulumi.String("global"),
			Description: pulumi.String("Linked dataset test"),
		}, pulumi.DependsOn([]pulumi.Resource{
			loggingLinkedDataset,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

LinkedDataset can be imported using any of these accepted formats:

* `{{parent}}/locations/{{location}}/buckets/{{bucket}}/links/{{link_id}}`

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

```sh $ pulumi import gcp:logging/linkedDataset:LinkedDataset default {{parent}}/locations/{{location}}/buckets/{{bucket}}/links/{{link_id}} ```

func GetLinkedDataset

func GetLinkedDataset(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LinkedDatasetState, opts ...pulumi.ResourceOption) (*LinkedDataset, error)

GetLinkedDataset gets an existing LinkedDataset 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 NewLinkedDataset

func NewLinkedDataset(ctx *pulumi.Context,
	name string, args *LinkedDatasetArgs, opts ...pulumi.ResourceOption) (*LinkedDataset, error)

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

func (*LinkedDataset) ElementType

func (*LinkedDataset) ElementType() reflect.Type

func (*LinkedDataset) ToLinkedDatasetOutput

func (i *LinkedDataset) ToLinkedDatasetOutput() LinkedDatasetOutput

func (*LinkedDataset) ToLinkedDatasetOutputWithContext

func (i *LinkedDataset) ToLinkedDatasetOutputWithContext(ctx context.Context) LinkedDatasetOutput

type LinkedDatasetArgs

type LinkedDatasetArgs struct {
	// The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along
	// with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery
	// Views corresponding to the LogViews in the bucket.
	// Structure is documented below.
	BigqueryDatasets LinkedDatasetBigqueryDatasetArrayInput
	// The bucket to which the linked dataset is attached.
	//
	// ***
	Bucket pulumi.StringInput
	// Describes this link. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The id of the linked dataset.
	LinkId pulumi.StringInput
	// The location of the linked dataset.
	Location pulumi.StringPtrInput
	// The parent of the linked dataset.
	Parent pulumi.StringPtrInput
}

The set of arguments for constructing a LinkedDataset resource.

func (LinkedDatasetArgs) ElementType

func (LinkedDatasetArgs) ElementType() reflect.Type

type LinkedDatasetArray

type LinkedDatasetArray []LinkedDatasetInput

func (LinkedDatasetArray) ElementType

func (LinkedDatasetArray) ElementType() reflect.Type

func (LinkedDatasetArray) ToLinkedDatasetArrayOutput

func (i LinkedDatasetArray) ToLinkedDatasetArrayOutput() LinkedDatasetArrayOutput

func (LinkedDatasetArray) ToLinkedDatasetArrayOutputWithContext

func (i LinkedDatasetArray) ToLinkedDatasetArrayOutputWithContext(ctx context.Context) LinkedDatasetArrayOutput

type LinkedDatasetArrayInput

type LinkedDatasetArrayInput interface {
	pulumi.Input

	ToLinkedDatasetArrayOutput() LinkedDatasetArrayOutput
	ToLinkedDatasetArrayOutputWithContext(context.Context) LinkedDatasetArrayOutput
}

LinkedDatasetArrayInput is an input type that accepts LinkedDatasetArray and LinkedDatasetArrayOutput values. You can construct a concrete instance of `LinkedDatasetArrayInput` via:

LinkedDatasetArray{ LinkedDatasetArgs{...} }

type LinkedDatasetArrayOutput

type LinkedDatasetArrayOutput struct{ *pulumi.OutputState }

func (LinkedDatasetArrayOutput) ElementType

func (LinkedDatasetArrayOutput) ElementType() reflect.Type

func (LinkedDatasetArrayOutput) Index

func (LinkedDatasetArrayOutput) ToLinkedDatasetArrayOutput

func (o LinkedDatasetArrayOutput) ToLinkedDatasetArrayOutput() LinkedDatasetArrayOutput

func (LinkedDatasetArrayOutput) ToLinkedDatasetArrayOutputWithContext

func (o LinkedDatasetArrayOutput) ToLinkedDatasetArrayOutputWithContext(ctx context.Context) LinkedDatasetArrayOutput

type LinkedDatasetBigqueryDataset

type LinkedDatasetBigqueryDataset struct {
	// (Output)
	// Output only. The full resource name of the BigQuery dataset. The DATASET_ID will match the ID
	// of the link, so the link must match the naming restrictions of BigQuery datasets
	// (alphanumeric characters and underscores only). The dataset will have a resource path of
	// "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]"
	DatasetId *string `pulumi:"datasetId"`
}

type LinkedDatasetBigqueryDatasetArgs

type LinkedDatasetBigqueryDatasetArgs struct {
	// (Output)
	// Output only. The full resource name of the BigQuery dataset. The DATASET_ID will match the ID
	// of the link, so the link must match the naming restrictions of BigQuery datasets
	// (alphanumeric characters and underscores only). The dataset will have a resource path of
	// "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]"
	DatasetId pulumi.StringPtrInput `pulumi:"datasetId"`
}

func (LinkedDatasetBigqueryDatasetArgs) ElementType

func (LinkedDatasetBigqueryDatasetArgs) ToLinkedDatasetBigqueryDatasetOutput

func (i LinkedDatasetBigqueryDatasetArgs) ToLinkedDatasetBigqueryDatasetOutput() LinkedDatasetBigqueryDatasetOutput

func (LinkedDatasetBigqueryDatasetArgs) ToLinkedDatasetBigqueryDatasetOutputWithContext

func (i LinkedDatasetBigqueryDatasetArgs) ToLinkedDatasetBigqueryDatasetOutputWithContext(ctx context.Context) LinkedDatasetBigqueryDatasetOutput

type LinkedDatasetBigqueryDatasetArray

type LinkedDatasetBigqueryDatasetArray []LinkedDatasetBigqueryDatasetInput

func (LinkedDatasetBigqueryDatasetArray) ElementType

func (LinkedDatasetBigqueryDatasetArray) ToLinkedDatasetBigqueryDatasetArrayOutput

func (i LinkedDatasetBigqueryDatasetArray) ToLinkedDatasetBigqueryDatasetArrayOutput() LinkedDatasetBigqueryDatasetArrayOutput

func (LinkedDatasetBigqueryDatasetArray) ToLinkedDatasetBigqueryDatasetArrayOutputWithContext

func (i LinkedDatasetBigqueryDatasetArray) ToLinkedDatasetBigqueryDatasetArrayOutputWithContext(ctx context.Context) LinkedDatasetBigqueryDatasetArrayOutput

type LinkedDatasetBigqueryDatasetArrayInput

type LinkedDatasetBigqueryDatasetArrayInput interface {
	pulumi.Input

	ToLinkedDatasetBigqueryDatasetArrayOutput() LinkedDatasetBigqueryDatasetArrayOutput
	ToLinkedDatasetBigqueryDatasetArrayOutputWithContext(context.Context) LinkedDatasetBigqueryDatasetArrayOutput
}

LinkedDatasetBigqueryDatasetArrayInput is an input type that accepts LinkedDatasetBigqueryDatasetArray and LinkedDatasetBigqueryDatasetArrayOutput values. You can construct a concrete instance of `LinkedDatasetBigqueryDatasetArrayInput` via:

LinkedDatasetBigqueryDatasetArray{ LinkedDatasetBigqueryDatasetArgs{...} }

type LinkedDatasetBigqueryDatasetArrayOutput

type LinkedDatasetBigqueryDatasetArrayOutput struct{ *pulumi.OutputState }

func (LinkedDatasetBigqueryDatasetArrayOutput) ElementType

func (LinkedDatasetBigqueryDatasetArrayOutput) Index

func (LinkedDatasetBigqueryDatasetArrayOutput) ToLinkedDatasetBigqueryDatasetArrayOutput

func (o LinkedDatasetBigqueryDatasetArrayOutput) ToLinkedDatasetBigqueryDatasetArrayOutput() LinkedDatasetBigqueryDatasetArrayOutput

func (LinkedDatasetBigqueryDatasetArrayOutput) ToLinkedDatasetBigqueryDatasetArrayOutputWithContext

func (o LinkedDatasetBigqueryDatasetArrayOutput) ToLinkedDatasetBigqueryDatasetArrayOutputWithContext(ctx context.Context) LinkedDatasetBigqueryDatasetArrayOutput

type LinkedDatasetBigqueryDatasetInput

type LinkedDatasetBigqueryDatasetInput interface {
	pulumi.Input

	ToLinkedDatasetBigqueryDatasetOutput() LinkedDatasetBigqueryDatasetOutput
	ToLinkedDatasetBigqueryDatasetOutputWithContext(context.Context) LinkedDatasetBigqueryDatasetOutput
}

LinkedDatasetBigqueryDatasetInput is an input type that accepts LinkedDatasetBigqueryDatasetArgs and LinkedDatasetBigqueryDatasetOutput values. You can construct a concrete instance of `LinkedDatasetBigqueryDatasetInput` via:

LinkedDatasetBigqueryDatasetArgs{...}

type LinkedDatasetBigqueryDatasetOutput

type LinkedDatasetBigqueryDatasetOutput struct{ *pulumi.OutputState }

func (LinkedDatasetBigqueryDatasetOutput) DatasetId

(Output) Output only. The full resource name of the BigQuery dataset. The DATASET_ID will match the ID of the link, so the link must match the naming restrictions of BigQuery datasets (alphanumeric characters and underscores only). The dataset will have a resource path of "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]"

func (LinkedDatasetBigqueryDatasetOutput) ElementType

func (LinkedDatasetBigqueryDatasetOutput) ToLinkedDatasetBigqueryDatasetOutput

func (o LinkedDatasetBigqueryDatasetOutput) ToLinkedDatasetBigqueryDatasetOutput() LinkedDatasetBigqueryDatasetOutput

func (LinkedDatasetBigqueryDatasetOutput) ToLinkedDatasetBigqueryDatasetOutputWithContext

func (o LinkedDatasetBigqueryDatasetOutput) ToLinkedDatasetBigqueryDatasetOutputWithContext(ctx context.Context) LinkedDatasetBigqueryDatasetOutput

type LinkedDatasetInput

type LinkedDatasetInput interface {
	pulumi.Input

	ToLinkedDatasetOutput() LinkedDatasetOutput
	ToLinkedDatasetOutputWithContext(ctx context.Context) LinkedDatasetOutput
}

type LinkedDatasetMap

type LinkedDatasetMap map[string]LinkedDatasetInput

func (LinkedDatasetMap) ElementType

func (LinkedDatasetMap) ElementType() reflect.Type

func (LinkedDatasetMap) ToLinkedDatasetMapOutput

func (i LinkedDatasetMap) ToLinkedDatasetMapOutput() LinkedDatasetMapOutput

func (LinkedDatasetMap) ToLinkedDatasetMapOutputWithContext

func (i LinkedDatasetMap) ToLinkedDatasetMapOutputWithContext(ctx context.Context) LinkedDatasetMapOutput

type LinkedDatasetMapInput

type LinkedDatasetMapInput interface {
	pulumi.Input

	ToLinkedDatasetMapOutput() LinkedDatasetMapOutput
	ToLinkedDatasetMapOutputWithContext(context.Context) LinkedDatasetMapOutput
}

LinkedDatasetMapInput is an input type that accepts LinkedDatasetMap and LinkedDatasetMapOutput values. You can construct a concrete instance of `LinkedDatasetMapInput` via:

LinkedDatasetMap{ "key": LinkedDatasetArgs{...} }

type LinkedDatasetMapOutput

type LinkedDatasetMapOutput struct{ *pulumi.OutputState }

func (LinkedDatasetMapOutput) ElementType

func (LinkedDatasetMapOutput) ElementType() reflect.Type

func (LinkedDatasetMapOutput) MapIndex

func (LinkedDatasetMapOutput) ToLinkedDatasetMapOutput

func (o LinkedDatasetMapOutput) ToLinkedDatasetMapOutput() LinkedDatasetMapOutput

func (LinkedDatasetMapOutput) ToLinkedDatasetMapOutputWithContext

func (o LinkedDatasetMapOutput) ToLinkedDatasetMapOutputWithContext(ctx context.Context) LinkedDatasetMapOutput

type LinkedDatasetOutput

type LinkedDatasetOutput struct{ *pulumi.OutputState }

func (LinkedDatasetOutput) BigqueryDatasets

The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery Views corresponding to the LogViews in the bucket. Structure is documented below.

func (LinkedDatasetOutput) Bucket

The bucket to which the linked dataset is attached.

***

func (LinkedDatasetOutput) CreateTime

func (o LinkedDatasetOutput) CreateTime() pulumi.StringOutput

Output only. The creation timestamp of the link. 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 (LinkedDatasetOutput) Description

func (o LinkedDatasetOutput) Description() pulumi.StringPtrOutput

Describes this link. The maximum length of the description is 8000 characters.

func (LinkedDatasetOutput) ElementType

func (LinkedDatasetOutput) ElementType() reflect.Type

func (LinkedDatasetOutput) LifecycleState

func (o LinkedDatasetOutput) LifecycleState() pulumi.StringOutput

Output only. The linked dataset lifecycle state.

func (LinkedDatasetOutput) LinkId

The id of the linked dataset.

func (LinkedDatasetOutput) Location

The location of the linked dataset.

func (LinkedDatasetOutput) Name

The resource name of the linked dataset. The name can have up to 100 characters. A valid link id (at the end of the link name) must only have alphanumeric characters and underscores within it.

func (LinkedDatasetOutput) Parent

The parent of the linked dataset.

func (LinkedDatasetOutput) ToLinkedDatasetOutput

func (o LinkedDatasetOutput) ToLinkedDatasetOutput() LinkedDatasetOutput

func (LinkedDatasetOutput) ToLinkedDatasetOutputWithContext

func (o LinkedDatasetOutput) ToLinkedDatasetOutputWithContext(ctx context.Context) LinkedDatasetOutput

type LinkedDatasetState

type LinkedDatasetState struct {
	// The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along
	// with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery
	// Views corresponding to the LogViews in the bucket.
	// Structure is documented below.
	BigqueryDatasets LinkedDatasetBigqueryDatasetArrayInput
	// The bucket to which the linked dataset is attached.
	//
	// ***
	Bucket pulumi.StringPtrInput
	// Output only. The creation timestamp of the link. 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".
	CreateTime pulumi.StringPtrInput
	// Describes this link. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// Output only. The linked dataset lifecycle state.
	LifecycleState pulumi.StringPtrInput
	// The id of the linked dataset.
	LinkId pulumi.StringPtrInput
	// The location of the linked dataset.
	Location pulumi.StringPtrInput
	// The resource name of the linked dataset. The name can have up to 100 characters. A valid link id
	// (at the end of the link name) must only have alphanumeric characters and underscores within it.
	Name pulumi.StringPtrInput
	// The parent of the linked dataset.
	Parent pulumi.StringPtrInput
}

func (LinkedDatasetState) ElementType

func (LinkedDatasetState) ElementType() reflect.Type

type LogScope added in v8.4.0

type LogScope struct {
	pulumi.CustomResourceState

	// Output only. The creation timestamp of the log scopes.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Describes this log scopes.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The location of the resource. The only supported location is global so far.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the log scope. For example: \`projects/my-project/locations/global/logScopes/my-log-scope\`
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the resource.
	Parent pulumi.StringOutput `pulumi:"parent"`
	// Names of one or more parent resources : *  \`projects/[PROJECT_ID]\` May alternatively be one or more views : * \`projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\` A log scope can include a maximum of 50 projects and a maximum of 100 resources in total.
	//
	// ***
	ResourceNames pulumi.StringArrayOutput `pulumi:"resourceNames"`
	// Output only. The last update timestamp of the log scopes.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
}

Describes a group of resources to read log entries from

To get more information about LogScope, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.locations.logScopes) * How-to Guides

## Example Usage

### Logging Log Scope Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogScope(ctx, "logging_log_scope", &logging.LogScopeArgs{
			Parent:   pulumi.String("projects/my-project-name"),
			Location: pulumi.String("global"),
			Name:     pulumi.String("projects/my-project-name/locations/global/logScopes/my-log-scope"),
			ResourceNames: pulumi.StringArray{
				pulumi.String("projects/my-project-name"),
				pulumi.String("projects/my-project-name/locations/global/buckets/_Default/views/view1"),
				pulumi.String("projects/my-project-name/locations/global/buckets/_Default/views/view2"),
			},
			Description: pulumi.String("A log scope configured with Terraform"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

LogScope can be imported using any of these accepted formats:

* `{{parent}}/locations/{{location}}/logScopes/{{name}}`

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

```sh $ pulumi import gcp:logging/logScope:LogScope default {{parent}}/locations/{{location}}/logScopes/{{name}} ```

func GetLogScope added in v8.4.0

func GetLogScope(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LogScopeState, opts ...pulumi.ResourceOption) (*LogScope, error)

GetLogScope gets an existing LogScope 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 NewLogScope added in v8.4.0

func NewLogScope(ctx *pulumi.Context,
	name string, args *LogScopeArgs, opts ...pulumi.ResourceOption) (*LogScope, error)

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

func (*LogScope) ElementType added in v8.4.0

func (*LogScope) ElementType() reflect.Type

func (*LogScope) ToLogScopeOutput added in v8.4.0

func (i *LogScope) ToLogScopeOutput() LogScopeOutput

func (*LogScope) ToLogScopeOutputWithContext added in v8.4.0

func (i *LogScope) ToLogScopeOutputWithContext(ctx context.Context) LogScopeOutput

type LogScopeArgs added in v8.4.0

type LogScopeArgs struct {
	// Describes this log scopes.
	Description pulumi.StringPtrInput
	// The location of the resource. The only supported location is global so far.
	Location pulumi.StringPtrInput
	// The resource name of the log scope. For example: \`projects/my-project/locations/global/logScopes/my-log-scope\`
	Name pulumi.StringPtrInput
	// The parent of the resource.
	Parent pulumi.StringPtrInput
	// Names of one or more parent resources : *  \`projects/[PROJECT_ID]\` May alternatively be one or more views : * \`projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\` A log scope can include a maximum of 50 projects and a maximum of 100 resources in total.
	//
	// ***
	ResourceNames pulumi.StringArrayInput
}

The set of arguments for constructing a LogScope resource.

func (LogScopeArgs) ElementType added in v8.4.0

func (LogScopeArgs) ElementType() reflect.Type

type LogScopeArray added in v8.4.0

type LogScopeArray []LogScopeInput

func (LogScopeArray) ElementType added in v8.4.0

func (LogScopeArray) ElementType() reflect.Type

func (LogScopeArray) ToLogScopeArrayOutput added in v8.4.0

func (i LogScopeArray) ToLogScopeArrayOutput() LogScopeArrayOutput

func (LogScopeArray) ToLogScopeArrayOutputWithContext added in v8.4.0

func (i LogScopeArray) ToLogScopeArrayOutputWithContext(ctx context.Context) LogScopeArrayOutput

type LogScopeArrayInput added in v8.4.0

type LogScopeArrayInput interface {
	pulumi.Input

	ToLogScopeArrayOutput() LogScopeArrayOutput
	ToLogScopeArrayOutputWithContext(context.Context) LogScopeArrayOutput
}

LogScopeArrayInput is an input type that accepts LogScopeArray and LogScopeArrayOutput values. You can construct a concrete instance of `LogScopeArrayInput` via:

LogScopeArray{ LogScopeArgs{...} }

type LogScopeArrayOutput added in v8.4.0

type LogScopeArrayOutput struct{ *pulumi.OutputState }

func (LogScopeArrayOutput) ElementType added in v8.4.0

func (LogScopeArrayOutput) ElementType() reflect.Type

func (LogScopeArrayOutput) Index added in v8.4.0

func (LogScopeArrayOutput) ToLogScopeArrayOutput added in v8.4.0

func (o LogScopeArrayOutput) ToLogScopeArrayOutput() LogScopeArrayOutput

func (LogScopeArrayOutput) ToLogScopeArrayOutputWithContext added in v8.4.0

func (o LogScopeArrayOutput) ToLogScopeArrayOutputWithContext(ctx context.Context) LogScopeArrayOutput

type LogScopeInput added in v8.4.0

type LogScopeInput interface {
	pulumi.Input

	ToLogScopeOutput() LogScopeOutput
	ToLogScopeOutputWithContext(ctx context.Context) LogScopeOutput
}

type LogScopeMap added in v8.4.0

type LogScopeMap map[string]LogScopeInput

func (LogScopeMap) ElementType added in v8.4.0

func (LogScopeMap) ElementType() reflect.Type

func (LogScopeMap) ToLogScopeMapOutput added in v8.4.0

func (i LogScopeMap) ToLogScopeMapOutput() LogScopeMapOutput

func (LogScopeMap) ToLogScopeMapOutputWithContext added in v8.4.0

func (i LogScopeMap) ToLogScopeMapOutputWithContext(ctx context.Context) LogScopeMapOutput

type LogScopeMapInput added in v8.4.0

type LogScopeMapInput interface {
	pulumi.Input

	ToLogScopeMapOutput() LogScopeMapOutput
	ToLogScopeMapOutputWithContext(context.Context) LogScopeMapOutput
}

LogScopeMapInput is an input type that accepts LogScopeMap and LogScopeMapOutput values. You can construct a concrete instance of `LogScopeMapInput` via:

LogScopeMap{ "key": LogScopeArgs{...} }

type LogScopeMapOutput added in v8.4.0

type LogScopeMapOutput struct{ *pulumi.OutputState }

func (LogScopeMapOutput) ElementType added in v8.4.0

func (LogScopeMapOutput) ElementType() reflect.Type

func (LogScopeMapOutput) MapIndex added in v8.4.0

func (LogScopeMapOutput) ToLogScopeMapOutput added in v8.4.0

func (o LogScopeMapOutput) ToLogScopeMapOutput() LogScopeMapOutput

func (LogScopeMapOutput) ToLogScopeMapOutputWithContext added in v8.4.0

func (o LogScopeMapOutput) ToLogScopeMapOutputWithContext(ctx context.Context) LogScopeMapOutput

type LogScopeOutput added in v8.4.0

type LogScopeOutput struct{ *pulumi.OutputState }

func (LogScopeOutput) CreateTime added in v8.4.0

func (o LogScopeOutput) CreateTime() pulumi.StringOutput

Output only. The creation timestamp of the log scopes.

func (LogScopeOutput) Description added in v8.4.0

func (o LogScopeOutput) Description() pulumi.StringPtrOutput

Describes this log scopes.

func (LogScopeOutput) ElementType added in v8.4.0

func (LogScopeOutput) ElementType() reflect.Type

func (LogScopeOutput) Location added in v8.4.0

func (o LogScopeOutput) Location() pulumi.StringOutput

The location of the resource. The only supported location is global so far.

func (LogScopeOutput) Name added in v8.4.0

The resource name of the log scope. For example: \`projects/my-project/locations/global/logScopes/my-log-scope\`

func (LogScopeOutput) Parent added in v8.4.0

func (o LogScopeOutput) Parent() pulumi.StringOutput

The parent of the resource.

func (LogScopeOutput) ResourceNames added in v8.4.0

func (o LogScopeOutput) ResourceNames() pulumi.StringArrayOutput

Names of one or more parent resources : * \`projects/[PROJECT_ID]\` May alternatively be one or more views : * \`projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\` A log scope can include a maximum of 50 projects and a maximum of 100 resources in total.

***

func (LogScopeOutput) ToLogScopeOutput added in v8.4.0

func (o LogScopeOutput) ToLogScopeOutput() LogScopeOutput

func (LogScopeOutput) ToLogScopeOutputWithContext added in v8.4.0

func (o LogScopeOutput) ToLogScopeOutputWithContext(ctx context.Context) LogScopeOutput

func (LogScopeOutput) UpdateTime added in v8.4.0

func (o LogScopeOutput) UpdateTime() pulumi.StringOutput

Output only. The last update timestamp of the log scopes.

type LogScopeState added in v8.4.0

type LogScopeState struct {
	// Output only. The creation timestamp of the log scopes.
	CreateTime pulumi.StringPtrInput
	// Describes this log scopes.
	Description pulumi.StringPtrInput
	// The location of the resource. The only supported location is global so far.
	Location pulumi.StringPtrInput
	// The resource name of the log scope. For example: \`projects/my-project/locations/global/logScopes/my-log-scope\`
	Name pulumi.StringPtrInput
	// The parent of the resource.
	Parent pulumi.StringPtrInput
	// Names of one or more parent resources : *  \`projects/[PROJECT_ID]\` May alternatively be one or more views : * \`projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/views/[VIEW_ID]\` A log scope can include a maximum of 50 projects and a maximum of 100 resources in total.
	//
	// ***
	ResourceNames pulumi.StringArrayInput
	// Output only. The last update timestamp of the log scopes.
	UpdateTime pulumi.StringPtrInput
}

func (LogScopeState) ElementType added in v8.4.0

func (LogScopeState) ElementType() reflect.Type

type LogView

type LogView struct {
	pulumi.CustomResourceState

	// The bucket of the resource
	//
	// ***
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// Output only. The creation timestamp of the view.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Describes this view.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Filter that restricts which log entries in a bucket are visible in this view. Filters are restricted to be a logical AND of ==/!= of any of the following: - originating project/folder/organization/billing account. - resource type - log id For example: SOURCE("projects/myproject") AND resource.type = "gceInstance" AND LOG_ID("stdout")
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1.
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the view. For example: \`projects/my-project/locations/global/buckets/my-bucket/views/my-view\`
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the resource.
	Parent pulumi.StringOutput `pulumi:"parent"`
	// Output only. The last update timestamp of the view.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
}

Describes a view over log entries in a bucket.

To get more information about LogView, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.locations.buckets.views) * How-to Guides

## Example Usage

### Logging Log View Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		loggingLogView, err := logging.NewProjectBucketConfig(ctx, "logging_log_view", &logging.ProjectBucketConfigArgs{
			Project:       pulumi.String("my-project-name"),
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("_Default"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewLogView(ctx, "logging_log_view", &logging.LogViewArgs{
			Name:        pulumi.String("my-view"),
			Bucket:      loggingLogView.ID(),
			Description: pulumi.String("A logging view configured with Terraform"),
			Filter:      pulumi.String("SOURCE(\"projects/myproject\") AND resource.type = \"gce_instance\" AND LOG_ID(\"stdout\")"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

LogView can be imported using any of these accepted formats:

* `{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{name}}`

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

```sh $ pulumi import gcp:logging/logView:LogView default {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{name}} ```

func GetLogView

func GetLogView(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LogViewState, opts ...pulumi.ResourceOption) (*LogView, error)

GetLogView gets an existing LogView 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 NewLogView

func NewLogView(ctx *pulumi.Context,
	name string, args *LogViewArgs, opts ...pulumi.ResourceOption) (*LogView, error)

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

func (*LogView) ElementType

func (*LogView) ElementType() reflect.Type

func (*LogView) ToLogViewOutput

func (i *LogView) ToLogViewOutput() LogViewOutput

func (*LogView) ToLogViewOutputWithContext

func (i *LogView) ToLogViewOutputWithContext(ctx context.Context) LogViewOutput

type LogViewArgs

type LogViewArgs struct {
	// The bucket of the resource
	//
	// ***
	Bucket pulumi.StringInput
	// Describes this view.
	Description pulumi.StringPtrInput
	// Filter that restricts which log entries in a bucket are visible in this view. Filters are restricted to be a logical AND of ==/!= of any of the following: - originating project/folder/organization/billing account. - resource type - log id For example: SOURCE("projects/myproject") AND resource.type = "gceInstance" AND LOG_ID("stdout")
	Filter pulumi.StringPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1.
	Location pulumi.StringPtrInput
	// The resource name of the view. For example: \`projects/my-project/locations/global/buckets/my-bucket/views/my-view\`
	Name pulumi.StringPtrInput
	// The parent of the resource.
	Parent pulumi.StringPtrInput
}

The set of arguments for constructing a LogView resource.

func (LogViewArgs) ElementType

func (LogViewArgs) ElementType() reflect.Type

type LogViewArray

type LogViewArray []LogViewInput

func (LogViewArray) ElementType

func (LogViewArray) ElementType() reflect.Type

func (LogViewArray) ToLogViewArrayOutput

func (i LogViewArray) ToLogViewArrayOutput() LogViewArrayOutput

func (LogViewArray) ToLogViewArrayOutputWithContext

func (i LogViewArray) ToLogViewArrayOutputWithContext(ctx context.Context) LogViewArrayOutput

type LogViewArrayInput

type LogViewArrayInput interface {
	pulumi.Input

	ToLogViewArrayOutput() LogViewArrayOutput
	ToLogViewArrayOutputWithContext(context.Context) LogViewArrayOutput
}

LogViewArrayInput is an input type that accepts LogViewArray and LogViewArrayOutput values. You can construct a concrete instance of `LogViewArrayInput` via:

LogViewArray{ LogViewArgs{...} }

type LogViewArrayOutput

type LogViewArrayOutput struct{ *pulumi.OutputState }

func (LogViewArrayOutput) ElementType

func (LogViewArrayOutput) ElementType() reflect.Type

func (LogViewArrayOutput) Index

func (LogViewArrayOutput) ToLogViewArrayOutput

func (o LogViewArrayOutput) ToLogViewArrayOutput() LogViewArrayOutput

func (LogViewArrayOutput) ToLogViewArrayOutputWithContext

func (o LogViewArrayOutput) ToLogViewArrayOutputWithContext(ctx context.Context) LogViewArrayOutput

type LogViewIamBinding

type LogViewIamBinding struct {
	pulumi.CustomResourceState

	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringOutput `pulumi:"parent"`
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## > **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ---

# IAM policy for Cloud (Stackdriver) Logging LogView Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud (Stackdriver) Logging logview IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:logging/logViewIamBinding:LogViewIamBinding editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:logging/logViewIamBinding:LogViewIamBinding editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:logging/logViewIamBinding:LogViewIamBinding editor {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} ```

-> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetLogViewIamBinding

func GetLogViewIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LogViewIamBindingState, opts ...pulumi.ResourceOption) (*LogViewIamBinding, error)

GetLogViewIamBinding gets an existing LogViewIamBinding 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 NewLogViewIamBinding

func NewLogViewIamBinding(ctx *pulumi.Context,
	name string, args *LogViewIamBindingArgs, opts ...pulumi.ResourceOption) (*LogViewIamBinding, error)

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

func (*LogViewIamBinding) ElementType

func (*LogViewIamBinding) ElementType() reflect.Type

func (*LogViewIamBinding) ToLogViewIamBindingOutput

func (i *LogViewIamBinding) ToLogViewIamBindingOutput() LogViewIamBindingOutput

func (*LogViewIamBinding) ToLogViewIamBindingOutputWithContext

func (i *LogViewIamBinding) ToLogViewIamBindingOutputWithContext(ctx context.Context) LogViewIamBindingOutput

type LogViewIamBindingArgs

type LogViewIamBindingArgs struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamBindingConditionPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringInput
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a LogViewIamBinding resource.

func (LogViewIamBindingArgs) ElementType

func (LogViewIamBindingArgs) ElementType() reflect.Type

type LogViewIamBindingArray

type LogViewIamBindingArray []LogViewIamBindingInput

func (LogViewIamBindingArray) ElementType

func (LogViewIamBindingArray) ElementType() reflect.Type

func (LogViewIamBindingArray) ToLogViewIamBindingArrayOutput

func (i LogViewIamBindingArray) ToLogViewIamBindingArrayOutput() LogViewIamBindingArrayOutput

func (LogViewIamBindingArray) ToLogViewIamBindingArrayOutputWithContext

func (i LogViewIamBindingArray) ToLogViewIamBindingArrayOutputWithContext(ctx context.Context) LogViewIamBindingArrayOutput

type LogViewIamBindingArrayInput

type LogViewIamBindingArrayInput interface {
	pulumi.Input

	ToLogViewIamBindingArrayOutput() LogViewIamBindingArrayOutput
	ToLogViewIamBindingArrayOutputWithContext(context.Context) LogViewIamBindingArrayOutput
}

LogViewIamBindingArrayInput is an input type that accepts LogViewIamBindingArray and LogViewIamBindingArrayOutput values. You can construct a concrete instance of `LogViewIamBindingArrayInput` via:

LogViewIamBindingArray{ LogViewIamBindingArgs{...} }

type LogViewIamBindingArrayOutput

type LogViewIamBindingArrayOutput struct{ *pulumi.OutputState }

func (LogViewIamBindingArrayOutput) ElementType

func (LogViewIamBindingArrayOutput) Index

func (LogViewIamBindingArrayOutput) ToLogViewIamBindingArrayOutput

func (o LogViewIamBindingArrayOutput) ToLogViewIamBindingArrayOutput() LogViewIamBindingArrayOutput

func (LogViewIamBindingArrayOutput) ToLogViewIamBindingArrayOutputWithContext

func (o LogViewIamBindingArrayOutput) ToLogViewIamBindingArrayOutputWithContext(ctx context.Context) LogViewIamBindingArrayOutput

type LogViewIamBindingCondition

type LogViewIamBindingCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type LogViewIamBindingConditionArgs

type LogViewIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (LogViewIamBindingConditionArgs) ElementType

func (LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionOutput

func (i LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionOutput() LogViewIamBindingConditionOutput

func (LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionOutputWithContext

func (i LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionOutputWithContext(ctx context.Context) LogViewIamBindingConditionOutput

func (LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionPtrOutput

func (i LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionPtrOutput() LogViewIamBindingConditionPtrOutput

func (LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionPtrOutputWithContext

func (i LogViewIamBindingConditionArgs) ToLogViewIamBindingConditionPtrOutputWithContext(ctx context.Context) LogViewIamBindingConditionPtrOutput

type LogViewIamBindingConditionInput

type LogViewIamBindingConditionInput interface {
	pulumi.Input

	ToLogViewIamBindingConditionOutput() LogViewIamBindingConditionOutput
	ToLogViewIamBindingConditionOutputWithContext(context.Context) LogViewIamBindingConditionOutput
}

LogViewIamBindingConditionInput is an input type that accepts LogViewIamBindingConditionArgs and LogViewIamBindingConditionOutput values. You can construct a concrete instance of `LogViewIamBindingConditionInput` via:

LogViewIamBindingConditionArgs{...}

type LogViewIamBindingConditionOutput

type LogViewIamBindingConditionOutput struct{ *pulumi.OutputState }

func (LogViewIamBindingConditionOutput) Description

func (LogViewIamBindingConditionOutput) ElementType

func (LogViewIamBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (LogViewIamBindingConditionOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionOutput

func (o LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionOutput() LogViewIamBindingConditionOutput

func (LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionOutputWithContext

func (o LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionOutputWithContext(ctx context.Context) LogViewIamBindingConditionOutput

func (LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionPtrOutput

func (o LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionPtrOutput() LogViewIamBindingConditionPtrOutput

func (LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionPtrOutputWithContext

func (o LogViewIamBindingConditionOutput) ToLogViewIamBindingConditionPtrOutputWithContext(ctx context.Context) LogViewIamBindingConditionPtrOutput

type LogViewIamBindingConditionPtrInput

type LogViewIamBindingConditionPtrInput interface {
	pulumi.Input

	ToLogViewIamBindingConditionPtrOutput() LogViewIamBindingConditionPtrOutput
	ToLogViewIamBindingConditionPtrOutputWithContext(context.Context) LogViewIamBindingConditionPtrOutput
}

LogViewIamBindingConditionPtrInput is an input type that accepts LogViewIamBindingConditionArgs, LogViewIamBindingConditionPtr and LogViewIamBindingConditionPtrOutput values. You can construct a concrete instance of `LogViewIamBindingConditionPtrInput` via:

        LogViewIamBindingConditionArgs{...}

or:

        nil

type LogViewIamBindingConditionPtrOutput

type LogViewIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (LogViewIamBindingConditionPtrOutput) Description

func (LogViewIamBindingConditionPtrOutput) Elem

func (LogViewIamBindingConditionPtrOutput) ElementType

func (LogViewIamBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (LogViewIamBindingConditionPtrOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (LogViewIamBindingConditionPtrOutput) ToLogViewIamBindingConditionPtrOutput

func (o LogViewIamBindingConditionPtrOutput) ToLogViewIamBindingConditionPtrOutput() LogViewIamBindingConditionPtrOutput

func (LogViewIamBindingConditionPtrOutput) ToLogViewIamBindingConditionPtrOutputWithContext

func (o LogViewIamBindingConditionPtrOutput) ToLogViewIamBindingConditionPtrOutputWithContext(ctx context.Context) LogViewIamBindingConditionPtrOutput

type LogViewIamBindingInput

type LogViewIamBindingInput interface {
	pulumi.Input

	ToLogViewIamBindingOutput() LogViewIamBindingOutput
	ToLogViewIamBindingOutputWithContext(ctx context.Context) LogViewIamBindingOutput
}

type LogViewIamBindingMap

type LogViewIamBindingMap map[string]LogViewIamBindingInput

func (LogViewIamBindingMap) ElementType

func (LogViewIamBindingMap) ElementType() reflect.Type

func (LogViewIamBindingMap) ToLogViewIamBindingMapOutput

func (i LogViewIamBindingMap) ToLogViewIamBindingMapOutput() LogViewIamBindingMapOutput

func (LogViewIamBindingMap) ToLogViewIamBindingMapOutputWithContext

func (i LogViewIamBindingMap) ToLogViewIamBindingMapOutputWithContext(ctx context.Context) LogViewIamBindingMapOutput

type LogViewIamBindingMapInput

type LogViewIamBindingMapInput interface {
	pulumi.Input

	ToLogViewIamBindingMapOutput() LogViewIamBindingMapOutput
	ToLogViewIamBindingMapOutputWithContext(context.Context) LogViewIamBindingMapOutput
}

LogViewIamBindingMapInput is an input type that accepts LogViewIamBindingMap and LogViewIamBindingMapOutput values. You can construct a concrete instance of `LogViewIamBindingMapInput` via:

LogViewIamBindingMap{ "key": LogViewIamBindingArgs{...} }

type LogViewIamBindingMapOutput

type LogViewIamBindingMapOutput struct{ *pulumi.OutputState }

func (LogViewIamBindingMapOutput) ElementType

func (LogViewIamBindingMapOutput) ElementType() reflect.Type

func (LogViewIamBindingMapOutput) MapIndex

func (LogViewIamBindingMapOutput) ToLogViewIamBindingMapOutput

func (o LogViewIamBindingMapOutput) ToLogViewIamBindingMapOutput() LogViewIamBindingMapOutput

func (LogViewIamBindingMapOutput) ToLogViewIamBindingMapOutputWithContext

func (o LogViewIamBindingMapOutput) ToLogViewIamBindingMapOutputWithContext(ctx context.Context) LogViewIamBindingMapOutput

type LogViewIamBindingOutput

type LogViewIamBindingOutput struct{ *pulumi.OutputState }

func (LogViewIamBindingOutput) Bucket

The bucket of the resource Used to find the parent resource to bind the IAM policy to

func (LogViewIamBindingOutput) Condition

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (LogViewIamBindingOutput) ElementType

func (LogViewIamBindingOutput) ElementType() reflect.Type

func (LogViewIamBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (LogViewIamBindingOutput) Location

The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (LogViewIamBindingOutput) Members

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (LogViewIamBindingOutput) Name

Used to find the parent resource to bind the IAM policy to

func (LogViewIamBindingOutput) Parent

The parent of the resource. Used to find the parent resource to bind the IAM policy to

func (LogViewIamBindingOutput) Role

The role that should be applied. Only one `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (LogViewIamBindingOutput) ToLogViewIamBindingOutput

func (o LogViewIamBindingOutput) ToLogViewIamBindingOutput() LogViewIamBindingOutput

func (LogViewIamBindingOutput) ToLogViewIamBindingOutputWithContext

func (o LogViewIamBindingOutput) ToLogViewIamBindingOutputWithContext(ctx context.Context) LogViewIamBindingOutput

type LogViewIamBindingState

type LogViewIamBindingState struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (LogViewIamBindingState) ElementType

func (LogViewIamBindingState) ElementType() reflect.Type

type LogViewIamMember

type LogViewIamMember struct {
	pulumi.CustomResourceState

	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringOutput `pulumi:"parent"`
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
}

Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## > **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ---

# IAM policy for Cloud (Stackdriver) Logging LogView Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud (Stackdriver) Logging logview IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:logging/logViewIamMember:LogViewIamMember editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:logging/logViewIamMember:LogViewIamMember editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:logging/logViewIamMember:LogViewIamMember editor {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} ```

-> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetLogViewIamMember

func GetLogViewIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LogViewIamMemberState, opts ...pulumi.ResourceOption) (*LogViewIamMember, error)

GetLogViewIamMember gets an existing LogViewIamMember 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 NewLogViewIamMember

func NewLogViewIamMember(ctx *pulumi.Context,
	name string, args *LogViewIamMemberArgs, opts ...pulumi.ResourceOption) (*LogViewIamMember, error)

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

func (*LogViewIamMember) ElementType

func (*LogViewIamMember) ElementType() reflect.Type

func (*LogViewIamMember) ToLogViewIamMemberOutput

func (i *LogViewIamMember) ToLogViewIamMemberOutput() LogViewIamMemberOutput

func (*LogViewIamMember) ToLogViewIamMemberOutputWithContext

func (i *LogViewIamMember) ToLogViewIamMemberOutputWithContext(ctx context.Context) LogViewIamMemberOutput

type LogViewIamMemberArgs

type LogViewIamMemberArgs struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamMemberConditionPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringInput
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a LogViewIamMember resource.

func (LogViewIamMemberArgs) ElementType

func (LogViewIamMemberArgs) ElementType() reflect.Type

type LogViewIamMemberArray

type LogViewIamMemberArray []LogViewIamMemberInput

func (LogViewIamMemberArray) ElementType

func (LogViewIamMemberArray) ElementType() reflect.Type

func (LogViewIamMemberArray) ToLogViewIamMemberArrayOutput

func (i LogViewIamMemberArray) ToLogViewIamMemberArrayOutput() LogViewIamMemberArrayOutput

func (LogViewIamMemberArray) ToLogViewIamMemberArrayOutputWithContext

func (i LogViewIamMemberArray) ToLogViewIamMemberArrayOutputWithContext(ctx context.Context) LogViewIamMemberArrayOutput

type LogViewIamMemberArrayInput

type LogViewIamMemberArrayInput interface {
	pulumi.Input

	ToLogViewIamMemberArrayOutput() LogViewIamMemberArrayOutput
	ToLogViewIamMemberArrayOutputWithContext(context.Context) LogViewIamMemberArrayOutput
}

LogViewIamMemberArrayInput is an input type that accepts LogViewIamMemberArray and LogViewIamMemberArrayOutput values. You can construct a concrete instance of `LogViewIamMemberArrayInput` via:

LogViewIamMemberArray{ LogViewIamMemberArgs{...} }

type LogViewIamMemberArrayOutput

type LogViewIamMemberArrayOutput struct{ *pulumi.OutputState }

func (LogViewIamMemberArrayOutput) ElementType

func (LogViewIamMemberArrayOutput) Index

func (LogViewIamMemberArrayOutput) ToLogViewIamMemberArrayOutput

func (o LogViewIamMemberArrayOutput) ToLogViewIamMemberArrayOutput() LogViewIamMemberArrayOutput

func (LogViewIamMemberArrayOutput) ToLogViewIamMemberArrayOutputWithContext

func (o LogViewIamMemberArrayOutput) ToLogViewIamMemberArrayOutputWithContext(ctx context.Context) LogViewIamMemberArrayOutput

type LogViewIamMemberCondition

type LogViewIamMemberCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type LogViewIamMemberConditionArgs

type LogViewIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (LogViewIamMemberConditionArgs) ElementType

func (LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionOutput

func (i LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionOutput() LogViewIamMemberConditionOutput

func (LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionOutputWithContext

func (i LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionOutputWithContext(ctx context.Context) LogViewIamMemberConditionOutput

func (LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionPtrOutput

func (i LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionPtrOutput() LogViewIamMemberConditionPtrOutput

func (LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionPtrOutputWithContext

func (i LogViewIamMemberConditionArgs) ToLogViewIamMemberConditionPtrOutputWithContext(ctx context.Context) LogViewIamMemberConditionPtrOutput

type LogViewIamMemberConditionInput

type LogViewIamMemberConditionInput interface {
	pulumi.Input

	ToLogViewIamMemberConditionOutput() LogViewIamMemberConditionOutput
	ToLogViewIamMemberConditionOutputWithContext(context.Context) LogViewIamMemberConditionOutput
}

LogViewIamMemberConditionInput is an input type that accepts LogViewIamMemberConditionArgs and LogViewIamMemberConditionOutput values. You can construct a concrete instance of `LogViewIamMemberConditionInput` via:

LogViewIamMemberConditionArgs{...}

type LogViewIamMemberConditionOutput

type LogViewIamMemberConditionOutput struct{ *pulumi.OutputState }

func (LogViewIamMemberConditionOutput) Description

func (LogViewIamMemberConditionOutput) ElementType

func (LogViewIamMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (LogViewIamMemberConditionOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionOutput

func (o LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionOutput() LogViewIamMemberConditionOutput

func (LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionOutputWithContext

func (o LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionOutputWithContext(ctx context.Context) LogViewIamMemberConditionOutput

func (LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionPtrOutput

func (o LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionPtrOutput() LogViewIamMemberConditionPtrOutput

func (LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionPtrOutputWithContext

func (o LogViewIamMemberConditionOutput) ToLogViewIamMemberConditionPtrOutputWithContext(ctx context.Context) LogViewIamMemberConditionPtrOutput

type LogViewIamMemberConditionPtrInput

type LogViewIamMemberConditionPtrInput interface {
	pulumi.Input

	ToLogViewIamMemberConditionPtrOutput() LogViewIamMemberConditionPtrOutput
	ToLogViewIamMemberConditionPtrOutputWithContext(context.Context) LogViewIamMemberConditionPtrOutput
}

LogViewIamMemberConditionPtrInput is an input type that accepts LogViewIamMemberConditionArgs, LogViewIamMemberConditionPtr and LogViewIamMemberConditionPtrOutput values. You can construct a concrete instance of `LogViewIamMemberConditionPtrInput` via:

        LogViewIamMemberConditionArgs{...}

or:

        nil

type LogViewIamMemberConditionPtrOutput

type LogViewIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (LogViewIamMemberConditionPtrOutput) Description

func (LogViewIamMemberConditionPtrOutput) Elem

func (LogViewIamMemberConditionPtrOutput) ElementType

func (LogViewIamMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (LogViewIamMemberConditionPtrOutput) Title

A title for the expression, i.e. a short string describing its purpose.

func (LogViewIamMemberConditionPtrOutput) ToLogViewIamMemberConditionPtrOutput

func (o LogViewIamMemberConditionPtrOutput) ToLogViewIamMemberConditionPtrOutput() LogViewIamMemberConditionPtrOutput

func (LogViewIamMemberConditionPtrOutput) ToLogViewIamMemberConditionPtrOutputWithContext

func (o LogViewIamMemberConditionPtrOutput) ToLogViewIamMemberConditionPtrOutputWithContext(ctx context.Context) LogViewIamMemberConditionPtrOutput

type LogViewIamMemberInput

type LogViewIamMemberInput interface {
	pulumi.Input

	ToLogViewIamMemberOutput() LogViewIamMemberOutput
	ToLogViewIamMemberOutputWithContext(ctx context.Context) LogViewIamMemberOutput
}

type LogViewIamMemberMap

type LogViewIamMemberMap map[string]LogViewIamMemberInput

func (LogViewIamMemberMap) ElementType

func (LogViewIamMemberMap) ElementType() reflect.Type

func (LogViewIamMemberMap) ToLogViewIamMemberMapOutput

func (i LogViewIamMemberMap) ToLogViewIamMemberMapOutput() LogViewIamMemberMapOutput

func (LogViewIamMemberMap) ToLogViewIamMemberMapOutputWithContext

func (i LogViewIamMemberMap) ToLogViewIamMemberMapOutputWithContext(ctx context.Context) LogViewIamMemberMapOutput

type LogViewIamMemberMapInput

type LogViewIamMemberMapInput interface {
	pulumi.Input

	ToLogViewIamMemberMapOutput() LogViewIamMemberMapOutput
	ToLogViewIamMemberMapOutputWithContext(context.Context) LogViewIamMemberMapOutput
}

LogViewIamMemberMapInput is an input type that accepts LogViewIamMemberMap and LogViewIamMemberMapOutput values. You can construct a concrete instance of `LogViewIamMemberMapInput` via:

LogViewIamMemberMap{ "key": LogViewIamMemberArgs{...} }

type LogViewIamMemberMapOutput

type LogViewIamMemberMapOutput struct{ *pulumi.OutputState }

func (LogViewIamMemberMapOutput) ElementType

func (LogViewIamMemberMapOutput) ElementType() reflect.Type

func (LogViewIamMemberMapOutput) MapIndex

func (LogViewIamMemberMapOutput) ToLogViewIamMemberMapOutput

func (o LogViewIamMemberMapOutput) ToLogViewIamMemberMapOutput() LogViewIamMemberMapOutput

func (LogViewIamMemberMapOutput) ToLogViewIamMemberMapOutputWithContext

func (o LogViewIamMemberMapOutput) ToLogViewIamMemberMapOutputWithContext(ctx context.Context) LogViewIamMemberMapOutput

type LogViewIamMemberOutput

type LogViewIamMemberOutput struct{ *pulumi.OutputState }

func (LogViewIamMemberOutput) Bucket

The bucket of the resource Used to find the parent resource to bind the IAM policy to

func (LogViewIamMemberOutput) Condition

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (LogViewIamMemberOutput) ElementType

func (LogViewIamMemberOutput) ElementType() reflect.Type

func (LogViewIamMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (LogViewIamMemberOutput) Location

The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (LogViewIamMemberOutput) Member

Identities that will be granted the privilege in `role`. Each entry can have one of the following values: * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account. * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account. * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com. * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com. * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com. * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com. * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project" * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project" * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"

func (LogViewIamMemberOutput) Name

Used to find the parent resource to bind the IAM policy to

func (LogViewIamMemberOutput) Parent

The parent of the resource. Used to find the parent resource to bind the IAM policy to

func (LogViewIamMemberOutput) Role

The role that should be applied. Only one `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format `[projects|organizations]/{parent-name}/roles/{role-name}`.

func (LogViewIamMemberOutput) ToLogViewIamMemberOutput

func (o LogViewIamMemberOutput) ToLogViewIamMemberOutput() LogViewIamMemberOutput

func (LogViewIamMemberOutput) ToLogViewIamMemberOutputWithContext

func (o LogViewIamMemberOutput) ToLogViewIamMemberOutputWithContext(ctx context.Context) LogViewIamMemberOutput

type LogViewIamMemberState

type LogViewIamMemberState struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition LogViewIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `logging.LogViewIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (LogViewIamMemberState) ElementType

func (LogViewIamMemberState) ElementType() reflect.Type

type LogViewIamPolicy

type LogViewIamPolicy struct {
	pulumi.CustomResourceState

	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringOutput `pulumi:"bucket"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringOutput `pulumi:"parent"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
}

Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## > **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`. ---

# IAM policy for Cloud (Stackdriver) Logging LogView Three different resources help you manage your IAM policy for Cloud (Stackdriver) Logging LogView. Each of these resources serves a different use case:

* `logging.LogViewIamPolicy`: Authoritative. Sets the IAM policy for the logview and replaces any existing policy already attached. * `logging.LogViewIamBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the logview are preserved. * `logging.LogViewIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the logview are preserved.

A data source can be used to retrieve policy data in advent you do not need creation

* `logging.LogViewIamPolicy`: Retrieves the IAM policy for the logview

> **Note:** `logging.LogViewIamPolicy` **cannot** be used in conjunction with `logging.LogViewIamBinding` and `logging.LogViewIamMember` or they will fight over what your policy should be.

> **Note:** `logging.LogViewIamBinding` resources **can be** used in conjunction with `logging.LogViewIamMember` resources **only if** they do not grant privilege to the same role.

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## logging.LogViewIamPolicy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/logging.admin",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewLogViewIamPolicy(ctx, "policy", &logging.LogViewIamPolicyArgs{
			Parent:     pulumi.Any(loggingLogView.Parent),
			Location:   pulumi.Any(loggingLogView.Location),
			Bucket:     pulumi.Any(loggingLogView.Bucket),
			Name:       pulumi.Any(loggingLogView.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamBinding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamBinding(ctx, "binding", &logging.LogViewIamBindingArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &logging.LogViewIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## logging.LogViewIamMember

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewLogViewIamMember(ctx, "member", &logging.LogViewIamMemberArgs{
			Parent:   pulumi.Any(loggingLogView.Parent),
			Location: pulumi.Any(loggingLogView.Location),
			Bucket:   pulumi.Any(loggingLogView.Bucket),
			Name:     pulumi.Any(loggingLogView.Name),
			Role:     pulumi.String("roles/logging.admin"),
			Member:   pulumi.String("user:jane@example.com"),
			Condition: &logging.LogViewIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms:

* {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{name}}

* {{name}}

Any variables not passed in the import command will be taken from the provider configuration.

Cloud (Stackdriver) Logging logview IAM resources can be imported using the resource identifiers, role, and member.

IAM member imports use space-delimited identifiers: the resource in question, the role, and the member identity, e.g.

```sh $ pulumi import gcp:logging/logViewIamPolicy:LogViewIamPolicy editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin user:jane@example.com" ```

IAM binding imports use space-delimited identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:logging/logViewIamPolicy:LogViewIamPolicy editor "{{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} roles/logging.admin" ```

IAM policy imports use the identifier of the resource in question, e.g.

```sh $ pulumi import gcp:logging/logViewIamPolicy:LogViewIamPolicy editor {{parent}}/locations/{{location}}/buckets/{{bucket}}/views/{{log_view}} ```

-> **Custom Roles** If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetLogViewIamPolicy

func GetLogViewIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LogViewIamPolicyState, opts ...pulumi.ResourceOption) (*LogViewIamPolicy, error)

GetLogViewIamPolicy gets an existing LogViewIamPolicy 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 NewLogViewIamPolicy

func NewLogViewIamPolicy(ctx *pulumi.Context,
	name string, args *LogViewIamPolicyArgs, opts ...pulumi.ResourceOption) (*LogViewIamPolicy, error)

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

func (*LogViewIamPolicy) ElementType

func (*LogViewIamPolicy) ElementType() reflect.Type

func (*LogViewIamPolicy) ToLogViewIamPolicyOutput

func (i *LogViewIamPolicy) ToLogViewIamPolicyOutput() LogViewIamPolicyOutput

func (*LogViewIamPolicy) ToLogViewIamPolicyOutputWithContext

func (i *LogViewIamPolicy) ToLogViewIamPolicyOutputWithContext(ctx context.Context) LogViewIamPolicyOutput

type LogViewIamPolicyArgs

type LogViewIamPolicyArgs struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
}

The set of arguments for constructing a LogViewIamPolicy resource.

func (LogViewIamPolicyArgs) ElementType

func (LogViewIamPolicyArgs) ElementType() reflect.Type

type LogViewIamPolicyArray

type LogViewIamPolicyArray []LogViewIamPolicyInput

func (LogViewIamPolicyArray) ElementType

func (LogViewIamPolicyArray) ElementType() reflect.Type

func (LogViewIamPolicyArray) ToLogViewIamPolicyArrayOutput

func (i LogViewIamPolicyArray) ToLogViewIamPolicyArrayOutput() LogViewIamPolicyArrayOutput

func (LogViewIamPolicyArray) ToLogViewIamPolicyArrayOutputWithContext

func (i LogViewIamPolicyArray) ToLogViewIamPolicyArrayOutputWithContext(ctx context.Context) LogViewIamPolicyArrayOutput

type LogViewIamPolicyArrayInput

type LogViewIamPolicyArrayInput interface {
	pulumi.Input

	ToLogViewIamPolicyArrayOutput() LogViewIamPolicyArrayOutput
	ToLogViewIamPolicyArrayOutputWithContext(context.Context) LogViewIamPolicyArrayOutput
}

LogViewIamPolicyArrayInput is an input type that accepts LogViewIamPolicyArray and LogViewIamPolicyArrayOutput values. You can construct a concrete instance of `LogViewIamPolicyArrayInput` via:

LogViewIamPolicyArray{ LogViewIamPolicyArgs{...} }

type LogViewIamPolicyArrayOutput

type LogViewIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (LogViewIamPolicyArrayOutput) ElementType

func (LogViewIamPolicyArrayOutput) Index

func (LogViewIamPolicyArrayOutput) ToLogViewIamPolicyArrayOutput

func (o LogViewIamPolicyArrayOutput) ToLogViewIamPolicyArrayOutput() LogViewIamPolicyArrayOutput

func (LogViewIamPolicyArrayOutput) ToLogViewIamPolicyArrayOutputWithContext

func (o LogViewIamPolicyArrayOutput) ToLogViewIamPolicyArrayOutputWithContext(ctx context.Context) LogViewIamPolicyArrayOutput

type LogViewIamPolicyInput

type LogViewIamPolicyInput interface {
	pulumi.Input

	ToLogViewIamPolicyOutput() LogViewIamPolicyOutput
	ToLogViewIamPolicyOutputWithContext(ctx context.Context) LogViewIamPolicyOutput
}

type LogViewIamPolicyMap

type LogViewIamPolicyMap map[string]LogViewIamPolicyInput

func (LogViewIamPolicyMap) ElementType

func (LogViewIamPolicyMap) ElementType() reflect.Type

func (LogViewIamPolicyMap) ToLogViewIamPolicyMapOutput

func (i LogViewIamPolicyMap) ToLogViewIamPolicyMapOutput() LogViewIamPolicyMapOutput

func (LogViewIamPolicyMap) ToLogViewIamPolicyMapOutputWithContext

func (i LogViewIamPolicyMap) ToLogViewIamPolicyMapOutputWithContext(ctx context.Context) LogViewIamPolicyMapOutput

type LogViewIamPolicyMapInput

type LogViewIamPolicyMapInput interface {
	pulumi.Input

	ToLogViewIamPolicyMapOutput() LogViewIamPolicyMapOutput
	ToLogViewIamPolicyMapOutputWithContext(context.Context) LogViewIamPolicyMapOutput
}

LogViewIamPolicyMapInput is an input type that accepts LogViewIamPolicyMap and LogViewIamPolicyMapOutput values. You can construct a concrete instance of `LogViewIamPolicyMapInput` via:

LogViewIamPolicyMap{ "key": LogViewIamPolicyArgs{...} }

type LogViewIamPolicyMapOutput

type LogViewIamPolicyMapOutput struct{ *pulumi.OutputState }

func (LogViewIamPolicyMapOutput) ElementType

func (LogViewIamPolicyMapOutput) ElementType() reflect.Type

func (LogViewIamPolicyMapOutput) MapIndex

func (LogViewIamPolicyMapOutput) ToLogViewIamPolicyMapOutput

func (o LogViewIamPolicyMapOutput) ToLogViewIamPolicyMapOutput() LogViewIamPolicyMapOutput

func (LogViewIamPolicyMapOutput) ToLogViewIamPolicyMapOutputWithContext

func (o LogViewIamPolicyMapOutput) ToLogViewIamPolicyMapOutputWithContext(ctx context.Context) LogViewIamPolicyMapOutput

type LogViewIamPolicyOutput

type LogViewIamPolicyOutput struct{ *pulumi.OutputState }

func (LogViewIamPolicyOutput) Bucket

The bucket of the resource Used to find the parent resource to bind the IAM policy to

func (LogViewIamPolicyOutput) ElementType

func (LogViewIamPolicyOutput) ElementType() reflect.Type

func (LogViewIamPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (LogViewIamPolicyOutput) Location

The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified, the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (LogViewIamPolicyOutput) Name

Used to find the parent resource to bind the IAM policy to

func (LogViewIamPolicyOutput) Parent

The parent of the resource. Used to find the parent resource to bind the IAM policy to

func (LogViewIamPolicyOutput) PolicyData

The policy data generated by a `organizations.getIAMPolicy` data source.

func (LogViewIamPolicyOutput) ToLogViewIamPolicyOutput

func (o LogViewIamPolicyOutput) ToLogViewIamPolicyOutput() LogViewIamPolicyOutput

func (LogViewIamPolicyOutput) ToLogViewIamPolicyOutputWithContext

func (o LogViewIamPolicyOutput) ToLogViewIamPolicyOutputWithContext(ctx context.Context) LogViewIamPolicyOutput

type LogViewIamPolicyState

type LogViewIamPolicyState struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringPtrInput
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
}

func (LogViewIamPolicyState) ElementType

func (LogViewIamPolicyState) ElementType() reflect.Type

type LogViewInput

type LogViewInput interface {
	pulumi.Input

	ToLogViewOutput() LogViewOutput
	ToLogViewOutputWithContext(ctx context.Context) LogViewOutput
}

type LogViewMap

type LogViewMap map[string]LogViewInput

func (LogViewMap) ElementType

func (LogViewMap) ElementType() reflect.Type

func (LogViewMap) ToLogViewMapOutput

func (i LogViewMap) ToLogViewMapOutput() LogViewMapOutput

func (LogViewMap) ToLogViewMapOutputWithContext

func (i LogViewMap) ToLogViewMapOutputWithContext(ctx context.Context) LogViewMapOutput

type LogViewMapInput

type LogViewMapInput interface {
	pulumi.Input

	ToLogViewMapOutput() LogViewMapOutput
	ToLogViewMapOutputWithContext(context.Context) LogViewMapOutput
}

LogViewMapInput is an input type that accepts LogViewMap and LogViewMapOutput values. You can construct a concrete instance of `LogViewMapInput` via:

LogViewMap{ "key": LogViewArgs{...} }

type LogViewMapOutput

type LogViewMapOutput struct{ *pulumi.OutputState }

func (LogViewMapOutput) ElementType

func (LogViewMapOutput) ElementType() reflect.Type

func (LogViewMapOutput) MapIndex

func (LogViewMapOutput) ToLogViewMapOutput

func (o LogViewMapOutput) ToLogViewMapOutput() LogViewMapOutput

func (LogViewMapOutput) ToLogViewMapOutputWithContext

func (o LogViewMapOutput) ToLogViewMapOutputWithContext(ctx context.Context) LogViewMapOutput

type LogViewOutput

type LogViewOutput struct{ *pulumi.OutputState }

func (LogViewOutput) Bucket

func (o LogViewOutput) Bucket() pulumi.StringOutput

The bucket of the resource

***

func (LogViewOutput) CreateTime

func (o LogViewOutput) CreateTime() pulumi.StringOutput

Output only. The creation timestamp of the view.

func (LogViewOutput) Description

func (o LogViewOutput) Description() pulumi.StringPtrOutput

Describes this view.

func (LogViewOutput) ElementType

func (LogViewOutput) ElementType() reflect.Type

func (LogViewOutput) Filter

Filter that restricts which log entries in a bucket are visible in this view. Filters are restricted to be a logical AND of ==/!= of any of the following: - originating project/folder/organization/billing account. - resource type - log id For example: SOURCE("projects/myproject") AND resource.type = "gceInstance" AND LOG_ID("stdout")

func (LogViewOutput) Location

func (o LogViewOutput) Location() pulumi.StringOutput

The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1.

func (LogViewOutput) Name

The resource name of the view. For example: \`projects/my-project/locations/global/buckets/my-bucket/views/my-view\`

func (LogViewOutput) Parent

func (o LogViewOutput) Parent() pulumi.StringOutput

The parent of the resource.

func (LogViewOutput) ToLogViewOutput

func (o LogViewOutput) ToLogViewOutput() LogViewOutput

func (LogViewOutput) ToLogViewOutputWithContext

func (o LogViewOutput) ToLogViewOutputWithContext(ctx context.Context) LogViewOutput

func (LogViewOutput) UpdateTime

func (o LogViewOutput) UpdateTime() pulumi.StringOutput

Output only. The last update timestamp of the view.

type LogViewState

type LogViewState struct {
	// The bucket of the resource
	//
	// ***
	Bucket pulumi.StringPtrInput
	// Output only. The creation timestamp of the view.
	CreateTime pulumi.StringPtrInput
	// Describes this view.
	Description pulumi.StringPtrInput
	// Filter that restricts which log entries in a bucket are visible in this view. Filters are restricted to be a logical AND of ==/!= of any of the following: - originating project/folder/organization/billing account. - resource type - log id For example: SOURCE("projects/myproject") AND resource.type = "gceInstance" AND LOG_ID("stdout")
	Filter pulumi.StringPtrInput
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1.
	Location pulumi.StringPtrInput
	// The resource name of the view. For example: \`projects/my-project/locations/global/buckets/my-bucket/views/my-view\`
	Name pulumi.StringPtrInput
	// The parent of the resource.
	Parent pulumi.StringPtrInput
	// Output only. The last update timestamp of the view.
	UpdateTime pulumi.StringPtrInput
}

func (LogViewState) ElementType

func (LogViewState) ElementType() reflect.Type

type LookupFolderSettingsArgs

type LookupFolderSettingsArgs struct {
	// The ID of the folder for which to retrieve settings.
	Folder string `pulumi:"folder"`
}

A collection of arguments for invoking getFolderSettings.

type LookupFolderSettingsOutputArgs

type LookupFolderSettingsOutputArgs struct {
	// The ID of the folder for which to retrieve settings.
	Folder pulumi.StringInput `pulumi:"folder"`
}

A collection of arguments for invoking getFolderSettings.

func (LookupFolderSettingsOutputArgs) ElementType

type LookupFolderSettingsResult

type LookupFolderSettingsResult struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink bool   `pulumi:"disableDefaultSink"`
	Folder             string `pulumi:"folder"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsServiceAccountId string `pulumi:"kmsServiceAccountId"`
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId string `pulumi:"loggingServiceAccountId"`
	// The resource name of the settings.
	Name string `pulumi:"name"`
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation string `pulumi:"storageLocation"`
}

A collection of values returned by getFolderSettings.

func LookupFolderSettings

func LookupFolderSettings(ctx *pulumi.Context, args *LookupFolderSettingsArgs, opts ...pulumi.InvokeOption) (*LookupFolderSettingsResult, error)

Describes the settings associated with a folder.

To get more information about LoggingFolderSettings, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/folders/getSettings) * [Configure default settings for organizations and folders](https://cloud.google.com/logging/docs/default-settings).

## Example Usage

### Logging Folder Settings Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.LookupFolderSettings(ctx, &logging.LookupFolderSettingsArgs{
			Folder: "my-folder-name",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupFolderSettingsResultOutput

type LookupFolderSettingsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getFolderSettings.

func (LookupFolderSettingsResultOutput) DisableDefaultSink

func (o LookupFolderSettingsResultOutput) DisableDefaultSink() pulumi.BoolOutput

If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.

func (LookupFolderSettingsResultOutput) ElementType

func (LookupFolderSettingsResultOutput) Folder

func (LookupFolderSettingsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupFolderSettingsResultOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (LookupFolderSettingsResultOutput) KmsServiceAccountId

func (o LookupFolderSettingsResultOutput) KmsServiceAccountId() pulumi.StringOutput

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (LookupFolderSettingsResultOutput) LoggingServiceAccountId

func (o LookupFolderSettingsResultOutput) LoggingServiceAccountId() pulumi.StringOutput

The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.

func (LookupFolderSettingsResultOutput) Name

The resource name of the settings.

func (LookupFolderSettingsResultOutput) StorageLocation

The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.

func (LookupFolderSettingsResultOutput) ToLookupFolderSettingsResultOutput

func (o LookupFolderSettingsResultOutput) ToLookupFolderSettingsResultOutput() LookupFolderSettingsResultOutput

func (LookupFolderSettingsResultOutput) ToLookupFolderSettingsResultOutputWithContext

func (o LookupFolderSettingsResultOutput) ToLookupFolderSettingsResultOutputWithContext(ctx context.Context) LookupFolderSettingsResultOutput

type LookupLogViewIamPolicyArgs

type LookupLogViewIamPolicyArgs struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket string `pulumi:"bucket"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location *string `pulumi:"location"`
	// Used to find the parent resource to bind the IAM policy to
	Name string `pulumi:"name"`
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent string `pulumi:"parent"`
}

A collection of arguments for invoking getLogViewIamPolicy.

type LookupLogViewIamPolicyOutputArgs

type LookupLogViewIamPolicyOutputArgs struct {
	// The bucket of the resource Used to find the parent resource to bind the IAM policy to
	Bucket pulumi.StringInput `pulumi:"bucket"`
	// The location of the resource. The supported locations are: global, us-central1, us-east1, us-west1, asia-east1, europe-west1. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput `pulumi:"location"`
	// Used to find the parent resource to bind the IAM policy to
	Name pulumi.StringInput `pulumi:"name"`
	// The parent of the resource. Used to find the parent resource to bind the IAM policy to
	Parent pulumi.StringInput `pulumi:"parent"`
}

A collection of arguments for invoking getLogViewIamPolicy.

func (LookupLogViewIamPolicyOutputArgs) ElementType

type LookupLogViewIamPolicyResult

type LookupLogViewIamPolicyResult struct {
	Bucket string `pulumi:"bucket"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	Location string `pulumi:"location"`
	Name     string `pulumi:"name"`
	Parent   string `pulumi:"parent"`
	// (Required only by `logging.LogViewIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
}

A collection of values returned by getLogViewIamPolicy.

func LookupLogViewIamPolicy

func LookupLogViewIamPolicy(ctx *pulumi.Context, args *LookupLogViewIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupLogViewIamPolicyResult, error)

Retrieves the current IAM policy data for logview

## example

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.LookupLogViewIamPolicy(ctx, &logging.LookupLogViewIamPolicyArgs{
			Parent:   loggingLogView.Parent,
			Location: pulumi.StringRef(loggingLogView.Location),
			Bucket:   loggingLogView.Bucket,
			Name:     loggingLogView.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupLogViewIamPolicyResultOutput

type LookupLogViewIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getLogViewIamPolicy.

func (LookupLogViewIamPolicyResultOutput) Bucket

func (LookupLogViewIamPolicyResultOutput) ElementType

func (LookupLogViewIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (LookupLogViewIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupLogViewIamPolicyResultOutput) Location

func (LookupLogViewIamPolicyResultOutput) Name

func (LookupLogViewIamPolicyResultOutput) Parent

func (LookupLogViewIamPolicyResultOutput) PolicyData

(Required only by `logging.LogViewIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupLogViewIamPolicyResultOutput) ToLookupLogViewIamPolicyResultOutput

func (o LookupLogViewIamPolicyResultOutput) ToLookupLogViewIamPolicyResultOutput() LookupLogViewIamPolicyResultOutput

func (LookupLogViewIamPolicyResultOutput) ToLookupLogViewIamPolicyResultOutputWithContext

func (o LookupLogViewIamPolicyResultOutput) ToLookupLogViewIamPolicyResultOutputWithContext(ctx context.Context) LookupLogViewIamPolicyResultOutput

type LookupOrganizationSettingsArgs

type LookupOrganizationSettingsArgs struct {
	// The ID of the organization for which to retrieve settings.
	Organization string `pulumi:"organization"`
}

A collection of arguments for invoking getOrganizationSettings.

type LookupOrganizationSettingsOutputArgs

type LookupOrganizationSettingsOutputArgs struct {
	// The ID of the organization for which to retrieve settings.
	Organization pulumi.StringInput `pulumi:"organization"`
}

A collection of arguments for invoking getOrganizationSettings.

func (LookupOrganizationSettingsOutputArgs) ElementType

type LookupOrganizationSettingsResult

type LookupOrganizationSettingsResult struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink bool `pulumi:"disableDefaultSink"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsServiceAccountId string `pulumi:"kmsServiceAccountId"`
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId string `pulumi:"loggingServiceAccountId"`
	// The resource name of the settings.
	Name         string `pulumi:"name"`
	Organization string `pulumi:"organization"`
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation string `pulumi:"storageLocation"`
}

A collection of values returned by getOrganizationSettings.

func LookupOrganizationSettings

func LookupOrganizationSettings(ctx *pulumi.Context, args *LookupOrganizationSettingsArgs, opts ...pulumi.InvokeOption) (*LookupOrganizationSettingsResult, error)

Describes the settings associated with a organization.

To get more information about LoggingOrganizationSettings, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/organizations/getSettings) * [Configure default settings for organizations and folders](https://cloud.google.com/logging/docs/default-settings).

## Example Usage

### Logging Organization Settings Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.LookupOrganizationSettings(ctx, &logging.LookupOrganizationSettingsArgs{
			Organization: "my-organization-name",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupOrganizationSettingsResultOutput

type LookupOrganizationSettingsResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getOrganizationSettings.

func (LookupOrganizationSettingsResultOutput) DisableDefaultSink

If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.

func (LookupOrganizationSettingsResultOutput) ElementType

func (LookupOrganizationSettingsResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupOrganizationSettingsResultOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (LookupOrganizationSettingsResultOutput) KmsServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (LookupOrganizationSettingsResultOutput) LoggingServiceAccountId

func (o LookupOrganizationSettingsResultOutput) LoggingServiceAccountId() pulumi.StringOutput

The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.

func (LookupOrganizationSettingsResultOutput) Name

The resource name of the settings.

func (LookupOrganizationSettingsResultOutput) Organization

func (LookupOrganizationSettingsResultOutput) StorageLocation

The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.

func (LookupOrganizationSettingsResultOutput) ToLookupOrganizationSettingsResultOutput

func (o LookupOrganizationSettingsResultOutput) ToLookupOrganizationSettingsResultOutput() LookupOrganizationSettingsResultOutput

func (LookupOrganizationSettingsResultOutput) ToLookupOrganizationSettingsResultOutputWithContext

func (o LookupOrganizationSettingsResultOutput) ToLookupOrganizationSettingsResultOutputWithContext(ctx context.Context) LookupOrganizationSettingsResultOutput

type Metric

type Metric struct {
	pulumi.CustomResourceState

	// The resource name of the Log Bucket that owns the Log Metric. Only Log Buckets in projects
	// are supported. The bucket has to be in the same project as the metric.
	BucketName pulumi.StringPtrOutput `pulumi:"bucketName"`
	// The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it
	// describes the bucket boundaries used to create a histogram of the extracted values.
	// Structure is documented below.
	BucketOptions MetricBucketOptionsPtrOutput `pulumi:"bucketOptions"`
	// A description of this metric, which is used in documentation. The maximum length of the
	// description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// If set to True, then this metric is disabled and it does not generate any points.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which
	// is used to match log entries.
	//
	// ***
	Filter pulumi.StringOutput `pulumi:"filter"`
	// A map from a label key string to an extractor expression which is used to extract data from a log
	// entry field and assign as the label value. Each label key specified in the LabelDescriptor must
	// have an associated extractor expression in this map. The syntax of the extractor expression is
	// the same as for the valueExtractor field.
	LabelExtractors pulumi.StringMapOutput `pulumi:"labelExtractors"`
	// The optional metric descriptor associated with the logs-based metric.
	// If unspecified, it uses a default metric descriptor with a DELTA metric kind,
	// INT64 value type, with no labels and a unit of "1". Such a metric counts the
	// number of log entries matching the filter expression.
	// Structure is documented below.
	MetricDescriptor MetricMetricDescriptorOutput `pulumi:"metricDescriptor"`
	// The client-assigned metric identifier. Examples - "errorCount", "nginx/requests".
	// Metric identifiers are limited to 100 characters and can include only the following
	// characters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash
	// character (/) denotes a hierarchy of name pieces, and it cannot be the first character
	// of the name.
	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"`
	// A valueExtractor is required when using a distribution logs-based metric to extract the values to
	// record from a log entry. Two functions are supported for value extraction - EXTRACT(field) or
	// REGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which
	// the value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax
	// (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified
	// log entry field. The value of the field is converted to a string before applying the regex. It is an
	// error to specify a regex that does not include exactly one capture group.
	ValueExtractor pulumi.StringPtrOutput `pulumi:"valueExtractor"`
}

Logs-based metric can also be used to extract values from logs and create a a distribution of the values. The distribution records the statistics of the extracted values along with an optional histogram of the values as specified by the bucket options.

To get more information about Metric, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.metrics/create) * How-to Guides

## Example Usage

### Logging Metric Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewMetric(ctx, "logging_metric", &logging.MetricArgs{
			Name:   pulumi.String("my-(custom)/metric"),
			Filter: pulumi.String("resource.type=gae_app AND severity>=ERROR"),
			MetricDescriptor: &logging.MetricMetricDescriptorArgs{
				MetricKind: pulumi.String("DELTA"),
				ValueType:  pulumi.String("DISTRIBUTION"),
				Unit:       pulumi.String("1"),
				Labels: logging.MetricMetricDescriptorLabelArray{
					&logging.MetricMetricDescriptorLabelArgs{
						Key:         pulumi.String("mass"),
						ValueType:   pulumi.String("STRING"),
						Description: pulumi.String("amount of matter"),
					},
					&logging.MetricMetricDescriptorLabelArgs{
						Key:         pulumi.String("sku"),
						ValueType:   pulumi.String("INT64"),
						Description: pulumi.String("Identifying number for item"),
					},
				},
				DisplayName: pulumi.String("My metric"),
			},
			ValueExtractor: pulumi.String("EXTRACT(jsonPayload.request)"),
			LabelExtractors: pulumi.StringMap{
				"mass": pulumi.String("EXTRACT(jsonPayload.request)"),
				"sku":  pulumi.String("EXTRACT(jsonPayload.id)"),
			},
			BucketOptions: &logging.MetricBucketOptionsArgs{
				LinearBuckets: &logging.MetricBucketOptionsLinearBucketsArgs{
					NumFiniteBuckets: pulumi.Int(3),
					Width:            pulumi.Float64(1),
					Offset:           pulumi.Float64(1),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Logging Metric Counter Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewMetric(ctx, "logging_metric", &logging.MetricArgs{
			Name:   pulumi.String("my-(custom)/metric"),
			Filter: pulumi.String("resource.type=gae_app AND severity>=ERROR"),
			MetricDescriptor: &logging.MetricMetricDescriptorArgs{
				MetricKind: pulumi.String("DELTA"),
				ValueType:  pulumi.String("INT64"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Logging Metric Counter Labels

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewMetric(ctx, "logging_metric", &logging.MetricArgs{
			Name:   pulumi.String("my-(custom)/metric"),
			Filter: pulumi.String("resource.type=gae_app AND severity>=ERROR"),
			MetricDescriptor: &logging.MetricMetricDescriptorArgs{
				MetricKind: pulumi.String("DELTA"),
				ValueType:  pulumi.String("INT64"),
				Labels: logging.MetricMetricDescriptorLabelArray{
					&logging.MetricMetricDescriptorLabelArgs{
						Key:         pulumi.String("mass"),
						ValueType:   pulumi.String("STRING"),
						Description: pulumi.String("amount of matter"),
					},
				},
			},
			LabelExtractors: pulumi.StringMap{
				"mass": pulumi.String("EXTRACT(jsonPayload.request)"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Logging Metric Logging Bucket

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		loggingMetric, err := logging.NewProjectBucketConfig(ctx, "logging_metric", &logging.ProjectBucketConfigArgs{
			Location: pulumi.String("global"),
			Project:  pulumi.String("my-project-name"),
			BucketId: pulumi.String("_Default"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewMetric(ctx, "logging_metric", &logging.MetricArgs{
			Name:       pulumi.String("my-(custom)/metric"),
			Filter:     pulumi.String("resource.type=gae_app AND severity>=ERROR"),
			BucketName: loggingMetric.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Logging Metric Disabled

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewMetric(ctx, "logging_metric", &logging.MetricArgs{
			Name:   pulumi.String("my-(custom)/metric"),
			Filter: pulumi.String("resource.type=gae_app AND severity>=ERROR"),
			MetricDescriptor: &logging.MetricMetricDescriptorArgs{
				MetricKind: pulumi.String("DELTA"),
				ValueType:  pulumi.String("INT64"),
			},
			Disabled: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Metric can be imported using any of these accepted formats:

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

* `{{name}}`

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

```sh $ pulumi import gcp:logging/metric:Metric default {{project}} {{name}} ```

```sh $ pulumi import gcp:logging/metric:Metric default {{name}} ```

func GetMetric

func GetMetric(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *MetricState, opts ...pulumi.ResourceOption) (*Metric, error)

GetMetric gets an existing Metric 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 NewMetric

func NewMetric(ctx *pulumi.Context,
	name string, args *MetricArgs, opts ...pulumi.ResourceOption) (*Metric, error)

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

func (*Metric) ElementType

func (*Metric) ElementType() reflect.Type

func (*Metric) ToMetricOutput

func (i *Metric) ToMetricOutput() MetricOutput

func (*Metric) ToMetricOutputWithContext

func (i *Metric) ToMetricOutputWithContext(ctx context.Context) MetricOutput

type MetricArgs

type MetricArgs struct {
	// The resource name of the Log Bucket that owns the Log Metric. Only Log Buckets in projects
	// are supported. The bucket has to be in the same project as the metric.
	BucketName pulumi.StringPtrInput
	// The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it
	// describes the bucket boundaries used to create a histogram of the extracted values.
	// Structure is documented below.
	BucketOptions MetricBucketOptionsPtrInput
	// A description of this metric, which is used in documentation. The maximum length of the
	// description is 8000 characters.
	Description pulumi.StringPtrInput
	// If set to True, then this metric is disabled and it does not generate any points.
	Disabled pulumi.BoolPtrInput
	// An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which
	// is used to match log entries.
	//
	// ***
	Filter pulumi.StringInput
	// A map from a label key string to an extractor expression which is used to extract data from a log
	// entry field and assign as the label value. Each label key specified in the LabelDescriptor must
	// have an associated extractor expression in this map. The syntax of the extractor expression is
	// the same as for the valueExtractor field.
	LabelExtractors pulumi.StringMapInput
	// The optional metric descriptor associated with the logs-based metric.
	// If unspecified, it uses a default metric descriptor with a DELTA metric kind,
	// INT64 value type, with no labels and a unit of "1". Such a metric counts the
	// number of log entries matching the filter expression.
	// Structure is documented below.
	MetricDescriptor MetricMetricDescriptorPtrInput
	// The client-assigned metric identifier. Examples - "errorCount", "nginx/requests".
	// Metric identifiers are limited to 100 characters and can include only the following
	// characters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash
	// character (/) denotes a hierarchy of name pieces, and it cannot be the first character
	// of the name.
	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
	// A valueExtractor is required when using a distribution logs-based metric to extract the values to
	// record from a log entry. Two functions are supported for value extraction - EXTRACT(field) or
	// REGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which
	// the value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax
	// (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified
	// log entry field. The value of the field is converted to a string before applying the regex. It is an
	// error to specify a regex that does not include exactly one capture group.
	ValueExtractor pulumi.StringPtrInput
}

The set of arguments for constructing a Metric resource.

func (MetricArgs) ElementType

func (MetricArgs) ElementType() reflect.Type

type MetricArray

type MetricArray []MetricInput

func (MetricArray) ElementType

func (MetricArray) ElementType() reflect.Type

func (MetricArray) ToMetricArrayOutput

func (i MetricArray) ToMetricArrayOutput() MetricArrayOutput

func (MetricArray) ToMetricArrayOutputWithContext

func (i MetricArray) ToMetricArrayOutputWithContext(ctx context.Context) MetricArrayOutput

type MetricArrayInput

type MetricArrayInput interface {
	pulumi.Input

	ToMetricArrayOutput() MetricArrayOutput
	ToMetricArrayOutputWithContext(context.Context) MetricArrayOutput
}

MetricArrayInput is an input type that accepts MetricArray and MetricArrayOutput values. You can construct a concrete instance of `MetricArrayInput` via:

MetricArray{ MetricArgs{...} }

type MetricArrayOutput

type MetricArrayOutput struct{ *pulumi.OutputState }

func (MetricArrayOutput) ElementType

func (MetricArrayOutput) ElementType() reflect.Type

func (MetricArrayOutput) Index

func (MetricArrayOutput) ToMetricArrayOutput

func (o MetricArrayOutput) ToMetricArrayOutput() MetricArrayOutput

func (MetricArrayOutput) ToMetricArrayOutputWithContext

func (o MetricArrayOutput) ToMetricArrayOutputWithContext(ctx context.Context) MetricArrayOutput

type MetricBucketOptions

type MetricBucketOptions struct {
	// Specifies a set of buckets with arbitrary widths.
	// Structure is documented below.
	ExplicitBuckets *MetricBucketOptionsExplicitBuckets `pulumi:"explicitBuckets"`
	// Specifies an exponential sequence of buckets that have a width that is proportional to the value of
	// the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.
	// Structure is documented below.
	ExponentialBuckets *MetricBucketOptionsExponentialBuckets `pulumi:"exponentialBuckets"`
	// Specifies a linear sequence of buckets that all have the same width (except overflow and underflow).
	// Each bucket represents a constant absolute uncertainty on the specific value in the bucket.
	// Structure is documented below.
	LinearBuckets *MetricBucketOptionsLinearBuckets `pulumi:"linearBuckets"`
}

type MetricBucketOptionsArgs

type MetricBucketOptionsArgs struct {
	// Specifies a set of buckets with arbitrary widths.
	// Structure is documented below.
	ExplicitBuckets MetricBucketOptionsExplicitBucketsPtrInput `pulumi:"explicitBuckets"`
	// Specifies an exponential sequence of buckets that have a width that is proportional to the value of
	// the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.
	// Structure is documented below.
	ExponentialBuckets MetricBucketOptionsExponentialBucketsPtrInput `pulumi:"exponentialBuckets"`
	// Specifies a linear sequence of buckets that all have the same width (except overflow and underflow).
	// Each bucket represents a constant absolute uncertainty on the specific value in the bucket.
	// Structure is documented below.
	LinearBuckets MetricBucketOptionsLinearBucketsPtrInput `pulumi:"linearBuckets"`
}

func (MetricBucketOptionsArgs) ElementType

func (MetricBucketOptionsArgs) ElementType() reflect.Type

func (MetricBucketOptionsArgs) ToMetricBucketOptionsOutput

func (i MetricBucketOptionsArgs) ToMetricBucketOptionsOutput() MetricBucketOptionsOutput

func (MetricBucketOptionsArgs) ToMetricBucketOptionsOutputWithContext

func (i MetricBucketOptionsArgs) ToMetricBucketOptionsOutputWithContext(ctx context.Context) MetricBucketOptionsOutput

func (MetricBucketOptionsArgs) ToMetricBucketOptionsPtrOutput

func (i MetricBucketOptionsArgs) ToMetricBucketOptionsPtrOutput() MetricBucketOptionsPtrOutput

func (MetricBucketOptionsArgs) ToMetricBucketOptionsPtrOutputWithContext

func (i MetricBucketOptionsArgs) ToMetricBucketOptionsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsPtrOutput

type MetricBucketOptionsExplicitBuckets

type MetricBucketOptionsExplicitBuckets struct {
	// The values must be monotonically increasing.
	Bounds []float64 `pulumi:"bounds"`
}

type MetricBucketOptionsExplicitBucketsArgs

type MetricBucketOptionsExplicitBucketsArgs struct {
	// The values must be monotonically increasing.
	Bounds pulumi.Float64ArrayInput `pulumi:"bounds"`
}

func (MetricBucketOptionsExplicitBucketsArgs) ElementType

func (MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsOutput

func (i MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsOutput() MetricBucketOptionsExplicitBucketsOutput

func (MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsOutputWithContext

func (i MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsExplicitBucketsOutput

func (MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsPtrOutput

func (i MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsPtrOutput() MetricBucketOptionsExplicitBucketsPtrOutput

func (MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext

func (i MetricBucketOptionsExplicitBucketsArgs) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExplicitBucketsPtrOutput

type MetricBucketOptionsExplicitBucketsInput

type MetricBucketOptionsExplicitBucketsInput interface {
	pulumi.Input

	ToMetricBucketOptionsExplicitBucketsOutput() MetricBucketOptionsExplicitBucketsOutput
	ToMetricBucketOptionsExplicitBucketsOutputWithContext(context.Context) MetricBucketOptionsExplicitBucketsOutput
}

MetricBucketOptionsExplicitBucketsInput is an input type that accepts MetricBucketOptionsExplicitBucketsArgs and MetricBucketOptionsExplicitBucketsOutput values. You can construct a concrete instance of `MetricBucketOptionsExplicitBucketsInput` via:

MetricBucketOptionsExplicitBucketsArgs{...}

type MetricBucketOptionsExplicitBucketsOutput

type MetricBucketOptionsExplicitBucketsOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsExplicitBucketsOutput) Bounds

The values must be monotonically increasing.

func (MetricBucketOptionsExplicitBucketsOutput) ElementType

func (MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsOutput

func (o MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsOutput() MetricBucketOptionsExplicitBucketsOutput

func (MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsOutputWithContext

func (o MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsExplicitBucketsOutput

func (MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsPtrOutput

func (o MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsPtrOutput() MetricBucketOptionsExplicitBucketsPtrOutput

func (MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext

func (o MetricBucketOptionsExplicitBucketsOutput) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExplicitBucketsPtrOutput

type MetricBucketOptionsExplicitBucketsPtrInput

type MetricBucketOptionsExplicitBucketsPtrInput interface {
	pulumi.Input

	ToMetricBucketOptionsExplicitBucketsPtrOutput() MetricBucketOptionsExplicitBucketsPtrOutput
	ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext(context.Context) MetricBucketOptionsExplicitBucketsPtrOutput
}

MetricBucketOptionsExplicitBucketsPtrInput is an input type that accepts MetricBucketOptionsExplicitBucketsArgs, MetricBucketOptionsExplicitBucketsPtr and MetricBucketOptionsExplicitBucketsPtrOutput values. You can construct a concrete instance of `MetricBucketOptionsExplicitBucketsPtrInput` via:

        MetricBucketOptionsExplicitBucketsArgs{...}

or:

        nil

type MetricBucketOptionsExplicitBucketsPtrOutput

type MetricBucketOptionsExplicitBucketsPtrOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsExplicitBucketsPtrOutput) Bounds

The values must be monotonically increasing.

func (MetricBucketOptionsExplicitBucketsPtrOutput) Elem

func (MetricBucketOptionsExplicitBucketsPtrOutput) ElementType

func (MetricBucketOptionsExplicitBucketsPtrOutput) ToMetricBucketOptionsExplicitBucketsPtrOutput

func (o MetricBucketOptionsExplicitBucketsPtrOutput) ToMetricBucketOptionsExplicitBucketsPtrOutput() MetricBucketOptionsExplicitBucketsPtrOutput

func (MetricBucketOptionsExplicitBucketsPtrOutput) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext

func (o MetricBucketOptionsExplicitBucketsPtrOutput) ToMetricBucketOptionsExplicitBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExplicitBucketsPtrOutput

type MetricBucketOptionsExponentialBuckets

type MetricBucketOptionsExponentialBuckets struct {
	// Must be greater than 1.
	GrowthFactor float64 `pulumi:"growthFactor"`
	// Must be greater than 0.
	NumFiniteBuckets int `pulumi:"numFiniteBuckets"`
	// Must be greater than 0.
	Scale float64 `pulumi:"scale"`
}

type MetricBucketOptionsExponentialBucketsArgs

type MetricBucketOptionsExponentialBucketsArgs struct {
	// Must be greater than 1.
	GrowthFactor pulumi.Float64Input `pulumi:"growthFactor"`
	// Must be greater than 0.
	NumFiniteBuckets pulumi.IntInput `pulumi:"numFiniteBuckets"`
	// Must be greater than 0.
	Scale pulumi.Float64Input `pulumi:"scale"`
}

func (MetricBucketOptionsExponentialBucketsArgs) ElementType

func (MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsOutput

func (i MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsOutput() MetricBucketOptionsExponentialBucketsOutput

func (MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsOutputWithContext

func (i MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsExponentialBucketsOutput

func (MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsPtrOutput

func (i MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsPtrOutput() MetricBucketOptionsExponentialBucketsPtrOutput

func (MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext

func (i MetricBucketOptionsExponentialBucketsArgs) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExponentialBucketsPtrOutput

type MetricBucketOptionsExponentialBucketsInput

type MetricBucketOptionsExponentialBucketsInput interface {
	pulumi.Input

	ToMetricBucketOptionsExponentialBucketsOutput() MetricBucketOptionsExponentialBucketsOutput
	ToMetricBucketOptionsExponentialBucketsOutputWithContext(context.Context) MetricBucketOptionsExponentialBucketsOutput
}

MetricBucketOptionsExponentialBucketsInput is an input type that accepts MetricBucketOptionsExponentialBucketsArgs and MetricBucketOptionsExponentialBucketsOutput values. You can construct a concrete instance of `MetricBucketOptionsExponentialBucketsInput` via:

MetricBucketOptionsExponentialBucketsArgs{...}

type MetricBucketOptionsExponentialBucketsOutput

type MetricBucketOptionsExponentialBucketsOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsExponentialBucketsOutput) ElementType

func (MetricBucketOptionsExponentialBucketsOutput) GrowthFactor

Must be greater than 1.

func (MetricBucketOptionsExponentialBucketsOutput) NumFiniteBuckets

Must be greater than 0.

func (MetricBucketOptionsExponentialBucketsOutput) Scale

Must be greater than 0.

func (MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsOutput

func (o MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsOutput() MetricBucketOptionsExponentialBucketsOutput

func (MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsOutputWithContext

func (o MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsExponentialBucketsOutput

func (MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsPtrOutput

func (o MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsPtrOutput() MetricBucketOptionsExponentialBucketsPtrOutput

func (MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext

func (o MetricBucketOptionsExponentialBucketsOutput) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExponentialBucketsPtrOutput

type MetricBucketOptionsExponentialBucketsPtrInput

type MetricBucketOptionsExponentialBucketsPtrInput interface {
	pulumi.Input

	ToMetricBucketOptionsExponentialBucketsPtrOutput() MetricBucketOptionsExponentialBucketsPtrOutput
	ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext(context.Context) MetricBucketOptionsExponentialBucketsPtrOutput
}

MetricBucketOptionsExponentialBucketsPtrInput is an input type that accepts MetricBucketOptionsExponentialBucketsArgs, MetricBucketOptionsExponentialBucketsPtr and MetricBucketOptionsExponentialBucketsPtrOutput values. You can construct a concrete instance of `MetricBucketOptionsExponentialBucketsPtrInput` via:

        MetricBucketOptionsExponentialBucketsArgs{...}

or:

        nil

type MetricBucketOptionsExponentialBucketsPtrOutput

type MetricBucketOptionsExponentialBucketsPtrOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsExponentialBucketsPtrOutput) Elem

func (MetricBucketOptionsExponentialBucketsPtrOutput) ElementType

func (MetricBucketOptionsExponentialBucketsPtrOutput) GrowthFactor

Must be greater than 1.

func (MetricBucketOptionsExponentialBucketsPtrOutput) NumFiniteBuckets

Must be greater than 0.

func (MetricBucketOptionsExponentialBucketsPtrOutput) Scale

Must be greater than 0.

func (MetricBucketOptionsExponentialBucketsPtrOutput) ToMetricBucketOptionsExponentialBucketsPtrOutput

func (o MetricBucketOptionsExponentialBucketsPtrOutput) ToMetricBucketOptionsExponentialBucketsPtrOutput() MetricBucketOptionsExponentialBucketsPtrOutput

func (MetricBucketOptionsExponentialBucketsPtrOutput) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext

func (o MetricBucketOptionsExponentialBucketsPtrOutput) ToMetricBucketOptionsExponentialBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsExponentialBucketsPtrOutput

type MetricBucketOptionsInput

type MetricBucketOptionsInput interface {
	pulumi.Input

	ToMetricBucketOptionsOutput() MetricBucketOptionsOutput
	ToMetricBucketOptionsOutputWithContext(context.Context) MetricBucketOptionsOutput
}

MetricBucketOptionsInput is an input type that accepts MetricBucketOptionsArgs and MetricBucketOptionsOutput values. You can construct a concrete instance of `MetricBucketOptionsInput` via:

MetricBucketOptionsArgs{...}

type MetricBucketOptionsLinearBuckets

type MetricBucketOptionsLinearBuckets struct {
	// Must be greater than 0.
	NumFiniteBuckets int `pulumi:"numFiniteBuckets"`
	// Lower bound of the first bucket.
	Offset float64 `pulumi:"offset"`
	// Must be greater than 0.
	Width float64 `pulumi:"width"`
}

type MetricBucketOptionsLinearBucketsArgs

type MetricBucketOptionsLinearBucketsArgs struct {
	// Must be greater than 0.
	NumFiniteBuckets pulumi.IntInput `pulumi:"numFiniteBuckets"`
	// Lower bound of the first bucket.
	Offset pulumi.Float64Input `pulumi:"offset"`
	// Must be greater than 0.
	Width pulumi.Float64Input `pulumi:"width"`
}

func (MetricBucketOptionsLinearBucketsArgs) ElementType

func (MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsOutput

func (i MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsOutput() MetricBucketOptionsLinearBucketsOutput

func (MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsOutputWithContext

func (i MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsLinearBucketsOutput

func (MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsPtrOutput

func (i MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsPtrOutput() MetricBucketOptionsLinearBucketsPtrOutput

func (MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext

func (i MetricBucketOptionsLinearBucketsArgs) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsLinearBucketsPtrOutput

type MetricBucketOptionsLinearBucketsInput

type MetricBucketOptionsLinearBucketsInput interface {
	pulumi.Input

	ToMetricBucketOptionsLinearBucketsOutput() MetricBucketOptionsLinearBucketsOutput
	ToMetricBucketOptionsLinearBucketsOutputWithContext(context.Context) MetricBucketOptionsLinearBucketsOutput
}

MetricBucketOptionsLinearBucketsInput is an input type that accepts MetricBucketOptionsLinearBucketsArgs and MetricBucketOptionsLinearBucketsOutput values. You can construct a concrete instance of `MetricBucketOptionsLinearBucketsInput` via:

MetricBucketOptionsLinearBucketsArgs{...}

type MetricBucketOptionsLinearBucketsOutput

type MetricBucketOptionsLinearBucketsOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsLinearBucketsOutput) ElementType

func (MetricBucketOptionsLinearBucketsOutput) NumFiniteBuckets

Must be greater than 0.

func (MetricBucketOptionsLinearBucketsOutput) Offset

Lower bound of the first bucket.

func (MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsOutput

func (o MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsOutput() MetricBucketOptionsLinearBucketsOutput

func (MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsOutputWithContext

func (o MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsOutputWithContext(ctx context.Context) MetricBucketOptionsLinearBucketsOutput

func (MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsPtrOutput

func (o MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsPtrOutput() MetricBucketOptionsLinearBucketsPtrOutput

func (MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext

func (o MetricBucketOptionsLinearBucketsOutput) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsLinearBucketsPtrOutput

func (MetricBucketOptionsLinearBucketsOutput) Width

Must be greater than 0.

type MetricBucketOptionsLinearBucketsPtrInput

type MetricBucketOptionsLinearBucketsPtrInput interface {
	pulumi.Input

	ToMetricBucketOptionsLinearBucketsPtrOutput() MetricBucketOptionsLinearBucketsPtrOutput
	ToMetricBucketOptionsLinearBucketsPtrOutputWithContext(context.Context) MetricBucketOptionsLinearBucketsPtrOutput
}

MetricBucketOptionsLinearBucketsPtrInput is an input type that accepts MetricBucketOptionsLinearBucketsArgs, MetricBucketOptionsLinearBucketsPtr and MetricBucketOptionsLinearBucketsPtrOutput values. You can construct a concrete instance of `MetricBucketOptionsLinearBucketsPtrInput` via:

        MetricBucketOptionsLinearBucketsArgs{...}

or:

        nil

type MetricBucketOptionsLinearBucketsPtrOutput

type MetricBucketOptionsLinearBucketsPtrOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsLinearBucketsPtrOutput) Elem

func (MetricBucketOptionsLinearBucketsPtrOutput) ElementType

func (MetricBucketOptionsLinearBucketsPtrOutput) NumFiniteBuckets

Must be greater than 0.

func (MetricBucketOptionsLinearBucketsPtrOutput) Offset

Lower bound of the first bucket.

func (MetricBucketOptionsLinearBucketsPtrOutput) ToMetricBucketOptionsLinearBucketsPtrOutput

func (o MetricBucketOptionsLinearBucketsPtrOutput) ToMetricBucketOptionsLinearBucketsPtrOutput() MetricBucketOptionsLinearBucketsPtrOutput

func (MetricBucketOptionsLinearBucketsPtrOutput) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext

func (o MetricBucketOptionsLinearBucketsPtrOutput) ToMetricBucketOptionsLinearBucketsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsLinearBucketsPtrOutput

func (MetricBucketOptionsLinearBucketsPtrOutput) Width

Must be greater than 0.

type MetricBucketOptionsOutput

type MetricBucketOptionsOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsOutput) ElementType

func (MetricBucketOptionsOutput) ElementType() reflect.Type

func (MetricBucketOptionsOutput) ExplicitBuckets

Specifies a set of buckets with arbitrary widths. Structure is documented below.

func (MetricBucketOptionsOutput) ExponentialBuckets

Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket. Structure is documented below.

func (MetricBucketOptionsOutput) LinearBuckets

Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket. Structure is documented below.

func (MetricBucketOptionsOutput) ToMetricBucketOptionsOutput

func (o MetricBucketOptionsOutput) ToMetricBucketOptionsOutput() MetricBucketOptionsOutput

func (MetricBucketOptionsOutput) ToMetricBucketOptionsOutputWithContext

func (o MetricBucketOptionsOutput) ToMetricBucketOptionsOutputWithContext(ctx context.Context) MetricBucketOptionsOutput

func (MetricBucketOptionsOutput) ToMetricBucketOptionsPtrOutput

func (o MetricBucketOptionsOutput) ToMetricBucketOptionsPtrOutput() MetricBucketOptionsPtrOutput

func (MetricBucketOptionsOutput) ToMetricBucketOptionsPtrOutputWithContext

func (o MetricBucketOptionsOutput) ToMetricBucketOptionsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsPtrOutput

type MetricBucketOptionsPtrInput

type MetricBucketOptionsPtrInput interface {
	pulumi.Input

	ToMetricBucketOptionsPtrOutput() MetricBucketOptionsPtrOutput
	ToMetricBucketOptionsPtrOutputWithContext(context.Context) MetricBucketOptionsPtrOutput
}

MetricBucketOptionsPtrInput is an input type that accepts MetricBucketOptionsArgs, MetricBucketOptionsPtr and MetricBucketOptionsPtrOutput values. You can construct a concrete instance of `MetricBucketOptionsPtrInput` via:

        MetricBucketOptionsArgs{...}

or:

        nil

type MetricBucketOptionsPtrOutput

type MetricBucketOptionsPtrOutput struct{ *pulumi.OutputState }

func (MetricBucketOptionsPtrOutput) Elem

func (MetricBucketOptionsPtrOutput) ElementType

func (MetricBucketOptionsPtrOutput) ExplicitBuckets

Specifies a set of buckets with arbitrary widths. Structure is documented below.

func (MetricBucketOptionsPtrOutput) ExponentialBuckets

Specifies an exponential sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket. Structure is documented below.

func (MetricBucketOptionsPtrOutput) LinearBuckets

Specifies a linear sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket. Structure is documented below.

func (MetricBucketOptionsPtrOutput) ToMetricBucketOptionsPtrOutput

func (o MetricBucketOptionsPtrOutput) ToMetricBucketOptionsPtrOutput() MetricBucketOptionsPtrOutput

func (MetricBucketOptionsPtrOutput) ToMetricBucketOptionsPtrOutputWithContext

func (o MetricBucketOptionsPtrOutput) ToMetricBucketOptionsPtrOutputWithContext(ctx context.Context) MetricBucketOptionsPtrOutput

type MetricInput

type MetricInput interface {
	pulumi.Input

	ToMetricOutput() MetricOutput
	ToMetricOutputWithContext(ctx context.Context) MetricOutput
}

type MetricMap

type MetricMap map[string]MetricInput

func (MetricMap) ElementType

func (MetricMap) ElementType() reflect.Type

func (MetricMap) ToMetricMapOutput

func (i MetricMap) ToMetricMapOutput() MetricMapOutput

func (MetricMap) ToMetricMapOutputWithContext

func (i MetricMap) ToMetricMapOutputWithContext(ctx context.Context) MetricMapOutput

type MetricMapInput

type MetricMapInput interface {
	pulumi.Input

	ToMetricMapOutput() MetricMapOutput
	ToMetricMapOutputWithContext(context.Context) MetricMapOutput
}

MetricMapInput is an input type that accepts MetricMap and MetricMapOutput values. You can construct a concrete instance of `MetricMapInput` via:

MetricMap{ "key": MetricArgs{...} }

type MetricMapOutput

type MetricMapOutput struct{ *pulumi.OutputState }

func (MetricMapOutput) ElementType

func (MetricMapOutput) ElementType() reflect.Type

func (MetricMapOutput) MapIndex

func (MetricMapOutput) ToMetricMapOutput

func (o MetricMapOutput) ToMetricMapOutput() MetricMapOutput

func (MetricMapOutput) ToMetricMapOutputWithContext

func (o MetricMapOutput) ToMetricMapOutputWithContext(ctx context.Context) MetricMapOutput

type MetricMetricDescriptor

type MetricMetricDescriptor struct {
	// A concise name for the metric, which can be displayed in user interfaces. Use sentence case
	// without an ending period, for example "Request count". This field is optional but it is
	// recommended to be set for any metrics associated with user-visible concepts, such as Quota.
	DisplayName *string `pulumi:"displayName"`
	// The set of labels that can be used to describe a specific instance of this metric type. For
	// example, the appengine.googleapis.com/http/server/response_latencies metric type has a label
	// for the HTTP response code, response_code, so you can look at latencies for successful responses
	// or just for responses that failed.
	// Structure is documented below.
	Labels []MetricMetricDescriptorLabel `pulumi:"labels"`
	// Whether the metric records instantaneous values, changes to a value, etc.
	// Some combinations of metricKind and valueType might not be supported.
	// For counter metrics, set this to DELTA.
	// Possible values are: `DELTA`, `GAUGE`, `CUMULATIVE`.
	MetricKind string `pulumi:"metricKind"`
	// The unit in which the metric value is reported. It is only applicable if the valueType is
	// `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of
	// [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard
	Unit *string `pulumi:"unit"`
	// Whether the measurement is an integer, a floating-point number, etc.
	// Some combinations of metricKind and valueType might not be supported.
	// For counter metrics, set this to INT64.
	// Possible values are: `BOOL`, `INT64`, `DOUBLE`, `STRING`, `DISTRIBUTION`, `MONEY`.
	ValueType string `pulumi:"valueType"`
}

type MetricMetricDescriptorArgs

type MetricMetricDescriptorArgs struct {
	// A concise name for the metric, which can be displayed in user interfaces. Use sentence case
	// without an ending period, for example "Request count". This field is optional but it is
	// recommended to be set for any metrics associated with user-visible concepts, such as Quota.
	DisplayName pulumi.StringPtrInput `pulumi:"displayName"`
	// The set of labels that can be used to describe a specific instance of this metric type. For
	// example, the appengine.googleapis.com/http/server/response_latencies metric type has a label
	// for the HTTP response code, response_code, so you can look at latencies for successful responses
	// or just for responses that failed.
	// Structure is documented below.
	Labels MetricMetricDescriptorLabelArrayInput `pulumi:"labels"`
	// Whether the metric records instantaneous values, changes to a value, etc.
	// Some combinations of metricKind and valueType might not be supported.
	// For counter metrics, set this to DELTA.
	// Possible values are: `DELTA`, `GAUGE`, `CUMULATIVE`.
	MetricKind pulumi.StringInput `pulumi:"metricKind"`
	// The unit in which the metric value is reported. It is only applicable if the valueType is
	// `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of
	// [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard
	Unit pulumi.StringPtrInput `pulumi:"unit"`
	// Whether the measurement is an integer, a floating-point number, etc.
	// Some combinations of metricKind and valueType might not be supported.
	// For counter metrics, set this to INT64.
	// Possible values are: `BOOL`, `INT64`, `DOUBLE`, `STRING`, `DISTRIBUTION`, `MONEY`.
	ValueType pulumi.StringInput `pulumi:"valueType"`
}

func (MetricMetricDescriptorArgs) ElementType

func (MetricMetricDescriptorArgs) ElementType() reflect.Type

func (MetricMetricDescriptorArgs) ToMetricMetricDescriptorOutput

func (i MetricMetricDescriptorArgs) ToMetricMetricDescriptorOutput() MetricMetricDescriptorOutput

func (MetricMetricDescriptorArgs) ToMetricMetricDescriptorOutputWithContext

func (i MetricMetricDescriptorArgs) ToMetricMetricDescriptorOutputWithContext(ctx context.Context) MetricMetricDescriptorOutput

func (MetricMetricDescriptorArgs) ToMetricMetricDescriptorPtrOutput

func (i MetricMetricDescriptorArgs) ToMetricMetricDescriptorPtrOutput() MetricMetricDescriptorPtrOutput

func (MetricMetricDescriptorArgs) ToMetricMetricDescriptorPtrOutputWithContext

func (i MetricMetricDescriptorArgs) ToMetricMetricDescriptorPtrOutputWithContext(ctx context.Context) MetricMetricDescriptorPtrOutput

type MetricMetricDescriptorInput

type MetricMetricDescriptorInput interface {
	pulumi.Input

	ToMetricMetricDescriptorOutput() MetricMetricDescriptorOutput
	ToMetricMetricDescriptorOutputWithContext(context.Context) MetricMetricDescriptorOutput
}

MetricMetricDescriptorInput is an input type that accepts MetricMetricDescriptorArgs and MetricMetricDescriptorOutput values. You can construct a concrete instance of `MetricMetricDescriptorInput` via:

MetricMetricDescriptorArgs{...}

type MetricMetricDescriptorLabel

type MetricMetricDescriptorLabel struct {
	// A human-readable description for the label.
	Description *string `pulumi:"description"`
	// The label key.
	Key string `pulumi:"key"`
	// The type of data that can be assigned to the label.
	// Default value is `STRING`.
	// Possible values are: `BOOL`, `INT64`, `STRING`.
	ValueType *string `pulumi:"valueType"`
}

type MetricMetricDescriptorLabelArgs

type MetricMetricDescriptorLabelArgs struct {
	// A human-readable description for the label.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// The label key.
	Key pulumi.StringInput `pulumi:"key"`
	// The type of data that can be assigned to the label.
	// Default value is `STRING`.
	// Possible values are: `BOOL`, `INT64`, `STRING`.
	ValueType pulumi.StringPtrInput `pulumi:"valueType"`
}

func (MetricMetricDescriptorLabelArgs) ElementType

func (MetricMetricDescriptorLabelArgs) ToMetricMetricDescriptorLabelOutput

func (i MetricMetricDescriptorLabelArgs) ToMetricMetricDescriptorLabelOutput() MetricMetricDescriptorLabelOutput

func (MetricMetricDescriptorLabelArgs) ToMetricMetricDescriptorLabelOutputWithContext

func (i MetricMetricDescriptorLabelArgs) ToMetricMetricDescriptorLabelOutputWithContext(ctx context.Context) MetricMetricDescriptorLabelOutput

type MetricMetricDescriptorLabelArray

type MetricMetricDescriptorLabelArray []MetricMetricDescriptorLabelInput

func (MetricMetricDescriptorLabelArray) ElementType

func (MetricMetricDescriptorLabelArray) ToMetricMetricDescriptorLabelArrayOutput

func (i MetricMetricDescriptorLabelArray) ToMetricMetricDescriptorLabelArrayOutput() MetricMetricDescriptorLabelArrayOutput

func (MetricMetricDescriptorLabelArray) ToMetricMetricDescriptorLabelArrayOutputWithContext

func (i MetricMetricDescriptorLabelArray) ToMetricMetricDescriptorLabelArrayOutputWithContext(ctx context.Context) MetricMetricDescriptorLabelArrayOutput

type MetricMetricDescriptorLabelArrayInput

type MetricMetricDescriptorLabelArrayInput interface {
	pulumi.Input

	ToMetricMetricDescriptorLabelArrayOutput() MetricMetricDescriptorLabelArrayOutput
	ToMetricMetricDescriptorLabelArrayOutputWithContext(context.Context) MetricMetricDescriptorLabelArrayOutput
}

MetricMetricDescriptorLabelArrayInput is an input type that accepts MetricMetricDescriptorLabelArray and MetricMetricDescriptorLabelArrayOutput values. You can construct a concrete instance of `MetricMetricDescriptorLabelArrayInput` via:

MetricMetricDescriptorLabelArray{ MetricMetricDescriptorLabelArgs{...} }

type MetricMetricDescriptorLabelArrayOutput

type MetricMetricDescriptorLabelArrayOutput struct{ *pulumi.OutputState }

func (MetricMetricDescriptorLabelArrayOutput) ElementType

func (MetricMetricDescriptorLabelArrayOutput) Index

func (MetricMetricDescriptorLabelArrayOutput) ToMetricMetricDescriptorLabelArrayOutput

func (o MetricMetricDescriptorLabelArrayOutput) ToMetricMetricDescriptorLabelArrayOutput() MetricMetricDescriptorLabelArrayOutput

func (MetricMetricDescriptorLabelArrayOutput) ToMetricMetricDescriptorLabelArrayOutputWithContext

func (o MetricMetricDescriptorLabelArrayOutput) ToMetricMetricDescriptorLabelArrayOutputWithContext(ctx context.Context) MetricMetricDescriptorLabelArrayOutput

type MetricMetricDescriptorLabelInput

type MetricMetricDescriptorLabelInput interface {
	pulumi.Input

	ToMetricMetricDescriptorLabelOutput() MetricMetricDescriptorLabelOutput
	ToMetricMetricDescriptorLabelOutputWithContext(context.Context) MetricMetricDescriptorLabelOutput
}

MetricMetricDescriptorLabelInput is an input type that accepts MetricMetricDescriptorLabelArgs and MetricMetricDescriptorLabelOutput values. You can construct a concrete instance of `MetricMetricDescriptorLabelInput` via:

MetricMetricDescriptorLabelArgs{...}

type MetricMetricDescriptorLabelOutput

type MetricMetricDescriptorLabelOutput struct{ *pulumi.OutputState }

func (MetricMetricDescriptorLabelOutput) Description

A human-readable description for the label.

func (MetricMetricDescriptorLabelOutput) ElementType

func (MetricMetricDescriptorLabelOutput) Key

The label key.

func (MetricMetricDescriptorLabelOutput) ToMetricMetricDescriptorLabelOutput

func (o MetricMetricDescriptorLabelOutput) ToMetricMetricDescriptorLabelOutput() MetricMetricDescriptorLabelOutput

func (MetricMetricDescriptorLabelOutput) ToMetricMetricDescriptorLabelOutputWithContext

func (o MetricMetricDescriptorLabelOutput) ToMetricMetricDescriptorLabelOutputWithContext(ctx context.Context) MetricMetricDescriptorLabelOutput

func (MetricMetricDescriptorLabelOutput) ValueType

The type of data that can be assigned to the label. Default value is `STRING`. Possible values are: `BOOL`, `INT64`, `STRING`.

type MetricMetricDescriptorOutput

type MetricMetricDescriptorOutput struct{ *pulumi.OutputState }

func (MetricMetricDescriptorOutput) DisplayName

A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.

func (MetricMetricDescriptorOutput) ElementType

func (MetricMetricDescriptorOutput) Labels

The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed. Structure is documented below.

func (MetricMetricDescriptorOutput) MetricKind

Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to DELTA. Possible values are: `DELTA`, `GAUGE`, `CUMULATIVE`.

func (MetricMetricDescriptorOutput) ToMetricMetricDescriptorOutput

func (o MetricMetricDescriptorOutput) ToMetricMetricDescriptorOutput() MetricMetricDescriptorOutput

func (MetricMetricDescriptorOutput) ToMetricMetricDescriptorOutputWithContext

func (o MetricMetricDescriptorOutput) ToMetricMetricDescriptorOutputWithContext(ctx context.Context) MetricMetricDescriptorOutput

func (MetricMetricDescriptorOutput) ToMetricMetricDescriptorPtrOutput

func (o MetricMetricDescriptorOutput) ToMetricMetricDescriptorPtrOutput() MetricMetricDescriptorPtrOutput

func (MetricMetricDescriptorOutput) ToMetricMetricDescriptorPtrOutputWithContext

func (o MetricMetricDescriptorOutput) ToMetricMetricDescriptorPtrOutputWithContext(ctx context.Context) MetricMetricDescriptorPtrOutput

func (MetricMetricDescriptorOutput) Unit

The unit in which the metric value is reported. It is only applicable if the valueType is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard

func (MetricMetricDescriptorOutput) ValueType

Whether the measurement is an integer, a floating-point number, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to INT64. Possible values are: `BOOL`, `INT64`, `DOUBLE`, `STRING`, `DISTRIBUTION`, `MONEY`.

type MetricMetricDescriptorPtrInput

type MetricMetricDescriptorPtrInput interface {
	pulumi.Input

	ToMetricMetricDescriptorPtrOutput() MetricMetricDescriptorPtrOutput
	ToMetricMetricDescriptorPtrOutputWithContext(context.Context) MetricMetricDescriptorPtrOutput
}

MetricMetricDescriptorPtrInput is an input type that accepts MetricMetricDescriptorArgs, MetricMetricDescriptorPtr and MetricMetricDescriptorPtrOutput values. You can construct a concrete instance of `MetricMetricDescriptorPtrInput` via:

        MetricMetricDescriptorArgs{...}

or:

        nil

type MetricMetricDescriptorPtrOutput

type MetricMetricDescriptorPtrOutput struct{ *pulumi.OutputState }

func (MetricMetricDescriptorPtrOutput) DisplayName

A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.

func (MetricMetricDescriptorPtrOutput) Elem

func (MetricMetricDescriptorPtrOutput) ElementType

func (MetricMetricDescriptorPtrOutput) Labels

The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed. Structure is documented below.

func (MetricMetricDescriptorPtrOutput) MetricKind

Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to DELTA. Possible values are: `DELTA`, `GAUGE`, `CUMULATIVE`.

func (MetricMetricDescriptorPtrOutput) ToMetricMetricDescriptorPtrOutput

func (o MetricMetricDescriptorPtrOutput) ToMetricMetricDescriptorPtrOutput() MetricMetricDescriptorPtrOutput

func (MetricMetricDescriptorPtrOutput) ToMetricMetricDescriptorPtrOutputWithContext

func (o MetricMetricDescriptorPtrOutput) ToMetricMetricDescriptorPtrOutputWithContext(ctx context.Context) MetricMetricDescriptorPtrOutput

func (MetricMetricDescriptorPtrOutput) Unit

The unit in which the metric value is reported. It is only applicable if the valueType is `INT64`, `DOUBLE`, or `DISTRIBUTION`. The supported units are a subset of [The Unified Code for Units of Measure](http://unitsofmeasure.org/ucum.html) standard

func (MetricMetricDescriptorPtrOutput) ValueType

Whether the measurement is an integer, a floating-point number, etc. Some combinations of metricKind and valueType might not be supported. For counter metrics, set this to INT64. Possible values are: `BOOL`, `INT64`, `DOUBLE`, `STRING`, `DISTRIBUTION`, `MONEY`.

type MetricOutput

type MetricOutput struct{ *pulumi.OutputState }

func (MetricOutput) BucketName

func (o MetricOutput) BucketName() pulumi.StringPtrOutput

The resource name of the Log Bucket that owns the Log Metric. Only Log Buckets in projects are supported. The bucket has to be in the same project as the metric.

func (MetricOutput) BucketOptions

func (o MetricOutput) BucketOptions() MetricBucketOptionsPtrOutput

The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it describes the bucket boundaries used to create a histogram of the extracted values. Structure is documented below.

func (MetricOutput) Description

func (o MetricOutput) Description() pulumi.StringPtrOutput

A description of this metric, which is used in documentation. The maximum length of the description is 8000 characters.

func (MetricOutput) Disabled

func (o MetricOutput) Disabled() pulumi.BoolPtrOutput

If set to True, then this metric is disabled and it does not generate any points.

func (MetricOutput) ElementType

func (MetricOutput) ElementType() reflect.Type

func (MetricOutput) Filter

func (o MetricOutput) Filter() pulumi.StringOutput

An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which is used to match log entries.

***

func (MetricOutput) LabelExtractors

func (o MetricOutput) LabelExtractors() pulumi.StringMapOutput

A map from a label key string to an extractor expression which is used to extract data from a log entry field and assign as the label value. Each label key specified in the LabelDescriptor must have an associated extractor expression in this map. The syntax of the extractor expression is the same as for the valueExtractor field.

func (MetricOutput) MetricDescriptor

func (o MetricOutput) MetricDescriptor() MetricMetricDescriptorOutput

The optional metric descriptor associated with the logs-based metric. If unspecified, it uses a default metric descriptor with a DELTA metric kind, INT64 value type, with no labels and a unit of "1". Such a metric counts the number of log entries matching the filter expression. Structure is documented below.

func (MetricOutput) Name

func (o MetricOutput) Name() pulumi.StringOutput

The client-assigned metric identifier. Examples - "errorCount", "nginx/requests". Metric identifiers are limited to 100 characters and can include only the following characters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash character (/) denotes a hierarchy of name pieces, and it cannot be the first character of the name.

func (MetricOutput) Project

func (o MetricOutput) Project() pulumi.StringOutput

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

func (MetricOutput) ToMetricOutput

func (o MetricOutput) ToMetricOutput() MetricOutput

func (MetricOutput) ToMetricOutputWithContext

func (o MetricOutput) ToMetricOutputWithContext(ctx context.Context) MetricOutput

func (MetricOutput) ValueExtractor

func (o MetricOutput) ValueExtractor() pulumi.StringPtrOutput

A valueExtractor is required when using a distribution logs-based metric to extract the values to record from a log entry. Two functions are supported for value extraction - EXTRACT(field) or REGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which the value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified log entry field. The value of the field is converted to a string before applying the regex. It is an error to specify a regex that does not include exactly one capture group.

type MetricState

type MetricState struct {
	// The resource name of the Log Bucket that owns the Log Metric. Only Log Buckets in projects
	// are supported. The bucket has to be in the same project as the metric.
	BucketName pulumi.StringPtrInput
	// The bucketOptions are required when the logs-based metric is using a DISTRIBUTION value type and it
	// describes the bucket boundaries used to create a histogram of the extracted values.
	// Structure is documented below.
	BucketOptions MetricBucketOptionsPtrInput
	// A description of this metric, which is used in documentation. The maximum length of the
	// description is 8000 characters.
	Description pulumi.StringPtrInput
	// If set to True, then this metric is disabled and it does not generate any points.
	Disabled pulumi.BoolPtrInput
	// An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-filters) which
	// is used to match log entries.
	//
	// ***
	Filter pulumi.StringPtrInput
	// A map from a label key string to an extractor expression which is used to extract data from a log
	// entry field and assign as the label value. Each label key specified in the LabelDescriptor must
	// have an associated extractor expression in this map. The syntax of the extractor expression is
	// the same as for the valueExtractor field.
	LabelExtractors pulumi.StringMapInput
	// The optional metric descriptor associated with the logs-based metric.
	// If unspecified, it uses a default metric descriptor with a DELTA metric kind,
	// INT64 value type, with no labels and a unit of "1". Such a metric counts the
	// number of log entries matching the filter expression.
	// Structure is documented below.
	MetricDescriptor MetricMetricDescriptorPtrInput
	// The client-assigned metric identifier. Examples - "errorCount", "nginx/requests".
	// Metric identifiers are limited to 100 characters and can include only the following
	// characters A-Z, a-z, 0-9, and the special characters _-.,+!*',()%/. The forward-slash
	// character (/) denotes a hierarchy of name pieces, and it cannot be the first character
	// of the name.
	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
	// A valueExtractor is required when using a distribution logs-based metric to extract the values to
	// record from a log entry. Two functions are supported for value extraction - EXTRACT(field) or
	// REGEXP_EXTRACT(field, regex). The argument are 1. field - The name of the log entry field from which
	// the value is to be extracted. 2. regex - A regular expression using the Google RE2 syntax
	// (https://github.com/google/re2/wiki/Syntax) with a single capture group to extract data from the specified
	// log entry field. The value of the field is converted to a string before applying the regex. It is an
	// error to specify a regex that does not include exactly one capture group.
	ValueExtractor pulumi.StringPtrInput
}

func (MetricState) ElementType

func (MetricState) ElementType() reflect.Type

type OrganizationBucketConfig

type OrganizationBucketConfig struct {
	pulumi.CustomResourceState

	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringOutput `pulumi:"bucketId"`
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings OrganizationBucketConfigCmekSettingsPtrOutput `pulumi:"cmekSettings"`
	// Describes this bucket.
	Description pulumi.StringOutput `pulumi:"description"`
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs OrganizationBucketConfigIndexConfigArrayOutput `pulumi:"indexConfigs"`
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"`
	// The location of the bucket. The supported locations are: "global" "us-central1"
	Location pulumi.StringOutput `pulumi:"location"`
	// The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent resource that contains the logging bucket.
	Organization pulumi.StringOutput `pulumi:"organization"`
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrOutput `pulumi:"retentionDays"`
}

Manages a organization-level logging bucket config. For more information see [the official logging documentation](https://cloud.google.com/logging/docs/) and [Storing Logs](https://cloud.google.com/logging/docs/storage).

> **Note:** Logging buckets are automatically created for a given folder, project, organization, billingAccount and cannot be deleted. Creating a resource of this type will acquire and update the resource that already exists at the desired location. These buckets cannot be removed so deleting this resource will remove the bucket config from your state but will leave the logging bucket unchanged. The buckets that are currently automatically created are "_Default" and "_Required".

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := organizations.GetOrganization(ctx, &organizations.GetOrganizationArgs{
			Organization: pulumi.StringRef("123456789"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = logging.NewOrganizationBucketConfig(ctx, "basic", &logging.OrganizationBucketConfigArgs{
			Organization:  pulumi.String(_default.Organization),
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("_Default"),
			IndexConfigs: logging.OrganizationBucketConfigIndexConfigArray{
				&logging.OrganizationBucketConfigIndexConfigArgs{
					FieldPath: pulumi.String("jsonPayload.request.status"),
					Type:      pulumi.String("INDEX_TYPE_STRING"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource can be imported using the following format:

* `organizations/{{organization}}/locations/{{location}}/buckets/{{bucket_id}}`

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

```sh $ pulumi import gcp:logging/organizationBucketConfig:OrganizationBucketConfig default organizations/{{organization}}/locations/{{location}}/buckets/{{bucket_id}} ```

func GetOrganizationBucketConfig

func GetOrganizationBucketConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationBucketConfigState, opts ...pulumi.ResourceOption) (*OrganizationBucketConfig, error)

GetOrganizationBucketConfig gets an existing OrganizationBucketConfig 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 NewOrganizationBucketConfig

func NewOrganizationBucketConfig(ctx *pulumi.Context,
	name string, args *OrganizationBucketConfigArgs, opts ...pulumi.ResourceOption) (*OrganizationBucketConfig, error)

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

func (*OrganizationBucketConfig) ElementType

func (*OrganizationBucketConfig) ElementType() reflect.Type

func (*OrganizationBucketConfig) ToOrganizationBucketConfigOutput

func (i *OrganizationBucketConfig) ToOrganizationBucketConfigOutput() OrganizationBucketConfigOutput

func (*OrganizationBucketConfig) ToOrganizationBucketConfigOutputWithContext

func (i *OrganizationBucketConfig) ToOrganizationBucketConfigOutputWithContext(ctx context.Context) OrganizationBucketConfigOutput

type OrganizationBucketConfigArgs

type OrganizationBucketConfigArgs struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings OrganizationBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs OrganizationBucketConfigIndexConfigArrayInput
	// The location of the bucket. The supported locations are: "global" "us-central1"
	Location pulumi.StringInput
	// The parent resource that contains the logging bucket.
	Organization pulumi.StringInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

The set of arguments for constructing a OrganizationBucketConfig resource.

func (OrganizationBucketConfigArgs) ElementType

type OrganizationBucketConfigArray

type OrganizationBucketConfigArray []OrganizationBucketConfigInput

func (OrganizationBucketConfigArray) ElementType

func (OrganizationBucketConfigArray) ToOrganizationBucketConfigArrayOutput

func (i OrganizationBucketConfigArray) ToOrganizationBucketConfigArrayOutput() OrganizationBucketConfigArrayOutput

func (OrganizationBucketConfigArray) ToOrganizationBucketConfigArrayOutputWithContext

func (i OrganizationBucketConfigArray) ToOrganizationBucketConfigArrayOutputWithContext(ctx context.Context) OrganizationBucketConfigArrayOutput

type OrganizationBucketConfigArrayInput

type OrganizationBucketConfigArrayInput interface {
	pulumi.Input

	ToOrganizationBucketConfigArrayOutput() OrganizationBucketConfigArrayOutput
	ToOrganizationBucketConfigArrayOutputWithContext(context.Context) OrganizationBucketConfigArrayOutput
}

OrganizationBucketConfigArrayInput is an input type that accepts OrganizationBucketConfigArray and OrganizationBucketConfigArrayOutput values. You can construct a concrete instance of `OrganizationBucketConfigArrayInput` via:

OrganizationBucketConfigArray{ OrganizationBucketConfigArgs{...} }

type OrganizationBucketConfigArrayOutput

type OrganizationBucketConfigArrayOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigArrayOutput) ElementType

func (OrganizationBucketConfigArrayOutput) Index

func (OrganizationBucketConfigArrayOutput) ToOrganizationBucketConfigArrayOutput

func (o OrganizationBucketConfigArrayOutput) ToOrganizationBucketConfigArrayOutput() OrganizationBucketConfigArrayOutput

func (OrganizationBucketConfigArrayOutput) ToOrganizationBucketConfigArrayOutputWithContext

func (o OrganizationBucketConfigArrayOutput) ToOrganizationBucketConfigArrayOutputWithContext(ctx context.Context) OrganizationBucketConfigArrayOutput

type OrganizationBucketConfigCmekSettings

type OrganizationBucketConfigCmekSettings struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName *string `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"
	Name *string `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId *string `pulumi:"serviceAccountId"`
}

type OrganizationBucketConfigCmekSettingsArgs

type OrganizationBucketConfigCmekSettingsArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]"
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]"
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName pulumi.StringPtrInput `pulumi:"kmsKeyVersionName"`
	// The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId pulumi.StringPtrInput `pulumi:"serviceAccountId"`
}

func (OrganizationBucketConfigCmekSettingsArgs) ElementType

func (OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsOutput

func (i OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsOutput() OrganizationBucketConfigCmekSettingsOutput

func (OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsOutputWithContext

func (i OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsOutputWithContext(ctx context.Context) OrganizationBucketConfigCmekSettingsOutput

func (OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsPtrOutput

func (i OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsPtrOutput() OrganizationBucketConfigCmekSettingsPtrOutput

func (OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext

func (i OrganizationBucketConfigCmekSettingsArgs) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) OrganizationBucketConfigCmekSettingsPtrOutput

type OrganizationBucketConfigCmekSettingsInput

type OrganizationBucketConfigCmekSettingsInput interface {
	pulumi.Input

	ToOrganizationBucketConfigCmekSettingsOutput() OrganizationBucketConfigCmekSettingsOutput
	ToOrganizationBucketConfigCmekSettingsOutputWithContext(context.Context) OrganizationBucketConfigCmekSettingsOutput
}

OrganizationBucketConfigCmekSettingsInput is an input type that accepts OrganizationBucketConfigCmekSettingsArgs and OrganizationBucketConfigCmekSettingsOutput values. You can construct a concrete instance of `OrganizationBucketConfigCmekSettingsInput` via:

OrganizationBucketConfigCmekSettingsArgs{...}

type OrganizationBucketConfigCmekSettingsOutput

type OrganizationBucketConfigCmekSettingsOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigCmekSettingsOutput) ElementType

func (OrganizationBucketConfigCmekSettingsOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (OrganizationBucketConfigCmekSettingsOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (OrganizationBucketConfigCmekSettingsOutput) Name

The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"

func (OrganizationBucketConfigCmekSettingsOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsOutput

func (o OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsOutput() OrganizationBucketConfigCmekSettingsOutput

func (OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsOutputWithContext

func (o OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsOutputWithContext(ctx context.Context) OrganizationBucketConfigCmekSettingsOutput

func (OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsPtrOutput

func (o OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsPtrOutput() OrganizationBucketConfigCmekSettingsPtrOutput

func (OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext

func (o OrganizationBucketConfigCmekSettingsOutput) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) OrganizationBucketConfigCmekSettingsPtrOutput

type OrganizationBucketConfigCmekSettingsPtrInput

type OrganizationBucketConfigCmekSettingsPtrInput interface {
	pulumi.Input

	ToOrganizationBucketConfigCmekSettingsPtrOutput() OrganizationBucketConfigCmekSettingsPtrOutput
	ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext(context.Context) OrganizationBucketConfigCmekSettingsPtrOutput
}

OrganizationBucketConfigCmekSettingsPtrInput is an input type that accepts OrganizationBucketConfigCmekSettingsArgs, OrganizationBucketConfigCmekSettingsPtr and OrganizationBucketConfigCmekSettingsPtrOutput values. You can construct a concrete instance of `OrganizationBucketConfigCmekSettingsPtrInput` via:

        OrganizationBucketConfigCmekSettingsArgs{...}

or:

        nil

type OrganizationBucketConfigCmekSettingsPtrOutput

type OrganizationBucketConfigCmekSettingsPtrOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigCmekSettingsPtrOutput) Elem

func (OrganizationBucketConfigCmekSettingsPtrOutput) ElementType

func (OrganizationBucketConfigCmekSettingsPtrOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]" To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (OrganizationBucketConfigCmekSettingsPtrOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: "projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]" For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (OrganizationBucketConfigCmekSettingsPtrOutput) Name

The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"

func (OrganizationBucketConfigCmekSettingsPtrOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (OrganizationBucketConfigCmekSettingsPtrOutput) ToOrganizationBucketConfigCmekSettingsPtrOutput

func (o OrganizationBucketConfigCmekSettingsPtrOutput) ToOrganizationBucketConfigCmekSettingsPtrOutput() OrganizationBucketConfigCmekSettingsPtrOutput

func (OrganizationBucketConfigCmekSettingsPtrOutput) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext

func (o OrganizationBucketConfigCmekSettingsPtrOutput) ToOrganizationBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) OrganizationBucketConfigCmekSettingsPtrOutput

type OrganizationBucketConfigIndexConfig

type OrganizationBucketConfigIndexConfig struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath string `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type string `pulumi:"type"`
}

type OrganizationBucketConfigIndexConfigArgs

type OrganizationBucketConfigIndexConfigArgs struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath pulumi.StringInput `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (OrganizationBucketConfigIndexConfigArgs) ElementType

func (OrganizationBucketConfigIndexConfigArgs) ToOrganizationBucketConfigIndexConfigOutput

func (i OrganizationBucketConfigIndexConfigArgs) ToOrganizationBucketConfigIndexConfigOutput() OrganizationBucketConfigIndexConfigOutput

func (OrganizationBucketConfigIndexConfigArgs) ToOrganizationBucketConfigIndexConfigOutputWithContext

func (i OrganizationBucketConfigIndexConfigArgs) ToOrganizationBucketConfigIndexConfigOutputWithContext(ctx context.Context) OrganizationBucketConfigIndexConfigOutput

type OrganizationBucketConfigIndexConfigArray

type OrganizationBucketConfigIndexConfigArray []OrganizationBucketConfigIndexConfigInput

func (OrganizationBucketConfigIndexConfigArray) ElementType

func (OrganizationBucketConfigIndexConfigArray) ToOrganizationBucketConfigIndexConfigArrayOutput

func (i OrganizationBucketConfigIndexConfigArray) ToOrganizationBucketConfigIndexConfigArrayOutput() OrganizationBucketConfigIndexConfigArrayOutput

func (OrganizationBucketConfigIndexConfigArray) ToOrganizationBucketConfigIndexConfigArrayOutputWithContext

func (i OrganizationBucketConfigIndexConfigArray) ToOrganizationBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) OrganizationBucketConfigIndexConfigArrayOutput

type OrganizationBucketConfigIndexConfigArrayInput

type OrganizationBucketConfigIndexConfigArrayInput interface {
	pulumi.Input

	ToOrganizationBucketConfigIndexConfigArrayOutput() OrganizationBucketConfigIndexConfigArrayOutput
	ToOrganizationBucketConfigIndexConfigArrayOutputWithContext(context.Context) OrganizationBucketConfigIndexConfigArrayOutput
}

OrganizationBucketConfigIndexConfigArrayInput is an input type that accepts OrganizationBucketConfigIndexConfigArray and OrganizationBucketConfigIndexConfigArrayOutput values. You can construct a concrete instance of `OrganizationBucketConfigIndexConfigArrayInput` via:

OrganizationBucketConfigIndexConfigArray{ OrganizationBucketConfigIndexConfigArgs{...} }

type OrganizationBucketConfigIndexConfigArrayOutput

type OrganizationBucketConfigIndexConfigArrayOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigIndexConfigArrayOutput) ElementType

func (OrganizationBucketConfigIndexConfigArrayOutput) Index

func (OrganizationBucketConfigIndexConfigArrayOutput) ToOrganizationBucketConfigIndexConfigArrayOutput

func (o OrganizationBucketConfigIndexConfigArrayOutput) ToOrganizationBucketConfigIndexConfigArrayOutput() OrganizationBucketConfigIndexConfigArrayOutput

func (OrganizationBucketConfigIndexConfigArrayOutput) ToOrganizationBucketConfigIndexConfigArrayOutputWithContext

func (o OrganizationBucketConfigIndexConfigArrayOutput) ToOrganizationBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) OrganizationBucketConfigIndexConfigArrayOutput

type OrganizationBucketConfigIndexConfigInput

type OrganizationBucketConfigIndexConfigInput interface {
	pulumi.Input

	ToOrganizationBucketConfigIndexConfigOutput() OrganizationBucketConfigIndexConfigOutput
	ToOrganizationBucketConfigIndexConfigOutputWithContext(context.Context) OrganizationBucketConfigIndexConfigOutput
}

OrganizationBucketConfigIndexConfigInput is an input type that accepts OrganizationBucketConfigIndexConfigArgs and OrganizationBucketConfigIndexConfigOutput values. You can construct a concrete instance of `OrganizationBucketConfigIndexConfigInput` via:

OrganizationBucketConfigIndexConfigArgs{...}

type OrganizationBucketConfigIndexConfigOutput

type OrganizationBucketConfigIndexConfigOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigIndexConfigOutput) ElementType

func (OrganizationBucketConfigIndexConfigOutput) FieldPath

The LogEntry field path to index. Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.

func (OrganizationBucketConfigIndexConfigOutput) ToOrganizationBucketConfigIndexConfigOutput

func (o OrganizationBucketConfigIndexConfigOutput) ToOrganizationBucketConfigIndexConfigOutput() OrganizationBucketConfigIndexConfigOutput

func (OrganizationBucketConfigIndexConfigOutput) ToOrganizationBucketConfigIndexConfigOutputWithContext

func (o OrganizationBucketConfigIndexConfigOutput) ToOrganizationBucketConfigIndexConfigOutputWithContext(ctx context.Context) OrganizationBucketConfigIndexConfigOutput

func (OrganizationBucketConfigIndexConfigOutput) Type

The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.

type OrganizationBucketConfigInput

type OrganizationBucketConfigInput interface {
	pulumi.Input

	ToOrganizationBucketConfigOutput() OrganizationBucketConfigOutput
	ToOrganizationBucketConfigOutputWithContext(ctx context.Context) OrganizationBucketConfigOutput
}

type OrganizationBucketConfigMap

type OrganizationBucketConfigMap map[string]OrganizationBucketConfigInput

func (OrganizationBucketConfigMap) ElementType

func (OrganizationBucketConfigMap) ToOrganizationBucketConfigMapOutput

func (i OrganizationBucketConfigMap) ToOrganizationBucketConfigMapOutput() OrganizationBucketConfigMapOutput

func (OrganizationBucketConfigMap) ToOrganizationBucketConfigMapOutputWithContext

func (i OrganizationBucketConfigMap) ToOrganizationBucketConfigMapOutputWithContext(ctx context.Context) OrganizationBucketConfigMapOutput

type OrganizationBucketConfigMapInput

type OrganizationBucketConfigMapInput interface {
	pulumi.Input

	ToOrganizationBucketConfigMapOutput() OrganizationBucketConfigMapOutput
	ToOrganizationBucketConfigMapOutputWithContext(context.Context) OrganizationBucketConfigMapOutput
}

OrganizationBucketConfigMapInput is an input type that accepts OrganizationBucketConfigMap and OrganizationBucketConfigMapOutput values. You can construct a concrete instance of `OrganizationBucketConfigMapInput` via:

OrganizationBucketConfigMap{ "key": OrganizationBucketConfigArgs{...} }

type OrganizationBucketConfigMapOutput

type OrganizationBucketConfigMapOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigMapOutput) ElementType

func (OrganizationBucketConfigMapOutput) MapIndex

func (OrganizationBucketConfigMapOutput) ToOrganizationBucketConfigMapOutput

func (o OrganizationBucketConfigMapOutput) ToOrganizationBucketConfigMapOutput() OrganizationBucketConfigMapOutput

func (OrganizationBucketConfigMapOutput) ToOrganizationBucketConfigMapOutputWithContext

func (o OrganizationBucketConfigMapOutput) ToOrganizationBucketConfigMapOutputWithContext(ctx context.Context) OrganizationBucketConfigMapOutput

type OrganizationBucketConfigOutput

type OrganizationBucketConfigOutput struct{ *pulumi.OutputState }

func (OrganizationBucketConfigOutput) BucketId

The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.

func (OrganizationBucketConfigOutput) CmekSettings

The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed.

func (OrganizationBucketConfigOutput) Description

Describes this bucket.

func (OrganizationBucketConfigOutput) ElementType

func (OrganizationBucketConfigOutput) IndexConfigs

A list of indexed fields and related configuration data. Structure is documented below.

func (OrganizationBucketConfigOutput) LifecycleState

The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).

func (OrganizationBucketConfigOutput) Location

The location of the bucket. The supported locations are: "global" "us-central1"

func (OrganizationBucketConfigOutput) Name

The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"

func (OrganizationBucketConfigOutput) Organization

The parent resource that contains the logging bucket.

func (OrganizationBucketConfigOutput) RetentionDays

Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.

func (OrganizationBucketConfigOutput) ToOrganizationBucketConfigOutput

func (o OrganizationBucketConfigOutput) ToOrganizationBucketConfigOutput() OrganizationBucketConfigOutput

func (OrganizationBucketConfigOutput) ToOrganizationBucketConfigOutputWithContext

func (o OrganizationBucketConfigOutput) ToOrganizationBucketConfigOutputWithContext(ctx context.Context) OrganizationBucketConfigOutput

type OrganizationBucketConfigState

type OrganizationBucketConfigState struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringPtrInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK
	// key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by
	// updating the log bucket. Changing the KMS key is allowed.
	CmekSettings OrganizationBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs OrganizationBucketConfigIndexConfigArrayInput
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringPtrInput
	// The location of the bucket. The supported locations are: "global" "us-central1"
	Location pulumi.StringPtrInput
	// The resource name of the bucket. For example: "organizations/my-organization-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput
	// The parent resource that contains the logging bucket.
	Organization pulumi.StringPtrInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used. Bucket retention can not be increased on buckets outside of projects.
	RetentionDays pulumi.IntPtrInput
}

func (OrganizationBucketConfigState) ElementType

type OrganizationExclusion

type OrganizationExclusion struct {
	pulumi.CustomResourceState

	// A human-readable description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringOutput `pulumi:"filter"`
	// The name of the logging exclusion.
	Name pulumi.StringOutput `pulumi:"name"`
	// The organization to create the exclusion in.
	OrgId pulumi.StringOutput `pulumi:"orgId"`
}

Manages an organization-level logging exclusion. For more information see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/organizations.exclusions) * How-to Guides

> You can specify exclusions for log sinks created by the provider by using the exclusions field of `logging.OrganizationSink`

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewOrganizationExclusion(ctx, "my-exclusion", &logging.OrganizationExclusionArgs{
			Name:        pulumi.String("my-instance-debug-exclusion"),
			OrgId:       pulumi.String("123456789"),
			Description: pulumi.String("Exclude GCE instance debug logs"),
			Filter:      pulumi.String("resource.type = gce_instance AND severity <= DEBUG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Organization-level logging exclusions can be imported using their URI, e.g.

* `organizations/{{organization}}/exclusions/{{name}}`

When using the `pulumi import` command, organization-level logging exclusions can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/organizationExclusion:OrganizationExclusion default organizations/{{organization}}/exclusions/{{name}} ```

func GetOrganizationExclusion

func GetOrganizationExclusion(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationExclusionState, opts ...pulumi.ResourceOption) (*OrganizationExclusion, error)

GetOrganizationExclusion gets an existing OrganizationExclusion 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 NewOrganizationExclusion

func NewOrganizationExclusion(ctx *pulumi.Context,
	name string, args *OrganizationExclusionArgs, opts ...pulumi.ResourceOption) (*OrganizationExclusion, error)

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

func (*OrganizationExclusion) ElementType

func (*OrganizationExclusion) ElementType() reflect.Type

func (*OrganizationExclusion) ToOrganizationExclusionOutput

func (i *OrganizationExclusion) ToOrganizationExclusionOutput() OrganizationExclusionOutput

func (*OrganizationExclusion) ToOrganizationExclusionOutputWithContext

func (i *OrganizationExclusion) ToOrganizationExclusionOutputWithContext(ctx context.Context) OrganizationExclusionOutput

type OrganizationExclusionArgs

type OrganizationExclusionArgs struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
	// The organization to create the exclusion in.
	OrgId pulumi.StringInput
}

The set of arguments for constructing a OrganizationExclusion resource.

func (OrganizationExclusionArgs) ElementType

func (OrganizationExclusionArgs) ElementType() reflect.Type

type OrganizationExclusionArray

type OrganizationExclusionArray []OrganizationExclusionInput

func (OrganizationExclusionArray) ElementType

func (OrganizationExclusionArray) ElementType() reflect.Type

func (OrganizationExclusionArray) ToOrganizationExclusionArrayOutput

func (i OrganizationExclusionArray) ToOrganizationExclusionArrayOutput() OrganizationExclusionArrayOutput

func (OrganizationExclusionArray) ToOrganizationExclusionArrayOutputWithContext

func (i OrganizationExclusionArray) ToOrganizationExclusionArrayOutputWithContext(ctx context.Context) OrganizationExclusionArrayOutput

type OrganizationExclusionArrayInput

type OrganizationExclusionArrayInput interface {
	pulumi.Input

	ToOrganizationExclusionArrayOutput() OrganizationExclusionArrayOutput
	ToOrganizationExclusionArrayOutputWithContext(context.Context) OrganizationExclusionArrayOutput
}

OrganizationExclusionArrayInput is an input type that accepts OrganizationExclusionArray and OrganizationExclusionArrayOutput values. You can construct a concrete instance of `OrganizationExclusionArrayInput` via:

OrganizationExclusionArray{ OrganizationExclusionArgs{...} }

type OrganizationExclusionArrayOutput

type OrganizationExclusionArrayOutput struct{ *pulumi.OutputState }

func (OrganizationExclusionArrayOutput) ElementType

func (OrganizationExclusionArrayOutput) Index

func (OrganizationExclusionArrayOutput) ToOrganizationExclusionArrayOutput

func (o OrganizationExclusionArrayOutput) ToOrganizationExclusionArrayOutput() OrganizationExclusionArrayOutput

func (OrganizationExclusionArrayOutput) ToOrganizationExclusionArrayOutputWithContext

func (o OrganizationExclusionArrayOutput) ToOrganizationExclusionArrayOutputWithContext(ctx context.Context) OrganizationExclusionArrayOutput

type OrganizationExclusionInput

type OrganizationExclusionInput interface {
	pulumi.Input

	ToOrganizationExclusionOutput() OrganizationExclusionOutput
	ToOrganizationExclusionOutputWithContext(ctx context.Context) OrganizationExclusionOutput
}

type OrganizationExclusionMap

type OrganizationExclusionMap map[string]OrganizationExclusionInput

func (OrganizationExclusionMap) ElementType

func (OrganizationExclusionMap) ElementType() reflect.Type

func (OrganizationExclusionMap) ToOrganizationExclusionMapOutput

func (i OrganizationExclusionMap) ToOrganizationExclusionMapOutput() OrganizationExclusionMapOutput

func (OrganizationExclusionMap) ToOrganizationExclusionMapOutputWithContext

func (i OrganizationExclusionMap) ToOrganizationExclusionMapOutputWithContext(ctx context.Context) OrganizationExclusionMapOutput

type OrganizationExclusionMapInput

type OrganizationExclusionMapInput interface {
	pulumi.Input

	ToOrganizationExclusionMapOutput() OrganizationExclusionMapOutput
	ToOrganizationExclusionMapOutputWithContext(context.Context) OrganizationExclusionMapOutput
}

OrganizationExclusionMapInput is an input type that accepts OrganizationExclusionMap and OrganizationExclusionMapOutput values. You can construct a concrete instance of `OrganizationExclusionMapInput` via:

OrganizationExclusionMap{ "key": OrganizationExclusionArgs{...} }

type OrganizationExclusionMapOutput

type OrganizationExclusionMapOutput struct{ *pulumi.OutputState }

func (OrganizationExclusionMapOutput) ElementType

func (OrganizationExclusionMapOutput) MapIndex

func (OrganizationExclusionMapOutput) ToOrganizationExclusionMapOutput

func (o OrganizationExclusionMapOutput) ToOrganizationExclusionMapOutput() OrganizationExclusionMapOutput

func (OrganizationExclusionMapOutput) ToOrganizationExclusionMapOutputWithContext

func (o OrganizationExclusionMapOutput) ToOrganizationExclusionMapOutputWithContext(ctx context.Context) OrganizationExclusionMapOutput

type OrganizationExclusionOutput

type OrganizationExclusionOutput struct{ *pulumi.OutputState }

func (OrganizationExclusionOutput) Description

A human-readable description.

func (OrganizationExclusionOutput) Disabled

Whether this exclusion rule should be disabled or not. This defaults to false.

func (OrganizationExclusionOutput) ElementType

func (OrganizationExclusionOutput) Filter

The filter to apply when excluding logs. Only log entries that match the filter are excluded. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to write a filter.

func (OrganizationExclusionOutput) Name

The name of the logging exclusion.

func (OrganizationExclusionOutput) OrgId

The organization to create the exclusion in.

func (OrganizationExclusionOutput) ToOrganizationExclusionOutput

func (o OrganizationExclusionOutput) ToOrganizationExclusionOutput() OrganizationExclusionOutput

func (OrganizationExclusionOutput) ToOrganizationExclusionOutputWithContext

func (o OrganizationExclusionOutput) ToOrganizationExclusionOutputWithContext(ctx context.Context) OrganizationExclusionOutput

type OrganizationExclusionState

type OrganizationExclusionState struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
	// The organization to create the exclusion in.
	OrgId pulumi.StringPtrInput
}

func (OrganizationExclusionState) ElementType

func (OrganizationExclusionState) ElementType() reflect.Type

type OrganizationSettings

type OrganizationSettings struct {
	pulumi.CustomResourceState

	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolOutput `pulumi:"disableDefaultSink"`
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringOutput `pulumi:"kmsKeyName"`
	// The service account that will be used by the Log Router to access your Cloud KMS key.
	KmsServiceAccountId pulumi.StringOutput `pulumi:"kmsServiceAccountId"`
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId pulumi.StringOutput `pulumi:"loggingServiceAccountId"`
	// The resource name of the settings.
	Name pulumi.StringOutput `pulumi:"name"`
	// The organization for which to retrieve or configure settings.
	//
	// ***
	Organization pulumi.StringOutput `pulumi:"organization"`
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringOutput `pulumi:"storageLocation"`
}

Default resource settings control whether CMEK is required for new log buckets. These settings also determine the storage location for the _Default and _Required log buckets, and whether the _Default sink is enabled or disabled.

To get more information about OrganizationSettings, see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getSettings) * How-to Guides

## Example Usage

### Logging Organization Settings All

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		settings, err := logging.LookupOrganizationSettings(ctx, &logging.LookupOrganizationSettingsArgs{
			Organization: "123456789",
		}, nil)
		if err != nil {
			return err
		}
		iam, err := kms.NewCryptoKeyIAMMember(ctx, "iam", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: pulumi.String("kms-key"),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Member:      pulumi.Sprintf("serviceAccount:%v", settings.KmsServiceAccountId),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewOrganizationSettings(ctx, "example", &logging.OrganizationSettingsArgs{
			DisableDefaultSink: pulumi.Bool(true),
			KmsKeyName:         pulumi.String("kms-key"),
			Organization:       pulumi.String("123456789"),
			StorageLocation:    pulumi.String("us-central1"),
		}, pulumi.DependsOn([]pulumi.Resource{
			iam,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

OrganizationSettings can be imported using any of these accepted formats:

* `organizations/{{organization}}/settings`

* `{{organization}}`

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

```sh $ pulumi import gcp:logging/organizationSettings:OrganizationSettings default organizations/{{organization}}/settings ```

```sh $ pulumi import gcp:logging/organizationSettings:OrganizationSettings default {{organization}} ```

func GetOrganizationSettings

func GetOrganizationSettings(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationSettingsState, opts ...pulumi.ResourceOption) (*OrganizationSettings, error)

GetOrganizationSettings gets an existing OrganizationSettings 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 NewOrganizationSettings

func NewOrganizationSettings(ctx *pulumi.Context,
	name string, args *OrganizationSettingsArgs, opts ...pulumi.ResourceOption) (*OrganizationSettings, error)

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

func (*OrganizationSettings) ElementType

func (*OrganizationSettings) ElementType() reflect.Type

func (*OrganizationSettings) ToOrganizationSettingsOutput

func (i *OrganizationSettings) ToOrganizationSettingsOutput() OrganizationSettingsOutput

func (*OrganizationSettings) ToOrganizationSettingsOutputWithContext

func (i *OrganizationSettings) ToOrganizationSettingsOutputWithContext(ctx context.Context) OrganizationSettingsOutput

type OrganizationSettingsArgs

type OrganizationSettingsArgs struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolPtrInput
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringPtrInput
	// The organization for which to retrieve or configure settings.
	//
	// ***
	Organization pulumi.StringInput
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringPtrInput
}

The set of arguments for constructing a OrganizationSettings resource.

func (OrganizationSettingsArgs) ElementType

func (OrganizationSettingsArgs) ElementType() reflect.Type

type OrganizationSettingsArray

type OrganizationSettingsArray []OrganizationSettingsInput

func (OrganizationSettingsArray) ElementType

func (OrganizationSettingsArray) ElementType() reflect.Type

func (OrganizationSettingsArray) ToOrganizationSettingsArrayOutput

func (i OrganizationSettingsArray) ToOrganizationSettingsArrayOutput() OrganizationSettingsArrayOutput

func (OrganizationSettingsArray) ToOrganizationSettingsArrayOutputWithContext

func (i OrganizationSettingsArray) ToOrganizationSettingsArrayOutputWithContext(ctx context.Context) OrganizationSettingsArrayOutput

type OrganizationSettingsArrayInput

type OrganizationSettingsArrayInput interface {
	pulumi.Input

	ToOrganizationSettingsArrayOutput() OrganizationSettingsArrayOutput
	ToOrganizationSettingsArrayOutputWithContext(context.Context) OrganizationSettingsArrayOutput
}

OrganizationSettingsArrayInput is an input type that accepts OrganizationSettingsArray and OrganizationSettingsArrayOutput values. You can construct a concrete instance of `OrganizationSettingsArrayInput` via:

OrganizationSettingsArray{ OrganizationSettingsArgs{...} }

type OrganizationSettingsArrayOutput

type OrganizationSettingsArrayOutput struct{ *pulumi.OutputState }

func (OrganizationSettingsArrayOutput) ElementType

func (OrganizationSettingsArrayOutput) Index

func (OrganizationSettingsArrayOutput) ToOrganizationSettingsArrayOutput

func (o OrganizationSettingsArrayOutput) ToOrganizationSettingsArrayOutput() OrganizationSettingsArrayOutput

func (OrganizationSettingsArrayOutput) ToOrganizationSettingsArrayOutputWithContext

func (o OrganizationSettingsArrayOutput) ToOrganizationSettingsArrayOutputWithContext(ctx context.Context) OrganizationSettingsArrayOutput

type OrganizationSettingsInput

type OrganizationSettingsInput interface {
	pulumi.Input

	ToOrganizationSettingsOutput() OrganizationSettingsOutput
	ToOrganizationSettingsOutputWithContext(ctx context.Context) OrganizationSettingsOutput
}

type OrganizationSettingsMap

type OrganizationSettingsMap map[string]OrganizationSettingsInput

func (OrganizationSettingsMap) ElementType

func (OrganizationSettingsMap) ElementType() reflect.Type

func (OrganizationSettingsMap) ToOrganizationSettingsMapOutput

func (i OrganizationSettingsMap) ToOrganizationSettingsMapOutput() OrganizationSettingsMapOutput

func (OrganizationSettingsMap) ToOrganizationSettingsMapOutputWithContext

func (i OrganizationSettingsMap) ToOrganizationSettingsMapOutputWithContext(ctx context.Context) OrganizationSettingsMapOutput

type OrganizationSettingsMapInput

type OrganizationSettingsMapInput interface {
	pulumi.Input

	ToOrganizationSettingsMapOutput() OrganizationSettingsMapOutput
	ToOrganizationSettingsMapOutputWithContext(context.Context) OrganizationSettingsMapOutput
}

OrganizationSettingsMapInput is an input type that accepts OrganizationSettingsMap and OrganizationSettingsMapOutput values. You can construct a concrete instance of `OrganizationSettingsMapInput` via:

OrganizationSettingsMap{ "key": OrganizationSettingsArgs{...} }

type OrganizationSettingsMapOutput

type OrganizationSettingsMapOutput struct{ *pulumi.OutputState }

func (OrganizationSettingsMapOutput) ElementType

func (OrganizationSettingsMapOutput) MapIndex

func (OrganizationSettingsMapOutput) ToOrganizationSettingsMapOutput

func (o OrganizationSettingsMapOutput) ToOrganizationSettingsMapOutput() OrganizationSettingsMapOutput

func (OrganizationSettingsMapOutput) ToOrganizationSettingsMapOutputWithContext

func (o OrganizationSettingsMapOutput) ToOrganizationSettingsMapOutputWithContext(ctx context.Context) OrganizationSettingsMapOutput

type OrganizationSettingsOutput

type OrganizationSettingsOutput struct{ *pulumi.OutputState }

func (OrganizationSettingsOutput) DisableDefaultSink

func (o OrganizationSettingsOutput) DisableDefaultSink() pulumi.BoolOutput

If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.

func (OrganizationSettingsOutput) ElementType

func (OrganizationSettingsOutput) ElementType() reflect.Type

func (OrganizationSettingsOutput) KmsKeyName

The resource name for the configured Cloud KMS key.

func (OrganizationSettingsOutput) KmsServiceAccountId

func (o OrganizationSettingsOutput) KmsServiceAccountId() pulumi.StringOutput

The service account that will be used by the Log Router to access your Cloud KMS key.

func (OrganizationSettingsOutput) LoggingServiceAccountId

func (o OrganizationSettingsOutput) LoggingServiceAccountId() pulumi.StringOutput

The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.

func (OrganizationSettingsOutput) Name

The resource name of the settings.

func (OrganizationSettingsOutput) Organization

The organization for which to retrieve or configure settings.

***

func (OrganizationSettingsOutput) StorageLocation

func (o OrganizationSettingsOutput) StorageLocation() pulumi.StringOutput

The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.

func (OrganizationSettingsOutput) ToOrganizationSettingsOutput

func (o OrganizationSettingsOutput) ToOrganizationSettingsOutput() OrganizationSettingsOutput

func (OrganizationSettingsOutput) ToOrganizationSettingsOutputWithContext

func (o OrganizationSettingsOutput) ToOrganizationSettingsOutputWithContext(ctx context.Context) OrganizationSettingsOutput

type OrganizationSettingsState

type OrganizationSettingsState struct {
	// If set to true, the _Default sink in newly created projects and folders will created in a disabled state. This can be used to automatically disable log storage if there is already an aggregated sink configured in the hierarchy. The _Default sink can be re-enabled manually if needed.
	DisableDefaultSink pulumi.BoolPtrInput
	// The resource name for the configured Cloud KMS key.
	KmsKeyName pulumi.StringPtrInput
	// The service account that will be used by the Log Router to access your Cloud KMS key.
	KmsServiceAccountId pulumi.StringPtrInput
	// The service account for the given container. Sinks use this service account as their writerIdentity if no custom service account is provided.
	LoggingServiceAccountId pulumi.StringPtrInput
	// The resource name of the settings.
	Name pulumi.StringPtrInput
	// The organization for which to retrieve or configure settings.
	//
	// ***
	Organization pulumi.StringPtrInput
	// The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided.
	StorageLocation pulumi.StringPtrInput
}

func (OrganizationSettingsState) ElementType

func (OrganizationSettingsState) ElementType() reflect.Type

type OrganizationSink

type OrganizationSink struct {
	pulumi.CustomResourceState

	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions OrganizationSinkBigqueryOptionsOutput `pulumi:"bigqueryOptions"`
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringOutput `pulumi:"destination"`
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions OrganizationSinkExclusionArrayOutput `pulumi:"exclusions"`
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// Whether or not to include children organizations in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided organization are included.
	IncludeChildren pulumi.BoolPtrOutput `pulumi:"includeChildren"`
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrOutput `pulumi:"interceptChildren"`
	// The name of the logging sink.
	Name pulumi.StringOutput `pulumi:"name"`
	// The numeric ID of the organization to be exported to the sink.
	OrgId pulumi.StringOutput `pulumi:"orgId"`
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringOutput `pulumi:"writerIdentity"`
}

Manages a organization-level logging sink. For more information see: * [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/organizations.sinks) * How-to Guides

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/logging"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := storage.NewBucket(ctx, "log-bucket", &storage.BucketArgs{
			Name:     pulumi.String("organization-logging-bucket"),
			Location: pulumi.String("US"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewOrganizationSink(ctx, "my-sink", &logging.OrganizationSinkArgs{
			Name:        pulumi.String("my-sink"),
			Description: pulumi.String("some explanation on what this is"),
			OrgId:       pulumi.String("123456789"),
			Destination: log_bucket.Name.ApplyT(func(name string) (string, error) {
				return fmt.Sprintf("storage.googleapis.com/%v", name), nil
			}).(pulumi.StringOutput),
			Filter: pulumi.String("resource.type = gce_instance AND severity >= WARNING"),
		})
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "log-writer", &projects.IAMMemberArgs{
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/storage.objectCreator"),
			Member:  my_sink.WriterIdentity,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Organization-level logging sinks can be imported using this format:

* `organizations/{{organization_id}}/sinks/{{sink_id}}`

When using the `pulumi import` command, organization-level logging sinks can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/organizationSink:OrganizationSink default organizations/{{organization_id}}/sinks/{{sink_id}} ```

func GetOrganizationSink

func GetOrganizationSink(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationSinkState, opts ...pulumi.ResourceOption) (*OrganizationSink, error)

GetOrganizationSink gets an existing OrganizationSink 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 NewOrganizationSink

func NewOrganizationSink(ctx *pulumi.Context,
	name string, args *OrganizationSinkArgs, opts ...pulumi.ResourceOption) (*OrganizationSink, error)

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

func (*OrganizationSink) ElementType

func (*OrganizationSink) ElementType() reflect.Type

func (*OrganizationSink) ToOrganizationSinkOutput

func (i *OrganizationSink) ToOrganizationSinkOutput() OrganizationSinkOutput

func (*OrganizationSink) ToOrganizationSinkOutputWithContext

func (i *OrganizationSink) ToOrganizationSinkOutputWithContext(ctx context.Context) OrganizationSinkOutput

type OrganizationSinkArgs

type OrganizationSinkArgs struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions OrganizationSinkBigqueryOptionsPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions OrganizationSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// Whether or not to include children organizations in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided organization are included.
	IncludeChildren pulumi.BoolPtrInput
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
	// The numeric ID of the organization to be exported to the sink.
	OrgId pulumi.StringInput
}

The set of arguments for constructing a OrganizationSink resource.

func (OrganizationSinkArgs) ElementType

func (OrganizationSinkArgs) ElementType() reflect.Type

type OrganizationSinkArray

type OrganizationSinkArray []OrganizationSinkInput

func (OrganizationSinkArray) ElementType

func (OrganizationSinkArray) ElementType() reflect.Type

func (OrganizationSinkArray) ToOrganizationSinkArrayOutput

func (i OrganizationSinkArray) ToOrganizationSinkArrayOutput() OrganizationSinkArrayOutput

func (OrganizationSinkArray) ToOrganizationSinkArrayOutputWithContext

func (i OrganizationSinkArray) ToOrganizationSinkArrayOutputWithContext(ctx context.Context) OrganizationSinkArrayOutput

type OrganizationSinkArrayInput

type OrganizationSinkArrayInput interface {
	pulumi.Input

	ToOrganizationSinkArrayOutput() OrganizationSinkArrayOutput
	ToOrganizationSinkArrayOutputWithContext(context.Context) OrganizationSinkArrayOutput
}

OrganizationSinkArrayInput is an input type that accepts OrganizationSinkArray and OrganizationSinkArrayOutput values. You can construct a concrete instance of `OrganizationSinkArrayInput` via:

OrganizationSinkArray{ OrganizationSinkArgs{...} }

type OrganizationSinkArrayOutput

type OrganizationSinkArrayOutput struct{ *pulumi.OutputState }

func (OrganizationSinkArrayOutput) ElementType

func (OrganizationSinkArrayOutput) Index

func (OrganizationSinkArrayOutput) ToOrganizationSinkArrayOutput

func (o OrganizationSinkArrayOutput) ToOrganizationSinkArrayOutput() OrganizationSinkArrayOutput

func (OrganizationSinkArrayOutput) ToOrganizationSinkArrayOutputWithContext

func (o OrganizationSinkArrayOutput) ToOrganizationSinkArrayOutputWithContext(ctx context.Context) OrganizationSinkArrayOutput

type OrganizationSinkBigqueryOptions

type OrganizationSinkBigqueryOptions struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables bool `pulumi:"usePartitionedTables"`
}

type OrganizationSinkBigqueryOptionsArgs

type OrganizationSinkBigqueryOptionsArgs struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned
	// tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables pulumi.BoolInput `pulumi:"usePartitionedTables"`
}

func (OrganizationSinkBigqueryOptionsArgs) ElementType

func (OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsOutput

func (i OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsOutput() OrganizationSinkBigqueryOptionsOutput

func (OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsOutputWithContext

func (i OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsOutputWithContext(ctx context.Context) OrganizationSinkBigqueryOptionsOutput

func (OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsPtrOutput

func (i OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsPtrOutput() OrganizationSinkBigqueryOptionsPtrOutput

func (OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext

func (i OrganizationSinkBigqueryOptionsArgs) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) OrganizationSinkBigqueryOptionsPtrOutput

type OrganizationSinkBigqueryOptionsInput

type OrganizationSinkBigqueryOptionsInput interface {
	pulumi.Input

	ToOrganizationSinkBigqueryOptionsOutput() OrganizationSinkBigqueryOptionsOutput
	ToOrganizationSinkBigqueryOptionsOutputWithContext(context.Context) OrganizationSinkBigqueryOptionsOutput
}

OrganizationSinkBigqueryOptionsInput is an input type that accepts OrganizationSinkBigqueryOptionsArgs and OrganizationSinkBigqueryOptionsOutput values. You can construct a concrete instance of `OrganizationSinkBigqueryOptionsInput` via:

OrganizationSinkBigqueryOptionsArgs{...}

type OrganizationSinkBigqueryOptionsOutput

type OrganizationSinkBigqueryOptionsOutput struct{ *pulumi.OutputState }

func (OrganizationSinkBigqueryOptionsOutput) ElementType

func (OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsOutput

func (o OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsOutput() OrganizationSinkBigqueryOptionsOutput

func (OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsOutputWithContext

func (o OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsOutputWithContext(ctx context.Context) OrganizationSinkBigqueryOptionsOutput

func (OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsPtrOutput

func (o OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsPtrOutput() OrganizationSinkBigqueryOptionsPtrOutput

func (OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext

func (o OrganizationSinkBigqueryOptionsOutput) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) OrganizationSinkBigqueryOptionsPtrOutput

func (OrganizationSinkBigqueryOptionsOutput) UsePartitionedTables

func (o OrganizationSinkBigqueryOptionsOutput) UsePartitionedTables() pulumi.BoolOutput

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type OrganizationSinkBigqueryOptionsPtrInput

type OrganizationSinkBigqueryOptionsPtrInput interface {
	pulumi.Input

	ToOrganizationSinkBigqueryOptionsPtrOutput() OrganizationSinkBigqueryOptionsPtrOutput
	ToOrganizationSinkBigqueryOptionsPtrOutputWithContext(context.Context) OrganizationSinkBigqueryOptionsPtrOutput
}

OrganizationSinkBigqueryOptionsPtrInput is an input type that accepts OrganizationSinkBigqueryOptionsArgs, OrganizationSinkBigqueryOptionsPtr and OrganizationSinkBigqueryOptionsPtrOutput values. You can construct a concrete instance of `OrganizationSinkBigqueryOptionsPtrInput` via:

        OrganizationSinkBigqueryOptionsArgs{...}

or:

        nil

type OrganizationSinkBigqueryOptionsPtrOutput

type OrganizationSinkBigqueryOptionsPtrOutput struct{ *pulumi.OutputState }

func (OrganizationSinkBigqueryOptionsPtrOutput) Elem

func (OrganizationSinkBigqueryOptionsPtrOutput) ElementType

func (OrganizationSinkBigqueryOptionsPtrOutput) ToOrganizationSinkBigqueryOptionsPtrOutput

func (o OrganizationSinkBigqueryOptionsPtrOutput) ToOrganizationSinkBigqueryOptionsPtrOutput() OrganizationSinkBigqueryOptionsPtrOutput

func (OrganizationSinkBigqueryOptionsPtrOutput) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext

func (o OrganizationSinkBigqueryOptionsPtrOutput) ToOrganizationSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) OrganizationSinkBigqueryOptionsPtrOutput

func (OrganizationSinkBigqueryOptionsPtrOutput) UsePartitionedTables

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. syslog_20170523. With partitioned tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type OrganizationSinkExclusion

type OrganizationSinkExclusion struct {
	// A description of this exclusion.
	Description *string `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled *bool `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter string `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name string `pulumi:"name"`
}

type OrganizationSinkExclusionArgs

type OrganizationSinkExclusionArgs struct {
	// A description of this exclusion.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled pulumi.BoolPtrInput `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name pulumi.StringInput `pulumi:"name"`
}

func (OrganizationSinkExclusionArgs) ElementType

func (OrganizationSinkExclusionArgs) ToOrganizationSinkExclusionOutput

func (i OrganizationSinkExclusionArgs) ToOrganizationSinkExclusionOutput() OrganizationSinkExclusionOutput

func (OrganizationSinkExclusionArgs) ToOrganizationSinkExclusionOutputWithContext

func (i OrganizationSinkExclusionArgs) ToOrganizationSinkExclusionOutputWithContext(ctx context.Context) OrganizationSinkExclusionOutput

type OrganizationSinkExclusionArray

type OrganizationSinkExclusionArray []OrganizationSinkExclusionInput

func (OrganizationSinkExclusionArray) ElementType

func (OrganizationSinkExclusionArray) ToOrganizationSinkExclusionArrayOutput

func (i OrganizationSinkExclusionArray) ToOrganizationSinkExclusionArrayOutput() OrganizationSinkExclusionArrayOutput

func (OrganizationSinkExclusionArray) ToOrganizationSinkExclusionArrayOutputWithContext

func (i OrganizationSinkExclusionArray) ToOrganizationSinkExclusionArrayOutputWithContext(ctx context.Context) OrganizationSinkExclusionArrayOutput

type OrganizationSinkExclusionArrayInput

type OrganizationSinkExclusionArrayInput interface {
	pulumi.Input

	ToOrganizationSinkExclusionArrayOutput() OrganizationSinkExclusionArrayOutput
	ToOrganizationSinkExclusionArrayOutputWithContext(context.Context) OrganizationSinkExclusionArrayOutput
}

OrganizationSinkExclusionArrayInput is an input type that accepts OrganizationSinkExclusionArray and OrganizationSinkExclusionArrayOutput values. You can construct a concrete instance of `OrganizationSinkExclusionArrayInput` via:

OrganizationSinkExclusionArray{ OrganizationSinkExclusionArgs{...} }

type OrganizationSinkExclusionArrayOutput

type OrganizationSinkExclusionArrayOutput struct{ *pulumi.OutputState }

func (OrganizationSinkExclusionArrayOutput) ElementType

func (OrganizationSinkExclusionArrayOutput) Index

func (OrganizationSinkExclusionArrayOutput) ToOrganizationSinkExclusionArrayOutput

func (o OrganizationSinkExclusionArrayOutput) ToOrganizationSinkExclusionArrayOutput() OrganizationSinkExclusionArrayOutput

func (OrganizationSinkExclusionArrayOutput) ToOrganizationSinkExclusionArrayOutputWithContext

func (o OrganizationSinkExclusionArrayOutput) ToOrganizationSinkExclusionArrayOutputWithContext(ctx context.Context) OrganizationSinkExclusionArrayOutput

type OrganizationSinkExclusionInput

type OrganizationSinkExclusionInput interface {
	pulumi.Input

	ToOrganizationSinkExclusionOutput() OrganizationSinkExclusionOutput
	ToOrganizationSinkExclusionOutputWithContext(context.Context) OrganizationSinkExclusionOutput
}

OrganizationSinkExclusionInput is an input type that accepts OrganizationSinkExclusionArgs and OrganizationSinkExclusionOutput values. You can construct a concrete instance of `OrganizationSinkExclusionInput` via:

OrganizationSinkExclusionArgs{...}

type OrganizationSinkExclusionOutput

type OrganizationSinkExclusionOutput struct{ *pulumi.OutputState }

func (OrganizationSinkExclusionOutput) Description

A description of this exclusion.

func (OrganizationSinkExclusionOutput) Disabled

If set to True, then this exclusion is disabled and it does not exclude any log entries.

func (OrganizationSinkExclusionOutput) ElementType

func (OrganizationSinkExclusionOutput) Filter

An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (OrganizationSinkExclusionOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.

func (OrganizationSinkExclusionOutput) ToOrganizationSinkExclusionOutput

func (o OrganizationSinkExclusionOutput) ToOrganizationSinkExclusionOutput() OrganizationSinkExclusionOutput

func (OrganizationSinkExclusionOutput) ToOrganizationSinkExclusionOutputWithContext

func (o OrganizationSinkExclusionOutput) ToOrganizationSinkExclusionOutputWithContext(ctx context.Context) OrganizationSinkExclusionOutput

type OrganizationSinkInput

type OrganizationSinkInput interface {
	pulumi.Input

	ToOrganizationSinkOutput() OrganizationSinkOutput
	ToOrganizationSinkOutputWithContext(ctx context.Context) OrganizationSinkOutput
}

type OrganizationSinkMap

type OrganizationSinkMap map[string]OrganizationSinkInput

func (OrganizationSinkMap) ElementType

func (OrganizationSinkMap) ElementType() reflect.Type

func (OrganizationSinkMap) ToOrganizationSinkMapOutput

func (i OrganizationSinkMap) ToOrganizationSinkMapOutput() OrganizationSinkMapOutput

func (OrganizationSinkMap) ToOrganizationSinkMapOutputWithContext

func (i OrganizationSinkMap) ToOrganizationSinkMapOutputWithContext(ctx context.Context) OrganizationSinkMapOutput

type OrganizationSinkMapInput

type OrganizationSinkMapInput interface {
	pulumi.Input

	ToOrganizationSinkMapOutput() OrganizationSinkMapOutput
	ToOrganizationSinkMapOutputWithContext(context.Context) OrganizationSinkMapOutput
}

OrganizationSinkMapInput is an input type that accepts OrganizationSinkMap and OrganizationSinkMapOutput values. You can construct a concrete instance of `OrganizationSinkMapInput` via:

OrganizationSinkMap{ "key": OrganizationSinkArgs{...} }

type OrganizationSinkMapOutput

type OrganizationSinkMapOutput struct{ *pulumi.OutputState }

func (OrganizationSinkMapOutput) ElementType

func (OrganizationSinkMapOutput) ElementType() reflect.Type

func (OrganizationSinkMapOutput) MapIndex

func (OrganizationSinkMapOutput) ToOrganizationSinkMapOutput

func (o OrganizationSinkMapOutput) ToOrganizationSinkMapOutput() OrganizationSinkMapOutput

func (OrganizationSinkMapOutput) ToOrganizationSinkMapOutputWithContext

func (o OrganizationSinkMapOutput) ToOrganizationSinkMapOutputWithContext(ctx context.Context) OrganizationSinkMapOutput

type OrganizationSinkOutput

type OrganizationSinkOutput struct{ *pulumi.OutputState }

func (OrganizationSinkOutput) BigqueryOptions

Options that affect sinks exporting data to BigQuery. Structure documented below.

func (OrganizationSinkOutput) Description

A description of this sink. The maximum length of the description is 8000 characters.

func (OrganizationSinkOutput) Destination

func (o OrganizationSinkOutput) Destination() pulumi.StringOutput

The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:

- `storage.googleapis.com/[GCS_BUCKET]` - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]` - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]`

The writer associated with the sink must have access to write to the above resource.

func (OrganizationSinkOutput) Disabled

If set to True, then this sink is disabled and it does not export any log entries.

func (OrganizationSinkOutput) ElementType

func (OrganizationSinkOutput) ElementType() reflect.Type

func (OrganizationSinkOutput) Exclusions

Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported. Can be repeated multiple times for multiple exclusions. Structure is documented below.

func (OrganizationSinkOutput) Filter

The filter to apply when exporting logs. Only log entries that match the filter are exported. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (OrganizationSinkOutput) IncludeChildren

func (o OrganizationSinkOutput) IncludeChildren() pulumi.BoolPtrOutput

Whether or not to include children organizations in the sink export. If true, logs associated with child projects are also exported; otherwise only logs relating to the provided organization are included.

func (OrganizationSinkOutput) InterceptChildren

func (o OrganizationSinkOutput) InterceptChildren() pulumi.BoolPtrOutput

Whether or not to intercept logs from child projects. If true, matching logs will not match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.

func (OrganizationSinkOutput) Name

The name of the logging sink.

func (OrganizationSinkOutput) OrgId

The numeric ID of the organization to be exported to the sink.

func (OrganizationSinkOutput) ToOrganizationSinkOutput

func (o OrganizationSinkOutput) ToOrganizationSinkOutput() OrganizationSinkOutput

func (OrganizationSinkOutput) ToOrganizationSinkOutputWithContext

func (o OrganizationSinkOutput) ToOrganizationSinkOutputWithContext(ctx context.Context) OrganizationSinkOutput

func (OrganizationSinkOutput) WriterIdentity

func (o OrganizationSinkOutput) WriterIdentity() pulumi.StringOutput

The identity associated with this sink. This identity must be granted write access to the configured `destination`.

type OrganizationSinkState

type OrganizationSinkState struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions OrganizationSinkBigqueryOptionsPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringPtrInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions OrganizationSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// Whether or not to include children organizations in the sink export. If true, logs
	// associated with child projects are also exported; otherwise only logs relating to the provided organization are included.
	IncludeChildren pulumi.BoolPtrInput
	// Whether or not to intercept logs from child projects. If true, matching logs will not
	// match with sinks in child resources, except _Required sinks. This sink will be visible to child resources when listing sinks.
	InterceptChildren pulumi.BoolPtrInput
	// The name of the logging sink.
	Name pulumi.StringPtrInput
	// The numeric ID of the organization to be exported to the sink.
	OrgId pulumi.StringPtrInput
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringPtrInput
}

func (OrganizationSinkState) ElementType

func (OrganizationSinkState) ElementType() reflect.Type

type ProjectBucketConfig

type ProjectBucketConfig struct {
	pulumi.CustomResourceState

	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringOutput `pulumi:"bucketId"`
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed. Structure is documented below.
	CmekSettings ProjectBucketConfigCmekSettingsPtrOutput `pulumi:"cmekSettings"`
	// Describes this bucket.
	Description pulumi.StringOutput `pulumi:"description"`
	// Whether or not Log Analytics is enabled. Logs for buckets with Log Analytics enabled can be queried in the **Log Analytics** page using SQL queries. Cannot be disabled once enabled.
	EnableAnalytics pulumi.BoolPtrOutput `pulumi:"enableAnalytics"`
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs ProjectBucketConfigIndexConfigArrayOutput `pulumi:"indexConfigs"`
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringOutput `pulumi:"lifecycleState"`
	// The location of the bucket.
	Location pulumi.StringOutput `pulumi:"location"`
	// Whether the bucket is locked. The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.
	Locked pulumi.BoolPtrOutput `pulumi:"locked"`
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringOutput `pulumi:"name"`
	// The parent resource that contains the logging bucket.
	Project pulumi.StringOutput `pulumi:"project"`
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.
	RetentionDays pulumi.IntPtrOutput `pulumi:"retentionDays"`
}

Manages a project-level logging bucket config. For more information see [the official logging documentation](https://cloud.google.com/logging/docs/) and [Storing Logs](https://cloud.google.com/logging/docs/storage).

> **Note:** Logging buckets are automatically created for a given folder, project, organization, billingAccount and cannot be deleted. Creating a resource of this type will acquire and update the resource that already exists at the desired location. These buckets cannot be removed so deleting this resource will remove the bucket config from your state but will leave the logging bucket unchanged. The buckets that are currently automatically created are "_Default" and "_Required".

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewProject(ctx, "default", &organizations.ProjectArgs{
			ProjectId: pulumi.String("your-project-id"),
			Name:      pulumi.String("your-project-id"),
			OrgId:     pulumi.String("123456789"),
		})
		if err != nil {
			return err
		}
		_, err = logging.NewProjectBucketConfig(ctx, "basic", &logging.ProjectBucketConfigArgs{
			Project:       _default.ProjectId,
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("_Default"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create logging bucket with customId

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewProjectBucketConfig(ctx, "basic", &logging.ProjectBucketConfigArgs{
			Project:       pulumi.String("project_id"),
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("custom-bucket"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create logging bucket with Log Analytics enabled

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewProjectBucketConfig(ctx, "analytics-enabled-bucket", &logging.ProjectBucketConfigArgs{
			Project:         pulumi.String("project_id"),
			Location:        pulumi.String("global"),
			RetentionDays:   pulumi.Int(30),
			EnableAnalytics: pulumi.Bool(true),
			BucketId:        pulumi.String("custom-bucket"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create logging bucket with customId and cmekSettings

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cmekSettings, err := logging.GetProjectCmekSettings(ctx, &logging.GetProjectCmekSettingsArgs{
			Project: "project_id",
		}, nil)
		if err != nil {
			return err
		}
		keyring, err := kms.NewKeyRing(ctx, "keyring", &kms.KeyRingArgs{
			Name:     pulumi.String("keyring-example"),
			Location: pulumi.String("us-central1"),
		})
		if err != nil {
			return err
		}
		key, err := kms.NewCryptoKey(ctx, "key", &kms.CryptoKeyArgs{
			Name:           pulumi.String("crypto-key-example"),
			KeyRing:        keyring.ID(),
			RotationPeriod: pulumi.String("7776000s"),
		})
		if err != nil {
			return err
		}
		cryptoKeyBinding, err := kms.NewCryptoKeyIAMBinding(ctx, "crypto_key_binding", &kms.CryptoKeyIAMBindingArgs{
			CryptoKeyId: key.ID(),
			Role:        pulumi.String("roles/cloudkms.cryptoKeyEncrypterDecrypter"),
			Members: pulumi.StringArray{
				pulumi.Sprintf("serviceAccount:%v", cmekSettings.ServiceAccountId),
			},
		})
		if err != nil {
			return err
		}
		_, err = logging.NewProjectBucketConfig(ctx, "example-project-bucket-cmek-settings", &logging.ProjectBucketConfigArgs{
			Project:       pulumi.String("project_id"),
			Location:      pulumi.String("us-central1"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("custom-bucket"),
			CmekSettings: &logging.ProjectBucketConfigCmekSettingsArgs{
				KmsKeyName: key.ID(),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			cryptoKeyBinding,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

Create logging bucket with index configs

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewProjectBucketConfig(ctx, "example-project-bucket-index-configs", &logging.ProjectBucketConfigArgs{
			Project:       pulumi.String("project_id"),
			Location:      pulumi.String("global"),
			RetentionDays: pulumi.Int(30),
			BucketId:      pulumi.String("custom-bucket"),
			IndexConfigs: logging.ProjectBucketConfigIndexConfigArray{
				&logging.ProjectBucketConfigIndexConfigArgs{
					FieldPath: pulumi.String("jsonPayload.request.status"),
					Type:      pulumi.String("INDEX_TYPE_STRING"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource can be imported using the following format:

* `projects/{{project}}/locations/{{location}}/buckets/{{bucket_id}}`

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

```sh $ pulumi import gcp:logging/projectBucketConfig:ProjectBucketConfig default projects/{{project}}/locations/{{location}}/buckets/{{bucket_id}} ```

func GetProjectBucketConfig

func GetProjectBucketConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectBucketConfigState, opts ...pulumi.ResourceOption) (*ProjectBucketConfig, error)

GetProjectBucketConfig gets an existing ProjectBucketConfig 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 NewProjectBucketConfig

func NewProjectBucketConfig(ctx *pulumi.Context,
	name string, args *ProjectBucketConfigArgs, opts ...pulumi.ResourceOption) (*ProjectBucketConfig, error)

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

func (*ProjectBucketConfig) ElementType

func (*ProjectBucketConfig) ElementType() reflect.Type

func (*ProjectBucketConfig) ToProjectBucketConfigOutput

func (i *ProjectBucketConfig) ToProjectBucketConfigOutput() ProjectBucketConfigOutput

func (*ProjectBucketConfig) ToProjectBucketConfigOutputWithContext

func (i *ProjectBucketConfig) ToProjectBucketConfigOutputWithContext(ctx context.Context) ProjectBucketConfigOutput

type ProjectBucketConfigArgs

type ProjectBucketConfigArgs struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed. Structure is documented below.
	CmekSettings ProjectBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// Whether or not Log Analytics is enabled. Logs for buckets with Log Analytics enabled can be queried in the **Log Analytics** page using SQL queries. Cannot be disabled once enabled.
	EnableAnalytics pulumi.BoolPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs ProjectBucketConfigIndexConfigArrayInput
	// The location of the bucket.
	Location pulumi.StringInput
	// Whether the bucket is locked. The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.
	Locked pulumi.BoolPtrInput
	// The parent resource that contains the logging bucket.
	Project pulumi.StringInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.
	RetentionDays pulumi.IntPtrInput
}

The set of arguments for constructing a ProjectBucketConfig resource.

func (ProjectBucketConfigArgs) ElementType

func (ProjectBucketConfigArgs) ElementType() reflect.Type

type ProjectBucketConfigArray

type ProjectBucketConfigArray []ProjectBucketConfigInput

func (ProjectBucketConfigArray) ElementType

func (ProjectBucketConfigArray) ElementType() reflect.Type

func (ProjectBucketConfigArray) ToProjectBucketConfigArrayOutput

func (i ProjectBucketConfigArray) ToProjectBucketConfigArrayOutput() ProjectBucketConfigArrayOutput

func (ProjectBucketConfigArray) ToProjectBucketConfigArrayOutputWithContext

func (i ProjectBucketConfigArray) ToProjectBucketConfigArrayOutputWithContext(ctx context.Context) ProjectBucketConfigArrayOutput

type ProjectBucketConfigArrayInput

type ProjectBucketConfigArrayInput interface {
	pulumi.Input

	ToProjectBucketConfigArrayOutput() ProjectBucketConfigArrayOutput
	ToProjectBucketConfigArrayOutputWithContext(context.Context) ProjectBucketConfigArrayOutput
}

ProjectBucketConfigArrayInput is an input type that accepts ProjectBucketConfigArray and ProjectBucketConfigArrayOutput values. You can construct a concrete instance of `ProjectBucketConfigArrayInput` via:

ProjectBucketConfigArray{ ProjectBucketConfigArgs{...} }

type ProjectBucketConfigArrayOutput

type ProjectBucketConfigArrayOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigArrayOutput) ElementType

func (ProjectBucketConfigArrayOutput) Index

func (ProjectBucketConfigArrayOutput) ToProjectBucketConfigArrayOutput

func (o ProjectBucketConfigArrayOutput) ToProjectBucketConfigArrayOutput() ProjectBucketConfigArrayOutput

func (ProjectBucketConfigArrayOutput) ToProjectBucketConfigArrayOutputWithContext

func (o ProjectBucketConfigArrayOutput) ToProjectBucketConfigArrayOutputWithContext(ctx context.Context) ProjectBucketConfigArrayOutput

type ProjectBucketConfigCmekSettings

type ProjectBucketConfigCmekSettings struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName string `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'`
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName *string `pulumi:"kmsKeyVersionName"`
	// The resource name of the CMEK settings.
	Name *string `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId *string `pulumi:"serviceAccountId"`
}

type ProjectBucketConfigCmekSettingsArgs

type ProjectBucketConfigCmekSettingsArgs struct {
	// The resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'`
	// To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.
	// The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	KmsKeyName pulumi.StringInput `pulumi:"kmsKeyName"`
	// The CryptoKeyVersion resource name for the configured Cloud KMS key.
	// KMS key name format:
	// `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'`
	// For example:
	// "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1"
	// This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.
	KmsKeyVersionName pulumi.StringPtrInput `pulumi:"kmsKeyVersionName"`
	// The resource name of the CMEK settings.
	Name pulumi.StringPtrInput `pulumi:"name"`
	// The service account associated with a project for which CMEK will apply.
	// Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID.
	// See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.
	ServiceAccountId pulumi.StringPtrInput `pulumi:"serviceAccountId"`
}

func (ProjectBucketConfigCmekSettingsArgs) ElementType

func (ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsOutput

func (i ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsOutput() ProjectBucketConfigCmekSettingsOutput

func (ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsOutputWithContext

func (i ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsOutputWithContext(ctx context.Context) ProjectBucketConfigCmekSettingsOutput

func (ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsPtrOutput

func (i ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsPtrOutput() ProjectBucketConfigCmekSettingsPtrOutput

func (ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsPtrOutputWithContext

func (i ProjectBucketConfigCmekSettingsArgs) ToProjectBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) ProjectBucketConfigCmekSettingsPtrOutput

type ProjectBucketConfigCmekSettingsInput

type ProjectBucketConfigCmekSettingsInput interface {
	pulumi.Input

	ToProjectBucketConfigCmekSettingsOutput() ProjectBucketConfigCmekSettingsOutput
	ToProjectBucketConfigCmekSettingsOutputWithContext(context.Context) ProjectBucketConfigCmekSettingsOutput
}

ProjectBucketConfigCmekSettingsInput is an input type that accepts ProjectBucketConfigCmekSettingsArgs and ProjectBucketConfigCmekSettingsOutput values. You can construct a concrete instance of `ProjectBucketConfigCmekSettingsInput` via:

ProjectBucketConfigCmekSettingsArgs{...}

type ProjectBucketConfigCmekSettingsOutput

type ProjectBucketConfigCmekSettingsOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigCmekSettingsOutput) ElementType

func (ProjectBucketConfigCmekSettingsOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (ProjectBucketConfigCmekSettingsOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'` For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (ProjectBucketConfigCmekSettingsOutput) Name

The resource name of the CMEK settings.

func (ProjectBucketConfigCmekSettingsOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsOutput

func (o ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsOutput() ProjectBucketConfigCmekSettingsOutput

func (ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsOutputWithContext

func (o ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsOutputWithContext(ctx context.Context) ProjectBucketConfigCmekSettingsOutput

func (ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsPtrOutput

func (o ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsPtrOutput() ProjectBucketConfigCmekSettingsPtrOutput

func (ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsPtrOutputWithContext

func (o ProjectBucketConfigCmekSettingsOutput) ToProjectBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) ProjectBucketConfigCmekSettingsPtrOutput

type ProjectBucketConfigCmekSettingsPtrInput

type ProjectBucketConfigCmekSettingsPtrInput interface {
	pulumi.Input

	ToProjectBucketConfigCmekSettingsPtrOutput() ProjectBucketConfigCmekSettingsPtrOutput
	ToProjectBucketConfigCmekSettingsPtrOutputWithContext(context.Context) ProjectBucketConfigCmekSettingsPtrOutput
}

ProjectBucketConfigCmekSettingsPtrInput is an input type that accepts ProjectBucketConfigCmekSettingsArgs, ProjectBucketConfigCmekSettingsPtr and ProjectBucketConfigCmekSettingsPtrOutput values. You can construct a concrete instance of `ProjectBucketConfigCmekSettingsPtrInput` via:

        ProjectBucketConfigCmekSettingsArgs{...}

or:

        nil

type ProjectBucketConfigCmekSettingsPtrOutput

type ProjectBucketConfigCmekSettingsPtrOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigCmekSettingsPtrOutput) Elem

func (ProjectBucketConfigCmekSettingsPtrOutput) ElementType

func (ProjectBucketConfigCmekSettingsPtrOutput) KmsKeyName

The resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]'` To enable CMEK for the bucket, set this field to a valid kmsKeyName for which the associated service account has the required cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key. The Cloud KMS key used by the bucket can be updated by changing the kmsKeyName to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (ProjectBucketConfigCmekSettingsPtrOutput) KmsKeyVersionName

The CryptoKeyVersion resource name for the configured Cloud KMS key. KMS key name format: `'projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]'` For example: "projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1" This is a read-only field used to convey the specific configured CryptoKeyVersion of kmsKey that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.

func (ProjectBucketConfigCmekSettingsPtrOutput) Name

The resource name of the CMEK settings.

func (ProjectBucketConfigCmekSettingsPtrOutput) ServiceAccountId

The service account associated with a project for which CMEK will apply. Before enabling CMEK for a logging bucket, you must first assign the cloudkms.cryptoKeyEncrypterDecrypter role to the service account associated with the project for which CMEK will apply. Use [v2.getCmekSettings](https://cloud.google.com/logging/docs/reference/v2/rest/v2/TopLevel/getCmekSettings#google.logging.v2.ConfigServiceV2.GetCmekSettings) to obtain the service account ID. See [Enabling CMEK for Logging Buckets](https://cloud.google.com/logging/docs/routing/managed-encryption-storage) for more information.

func (ProjectBucketConfigCmekSettingsPtrOutput) ToProjectBucketConfigCmekSettingsPtrOutput

func (o ProjectBucketConfigCmekSettingsPtrOutput) ToProjectBucketConfigCmekSettingsPtrOutput() ProjectBucketConfigCmekSettingsPtrOutput

func (ProjectBucketConfigCmekSettingsPtrOutput) ToProjectBucketConfigCmekSettingsPtrOutputWithContext

func (o ProjectBucketConfigCmekSettingsPtrOutput) ToProjectBucketConfigCmekSettingsPtrOutputWithContext(ctx context.Context) ProjectBucketConfigCmekSettingsPtrOutput

type ProjectBucketConfigIndexConfig

type ProjectBucketConfigIndexConfig struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath string `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type string `pulumi:"type"`
}

type ProjectBucketConfigIndexConfigArgs

type ProjectBucketConfigIndexConfigArgs struct {
	// The LogEntry field path to index.
	// Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.
	FieldPath pulumi.StringInput `pulumi:"fieldPath"`
	// The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.
	Type pulumi.StringInput `pulumi:"type"`
}

func (ProjectBucketConfigIndexConfigArgs) ElementType

func (ProjectBucketConfigIndexConfigArgs) ToProjectBucketConfigIndexConfigOutput

func (i ProjectBucketConfigIndexConfigArgs) ToProjectBucketConfigIndexConfigOutput() ProjectBucketConfigIndexConfigOutput

func (ProjectBucketConfigIndexConfigArgs) ToProjectBucketConfigIndexConfigOutputWithContext

func (i ProjectBucketConfigIndexConfigArgs) ToProjectBucketConfigIndexConfigOutputWithContext(ctx context.Context) ProjectBucketConfigIndexConfigOutput

type ProjectBucketConfigIndexConfigArray

type ProjectBucketConfigIndexConfigArray []ProjectBucketConfigIndexConfigInput

func (ProjectBucketConfigIndexConfigArray) ElementType

func (ProjectBucketConfigIndexConfigArray) ToProjectBucketConfigIndexConfigArrayOutput

func (i ProjectBucketConfigIndexConfigArray) ToProjectBucketConfigIndexConfigArrayOutput() ProjectBucketConfigIndexConfigArrayOutput

func (ProjectBucketConfigIndexConfigArray) ToProjectBucketConfigIndexConfigArrayOutputWithContext

func (i ProjectBucketConfigIndexConfigArray) ToProjectBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) ProjectBucketConfigIndexConfigArrayOutput

type ProjectBucketConfigIndexConfigArrayInput

type ProjectBucketConfigIndexConfigArrayInput interface {
	pulumi.Input

	ToProjectBucketConfigIndexConfigArrayOutput() ProjectBucketConfigIndexConfigArrayOutput
	ToProjectBucketConfigIndexConfigArrayOutputWithContext(context.Context) ProjectBucketConfigIndexConfigArrayOutput
}

ProjectBucketConfigIndexConfigArrayInput is an input type that accepts ProjectBucketConfigIndexConfigArray and ProjectBucketConfigIndexConfigArrayOutput values. You can construct a concrete instance of `ProjectBucketConfigIndexConfigArrayInput` via:

ProjectBucketConfigIndexConfigArray{ ProjectBucketConfigIndexConfigArgs{...} }

type ProjectBucketConfigIndexConfigArrayOutput

type ProjectBucketConfigIndexConfigArrayOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigIndexConfigArrayOutput) ElementType

func (ProjectBucketConfigIndexConfigArrayOutput) Index

func (ProjectBucketConfigIndexConfigArrayOutput) ToProjectBucketConfigIndexConfigArrayOutput

func (o ProjectBucketConfigIndexConfigArrayOutput) ToProjectBucketConfigIndexConfigArrayOutput() ProjectBucketConfigIndexConfigArrayOutput

func (ProjectBucketConfigIndexConfigArrayOutput) ToProjectBucketConfigIndexConfigArrayOutputWithContext

func (o ProjectBucketConfigIndexConfigArrayOutput) ToProjectBucketConfigIndexConfigArrayOutputWithContext(ctx context.Context) ProjectBucketConfigIndexConfigArrayOutput

type ProjectBucketConfigIndexConfigInput

type ProjectBucketConfigIndexConfigInput interface {
	pulumi.Input

	ToProjectBucketConfigIndexConfigOutput() ProjectBucketConfigIndexConfigOutput
	ToProjectBucketConfigIndexConfigOutputWithContext(context.Context) ProjectBucketConfigIndexConfigOutput
}

ProjectBucketConfigIndexConfigInput is an input type that accepts ProjectBucketConfigIndexConfigArgs and ProjectBucketConfigIndexConfigOutput values. You can construct a concrete instance of `ProjectBucketConfigIndexConfigInput` via:

ProjectBucketConfigIndexConfigArgs{...}

type ProjectBucketConfigIndexConfigOutput

type ProjectBucketConfigIndexConfigOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigIndexConfigOutput) ElementType

func (ProjectBucketConfigIndexConfigOutput) FieldPath

The LogEntry field path to index. Note that some paths are automatically indexed, and other paths are not eligible for indexing. See [indexing documentation](https://cloud.google.com/logging/docs/analyze/custom-index) for details.

func (ProjectBucketConfigIndexConfigOutput) ToProjectBucketConfigIndexConfigOutput

func (o ProjectBucketConfigIndexConfigOutput) ToProjectBucketConfigIndexConfigOutput() ProjectBucketConfigIndexConfigOutput

func (ProjectBucketConfigIndexConfigOutput) ToProjectBucketConfigIndexConfigOutputWithContext

func (o ProjectBucketConfigIndexConfigOutput) ToProjectBucketConfigIndexConfigOutputWithContext(ctx context.Context) ProjectBucketConfigIndexConfigOutput

func (ProjectBucketConfigIndexConfigOutput) Type

The type of data in this index. Allowed types include `INDEX_TYPE_UNSPECIFIED`, `INDEX_TYPE_STRING` and `INDEX_TYPE_INTEGER`.

type ProjectBucketConfigInput

type ProjectBucketConfigInput interface {
	pulumi.Input

	ToProjectBucketConfigOutput() ProjectBucketConfigOutput
	ToProjectBucketConfigOutputWithContext(ctx context.Context) ProjectBucketConfigOutput
}

type ProjectBucketConfigMap

type ProjectBucketConfigMap map[string]ProjectBucketConfigInput

func (ProjectBucketConfigMap) ElementType

func (ProjectBucketConfigMap) ElementType() reflect.Type

func (ProjectBucketConfigMap) ToProjectBucketConfigMapOutput

func (i ProjectBucketConfigMap) ToProjectBucketConfigMapOutput() ProjectBucketConfigMapOutput

func (ProjectBucketConfigMap) ToProjectBucketConfigMapOutputWithContext

func (i ProjectBucketConfigMap) ToProjectBucketConfigMapOutputWithContext(ctx context.Context) ProjectBucketConfigMapOutput

type ProjectBucketConfigMapInput

type ProjectBucketConfigMapInput interface {
	pulumi.Input

	ToProjectBucketConfigMapOutput() ProjectBucketConfigMapOutput
	ToProjectBucketConfigMapOutputWithContext(context.Context) ProjectBucketConfigMapOutput
}

ProjectBucketConfigMapInput is an input type that accepts ProjectBucketConfigMap and ProjectBucketConfigMapOutput values. You can construct a concrete instance of `ProjectBucketConfigMapInput` via:

ProjectBucketConfigMap{ "key": ProjectBucketConfigArgs{...} }

type ProjectBucketConfigMapOutput

type ProjectBucketConfigMapOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigMapOutput) ElementType

func (ProjectBucketConfigMapOutput) MapIndex

func (ProjectBucketConfigMapOutput) ToProjectBucketConfigMapOutput

func (o ProjectBucketConfigMapOutput) ToProjectBucketConfigMapOutput() ProjectBucketConfigMapOutput

func (ProjectBucketConfigMapOutput) ToProjectBucketConfigMapOutputWithContext

func (o ProjectBucketConfigMapOutput) ToProjectBucketConfigMapOutputWithContext(ctx context.Context) ProjectBucketConfigMapOutput

type ProjectBucketConfigOutput

type ProjectBucketConfigOutput struct{ *pulumi.OutputState }

func (ProjectBucketConfigOutput) BucketId

The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.

func (ProjectBucketConfigOutput) CmekSettings

The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed. Structure is documented below.

func (ProjectBucketConfigOutput) Description

Describes this bucket.

func (ProjectBucketConfigOutput) ElementType

func (ProjectBucketConfigOutput) ElementType() reflect.Type

func (ProjectBucketConfigOutput) EnableAnalytics

func (o ProjectBucketConfigOutput) EnableAnalytics() pulumi.BoolPtrOutput

Whether or not Log Analytics is enabled. Logs for buckets with Log Analytics enabled can be queried in the **Log Analytics** page using SQL queries. Cannot be disabled once enabled.

func (ProjectBucketConfigOutput) IndexConfigs

A list of indexed fields and related configuration data. Structure is documented below.

func (ProjectBucketConfigOutput) LifecycleState

func (o ProjectBucketConfigOutput) LifecycleState() pulumi.StringOutput

The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).

func (ProjectBucketConfigOutput) Location

The location of the bucket.

func (ProjectBucketConfigOutput) Locked

Whether the bucket is locked. The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.

func (ProjectBucketConfigOutput) Name

The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"

func (ProjectBucketConfigOutput) Project

The parent resource that contains the logging bucket.

func (ProjectBucketConfigOutput) RetentionDays

func (o ProjectBucketConfigOutput) RetentionDays() pulumi.IntPtrOutput

Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.

func (ProjectBucketConfigOutput) ToProjectBucketConfigOutput

func (o ProjectBucketConfigOutput) ToProjectBucketConfigOutput() ProjectBucketConfigOutput

func (ProjectBucketConfigOutput) ToProjectBucketConfigOutputWithContext

func (o ProjectBucketConfigOutput) ToProjectBucketConfigOutputWithContext(ctx context.Context) ProjectBucketConfigOutput

type ProjectBucketConfigState

type ProjectBucketConfigState struct {
	// The name of the logging bucket. Logging automatically creates two log buckets: `_Required` and `_Default`.
	BucketId pulumi.StringPtrInput
	// The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed. Structure is documented below.
	CmekSettings ProjectBucketConfigCmekSettingsPtrInput
	// Describes this bucket.
	Description pulumi.StringPtrInput
	// Whether or not Log Analytics is enabled. Logs for buckets with Log Analytics enabled can be queried in the **Log Analytics** page using SQL queries. Cannot be disabled once enabled.
	EnableAnalytics pulumi.BoolPtrInput
	// A list of indexed fields and related configuration data. Structure is documented below.
	IndexConfigs ProjectBucketConfigIndexConfigArrayInput
	// The bucket's lifecycle such as active or deleted. See [LifecycleState](https://cloud.google.com/logging/docs/reference/v2/rest/v2/billingAccounts.buckets#LogBucket.LifecycleState).
	LifecycleState pulumi.StringPtrInput
	// The location of the bucket.
	Location pulumi.StringPtrInput
	// Whether the bucket is locked. The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.
	Locked pulumi.BoolPtrInput
	// The resource name of the bucket. For example: "projects/my-project-id/locations/my-location/buckets/my-bucket-id"
	Name pulumi.StringPtrInput
	// The parent resource that contains the logging bucket.
	Project pulumi.StringPtrInput
	// Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.
	RetentionDays pulumi.IntPtrInput
}

func (ProjectBucketConfigState) ElementType

func (ProjectBucketConfigState) ElementType() reflect.Type

type ProjectExclusion

type ProjectExclusion struct {
	pulumi.CustomResourceState

	// A human-readable description.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringOutput `pulumi:"filter"`
	// The name of the logging exclusion.
	Name pulumi.StringOutput `pulumi:"name"`
	// The project to create the exclusion in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringOutput `pulumi:"project"`
}

Manages a project-level logging exclusion. For more information see:

* [API documentation](https://cloud.google.com/logging/docs/reference/v2/rest/v2/projects.exclusions) * How-to Guides

> You can specify exclusions for log sinks created by the provider by using the exclusions field of `logging.ProjectSink`

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := logging.NewProjectExclusion(ctx, "my-exclusion", &logging.ProjectExclusionArgs{
			Name:        pulumi.String("my-instance-debug-exclusion"),
			Description: pulumi.String("Exclude GCE instance debug logs"),
			Filter:      pulumi.String("resource.type = gce_instance AND severity <= DEBUG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Project-level logging exclusions can be imported using their URI, e.g.

* `projects/{{project_id}}/exclusions/{{name}}`

When using the `pulumi import` command, project-level logging exclusions can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/projectExclusion:ProjectExclusion default projects/{{project_id}}/exclusions/{{name}} ```

func GetProjectExclusion

func GetProjectExclusion(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectExclusionState, opts ...pulumi.ResourceOption) (*ProjectExclusion, error)

GetProjectExclusion gets an existing ProjectExclusion 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 NewProjectExclusion

func NewProjectExclusion(ctx *pulumi.Context,
	name string, args *ProjectExclusionArgs, opts ...pulumi.ResourceOption) (*ProjectExclusion, error)

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

func (*ProjectExclusion) ElementType

func (*ProjectExclusion) ElementType() reflect.Type

func (*ProjectExclusion) ToProjectExclusionOutput

func (i *ProjectExclusion) ToProjectExclusionOutput() ProjectExclusionOutput

func (*ProjectExclusion) ToProjectExclusionOutputWithContext

func (i *ProjectExclusion) ToProjectExclusionOutputWithContext(ctx context.Context) ProjectExclusionOutput

type ProjectExclusionArgs

type ProjectExclusionArgs struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
	// The project to create the exclusion in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a ProjectExclusion resource.

func (ProjectExclusionArgs) ElementType

func (ProjectExclusionArgs) ElementType() reflect.Type

type ProjectExclusionArray

type ProjectExclusionArray []ProjectExclusionInput

func (ProjectExclusionArray) ElementType

func (ProjectExclusionArray) ElementType() reflect.Type

func (ProjectExclusionArray) ToProjectExclusionArrayOutput

func (i ProjectExclusionArray) ToProjectExclusionArrayOutput() ProjectExclusionArrayOutput

func (ProjectExclusionArray) ToProjectExclusionArrayOutputWithContext

func (i ProjectExclusionArray) ToProjectExclusionArrayOutputWithContext(ctx context.Context) ProjectExclusionArrayOutput

type ProjectExclusionArrayInput

type ProjectExclusionArrayInput interface {
	pulumi.Input

	ToProjectExclusionArrayOutput() ProjectExclusionArrayOutput
	ToProjectExclusionArrayOutputWithContext(context.Context) ProjectExclusionArrayOutput
}

ProjectExclusionArrayInput is an input type that accepts ProjectExclusionArray and ProjectExclusionArrayOutput values. You can construct a concrete instance of `ProjectExclusionArrayInput` via:

ProjectExclusionArray{ ProjectExclusionArgs{...} }

type ProjectExclusionArrayOutput

type ProjectExclusionArrayOutput struct{ *pulumi.OutputState }

func (ProjectExclusionArrayOutput) ElementType

func (ProjectExclusionArrayOutput) Index

func (ProjectExclusionArrayOutput) ToProjectExclusionArrayOutput

func (o ProjectExclusionArrayOutput) ToProjectExclusionArrayOutput() ProjectExclusionArrayOutput

func (ProjectExclusionArrayOutput) ToProjectExclusionArrayOutputWithContext

func (o ProjectExclusionArrayOutput) ToProjectExclusionArrayOutputWithContext(ctx context.Context) ProjectExclusionArrayOutput

type ProjectExclusionInput

type ProjectExclusionInput interface {
	pulumi.Input

	ToProjectExclusionOutput() ProjectExclusionOutput
	ToProjectExclusionOutputWithContext(ctx context.Context) ProjectExclusionOutput
}

type ProjectExclusionMap

type ProjectExclusionMap map[string]ProjectExclusionInput

func (ProjectExclusionMap) ElementType

func (ProjectExclusionMap) ElementType() reflect.Type

func (ProjectExclusionMap) ToProjectExclusionMapOutput

func (i ProjectExclusionMap) ToProjectExclusionMapOutput() ProjectExclusionMapOutput

func (ProjectExclusionMap) ToProjectExclusionMapOutputWithContext

func (i ProjectExclusionMap) ToProjectExclusionMapOutputWithContext(ctx context.Context) ProjectExclusionMapOutput

type ProjectExclusionMapInput

type ProjectExclusionMapInput interface {
	pulumi.Input

	ToProjectExclusionMapOutput() ProjectExclusionMapOutput
	ToProjectExclusionMapOutputWithContext(context.Context) ProjectExclusionMapOutput
}

ProjectExclusionMapInput is an input type that accepts ProjectExclusionMap and ProjectExclusionMapOutput values. You can construct a concrete instance of `ProjectExclusionMapInput` via:

ProjectExclusionMap{ "key": ProjectExclusionArgs{...} }

type ProjectExclusionMapOutput

type ProjectExclusionMapOutput struct{ *pulumi.OutputState }

func (ProjectExclusionMapOutput) ElementType

func (ProjectExclusionMapOutput) ElementType() reflect.Type

func (ProjectExclusionMapOutput) MapIndex

func (ProjectExclusionMapOutput) ToProjectExclusionMapOutput

func (o ProjectExclusionMapOutput) ToProjectExclusionMapOutput() ProjectExclusionMapOutput

func (ProjectExclusionMapOutput) ToProjectExclusionMapOutputWithContext

func (o ProjectExclusionMapOutput) ToProjectExclusionMapOutputWithContext(ctx context.Context) ProjectExclusionMapOutput

type ProjectExclusionOutput

type ProjectExclusionOutput struct{ *pulumi.OutputState }

func (ProjectExclusionOutput) Description

A human-readable description.

func (ProjectExclusionOutput) Disabled

Whether this exclusion rule should be disabled or not. This defaults to false.

func (ProjectExclusionOutput) ElementType

func (ProjectExclusionOutput) ElementType() reflect.Type

func (ProjectExclusionOutput) Filter

The filter to apply when excluding logs. Only log entries that match the filter are excluded. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to write a filter.

func (ProjectExclusionOutput) Name

The name of the logging exclusion.

func (ProjectExclusionOutput) Project

The project to create the exclusion in. If omitted, the project associated with the provider is used.

func (ProjectExclusionOutput) ToProjectExclusionOutput

func (o ProjectExclusionOutput) ToProjectExclusionOutput() ProjectExclusionOutput

func (ProjectExclusionOutput) ToProjectExclusionOutputWithContext

func (o ProjectExclusionOutput) ToProjectExclusionOutputWithContext(ctx context.Context) ProjectExclusionOutput

type ProjectExclusionState

type ProjectExclusionState struct {
	// A human-readable description.
	Description pulumi.StringPtrInput
	// Whether this exclusion rule should be disabled or not. This defaults to
	// false.
	Disabled pulumi.BoolPtrInput
	// The filter to apply when excluding logs. Only log entries that match the filter are excluded.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced-filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging exclusion.
	Name pulumi.StringPtrInput
	// The project to create the exclusion in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringPtrInput
}

func (ProjectExclusionState) ElementType

func (ProjectExclusionState) ElementType() reflect.Type

type ProjectSink

type ProjectSink struct {
	pulumi.CustomResourceState

	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions ProjectSinkBigqueryOptionsOutput `pulumi:"bigqueryOptions"`
	// A user managed service account that will be used to write
	// the log entries. The format must be `serviceAccount:some@email`. This field can only be specified if you are
	// routing logs to a destination outside this sink's project. If not specified, a Logging service account
	// will automatically be generated.
	CustomWriterIdentity pulumi.StringPtrOutput `pulumi:"customWriterIdentity"`
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringOutput `pulumi:"destination"`
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrOutput `pulumi:"disabled"`
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions ProjectSinkExclusionArrayOutput `pulumi:"exclusions"`
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// The name of the logging sink. Logging automatically creates two sinks: `_Required` and `_Default`.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project to create the sink in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Whether or not to create a unique identity associated with this sink. If `false`, then the `writerIdentity` used is `serviceAccount:cloud-logs@system.gserviceaccount.com`. If `true` (the default),
	// then a unique service account is created and used for this sink. If you wish to publish logs across projects or utilize
	// `bigqueryOptions`, you must set `uniqueWriterIdentity` to true.
	UniqueWriterIdentity pulumi.BoolPtrOutput `pulumi:"uniqueWriterIdentity"`
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringOutput `pulumi:"writerIdentity"`
}

## Import

Project-level logging sinks can be imported using their URI, e.g.

* `projects/{{project_id}}/sinks/{{name}}`

When using the `pulumi import` command, project-level logging sinks can be imported using one of the formats above. For example:

```sh $ pulumi import gcp:logging/projectSink:ProjectSink default projects/{{project_id}}/sinks/{{name}} ```

func GetProjectSink

func GetProjectSink(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ProjectSinkState, opts ...pulumi.ResourceOption) (*ProjectSink, error)

GetProjectSink gets an existing ProjectSink 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 NewProjectSink

func NewProjectSink(ctx *pulumi.Context,
	name string, args *ProjectSinkArgs, opts ...pulumi.ResourceOption) (*ProjectSink, error)

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

func (*ProjectSink) ElementType

func (*ProjectSink) ElementType() reflect.Type

func (*ProjectSink) ToProjectSinkOutput

func (i *ProjectSink) ToProjectSinkOutput() ProjectSinkOutput

func (*ProjectSink) ToProjectSinkOutputWithContext

func (i *ProjectSink) ToProjectSinkOutputWithContext(ctx context.Context) ProjectSinkOutput

type ProjectSinkArgs

type ProjectSinkArgs struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions ProjectSinkBigqueryOptionsPtrInput
	// A user managed service account that will be used to write
	// the log entries. The format must be `serviceAccount:some@email`. This field can only be specified if you are
	// routing logs to a destination outside this sink's project. If not specified, a Logging service account
	// will automatically be generated.
	CustomWriterIdentity pulumi.StringPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions ProjectSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging sink. Logging automatically creates two sinks: `_Required` and `_Default`.
	Name pulumi.StringPtrInput
	// The ID of the project to create the sink in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringPtrInput
	// Whether or not to create a unique identity associated with this sink. If `false`, then the `writerIdentity` used is `serviceAccount:cloud-logs@system.gserviceaccount.com`. If `true` (the default),
	// then a unique service account is created and used for this sink. If you wish to publish logs across projects or utilize
	// `bigqueryOptions`, you must set `uniqueWriterIdentity` to true.
	UniqueWriterIdentity pulumi.BoolPtrInput
}

The set of arguments for constructing a ProjectSink resource.

func (ProjectSinkArgs) ElementType

func (ProjectSinkArgs) ElementType() reflect.Type

type ProjectSinkArray

type ProjectSinkArray []ProjectSinkInput

func (ProjectSinkArray) ElementType

func (ProjectSinkArray) ElementType() reflect.Type

func (ProjectSinkArray) ToProjectSinkArrayOutput

func (i ProjectSinkArray) ToProjectSinkArrayOutput() ProjectSinkArrayOutput

func (ProjectSinkArray) ToProjectSinkArrayOutputWithContext

func (i ProjectSinkArray) ToProjectSinkArrayOutputWithContext(ctx context.Context) ProjectSinkArrayOutput

type ProjectSinkArrayInput

type ProjectSinkArrayInput interface {
	pulumi.Input

	ToProjectSinkArrayOutput() ProjectSinkArrayOutput
	ToProjectSinkArrayOutputWithContext(context.Context) ProjectSinkArrayOutput
}

ProjectSinkArrayInput is an input type that accepts ProjectSinkArray and ProjectSinkArrayOutput values. You can construct a concrete instance of `ProjectSinkArrayInput` via:

ProjectSinkArray{ ProjectSinkArgs{...} }

type ProjectSinkArrayOutput

type ProjectSinkArrayOutput struct{ *pulumi.OutputState }

func (ProjectSinkArrayOutput) ElementType

func (ProjectSinkArrayOutput) ElementType() reflect.Type

func (ProjectSinkArrayOutput) Index

func (ProjectSinkArrayOutput) ToProjectSinkArrayOutput

func (o ProjectSinkArrayOutput) ToProjectSinkArrayOutput() ProjectSinkArrayOutput

func (ProjectSinkArrayOutput) ToProjectSinkArrayOutputWithContext

func (o ProjectSinkArrayOutput) ToProjectSinkArrayOutputWithContext(ctx context.Context) ProjectSinkArrayOutput

type ProjectSinkBigqueryOptions

type ProjectSinkBigqueryOptions struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. `syslog20170523`. With partitioned
	// tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables bool `pulumi:"usePartitionedTables"`
}

type ProjectSinkBigqueryOptionsArgs

type ProjectSinkBigqueryOptionsArgs struct {
	// Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables).
	// By default, Logging creates dated tables based on the log entries' timestamps, e.g. `syslog20170523`. With partitioned
	// tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables)
	// has to be used instead. In both cases, tables are sharded based on UTC timezone.
	UsePartitionedTables pulumi.BoolInput `pulumi:"usePartitionedTables"`
}

func (ProjectSinkBigqueryOptionsArgs) ElementType

func (ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsOutput

func (i ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsOutput() ProjectSinkBigqueryOptionsOutput

func (ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsOutputWithContext

func (i ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsOutputWithContext(ctx context.Context) ProjectSinkBigqueryOptionsOutput

func (ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsPtrOutput

func (i ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsPtrOutput() ProjectSinkBigqueryOptionsPtrOutput

func (ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsPtrOutputWithContext

func (i ProjectSinkBigqueryOptionsArgs) ToProjectSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) ProjectSinkBigqueryOptionsPtrOutput

type ProjectSinkBigqueryOptionsInput

type ProjectSinkBigqueryOptionsInput interface {
	pulumi.Input

	ToProjectSinkBigqueryOptionsOutput() ProjectSinkBigqueryOptionsOutput
	ToProjectSinkBigqueryOptionsOutputWithContext(context.Context) ProjectSinkBigqueryOptionsOutput
}

ProjectSinkBigqueryOptionsInput is an input type that accepts ProjectSinkBigqueryOptionsArgs and ProjectSinkBigqueryOptionsOutput values. You can construct a concrete instance of `ProjectSinkBigqueryOptionsInput` via:

ProjectSinkBigqueryOptionsArgs{...}

type ProjectSinkBigqueryOptionsOutput

type ProjectSinkBigqueryOptionsOutput struct{ *pulumi.OutputState }

func (ProjectSinkBigqueryOptionsOutput) ElementType

func (ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsOutput

func (o ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsOutput() ProjectSinkBigqueryOptionsOutput

func (ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsOutputWithContext

func (o ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsOutputWithContext(ctx context.Context) ProjectSinkBigqueryOptionsOutput

func (ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsPtrOutput

func (o ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsPtrOutput() ProjectSinkBigqueryOptionsPtrOutput

func (ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsPtrOutputWithContext

func (o ProjectSinkBigqueryOptionsOutput) ToProjectSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) ProjectSinkBigqueryOptionsPtrOutput

func (ProjectSinkBigqueryOptionsOutput) UsePartitionedTables

func (o ProjectSinkBigqueryOptionsOutput) UsePartitionedTables() pulumi.BoolOutput

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. `syslog20170523`. With partitioned tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type ProjectSinkBigqueryOptionsPtrInput

type ProjectSinkBigqueryOptionsPtrInput interface {
	pulumi.Input

	ToProjectSinkBigqueryOptionsPtrOutput() ProjectSinkBigqueryOptionsPtrOutput
	ToProjectSinkBigqueryOptionsPtrOutputWithContext(context.Context) ProjectSinkBigqueryOptionsPtrOutput
}

ProjectSinkBigqueryOptionsPtrInput is an input type that accepts ProjectSinkBigqueryOptionsArgs, ProjectSinkBigqueryOptionsPtr and ProjectSinkBigqueryOptionsPtrOutput values. You can construct a concrete instance of `ProjectSinkBigqueryOptionsPtrInput` via:

        ProjectSinkBigqueryOptionsArgs{...}

or:

        nil

type ProjectSinkBigqueryOptionsPtrOutput

type ProjectSinkBigqueryOptionsPtrOutput struct{ *pulumi.OutputState }

func (ProjectSinkBigqueryOptionsPtrOutput) Elem

func (ProjectSinkBigqueryOptionsPtrOutput) ElementType

func (ProjectSinkBigqueryOptionsPtrOutput) ToProjectSinkBigqueryOptionsPtrOutput

func (o ProjectSinkBigqueryOptionsPtrOutput) ToProjectSinkBigqueryOptionsPtrOutput() ProjectSinkBigqueryOptionsPtrOutput

func (ProjectSinkBigqueryOptionsPtrOutput) ToProjectSinkBigqueryOptionsPtrOutputWithContext

func (o ProjectSinkBigqueryOptionsPtrOutput) ToProjectSinkBigqueryOptionsPtrOutputWithContext(ctx context.Context) ProjectSinkBigqueryOptionsPtrOutput

func (ProjectSinkBigqueryOptionsPtrOutput) UsePartitionedTables

func (o ProjectSinkBigqueryOptionsPtrOutput) UsePartitionedTables() pulumi.BoolPtrOutput

Whether to use [BigQuery's partition tables](https://cloud.google.com/bigquery/docs/partitioned-tables). By default, Logging creates dated tables based on the log entries' timestamps, e.g. `syslog20170523`. With partitioned tables the date suffix is no longer present and [special query syntax](https://cloud.google.com/bigquery/docs/querying-partitioned-tables) has to be used instead. In both cases, tables are sharded based on UTC timezone.

type ProjectSinkExclusion

type ProjectSinkExclusion struct {
	// A description of this exclusion.
	Description *string `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled *bool `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter string `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name string `pulumi:"name"`
}

type ProjectSinkExclusionArgs

type ProjectSinkExclusionArgs struct {
	// A description of this exclusion.
	Description pulumi.StringPtrInput `pulumi:"description"`
	// If set to True, then this exclusion is disabled and it does not exclude any log entries.
	Disabled pulumi.BoolPtrInput `pulumi:"disabled"`
	// An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringInput `pulumi:"filter"`
	// A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.
	Name pulumi.StringInput `pulumi:"name"`
}

func (ProjectSinkExclusionArgs) ElementType

func (ProjectSinkExclusionArgs) ElementType() reflect.Type

func (ProjectSinkExclusionArgs) ToProjectSinkExclusionOutput

func (i ProjectSinkExclusionArgs) ToProjectSinkExclusionOutput() ProjectSinkExclusionOutput

func (ProjectSinkExclusionArgs) ToProjectSinkExclusionOutputWithContext

func (i ProjectSinkExclusionArgs) ToProjectSinkExclusionOutputWithContext(ctx context.Context) ProjectSinkExclusionOutput

type ProjectSinkExclusionArray

type ProjectSinkExclusionArray []ProjectSinkExclusionInput

func (ProjectSinkExclusionArray) ElementType

func (ProjectSinkExclusionArray) ElementType() reflect.Type

func (ProjectSinkExclusionArray) ToProjectSinkExclusionArrayOutput

func (i ProjectSinkExclusionArray) ToProjectSinkExclusionArrayOutput() ProjectSinkExclusionArrayOutput

func (ProjectSinkExclusionArray) ToProjectSinkExclusionArrayOutputWithContext

func (i ProjectSinkExclusionArray) ToProjectSinkExclusionArrayOutputWithContext(ctx context.Context) ProjectSinkExclusionArrayOutput

type ProjectSinkExclusionArrayInput

type ProjectSinkExclusionArrayInput interface {
	pulumi.Input

	ToProjectSinkExclusionArrayOutput() ProjectSinkExclusionArrayOutput
	ToProjectSinkExclusionArrayOutputWithContext(context.Context) ProjectSinkExclusionArrayOutput
}

ProjectSinkExclusionArrayInput is an input type that accepts ProjectSinkExclusionArray and ProjectSinkExclusionArrayOutput values. You can construct a concrete instance of `ProjectSinkExclusionArrayInput` via:

ProjectSinkExclusionArray{ ProjectSinkExclusionArgs{...} }

type ProjectSinkExclusionArrayOutput

type ProjectSinkExclusionArrayOutput struct{ *pulumi.OutputState }

func (ProjectSinkExclusionArrayOutput) ElementType

func (ProjectSinkExclusionArrayOutput) Index

func (ProjectSinkExclusionArrayOutput) ToProjectSinkExclusionArrayOutput

func (o ProjectSinkExclusionArrayOutput) ToProjectSinkExclusionArrayOutput() ProjectSinkExclusionArrayOutput

func (ProjectSinkExclusionArrayOutput) ToProjectSinkExclusionArrayOutputWithContext

func (o ProjectSinkExclusionArrayOutput) ToProjectSinkExclusionArrayOutputWithContext(ctx context.Context) ProjectSinkExclusionArrayOutput

type ProjectSinkExclusionInput

type ProjectSinkExclusionInput interface {
	pulumi.Input

	ToProjectSinkExclusionOutput() ProjectSinkExclusionOutput
	ToProjectSinkExclusionOutputWithContext(context.Context) ProjectSinkExclusionOutput
}

ProjectSinkExclusionInput is an input type that accepts ProjectSinkExclusionArgs and ProjectSinkExclusionOutput values. You can construct a concrete instance of `ProjectSinkExclusionInput` via:

ProjectSinkExclusionArgs{...}

type ProjectSinkExclusionOutput

type ProjectSinkExclusionOutput struct{ *pulumi.OutputState }

func (ProjectSinkExclusionOutput) Description

A description of this exclusion.

func (ProjectSinkExclusionOutput) Disabled

If set to True, then this exclusion is disabled and it does not exclude any log entries.

func (ProjectSinkExclusionOutput) ElementType

func (ProjectSinkExclusionOutput) ElementType() reflect.Type

func (ProjectSinkExclusionOutput) Filter

An advanced logs filter that matches the log entries to be excluded. By using the sample function, you can exclude less than 100% of the matching log entries. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (ProjectSinkExclusionOutput) Name

A client-assigned identifier, such as `load-balancer-exclusion`. Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.

func (ProjectSinkExclusionOutput) ToProjectSinkExclusionOutput

func (o ProjectSinkExclusionOutput) ToProjectSinkExclusionOutput() ProjectSinkExclusionOutput

func (ProjectSinkExclusionOutput) ToProjectSinkExclusionOutputWithContext

func (o ProjectSinkExclusionOutput) ToProjectSinkExclusionOutputWithContext(ctx context.Context) ProjectSinkExclusionOutput

type ProjectSinkInput

type ProjectSinkInput interface {
	pulumi.Input

	ToProjectSinkOutput() ProjectSinkOutput
	ToProjectSinkOutputWithContext(ctx context.Context) ProjectSinkOutput
}

type ProjectSinkMap

type ProjectSinkMap map[string]ProjectSinkInput

func (ProjectSinkMap) ElementType

func (ProjectSinkMap) ElementType() reflect.Type

func (ProjectSinkMap) ToProjectSinkMapOutput

func (i ProjectSinkMap) ToProjectSinkMapOutput() ProjectSinkMapOutput

func (ProjectSinkMap) ToProjectSinkMapOutputWithContext

func (i ProjectSinkMap) ToProjectSinkMapOutputWithContext(ctx context.Context) ProjectSinkMapOutput

type ProjectSinkMapInput

type ProjectSinkMapInput interface {
	pulumi.Input

	ToProjectSinkMapOutput() ProjectSinkMapOutput
	ToProjectSinkMapOutputWithContext(context.Context) ProjectSinkMapOutput
}

ProjectSinkMapInput is an input type that accepts ProjectSinkMap and ProjectSinkMapOutput values. You can construct a concrete instance of `ProjectSinkMapInput` via:

ProjectSinkMap{ "key": ProjectSinkArgs{...} }

type ProjectSinkMapOutput

type ProjectSinkMapOutput struct{ *pulumi.OutputState }

func (ProjectSinkMapOutput) ElementType

func (ProjectSinkMapOutput) ElementType() reflect.Type

func (ProjectSinkMapOutput) MapIndex

func (ProjectSinkMapOutput) ToProjectSinkMapOutput

func (o ProjectSinkMapOutput) ToProjectSinkMapOutput() ProjectSinkMapOutput

func (ProjectSinkMapOutput) ToProjectSinkMapOutputWithContext

func (o ProjectSinkMapOutput) ToProjectSinkMapOutputWithContext(ctx context.Context) ProjectSinkMapOutput

type ProjectSinkOutput

type ProjectSinkOutput struct{ *pulumi.OutputState }

func (ProjectSinkOutput) BigqueryOptions

Options that affect sinks exporting data to BigQuery. Structure documented below.

func (ProjectSinkOutput) CustomWriterIdentity

func (o ProjectSinkOutput) CustomWriterIdentity() pulumi.StringPtrOutput

A user managed service account that will be used to write the log entries. The format must be `serviceAccount:some@email`. This field can only be specified if you are routing logs to a destination outside this sink's project. If not specified, a Logging service account will automatically be generated.

func (ProjectSinkOutput) Description

func (o ProjectSinkOutput) Description() pulumi.StringPtrOutput

A description of this sink. The maximum length of the description is 8000 characters.

func (ProjectSinkOutput) Destination

func (o ProjectSinkOutput) Destination() pulumi.StringOutput

The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:

- `storage.googleapis.com/[GCS_BUCKET]` - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]` - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]` - `logging.googleapis.com/projects/[PROJECT_ID]`

The writer associated with the sink must have access to write to the above resource.

func (ProjectSinkOutput) Disabled

func (o ProjectSinkOutput) Disabled() pulumi.BoolPtrOutput

If set to True, then this sink is disabled and it does not export any log entries.

func (ProjectSinkOutput) ElementType

func (ProjectSinkOutput) ElementType() reflect.Type

func (ProjectSinkOutput) Exclusions

Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported. Can be repeated multiple times for multiple exclusions. Structure is documented below.

func (ProjectSinkOutput) Filter

The filter to apply when exporting logs. Only log entries that match the filter are exported. See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to write a filter.

func (ProjectSinkOutput) Name

The name of the logging sink. Logging automatically creates two sinks: `_Required` and `_Default`.

func (ProjectSinkOutput) Project

The ID of the project to create the sink in. If omitted, the project associated with the provider is used.

func (ProjectSinkOutput) ToProjectSinkOutput

func (o ProjectSinkOutput) ToProjectSinkOutput() ProjectSinkOutput

func (ProjectSinkOutput) ToProjectSinkOutputWithContext

func (o ProjectSinkOutput) ToProjectSinkOutputWithContext(ctx context.Context) ProjectSinkOutput

func (ProjectSinkOutput) UniqueWriterIdentity

func (o ProjectSinkOutput) UniqueWriterIdentity() pulumi.BoolPtrOutput

Whether or not to create a unique identity associated with this sink. If `false`, then the `writerIdentity` used is `serviceAccount:cloud-logs@system.gserviceaccount.com`. If `true` (the default), then a unique service account is created and used for this sink. If you wish to publish logs across projects or utilize `bigqueryOptions`, you must set `uniqueWriterIdentity` to true.

func (ProjectSinkOutput) WriterIdentity

func (o ProjectSinkOutput) WriterIdentity() pulumi.StringOutput

The identity associated with this sink. This identity must be granted write access to the configured `destination`.

type ProjectSinkState

type ProjectSinkState struct {
	// Options that affect sinks exporting data to BigQuery. Structure documented below.
	BigqueryOptions ProjectSinkBigqueryOptionsPtrInput
	// A user managed service account that will be used to write
	// the log entries. The format must be `serviceAccount:some@email`. This field can only be specified if you are
	// routing logs to a destination outside this sink's project. If not specified, a Logging service account
	// will automatically be generated.
	CustomWriterIdentity pulumi.StringPtrInput
	// A description of this sink. The maximum length of the description is 8000 characters.
	Description pulumi.StringPtrInput
	// The destination of the sink (or, in other words, where logs are written to). Can be a Cloud Storage bucket, a PubSub topic, a BigQuery dataset, a Cloud Logging bucket, or a Google Cloud project. Examples:
	//
	// - `storage.googleapis.com/[GCS_BUCKET]`
	// - `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]`
	// - `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]/locations/global/buckets/[BUCKET_ID]`
	// - `logging.googleapis.com/projects/[PROJECT_ID]`
	//
	// The writer associated with the sink must have access to write to the above resource.
	Destination pulumi.StringPtrInput
	// If set to True, then this sink is disabled and it does not export any log entries.
	Disabled pulumi.BoolPtrInput
	// Log entries that match any of the exclusion filters will not be exported. If a log entry is matched by both `filter` and one of `exclusions.filter`, it will not be exported.  Can be repeated multiple times for multiple exclusions. Structure is documented below.
	Exclusions ProjectSinkExclusionArrayInput
	// The filter to apply when exporting logs. Only log entries that match the filter are exported.
	// See [Advanced Log Filters](https://cloud.google.com/logging/docs/view/advanced_filters) for information on how to
	// write a filter.
	Filter pulumi.StringPtrInput
	// The name of the logging sink. Logging automatically creates two sinks: `_Required` and `_Default`.
	Name pulumi.StringPtrInput
	// The ID of the project to create the sink in. If omitted, the project associated with the provider is
	// used.
	Project pulumi.StringPtrInput
	// Whether or not to create a unique identity associated with this sink. If `false`, then the `writerIdentity` used is `serviceAccount:cloud-logs@system.gserviceaccount.com`. If `true` (the default),
	// then a unique service account is created and used for this sink. If you wish to publish logs across projects or utilize
	// `bigqueryOptions`, you must set `uniqueWriterIdentity` to true.
	UniqueWriterIdentity pulumi.BoolPtrInput
	// The identity associated with this sink. This identity must be granted write access to the
	// configured `destination`.
	WriterIdentity pulumi.StringPtrInput
}

func (ProjectSinkState) ElementType

func (ProjectSinkState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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