pubsub

package
v6.67.1 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2023 License: Apache-2.0 Imports: 8 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetSubscriptionBigqueryConfig added in v6.47.0

type GetSubscriptionBigqueryConfig struct {
	DropUnknownFields bool   `pulumi:"dropUnknownFields"`
	Table             string `pulumi:"table"`
	UseTopicSchema    bool   `pulumi:"useTopicSchema"`
	WriteMetadata     bool   `pulumi:"writeMetadata"`
}

type GetSubscriptionBigqueryConfigArgs added in v6.47.0

type GetSubscriptionBigqueryConfigArgs struct {
	DropUnknownFields pulumi.BoolInput   `pulumi:"dropUnknownFields"`
	Table             pulumi.StringInput `pulumi:"table"`
	UseTopicSchema    pulumi.BoolInput   `pulumi:"useTopicSchema"`
	WriteMetadata     pulumi.BoolInput   `pulumi:"writeMetadata"`
}

func (GetSubscriptionBigqueryConfigArgs) ElementType added in v6.47.0

func (GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutput added in v6.47.0

func (i GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutput() GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutputWithContext added in v6.47.0

func (i GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutputWithContext(ctx context.Context) GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigArgs) ToOutput added in v6.65.1

type GetSubscriptionBigqueryConfigArray added in v6.47.0

type GetSubscriptionBigqueryConfigArray []GetSubscriptionBigqueryConfigInput

func (GetSubscriptionBigqueryConfigArray) ElementType added in v6.47.0

func (GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutput added in v6.47.0

func (i GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutput() GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArray) ToOutput added in v6.65.1

type GetSubscriptionBigqueryConfigArrayInput added in v6.47.0

type GetSubscriptionBigqueryConfigArrayInput interface {
	pulumi.Input

	ToGetSubscriptionBigqueryConfigArrayOutput() GetSubscriptionBigqueryConfigArrayOutput
	ToGetSubscriptionBigqueryConfigArrayOutputWithContext(context.Context) GetSubscriptionBigqueryConfigArrayOutput
}

GetSubscriptionBigqueryConfigArrayInput is an input type that accepts GetSubscriptionBigqueryConfigArray and GetSubscriptionBigqueryConfigArrayOutput values. You can construct a concrete instance of `GetSubscriptionBigqueryConfigArrayInput` via:

GetSubscriptionBigqueryConfigArray{ GetSubscriptionBigqueryConfigArgs{...} }

type GetSubscriptionBigqueryConfigArrayOutput added in v6.47.0

type GetSubscriptionBigqueryConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionBigqueryConfigArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionBigqueryConfigArrayOutput) Index added in v6.47.0

func (GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutput added in v6.47.0

func (o GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutput() GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionBigqueryConfigInput added in v6.47.0

type GetSubscriptionBigqueryConfigInput interface {
	pulumi.Input

	ToGetSubscriptionBigqueryConfigOutput() GetSubscriptionBigqueryConfigOutput
	ToGetSubscriptionBigqueryConfigOutputWithContext(context.Context) GetSubscriptionBigqueryConfigOutput
}

GetSubscriptionBigqueryConfigInput is an input type that accepts GetSubscriptionBigqueryConfigArgs and GetSubscriptionBigqueryConfigOutput values. You can construct a concrete instance of `GetSubscriptionBigqueryConfigInput` via:

GetSubscriptionBigqueryConfigArgs{...}

type GetSubscriptionBigqueryConfigOutput added in v6.47.0

type GetSubscriptionBigqueryConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionBigqueryConfigOutput) DropUnknownFields added in v6.47.0

func (GetSubscriptionBigqueryConfigOutput) ElementType added in v6.47.0

func (GetSubscriptionBigqueryConfigOutput) Table added in v6.47.0

func (GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutput added in v6.47.0

func (o GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutput() GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutputWithContext added in v6.47.0

func (o GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutputWithContext(ctx context.Context) GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigOutput) ToOutput added in v6.65.1

func (GetSubscriptionBigqueryConfigOutput) UseTopicSchema added in v6.47.0

func (GetSubscriptionBigqueryConfigOutput) WriteMetadata added in v6.47.0

type GetSubscriptionCloudStorageConfig added in v6.64.0

type GetSubscriptionCloudStorageConfig struct {
	AvroConfigs    []GetSubscriptionCloudStorageConfigAvroConfig `pulumi:"avroConfigs"`
	Bucket         string                                        `pulumi:"bucket"`
	FilenamePrefix string                                        `pulumi:"filenamePrefix"`
	FilenameSuffix string                                        `pulumi:"filenameSuffix"`
	MaxBytes       int                                           `pulumi:"maxBytes"`
	MaxDuration    string                                        `pulumi:"maxDuration"`
	State          string                                        `pulumi:"state"`
}

type GetSubscriptionCloudStorageConfigArgs added in v6.64.0

type GetSubscriptionCloudStorageConfigArgs struct {
	AvroConfigs    GetSubscriptionCloudStorageConfigAvroConfigArrayInput `pulumi:"avroConfigs"`
	Bucket         pulumi.StringInput                                    `pulumi:"bucket"`
	FilenamePrefix pulumi.StringInput                                    `pulumi:"filenamePrefix"`
	FilenameSuffix pulumi.StringInput                                    `pulumi:"filenameSuffix"`
	MaxBytes       pulumi.IntInput                                       `pulumi:"maxBytes"`
	MaxDuration    pulumi.StringInput                                    `pulumi:"maxDuration"`
	State          pulumi.StringInput                                    `pulumi:"state"`
}

func (GetSubscriptionCloudStorageConfigArgs) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutput added in v6.64.0

func (i GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutput() GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutputWithContext added in v6.64.0

func (i GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigArgs) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigArray added in v6.64.0

type GetSubscriptionCloudStorageConfigArray []GetSubscriptionCloudStorageConfigInput

func (GetSubscriptionCloudStorageConfigArray) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutput added in v6.64.0

func (i GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutput() GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext added in v6.64.0

func (i GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArray) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigArrayInput added in v6.64.0

type GetSubscriptionCloudStorageConfigArrayInput interface {
	pulumi.Input

	ToGetSubscriptionCloudStorageConfigArrayOutput() GetSubscriptionCloudStorageConfigArrayOutput
	ToGetSubscriptionCloudStorageConfigArrayOutputWithContext(context.Context) GetSubscriptionCloudStorageConfigArrayOutput
}

GetSubscriptionCloudStorageConfigArrayInput is an input type that accepts GetSubscriptionCloudStorageConfigArray and GetSubscriptionCloudStorageConfigArrayOutput values. You can construct a concrete instance of `GetSubscriptionCloudStorageConfigArrayInput` via:

GetSubscriptionCloudStorageConfigArray{ GetSubscriptionCloudStorageConfigArgs{...} }

type GetSubscriptionCloudStorageConfigArrayOutput added in v6.64.0

type GetSubscriptionCloudStorageConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigArrayOutput) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigArrayOutput) Index added in v6.64.0

func (GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutput added in v6.64.0

func (o GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutput() GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext added in v6.64.0

func (o GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigAvroConfig added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfig struct {
	WriteMetadata bool `pulumi:"writeMetadata"`
}

type GetSubscriptionCloudStorageConfigAvroConfigArgs added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigArgs struct {
	WriteMetadata pulumi.BoolInput `pulumi:"writeMetadata"`
}

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

func (i GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutput() GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext added in v6.64.0

func (i GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigAvroConfigArray added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigArray []GetSubscriptionCloudStorageConfigAvroConfigInput

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput added in v6.64.0

func (i GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput() GetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext added in v6.64.0

func (i GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigAvroConfigArrayInput added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigArrayInput interface {
	pulumi.Input

	ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput() GetSubscriptionCloudStorageConfigAvroConfigArrayOutput
	ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext(context.Context) GetSubscriptionCloudStorageConfigAvroConfigArrayOutput
}

GetSubscriptionCloudStorageConfigAvroConfigArrayInput is an input type that accepts GetSubscriptionCloudStorageConfigAvroConfigArray and GetSubscriptionCloudStorageConfigAvroConfigArrayOutput values. You can construct a concrete instance of `GetSubscriptionCloudStorageConfigAvroConfigArrayInput` via:

GetSubscriptionCloudStorageConfigAvroConfigArray{ GetSubscriptionCloudStorageConfigAvroConfigArgs{...} }

type GetSubscriptionCloudStorageConfigAvroConfigArrayOutput added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) Index added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext added in v6.64.0

func (o GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionCloudStorageConfigAvroConfigInput added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigInput interface {
	pulumi.Input

	ToGetSubscriptionCloudStorageConfigAvroConfigOutput() GetSubscriptionCloudStorageConfigAvroConfigOutput
	ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext(context.Context) GetSubscriptionCloudStorageConfigAvroConfigOutput
}

GetSubscriptionCloudStorageConfigAvroConfigInput is an input type that accepts GetSubscriptionCloudStorageConfigAvroConfigArgs and GetSubscriptionCloudStorageConfigAvroConfigOutput values. You can construct a concrete instance of `GetSubscriptionCloudStorageConfigAvroConfigInput` via:

GetSubscriptionCloudStorageConfigAvroConfigArgs{...}

type GetSubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

type GetSubscriptionCloudStorageConfigAvroConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

func (o GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutput() GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext added in v6.64.0

func (o GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ToOutput added in v6.65.1

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) WriteMetadata added in v6.64.0

type GetSubscriptionCloudStorageConfigInput added in v6.64.0

type GetSubscriptionCloudStorageConfigInput interface {
	pulumi.Input

	ToGetSubscriptionCloudStorageConfigOutput() GetSubscriptionCloudStorageConfigOutput
	ToGetSubscriptionCloudStorageConfigOutputWithContext(context.Context) GetSubscriptionCloudStorageConfigOutput
}

GetSubscriptionCloudStorageConfigInput is an input type that accepts GetSubscriptionCloudStorageConfigArgs and GetSubscriptionCloudStorageConfigOutput values. You can construct a concrete instance of `GetSubscriptionCloudStorageConfigInput` via:

GetSubscriptionCloudStorageConfigArgs{...}

type GetSubscriptionCloudStorageConfigOutput added in v6.64.0

type GetSubscriptionCloudStorageConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigOutput) AvroConfigs added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) Bucket added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) ElementType added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) FilenamePrefix added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) FilenameSuffix added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) MaxBytes added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) MaxDuration added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) State added in v6.64.0

func (GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutput added in v6.64.0

func (o GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutput() GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutputWithContext added in v6.64.0

func (o GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutputWithContext(ctx context.Context) GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigOutput) ToOutput added in v6.65.1

type GetSubscriptionDeadLetterPolicy added in v6.47.0

type GetSubscriptionDeadLetterPolicy struct {
	DeadLetterTopic     string `pulumi:"deadLetterTopic"`
	MaxDeliveryAttempts int    `pulumi:"maxDeliveryAttempts"`
}

type GetSubscriptionDeadLetterPolicyArgs added in v6.47.0

type GetSubscriptionDeadLetterPolicyArgs struct {
	DeadLetterTopic     pulumi.StringInput `pulumi:"deadLetterTopic"`
	MaxDeliveryAttempts pulumi.IntInput    `pulumi:"maxDeliveryAttempts"`
}

func (GetSubscriptionDeadLetterPolicyArgs) ElementType added in v6.47.0

func (GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutput added in v6.47.0

func (i GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutput() GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutputWithContext added in v6.47.0

func (i GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutputWithContext(ctx context.Context) GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyArgs) ToOutput added in v6.65.1

type GetSubscriptionDeadLetterPolicyArray added in v6.47.0

type GetSubscriptionDeadLetterPolicyArray []GetSubscriptionDeadLetterPolicyInput

func (GetSubscriptionDeadLetterPolicyArray) ElementType added in v6.47.0

func (GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutput added in v6.47.0

func (i GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutput() GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArray) ToOutput added in v6.65.1

type GetSubscriptionDeadLetterPolicyArrayInput added in v6.47.0

type GetSubscriptionDeadLetterPolicyArrayInput interface {
	pulumi.Input

	ToGetSubscriptionDeadLetterPolicyArrayOutput() GetSubscriptionDeadLetterPolicyArrayOutput
	ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext(context.Context) GetSubscriptionDeadLetterPolicyArrayOutput
}

GetSubscriptionDeadLetterPolicyArrayInput is an input type that accepts GetSubscriptionDeadLetterPolicyArray and GetSubscriptionDeadLetterPolicyArrayOutput values. You can construct a concrete instance of `GetSubscriptionDeadLetterPolicyArrayInput` via:

GetSubscriptionDeadLetterPolicyArray{ GetSubscriptionDeadLetterPolicyArgs{...} }

type GetSubscriptionDeadLetterPolicyArrayOutput added in v6.47.0

type GetSubscriptionDeadLetterPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionDeadLetterPolicyArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionDeadLetterPolicyArrayOutput) Index added in v6.47.0

func (GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutput added in v6.47.0

func (o GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutput() GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionDeadLetterPolicyInput added in v6.47.0

type GetSubscriptionDeadLetterPolicyInput interface {
	pulumi.Input

	ToGetSubscriptionDeadLetterPolicyOutput() GetSubscriptionDeadLetterPolicyOutput
	ToGetSubscriptionDeadLetterPolicyOutputWithContext(context.Context) GetSubscriptionDeadLetterPolicyOutput
}

GetSubscriptionDeadLetterPolicyInput is an input type that accepts GetSubscriptionDeadLetterPolicyArgs and GetSubscriptionDeadLetterPolicyOutput values. You can construct a concrete instance of `GetSubscriptionDeadLetterPolicyInput` via:

GetSubscriptionDeadLetterPolicyArgs{...}

type GetSubscriptionDeadLetterPolicyOutput added in v6.47.0

type GetSubscriptionDeadLetterPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionDeadLetterPolicyOutput) DeadLetterTopic added in v6.47.0

func (GetSubscriptionDeadLetterPolicyOutput) ElementType added in v6.47.0

func (GetSubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts added in v6.47.0

func (o GetSubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts() pulumi.IntOutput

func (GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutput added in v6.47.0

func (o GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutput() GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutputWithContext added in v6.47.0

func (o GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutputWithContext(ctx context.Context) GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyOutput) ToOutput added in v6.65.1

type GetSubscriptionExpirationPolicy added in v6.47.0

type GetSubscriptionExpirationPolicy struct {
	Ttl string `pulumi:"ttl"`
}

type GetSubscriptionExpirationPolicyArgs added in v6.47.0

type GetSubscriptionExpirationPolicyArgs struct {
	Ttl pulumi.StringInput `pulumi:"ttl"`
}

func (GetSubscriptionExpirationPolicyArgs) ElementType added in v6.47.0

func (GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutput added in v6.47.0

func (i GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutput() GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutputWithContext added in v6.47.0

func (i GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutputWithContext(ctx context.Context) GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyArgs) ToOutput added in v6.65.1

type GetSubscriptionExpirationPolicyArray added in v6.47.0

type GetSubscriptionExpirationPolicyArray []GetSubscriptionExpirationPolicyInput

func (GetSubscriptionExpirationPolicyArray) ElementType added in v6.47.0

func (GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutput added in v6.47.0

func (i GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutput() GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArray) ToOutput added in v6.65.1

type GetSubscriptionExpirationPolicyArrayInput added in v6.47.0

type GetSubscriptionExpirationPolicyArrayInput interface {
	pulumi.Input

	ToGetSubscriptionExpirationPolicyArrayOutput() GetSubscriptionExpirationPolicyArrayOutput
	ToGetSubscriptionExpirationPolicyArrayOutputWithContext(context.Context) GetSubscriptionExpirationPolicyArrayOutput
}

GetSubscriptionExpirationPolicyArrayInput is an input type that accepts GetSubscriptionExpirationPolicyArray and GetSubscriptionExpirationPolicyArrayOutput values. You can construct a concrete instance of `GetSubscriptionExpirationPolicyArrayInput` via:

GetSubscriptionExpirationPolicyArray{ GetSubscriptionExpirationPolicyArgs{...} }

type GetSubscriptionExpirationPolicyArrayOutput added in v6.47.0

type GetSubscriptionExpirationPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionExpirationPolicyArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionExpirationPolicyArrayOutput) Index added in v6.47.0

func (GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutput added in v6.47.0

func (o GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutput() GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionExpirationPolicyInput added in v6.47.0

type GetSubscriptionExpirationPolicyInput interface {
	pulumi.Input

	ToGetSubscriptionExpirationPolicyOutput() GetSubscriptionExpirationPolicyOutput
	ToGetSubscriptionExpirationPolicyOutputWithContext(context.Context) GetSubscriptionExpirationPolicyOutput
}

GetSubscriptionExpirationPolicyInput is an input type that accepts GetSubscriptionExpirationPolicyArgs and GetSubscriptionExpirationPolicyOutput values. You can construct a concrete instance of `GetSubscriptionExpirationPolicyInput` via:

GetSubscriptionExpirationPolicyArgs{...}

type GetSubscriptionExpirationPolicyOutput added in v6.47.0

type GetSubscriptionExpirationPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionExpirationPolicyOutput) ElementType added in v6.47.0

func (GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutput added in v6.47.0

func (o GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutput() GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutputWithContext added in v6.47.0

func (o GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutputWithContext(ctx context.Context) GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyOutput) ToOutput added in v6.65.1

func (GetSubscriptionExpirationPolicyOutput) Ttl added in v6.47.0

type GetSubscriptionIamPolicyArgs added in v6.59.0

type GetSubscriptionIamPolicyArgs struct {
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
	// The subscription name or id to bind to attach IAM policy to.
	Subscription string `pulumi:"subscription"`
}

A collection of arguments for invoking getSubscriptionIamPolicy.

type GetSubscriptionIamPolicyOutputArgs added in v6.59.0

type GetSubscriptionIamPolicyOutputArgs struct {
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput `pulumi:"subscription"`
}

A collection of arguments for invoking getSubscriptionIamPolicy.

func (GetSubscriptionIamPolicyOutputArgs) ElementType added in v6.59.0

type GetSubscriptionIamPolicyResult added in v6.59.0

type GetSubscriptionIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Computed) The policy data
	PolicyData   string `pulumi:"policyData"`
	Project      string `pulumi:"project"`
	Subscription string `pulumi:"subscription"`
}

A collection of values returned by getSubscriptionIamPolicy.

func GetSubscriptionIamPolicy added in v6.59.0

func GetSubscriptionIamPolicy(ctx *pulumi.Context, args *GetSubscriptionIamPolicyArgs, opts ...pulumi.InvokeOption) (*GetSubscriptionIamPolicyResult, error)

Retrieves the current IAM policy data for a Pubsub subscription.

## example

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.GetSubscriptionIamPolicy(ctx, &pubsub.GetSubscriptionIamPolicyArgs{
			Subscription: google_pubsub_subscription.Subscription.Id,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetSubscriptionIamPolicyResultOutput added in v6.59.0

type GetSubscriptionIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSubscriptionIamPolicy.

func (GetSubscriptionIamPolicyResultOutput) ElementType added in v6.59.0

func (GetSubscriptionIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (GetSubscriptionIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (GetSubscriptionIamPolicyResultOutput) PolicyData added in v6.59.0

(Computed) The policy data

func (GetSubscriptionIamPolicyResultOutput) Project added in v6.59.0

func (GetSubscriptionIamPolicyResultOutput) Subscription added in v6.59.0

func (GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutput added in v6.59.0

func (o GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutput() GetSubscriptionIamPolicyResultOutput

func (GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutputWithContext added in v6.59.0

func (o GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutputWithContext(ctx context.Context) GetSubscriptionIamPolicyResultOutput

func (GetSubscriptionIamPolicyResultOutput) ToOutput added in v6.65.1

type GetSubscriptionPushConfig added in v6.47.0

type GetSubscriptionPushConfig struct {
	Attributes   map[string]string                    `pulumi:"attributes"`
	NoWrappers   []GetSubscriptionPushConfigNoWrapper `pulumi:"noWrappers"`
	OidcTokens   []GetSubscriptionPushConfigOidcToken `pulumi:"oidcTokens"`
	PushEndpoint string                               `pulumi:"pushEndpoint"`
}

type GetSubscriptionPushConfigArgs added in v6.47.0

type GetSubscriptionPushConfigArgs struct {
	Attributes   pulumi.StringMapInput                        `pulumi:"attributes"`
	NoWrappers   GetSubscriptionPushConfigNoWrapperArrayInput `pulumi:"noWrappers"`
	OidcTokens   GetSubscriptionPushConfigOidcTokenArrayInput `pulumi:"oidcTokens"`
	PushEndpoint pulumi.StringInput                           `pulumi:"pushEndpoint"`
}

func (GetSubscriptionPushConfigArgs) ElementType added in v6.47.0

func (GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutput added in v6.47.0

func (i GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutput() GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutputWithContext added in v6.47.0

func (i GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigArgs) ToOutput added in v6.65.1

type GetSubscriptionPushConfigArray added in v6.47.0

type GetSubscriptionPushConfigArray []GetSubscriptionPushConfigInput

func (GetSubscriptionPushConfigArray) ElementType added in v6.47.0

func (GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutput added in v6.47.0

func (i GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutput() GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArray) ToOutput added in v6.65.1

type GetSubscriptionPushConfigArrayInput added in v6.47.0

type GetSubscriptionPushConfigArrayInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigArrayOutput() GetSubscriptionPushConfigArrayOutput
	ToGetSubscriptionPushConfigArrayOutputWithContext(context.Context) GetSubscriptionPushConfigArrayOutput
}

GetSubscriptionPushConfigArrayInput is an input type that accepts GetSubscriptionPushConfigArray and GetSubscriptionPushConfigArrayOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigArrayInput` via:

GetSubscriptionPushConfigArray{ GetSubscriptionPushConfigArgs{...} }

type GetSubscriptionPushConfigArrayOutput added in v6.47.0

type GetSubscriptionPushConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionPushConfigArrayOutput) Index added in v6.47.0

func (GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutput added in v6.47.0

func (o GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutput() GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionPushConfigInput added in v6.47.0

type GetSubscriptionPushConfigInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigOutput() GetSubscriptionPushConfigOutput
	ToGetSubscriptionPushConfigOutputWithContext(context.Context) GetSubscriptionPushConfigOutput
}

GetSubscriptionPushConfigInput is an input type that accepts GetSubscriptionPushConfigArgs and GetSubscriptionPushConfigOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigInput` via:

GetSubscriptionPushConfigArgs{...}

type GetSubscriptionPushConfigNoWrapper added in v6.64.0

type GetSubscriptionPushConfigNoWrapper struct {
	WriteMetadata bool `pulumi:"writeMetadata"`
}

type GetSubscriptionPushConfigNoWrapperArgs added in v6.64.0

type GetSubscriptionPushConfigNoWrapperArgs struct {
	WriteMetadata pulumi.BoolInput `pulumi:"writeMetadata"`
}

func (GetSubscriptionPushConfigNoWrapperArgs) ElementType added in v6.64.0

func (GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutput added in v6.64.0

func (i GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutput() GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutputWithContext added in v6.64.0

func (i GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutputWithContext(ctx context.Context) GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperArgs) ToOutput added in v6.65.1

type GetSubscriptionPushConfigNoWrapperArray added in v6.64.0

type GetSubscriptionPushConfigNoWrapperArray []GetSubscriptionPushConfigNoWrapperInput

func (GetSubscriptionPushConfigNoWrapperArray) ElementType added in v6.64.0

func (GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutput added in v6.64.0

func (i GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutput() GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext added in v6.64.0

func (i GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArray) ToOutput added in v6.65.1

type GetSubscriptionPushConfigNoWrapperArrayInput added in v6.64.0

type GetSubscriptionPushConfigNoWrapperArrayInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigNoWrapperArrayOutput() GetSubscriptionPushConfigNoWrapperArrayOutput
	ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext(context.Context) GetSubscriptionPushConfigNoWrapperArrayOutput
}

GetSubscriptionPushConfigNoWrapperArrayInput is an input type that accepts GetSubscriptionPushConfigNoWrapperArray and GetSubscriptionPushConfigNoWrapperArrayOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigNoWrapperArrayInput` via:

GetSubscriptionPushConfigNoWrapperArray{ GetSubscriptionPushConfigNoWrapperArgs{...} }

type GetSubscriptionPushConfigNoWrapperArrayOutput added in v6.64.0

type GetSubscriptionPushConfigNoWrapperArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ElementType added in v6.64.0

func (GetSubscriptionPushConfigNoWrapperArrayOutput) Index added in v6.64.0

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutput added in v6.64.0

func (o GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutput() GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext added in v6.64.0

func (o GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionPushConfigNoWrapperInput added in v6.64.0

type GetSubscriptionPushConfigNoWrapperInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigNoWrapperOutput() GetSubscriptionPushConfigNoWrapperOutput
	ToGetSubscriptionPushConfigNoWrapperOutputWithContext(context.Context) GetSubscriptionPushConfigNoWrapperOutput
}

GetSubscriptionPushConfigNoWrapperInput is an input type that accepts GetSubscriptionPushConfigNoWrapperArgs and GetSubscriptionPushConfigNoWrapperOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigNoWrapperInput` via:

GetSubscriptionPushConfigNoWrapperArgs{...}

type GetSubscriptionPushConfigNoWrapperOutput added in v6.64.0

type GetSubscriptionPushConfigNoWrapperOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigNoWrapperOutput) ElementType added in v6.64.0

func (GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutput added in v6.64.0

func (o GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutput() GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutputWithContext added in v6.64.0

func (o GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutputWithContext(ctx context.Context) GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperOutput) ToOutput added in v6.65.1

func (GetSubscriptionPushConfigNoWrapperOutput) WriteMetadata added in v6.64.0

type GetSubscriptionPushConfigOidcToken added in v6.47.0

type GetSubscriptionPushConfigOidcToken struct {
	Audience            string `pulumi:"audience"`
	ServiceAccountEmail string `pulumi:"serviceAccountEmail"`
}

type GetSubscriptionPushConfigOidcTokenArgs added in v6.47.0

type GetSubscriptionPushConfigOidcTokenArgs struct {
	Audience            pulumi.StringInput `pulumi:"audience"`
	ServiceAccountEmail pulumi.StringInput `pulumi:"serviceAccountEmail"`
}

func (GetSubscriptionPushConfigOidcTokenArgs) ElementType added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutput added in v6.47.0

func (i GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutput() GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutputWithContext added in v6.47.0

func (i GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenArgs) ToOutput added in v6.65.1

type GetSubscriptionPushConfigOidcTokenArray added in v6.47.0

type GetSubscriptionPushConfigOidcTokenArray []GetSubscriptionPushConfigOidcTokenInput

func (GetSubscriptionPushConfigOidcTokenArray) ElementType added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutput added in v6.47.0

func (i GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutput() GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArray) ToOutput added in v6.65.1

type GetSubscriptionPushConfigOidcTokenArrayInput added in v6.47.0

type GetSubscriptionPushConfigOidcTokenArrayInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigOidcTokenArrayOutput() GetSubscriptionPushConfigOidcTokenArrayOutput
	ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext(context.Context) GetSubscriptionPushConfigOidcTokenArrayOutput
}

GetSubscriptionPushConfigOidcTokenArrayInput is an input type that accepts GetSubscriptionPushConfigOidcTokenArray and GetSubscriptionPushConfigOidcTokenArrayOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigOidcTokenArrayInput` via:

GetSubscriptionPushConfigOidcTokenArray{ GetSubscriptionPushConfigOidcTokenArgs{...} }

type GetSubscriptionPushConfigOidcTokenArrayOutput added in v6.47.0

type GetSubscriptionPushConfigOidcTokenArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenArrayOutput) Index added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutput added in v6.47.0

func (o GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutput() GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionPushConfigOidcTokenInput added in v6.47.0

type GetSubscriptionPushConfigOidcTokenInput interface {
	pulumi.Input

	ToGetSubscriptionPushConfigOidcTokenOutput() GetSubscriptionPushConfigOidcTokenOutput
	ToGetSubscriptionPushConfigOidcTokenOutputWithContext(context.Context) GetSubscriptionPushConfigOidcTokenOutput
}

GetSubscriptionPushConfigOidcTokenInput is an input type that accepts GetSubscriptionPushConfigOidcTokenArgs and GetSubscriptionPushConfigOidcTokenOutput values. You can construct a concrete instance of `GetSubscriptionPushConfigOidcTokenInput` via:

GetSubscriptionPushConfigOidcTokenArgs{...}

type GetSubscriptionPushConfigOidcTokenOutput added in v6.47.0

type GetSubscriptionPushConfigOidcTokenOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOidcTokenOutput) Audience added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenOutput) ElementType added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenOutput) ServiceAccountEmail added in v6.47.0

func (GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutput added in v6.47.0

func (o GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutput() GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutputWithContext added in v6.47.0

func (o GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenOutput) ToOutput added in v6.65.1

type GetSubscriptionPushConfigOutput added in v6.47.0

type GetSubscriptionPushConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOutput) Attributes added in v6.47.0

func (GetSubscriptionPushConfigOutput) ElementType added in v6.47.0

func (GetSubscriptionPushConfigOutput) NoWrappers added in v6.64.0

func (GetSubscriptionPushConfigOutput) OidcTokens added in v6.47.0

func (GetSubscriptionPushConfigOutput) PushEndpoint added in v6.47.0

func (GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutput added in v6.47.0

func (o GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutput() GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutputWithContext added in v6.47.0

func (o GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutputWithContext(ctx context.Context) GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigOutput) ToOutput added in v6.65.1

type GetSubscriptionRetryPolicy added in v6.47.0

type GetSubscriptionRetryPolicy struct {
	MaximumBackoff string `pulumi:"maximumBackoff"`
	MinimumBackoff string `pulumi:"minimumBackoff"`
}

type GetSubscriptionRetryPolicyArgs added in v6.47.0

type GetSubscriptionRetryPolicyArgs struct {
	MaximumBackoff pulumi.StringInput `pulumi:"maximumBackoff"`
	MinimumBackoff pulumi.StringInput `pulumi:"minimumBackoff"`
}

func (GetSubscriptionRetryPolicyArgs) ElementType added in v6.47.0

func (GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutput added in v6.47.0

func (i GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutput() GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutputWithContext added in v6.47.0

func (i GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutputWithContext(ctx context.Context) GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyArgs) ToOutput added in v6.65.1

type GetSubscriptionRetryPolicyArray added in v6.47.0

type GetSubscriptionRetryPolicyArray []GetSubscriptionRetryPolicyInput

func (GetSubscriptionRetryPolicyArray) ElementType added in v6.47.0

func (GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutput added in v6.47.0

func (i GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutput() GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutputWithContext added in v6.47.0

func (i GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArray) ToOutput added in v6.65.1

type GetSubscriptionRetryPolicyArrayInput added in v6.47.0

type GetSubscriptionRetryPolicyArrayInput interface {
	pulumi.Input

	ToGetSubscriptionRetryPolicyArrayOutput() GetSubscriptionRetryPolicyArrayOutput
	ToGetSubscriptionRetryPolicyArrayOutputWithContext(context.Context) GetSubscriptionRetryPolicyArrayOutput
}

GetSubscriptionRetryPolicyArrayInput is an input type that accepts GetSubscriptionRetryPolicyArray and GetSubscriptionRetryPolicyArrayOutput values. You can construct a concrete instance of `GetSubscriptionRetryPolicyArrayInput` via:

GetSubscriptionRetryPolicyArray{ GetSubscriptionRetryPolicyArgs{...} }

type GetSubscriptionRetryPolicyArrayOutput added in v6.47.0

type GetSubscriptionRetryPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionRetryPolicyArrayOutput) ElementType added in v6.47.0

func (GetSubscriptionRetryPolicyArrayOutput) Index added in v6.47.0

func (GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutput added in v6.47.0

func (o GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutput() GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutputWithContext added in v6.47.0

func (o GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutputWithContext(ctx context.Context) GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArrayOutput) ToOutput added in v6.65.1

type GetSubscriptionRetryPolicyInput added in v6.47.0

type GetSubscriptionRetryPolicyInput interface {
	pulumi.Input

	ToGetSubscriptionRetryPolicyOutput() GetSubscriptionRetryPolicyOutput
	ToGetSubscriptionRetryPolicyOutputWithContext(context.Context) GetSubscriptionRetryPolicyOutput
}

GetSubscriptionRetryPolicyInput is an input type that accepts GetSubscriptionRetryPolicyArgs and GetSubscriptionRetryPolicyOutput values. You can construct a concrete instance of `GetSubscriptionRetryPolicyInput` via:

GetSubscriptionRetryPolicyArgs{...}

type GetSubscriptionRetryPolicyOutput added in v6.47.0

type GetSubscriptionRetryPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionRetryPolicyOutput) ElementType added in v6.47.0

func (GetSubscriptionRetryPolicyOutput) MaximumBackoff added in v6.47.0

func (GetSubscriptionRetryPolicyOutput) MinimumBackoff added in v6.47.0

func (GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutput added in v6.47.0

func (o GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutput() GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutputWithContext added in v6.47.0

func (o GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutputWithContext(ctx context.Context) GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyOutput) ToOutput added in v6.65.1

type GetTopicIamPolicyArgs added in v6.59.0

type GetTopicIamPolicyArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project *string `pulumi:"project"`
	// Used to find the parent resource to bind the IAM policy to
	Topic string `pulumi:"topic"`
}

A collection of arguments for invoking getTopicIamPolicy.

type GetTopicIamPolicyOutputArgs added in v6.59.0

type GetTopicIamPolicyOutputArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput `pulumi:"topic"`
}

A collection of arguments for invoking getTopicIamPolicy.

func (GetTopicIamPolicyOutputArgs) ElementType added in v6.59.0

type GetTopicIamPolicyResult added in v6.59.0

type GetTopicIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `pubsub.TopicIAMPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData string `pulumi:"policyData"`
	Project    string `pulumi:"project"`
	Topic      string `pulumi:"topic"`
}

A collection of values returned by getTopicIamPolicy.

func GetTopicIamPolicy added in v6.59.0

func GetTopicIamPolicy(ctx *pulumi.Context, args *GetTopicIamPolicyArgs, opts ...pulumi.InvokeOption) (*GetTopicIamPolicyResult, error)

Retrieves the current IAM policy data for topic

## example

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.GetTopicIamPolicy(ctx, &pubsub.GetTopicIamPolicyArgs{
			Project: pulumi.StringRef(google_pubsub_topic.Example.Project),
			Topic:   google_pubsub_topic.Example.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetTopicIamPolicyResultOutput added in v6.59.0

type GetTopicIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTopicIamPolicy.

func GetTopicIamPolicyOutput added in v6.59.0

func (GetTopicIamPolicyResultOutput) ElementType added in v6.59.0

func (GetTopicIamPolicyResultOutput) Etag added in v6.59.0

(Computed) The etag of the IAM policy.

func (GetTopicIamPolicyResultOutput) Id added in v6.59.0

The provider-assigned unique ID for this managed resource.

func (GetTopicIamPolicyResultOutput) PolicyData added in v6.59.0

(Required only by `pubsub.TopicIAMPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (GetTopicIamPolicyResultOutput) Project added in v6.59.0

func (GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutput added in v6.59.0

func (o GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutput() GetTopicIamPolicyResultOutput

func (GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutputWithContext added in v6.59.0

func (o GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutputWithContext(ctx context.Context) GetTopicIamPolicyResultOutput

func (GetTopicIamPolicyResultOutput) ToOutput added in v6.65.1

func (GetTopicIamPolicyResultOutput) Topic added in v6.59.0

type GetTopicMessageStoragePolicy

type GetTopicMessageStoragePolicy struct {
	AllowedPersistenceRegions []string `pulumi:"allowedPersistenceRegions"`
}

type GetTopicMessageStoragePolicyArgs

type GetTopicMessageStoragePolicyArgs struct {
	AllowedPersistenceRegions pulumi.StringArrayInput `pulumi:"allowedPersistenceRegions"`
}

func (GetTopicMessageStoragePolicyArgs) ElementType

func (GetTopicMessageStoragePolicyArgs) ToGetTopicMessageStoragePolicyOutput

func (i GetTopicMessageStoragePolicyArgs) ToGetTopicMessageStoragePolicyOutput() GetTopicMessageStoragePolicyOutput

func (GetTopicMessageStoragePolicyArgs) ToGetTopicMessageStoragePolicyOutputWithContext

func (i GetTopicMessageStoragePolicyArgs) ToGetTopicMessageStoragePolicyOutputWithContext(ctx context.Context) GetTopicMessageStoragePolicyOutput

func (GetTopicMessageStoragePolicyArgs) ToOutput added in v6.65.1

type GetTopicMessageStoragePolicyArray

type GetTopicMessageStoragePolicyArray []GetTopicMessageStoragePolicyInput

func (GetTopicMessageStoragePolicyArray) ElementType

func (GetTopicMessageStoragePolicyArray) ToGetTopicMessageStoragePolicyArrayOutput

func (i GetTopicMessageStoragePolicyArray) ToGetTopicMessageStoragePolicyArrayOutput() GetTopicMessageStoragePolicyArrayOutput

func (GetTopicMessageStoragePolicyArray) ToGetTopicMessageStoragePolicyArrayOutputWithContext

func (i GetTopicMessageStoragePolicyArray) ToGetTopicMessageStoragePolicyArrayOutputWithContext(ctx context.Context) GetTopicMessageStoragePolicyArrayOutput

func (GetTopicMessageStoragePolicyArray) ToOutput added in v6.65.1

type GetTopicMessageStoragePolicyArrayInput

type GetTopicMessageStoragePolicyArrayInput interface {
	pulumi.Input

	ToGetTopicMessageStoragePolicyArrayOutput() GetTopicMessageStoragePolicyArrayOutput
	ToGetTopicMessageStoragePolicyArrayOutputWithContext(context.Context) GetTopicMessageStoragePolicyArrayOutput
}

GetTopicMessageStoragePolicyArrayInput is an input type that accepts GetTopicMessageStoragePolicyArray and GetTopicMessageStoragePolicyArrayOutput values. You can construct a concrete instance of `GetTopicMessageStoragePolicyArrayInput` via:

GetTopicMessageStoragePolicyArray{ GetTopicMessageStoragePolicyArgs{...} }

type GetTopicMessageStoragePolicyArrayOutput

type GetTopicMessageStoragePolicyArrayOutput struct{ *pulumi.OutputState }

func (GetTopicMessageStoragePolicyArrayOutput) ElementType

func (GetTopicMessageStoragePolicyArrayOutput) Index

func (GetTopicMessageStoragePolicyArrayOutput) ToGetTopicMessageStoragePolicyArrayOutput

func (o GetTopicMessageStoragePolicyArrayOutput) ToGetTopicMessageStoragePolicyArrayOutput() GetTopicMessageStoragePolicyArrayOutput

func (GetTopicMessageStoragePolicyArrayOutput) ToGetTopicMessageStoragePolicyArrayOutputWithContext

func (o GetTopicMessageStoragePolicyArrayOutput) ToGetTopicMessageStoragePolicyArrayOutputWithContext(ctx context.Context) GetTopicMessageStoragePolicyArrayOutput

func (GetTopicMessageStoragePolicyArrayOutput) ToOutput added in v6.65.1

type GetTopicMessageStoragePolicyInput

type GetTopicMessageStoragePolicyInput interface {
	pulumi.Input

	ToGetTopicMessageStoragePolicyOutput() GetTopicMessageStoragePolicyOutput
	ToGetTopicMessageStoragePolicyOutputWithContext(context.Context) GetTopicMessageStoragePolicyOutput
}

GetTopicMessageStoragePolicyInput is an input type that accepts GetTopicMessageStoragePolicyArgs and GetTopicMessageStoragePolicyOutput values. You can construct a concrete instance of `GetTopicMessageStoragePolicyInput` via:

GetTopicMessageStoragePolicyArgs{...}

type GetTopicMessageStoragePolicyOutput

type GetTopicMessageStoragePolicyOutput struct{ *pulumi.OutputState }

func (GetTopicMessageStoragePolicyOutput) AllowedPersistenceRegions

func (o GetTopicMessageStoragePolicyOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

func (GetTopicMessageStoragePolicyOutput) ElementType

func (GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutput

func (o GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutput() GetTopicMessageStoragePolicyOutput

func (GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutputWithContext

func (o GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutputWithContext(ctx context.Context) GetTopicMessageStoragePolicyOutput

func (GetTopicMessageStoragePolicyOutput) ToOutput added in v6.65.1

type GetTopicSchemaSetting

type GetTopicSchemaSetting struct {
	Encoding string `pulumi:"encoding"`
	Schema   string `pulumi:"schema"`
}

type GetTopicSchemaSettingArgs

type GetTopicSchemaSettingArgs struct {
	Encoding pulumi.StringInput `pulumi:"encoding"`
	Schema   pulumi.StringInput `pulumi:"schema"`
}

func (GetTopicSchemaSettingArgs) ElementType

func (GetTopicSchemaSettingArgs) ElementType() reflect.Type

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput

func (i GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutputWithContext

func (i GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutputWithContext(ctx context.Context) GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingArgs) ToOutput added in v6.65.1

type GetTopicSchemaSettingArray

type GetTopicSchemaSettingArray []GetTopicSchemaSettingInput

func (GetTopicSchemaSettingArray) ElementType

func (GetTopicSchemaSettingArray) ElementType() reflect.Type

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput

func (i GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutputWithContext

func (i GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutputWithContext(ctx context.Context) GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArray) ToOutput added in v6.65.1

type GetTopicSchemaSettingArrayInput

type GetTopicSchemaSettingArrayInput interface {
	pulumi.Input

	ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput
	ToGetTopicSchemaSettingArrayOutputWithContext(context.Context) GetTopicSchemaSettingArrayOutput
}

GetTopicSchemaSettingArrayInput is an input type that accepts GetTopicSchemaSettingArray and GetTopicSchemaSettingArrayOutput values. You can construct a concrete instance of `GetTopicSchemaSettingArrayInput` via:

GetTopicSchemaSettingArray{ GetTopicSchemaSettingArgs{...} }

type GetTopicSchemaSettingArrayOutput

type GetTopicSchemaSettingArrayOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingArrayOutput) ElementType

func (GetTopicSchemaSettingArrayOutput) Index

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput

func (o GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutputWithContext

func (o GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutputWithContext(ctx context.Context) GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArrayOutput) ToOutput added in v6.65.1

type GetTopicSchemaSettingInput

type GetTopicSchemaSettingInput interface {
	pulumi.Input

	ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput
	ToGetTopicSchemaSettingOutputWithContext(context.Context) GetTopicSchemaSettingOutput
}

GetTopicSchemaSettingInput is an input type that accepts GetTopicSchemaSettingArgs and GetTopicSchemaSettingOutput values. You can construct a concrete instance of `GetTopicSchemaSettingInput` via:

GetTopicSchemaSettingArgs{...}

type GetTopicSchemaSettingOutput

type GetTopicSchemaSettingOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingOutput) ElementType

func (GetTopicSchemaSettingOutput) Encoding

func (GetTopicSchemaSettingOutput) Schema

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput

func (o GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutputWithContext

func (o GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutputWithContext(ctx context.Context) GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingOutput) ToOutput added in v6.65.1

type LiteReservation

type LiteReservation struct {
	pulumi.CustomResourceState

	// Name of the reservation.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The region of the pubsub lite reservation.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// The reserved throughput capacity. Every unit of throughput capacity is
	// equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed
	// messages.
	ThroughputCapacity pulumi.IntOutput `pulumi:"throughputCapacity"`
}

A named resource representing a shared pool of capacity.

To get more information about Reservation, see:

* [API documentation](https://cloud.google.com/pubsub/lite/docs/reference/rest/v1/admin.projects.locations.reservations) * How-to Guides

## Example Usage ### Pubsub Lite Reservation Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewLiteReservation(ctx, "example", &pubsub.LiteReservationArgs{
			Project:            *pulumi.String(project.Number),
			ThroughputCapacity: pulumi.Int(2),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Reservation can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/liteReservation:LiteReservation default projects/{{project}}/locations/{{region}}/reservations/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteReservation:LiteReservation default {{project}}/{{region}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteReservation:LiteReservation default {{region}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteReservation:LiteReservation default {{name}}

```

func GetLiteReservation

func GetLiteReservation(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LiteReservationState, opts ...pulumi.ResourceOption) (*LiteReservation, error)

GetLiteReservation gets an existing LiteReservation 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 NewLiteReservation

func NewLiteReservation(ctx *pulumi.Context,
	name string, args *LiteReservationArgs, opts ...pulumi.ResourceOption) (*LiteReservation, error)

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

func (*LiteReservation) ElementType

func (*LiteReservation) ElementType() reflect.Type

func (*LiteReservation) ToLiteReservationOutput

func (i *LiteReservation) ToLiteReservationOutput() LiteReservationOutput

func (*LiteReservation) ToLiteReservationOutputWithContext

func (i *LiteReservation) ToLiteReservationOutputWithContext(ctx context.Context) LiteReservationOutput

func (*LiteReservation) ToOutput added in v6.65.1

type LiteReservationArgs

type LiteReservationArgs struct {
	// Name of the reservation.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite reservation.
	Region pulumi.StringPtrInput
	// The reserved throughput capacity. Every unit of throughput capacity is
	// equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed
	// messages.
	ThroughputCapacity pulumi.IntInput
}

The set of arguments for constructing a LiteReservation resource.

func (LiteReservationArgs) ElementType

func (LiteReservationArgs) ElementType() reflect.Type

type LiteReservationArray

type LiteReservationArray []LiteReservationInput

func (LiteReservationArray) ElementType

func (LiteReservationArray) ElementType() reflect.Type

func (LiteReservationArray) ToLiteReservationArrayOutput

func (i LiteReservationArray) ToLiteReservationArrayOutput() LiteReservationArrayOutput

func (LiteReservationArray) ToLiteReservationArrayOutputWithContext

func (i LiteReservationArray) ToLiteReservationArrayOutputWithContext(ctx context.Context) LiteReservationArrayOutput

func (LiteReservationArray) ToOutput added in v6.65.1

type LiteReservationArrayInput

type LiteReservationArrayInput interface {
	pulumi.Input

	ToLiteReservationArrayOutput() LiteReservationArrayOutput
	ToLiteReservationArrayOutputWithContext(context.Context) LiteReservationArrayOutput
}

LiteReservationArrayInput is an input type that accepts LiteReservationArray and LiteReservationArrayOutput values. You can construct a concrete instance of `LiteReservationArrayInput` via:

LiteReservationArray{ LiteReservationArgs{...} }

type LiteReservationArrayOutput

type LiteReservationArrayOutput struct{ *pulumi.OutputState }

func (LiteReservationArrayOutput) ElementType

func (LiteReservationArrayOutput) ElementType() reflect.Type

func (LiteReservationArrayOutput) Index

func (LiteReservationArrayOutput) ToLiteReservationArrayOutput

func (o LiteReservationArrayOutput) ToLiteReservationArrayOutput() LiteReservationArrayOutput

func (LiteReservationArrayOutput) ToLiteReservationArrayOutputWithContext

func (o LiteReservationArrayOutput) ToLiteReservationArrayOutputWithContext(ctx context.Context) LiteReservationArrayOutput

func (LiteReservationArrayOutput) ToOutput added in v6.65.1

type LiteReservationInput

type LiteReservationInput interface {
	pulumi.Input

	ToLiteReservationOutput() LiteReservationOutput
	ToLiteReservationOutputWithContext(ctx context.Context) LiteReservationOutput
}

type LiteReservationMap

type LiteReservationMap map[string]LiteReservationInput

func (LiteReservationMap) ElementType

func (LiteReservationMap) ElementType() reflect.Type

func (LiteReservationMap) ToLiteReservationMapOutput

func (i LiteReservationMap) ToLiteReservationMapOutput() LiteReservationMapOutput

func (LiteReservationMap) ToLiteReservationMapOutputWithContext

func (i LiteReservationMap) ToLiteReservationMapOutputWithContext(ctx context.Context) LiteReservationMapOutput

func (LiteReservationMap) ToOutput added in v6.65.1

type LiteReservationMapInput

type LiteReservationMapInput interface {
	pulumi.Input

	ToLiteReservationMapOutput() LiteReservationMapOutput
	ToLiteReservationMapOutputWithContext(context.Context) LiteReservationMapOutput
}

LiteReservationMapInput is an input type that accepts LiteReservationMap and LiteReservationMapOutput values. You can construct a concrete instance of `LiteReservationMapInput` via:

LiteReservationMap{ "key": LiteReservationArgs{...} }

type LiteReservationMapOutput

type LiteReservationMapOutput struct{ *pulumi.OutputState }

func (LiteReservationMapOutput) ElementType

func (LiteReservationMapOutput) ElementType() reflect.Type

func (LiteReservationMapOutput) MapIndex

func (LiteReservationMapOutput) ToLiteReservationMapOutput

func (o LiteReservationMapOutput) ToLiteReservationMapOutput() LiteReservationMapOutput

func (LiteReservationMapOutput) ToLiteReservationMapOutputWithContext

func (o LiteReservationMapOutput) ToLiteReservationMapOutputWithContext(ctx context.Context) LiteReservationMapOutput

func (LiteReservationMapOutput) ToOutput added in v6.65.1

type LiteReservationOutput

type LiteReservationOutput struct{ *pulumi.OutputState }

func (LiteReservationOutput) ElementType

func (LiteReservationOutput) ElementType() reflect.Type

func (LiteReservationOutput) Name added in v6.23.0

Name of the reservation.

***

func (LiteReservationOutput) Project added in v6.23.0

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

func (LiteReservationOutput) Region added in v6.23.0

The region of the pubsub lite reservation.

func (LiteReservationOutput) ThroughputCapacity added in v6.23.0

func (o LiteReservationOutput) ThroughputCapacity() pulumi.IntOutput

The reserved throughput capacity. Every unit of throughput capacity is equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed messages.

func (LiteReservationOutput) ToLiteReservationOutput

func (o LiteReservationOutput) ToLiteReservationOutput() LiteReservationOutput

func (LiteReservationOutput) ToLiteReservationOutputWithContext

func (o LiteReservationOutput) ToLiteReservationOutputWithContext(ctx context.Context) LiteReservationOutput

func (LiteReservationOutput) ToOutput added in v6.65.1

type LiteReservationState

type LiteReservationState struct {
	// Name of the reservation.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite reservation.
	Region pulumi.StringPtrInput
	// The reserved throughput capacity. Every unit of throughput capacity is
	// equivalent to 1 MiB/s of published messages or 2 MiB/s of subscribed
	// messages.
	ThroughputCapacity pulumi.IntPtrInput
}

func (LiteReservationState) ElementType

func (LiteReservationState) ElementType() reflect.Type

type LiteSubscription

type LiteSubscription struct {
	pulumi.CustomResourceState

	// The settings for this subscription's message delivery.
	// Structure is documented below.
	DeliveryConfig LiteSubscriptionDeliveryConfigPtrOutput `pulumi:"deliveryConfig"`
	// Name of the subscription.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// A reference to a Topic resource.
	Topic pulumi.StringOutput `pulumi:"topic"`
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrOutput `pulumi:"zone"`
}

A named resource representing the stream of messages from a single, specific topic, to be delivered to the subscribing application.

To get more information about Subscription, see:

* [API documentation](https://cloud.google.com/pubsub/lite/docs/reference/rest/v1/admin.projects.locations.subscriptions) * How-to Guides

## Example Usage ### Pubsub Lite Subscription Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		exampleLiteTopic, err := pubsub.NewLiteTopic(ctx, "exampleLiteTopic", &pubsub.LiteTopicArgs{
			Project: *pulumi.String(project.Number),
			PartitionConfig: &pubsub.LiteTopicPartitionConfigArgs{
				Count: pulumi.Int(1),
				Capacity: &pubsub.LiteTopicPartitionConfigCapacityArgs{
					PublishMibPerSec:   pulumi.Int(4),
					SubscribeMibPerSec: pulumi.Int(8),
				},
			},
			RetentionConfig: &pubsub.LiteTopicRetentionConfigArgs{
				PerPartitionBytes: pulumi.String("32212254720"),
			},
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewLiteSubscription(ctx, "exampleLiteSubscription", &pubsub.LiteSubscriptionArgs{
			Topic: exampleLiteTopic.Name,
			DeliveryConfig: &pubsub.LiteSubscriptionDeliveryConfigArgs{
				DeliveryRequirement: pulumi.String("DELIVER_AFTER_STORED"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Subscription can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/liteSubscription:LiteSubscription default projects/{{project}}/locations/{{zone}}/subscriptions/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteSubscription:LiteSubscription default {{project}}/{{zone}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteSubscription:LiteSubscription default {{zone}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteSubscription:LiteSubscription default {{name}}

```

func GetLiteSubscription

func GetLiteSubscription(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LiteSubscriptionState, opts ...pulumi.ResourceOption) (*LiteSubscription, error)

GetLiteSubscription gets an existing LiteSubscription 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 NewLiteSubscription

func NewLiteSubscription(ctx *pulumi.Context,
	name string, args *LiteSubscriptionArgs, opts ...pulumi.ResourceOption) (*LiteSubscription, error)

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

func (*LiteSubscription) ElementType

func (*LiteSubscription) ElementType() reflect.Type

func (*LiteSubscription) ToLiteSubscriptionOutput

func (i *LiteSubscription) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (*LiteSubscription) ToLiteSubscriptionOutputWithContext

func (i *LiteSubscription) ToLiteSubscriptionOutputWithContext(ctx context.Context) LiteSubscriptionOutput

func (*LiteSubscription) ToOutput added in v6.65.1

type LiteSubscriptionArgs

type LiteSubscriptionArgs struct {
	// The settings for this subscription's message delivery.
	// Structure is documented below.
	DeliveryConfig LiteSubscriptionDeliveryConfigPtrInput
	// Name of the subscription.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrInput
	// A reference to a Topic resource.
	Topic pulumi.StringInput
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrInput
}

The set of arguments for constructing a LiteSubscription resource.

func (LiteSubscriptionArgs) ElementType

func (LiteSubscriptionArgs) ElementType() reflect.Type

type LiteSubscriptionArray

type LiteSubscriptionArray []LiteSubscriptionInput

func (LiteSubscriptionArray) ElementType

func (LiteSubscriptionArray) ElementType() reflect.Type

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutput

func (i LiteSubscriptionArray) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutputWithContext

func (i LiteSubscriptionArray) ToLiteSubscriptionArrayOutputWithContext(ctx context.Context) LiteSubscriptionArrayOutput

func (LiteSubscriptionArray) ToOutput added in v6.65.1

type LiteSubscriptionArrayInput

type LiteSubscriptionArrayInput interface {
	pulumi.Input

	ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput
	ToLiteSubscriptionArrayOutputWithContext(context.Context) LiteSubscriptionArrayOutput
}

LiteSubscriptionArrayInput is an input type that accepts LiteSubscriptionArray and LiteSubscriptionArrayOutput values. You can construct a concrete instance of `LiteSubscriptionArrayInput` via:

LiteSubscriptionArray{ LiteSubscriptionArgs{...} }

type LiteSubscriptionArrayOutput

type LiteSubscriptionArrayOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionArrayOutput) ElementType

func (LiteSubscriptionArrayOutput) Index

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput

func (o LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutputWithContext

func (o LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutputWithContext(ctx context.Context) LiteSubscriptionArrayOutput

func (LiteSubscriptionArrayOutput) ToOutput added in v6.65.1

type LiteSubscriptionDeliveryConfig

type LiteSubscriptionDeliveryConfig struct {
	// When this subscription should send messages to subscribers relative to messages persistence in storage.
	// Possible values are: `DELIVER_IMMEDIATELY`, `DELIVER_AFTER_STORED`, `DELIVERY_REQUIREMENT_UNSPECIFIED`.
	DeliveryRequirement string `pulumi:"deliveryRequirement"`
}

type LiteSubscriptionDeliveryConfigArgs

type LiteSubscriptionDeliveryConfigArgs struct {
	// When this subscription should send messages to subscribers relative to messages persistence in storage.
	// Possible values are: `DELIVER_IMMEDIATELY`, `DELIVER_AFTER_STORED`, `DELIVERY_REQUIREMENT_UNSPECIFIED`.
	DeliveryRequirement pulumi.StringInput `pulumi:"deliveryRequirement"`
}

func (LiteSubscriptionDeliveryConfigArgs) ElementType

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutputWithContext

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutputWithContext(ctx context.Context) LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext(ctx context.Context) LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigArgs) ToOutput added in v6.65.1

type LiteSubscriptionDeliveryConfigInput

type LiteSubscriptionDeliveryConfigInput interface {
	pulumi.Input

	ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput
	ToLiteSubscriptionDeliveryConfigOutputWithContext(context.Context) LiteSubscriptionDeliveryConfigOutput
}

LiteSubscriptionDeliveryConfigInput is an input type that accepts LiteSubscriptionDeliveryConfigArgs and LiteSubscriptionDeliveryConfigOutput values. You can construct a concrete instance of `LiteSubscriptionDeliveryConfigInput` via:

LiteSubscriptionDeliveryConfigArgs{...}

type LiteSubscriptionDeliveryConfigOutput

type LiteSubscriptionDeliveryConfigOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigOutput) DeliveryRequirement

When this subscription should send messages to subscribers relative to messages persistence in storage. Possible values are: `DELIVER_IMMEDIATELY`, `DELIVER_AFTER_STORED`, `DELIVERY_REQUIREMENT_UNSPECIFIED`.

func (LiteSubscriptionDeliveryConfigOutput) ElementType

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutputWithContext

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutputWithContext(ctx context.Context) LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext(ctx context.Context) LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigOutput) ToOutput added in v6.65.1

type LiteSubscriptionDeliveryConfigPtrInput

type LiteSubscriptionDeliveryConfigPtrInput interface {
	pulumi.Input

	ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput
	ToLiteSubscriptionDeliveryConfigPtrOutputWithContext(context.Context) LiteSubscriptionDeliveryConfigPtrOutput
}

LiteSubscriptionDeliveryConfigPtrInput is an input type that accepts LiteSubscriptionDeliveryConfigArgs, LiteSubscriptionDeliveryConfigPtr and LiteSubscriptionDeliveryConfigPtrOutput values. You can construct a concrete instance of `LiteSubscriptionDeliveryConfigPtrInput` via:

        LiteSubscriptionDeliveryConfigArgs{...}

or:

        nil

type LiteSubscriptionDeliveryConfigPtrOutput

type LiteSubscriptionDeliveryConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigPtrOutput) DeliveryRequirement

When this subscription should send messages to subscribers relative to messages persistence in storage. Possible values are: `DELIVER_IMMEDIATELY`, `DELIVER_AFTER_STORED`, `DELIVERY_REQUIREMENT_UNSPECIFIED`.

func (LiteSubscriptionDeliveryConfigPtrOutput) Elem

func (LiteSubscriptionDeliveryConfigPtrOutput) ElementType

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput

func (o LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

func (o LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext(ctx context.Context) LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigPtrOutput) ToOutput added in v6.65.1

type LiteSubscriptionInput

type LiteSubscriptionInput interface {
	pulumi.Input

	ToLiteSubscriptionOutput() LiteSubscriptionOutput
	ToLiteSubscriptionOutputWithContext(ctx context.Context) LiteSubscriptionOutput
}

type LiteSubscriptionMap

type LiteSubscriptionMap map[string]LiteSubscriptionInput

func (LiteSubscriptionMap) ElementType

func (LiteSubscriptionMap) ElementType() reflect.Type

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutput

func (i LiteSubscriptionMap) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutputWithContext

func (i LiteSubscriptionMap) ToLiteSubscriptionMapOutputWithContext(ctx context.Context) LiteSubscriptionMapOutput

func (LiteSubscriptionMap) ToOutput added in v6.65.1

type LiteSubscriptionMapInput

type LiteSubscriptionMapInput interface {
	pulumi.Input

	ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput
	ToLiteSubscriptionMapOutputWithContext(context.Context) LiteSubscriptionMapOutput
}

LiteSubscriptionMapInput is an input type that accepts LiteSubscriptionMap and LiteSubscriptionMapOutput values. You can construct a concrete instance of `LiteSubscriptionMapInput` via:

LiteSubscriptionMap{ "key": LiteSubscriptionArgs{...} }

type LiteSubscriptionMapOutput

type LiteSubscriptionMapOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionMapOutput) ElementType

func (LiteSubscriptionMapOutput) ElementType() reflect.Type

func (LiteSubscriptionMapOutput) MapIndex

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput

func (o LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutputWithContext

func (o LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutputWithContext(ctx context.Context) LiteSubscriptionMapOutput

func (LiteSubscriptionMapOutput) ToOutput added in v6.65.1

type LiteSubscriptionOutput

type LiteSubscriptionOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionOutput) DeliveryConfig added in v6.23.0

The settings for this subscription's message delivery. Structure is documented below.

func (LiteSubscriptionOutput) ElementType

func (LiteSubscriptionOutput) ElementType() reflect.Type

func (LiteSubscriptionOutput) Name added in v6.23.0

Name of the subscription.

***

func (LiteSubscriptionOutput) Project added in v6.23.0

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

func (LiteSubscriptionOutput) Region added in v6.23.0

The region of the pubsub lite topic.

func (LiteSubscriptionOutput) ToLiteSubscriptionOutput

func (o LiteSubscriptionOutput) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionOutputWithContext

func (o LiteSubscriptionOutput) ToLiteSubscriptionOutputWithContext(ctx context.Context) LiteSubscriptionOutput

func (LiteSubscriptionOutput) ToOutput added in v6.65.1

func (LiteSubscriptionOutput) Topic added in v6.23.0

A reference to a Topic resource.

func (LiteSubscriptionOutput) Zone added in v6.23.0

The zone of the pubsub lite topic.

type LiteSubscriptionState

type LiteSubscriptionState struct {
	// The settings for this subscription's message delivery.
	// Structure is documented below.
	DeliveryConfig LiteSubscriptionDeliveryConfigPtrInput
	// Name of the subscription.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrInput
	// A reference to a Topic resource.
	Topic pulumi.StringPtrInput
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrInput
}

func (LiteSubscriptionState) ElementType

func (LiteSubscriptionState) ElementType() reflect.Type

type LiteTopic

type LiteTopic struct {
	pulumi.CustomResourceState

	// Name of the topic.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The settings for this topic's partitions.
	// Structure is documented below.
	PartitionConfig LiteTopicPartitionConfigPtrOutput `pulumi:"partitionConfig"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// The settings for this topic's Reservation usage.
	// Structure is documented below.
	ReservationConfig LiteTopicReservationConfigPtrOutput `pulumi:"reservationConfig"`
	// The settings for a topic's message retention.
	// Structure is documented below.
	RetentionConfig LiteTopicRetentionConfigPtrOutput `pulumi:"retentionConfig"`
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrOutput `pulumi:"zone"`
}

A named resource to which messages are sent by publishers.

To get more information about Topic, see:

* [API documentation](https://cloud.google.com/pubsub/lite/docs/reference/rest/v1/admin.projects.locations.topics) * How-to Guides

## Example Usage ### Pubsub Lite Topic Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		exampleLiteReservation, err := pubsub.NewLiteReservation(ctx, "exampleLiteReservation", &pubsub.LiteReservationArgs{
			Project:            *pulumi.String(project.Number),
			ThroughputCapacity: pulumi.Int(2),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewLiteTopic(ctx, "exampleLiteTopic", &pubsub.LiteTopicArgs{
			Project: *pulumi.String(project.Number),
			PartitionConfig: &pubsub.LiteTopicPartitionConfigArgs{
				Count: pulumi.Int(1),
				Capacity: &pubsub.LiteTopicPartitionConfigCapacityArgs{
					PublishMibPerSec:   pulumi.Int(4),
					SubscribeMibPerSec: pulumi.Int(8),
				},
			},
			RetentionConfig: &pubsub.LiteTopicRetentionConfigArgs{
				PerPartitionBytes: pulumi.String("32212254720"),
			},
			ReservationConfig: &pubsub.LiteTopicReservationConfigArgs{
				ThroughputReservation: exampleLiteReservation.Name,
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Topic can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/liteTopic:LiteTopic default projects/{{project}}/locations/{{zone}}/topics/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteTopic:LiteTopic default {{project}}/{{zone}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteTopic:LiteTopic default {{zone}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/liteTopic:LiteTopic default {{name}}

```

func GetLiteTopic

func GetLiteTopic(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *LiteTopicState, opts ...pulumi.ResourceOption) (*LiteTopic, error)

GetLiteTopic gets an existing LiteTopic 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 NewLiteTopic

func NewLiteTopic(ctx *pulumi.Context,
	name string, args *LiteTopicArgs, opts ...pulumi.ResourceOption) (*LiteTopic, error)

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

func (*LiteTopic) ElementType

func (*LiteTopic) ElementType() reflect.Type

func (*LiteTopic) ToLiteTopicOutput

func (i *LiteTopic) ToLiteTopicOutput() LiteTopicOutput

func (*LiteTopic) ToLiteTopicOutputWithContext

func (i *LiteTopic) ToLiteTopicOutputWithContext(ctx context.Context) LiteTopicOutput

func (*LiteTopic) ToOutput added in v6.65.1

func (i *LiteTopic) ToOutput(ctx context.Context) pulumix.Output[*LiteTopic]

type LiteTopicArgs

type LiteTopicArgs struct {
	// Name of the topic.
	//
	// ***
	Name pulumi.StringPtrInput
	// The settings for this topic's partitions.
	// Structure is documented below.
	PartitionConfig LiteTopicPartitionConfigPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrInput
	// The settings for this topic's Reservation usage.
	// Structure is documented below.
	ReservationConfig LiteTopicReservationConfigPtrInput
	// The settings for a topic's message retention.
	// Structure is documented below.
	RetentionConfig LiteTopicRetentionConfigPtrInput
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrInput
}

The set of arguments for constructing a LiteTopic resource.

func (LiteTopicArgs) ElementType

func (LiteTopicArgs) ElementType() reflect.Type

type LiteTopicArray

type LiteTopicArray []LiteTopicInput

func (LiteTopicArray) ElementType

func (LiteTopicArray) ElementType() reflect.Type

func (LiteTopicArray) ToLiteTopicArrayOutput

func (i LiteTopicArray) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArray) ToLiteTopicArrayOutputWithContext

func (i LiteTopicArray) ToLiteTopicArrayOutputWithContext(ctx context.Context) LiteTopicArrayOutput

func (LiteTopicArray) ToOutput added in v6.65.1

func (i LiteTopicArray) ToOutput(ctx context.Context) pulumix.Output[[]*LiteTopic]

type LiteTopicArrayInput

type LiteTopicArrayInput interface {
	pulumi.Input

	ToLiteTopicArrayOutput() LiteTopicArrayOutput
	ToLiteTopicArrayOutputWithContext(context.Context) LiteTopicArrayOutput
}

LiteTopicArrayInput is an input type that accepts LiteTopicArray and LiteTopicArrayOutput values. You can construct a concrete instance of `LiteTopicArrayInput` via:

LiteTopicArray{ LiteTopicArgs{...} }

type LiteTopicArrayOutput

type LiteTopicArrayOutput struct{ *pulumi.OutputState }

func (LiteTopicArrayOutput) ElementType

func (LiteTopicArrayOutput) ElementType() reflect.Type

func (LiteTopicArrayOutput) Index

func (LiteTopicArrayOutput) ToLiteTopicArrayOutput

func (o LiteTopicArrayOutput) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArrayOutput) ToLiteTopicArrayOutputWithContext

func (o LiteTopicArrayOutput) ToLiteTopicArrayOutputWithContext(ctx context.Context) LiteTopicArrayOutput

func (LiteTopicArrayOutput) ToOutput added in v6.65.1

type LiteTopicInput

type LiteTopicInput interface {
	pulumi.Input

	ToLiteTopicOutput() LiteTopicOutput
	ToLiteTopicOutputWithContext(ctx context.Context) LiteTopicOutput
}

type LiteTopicMap

type LiteTopicMap map[string]LiteTopicInput

func (LiteTopicMap) ElementType

func (LiteTopicMap) ElementType() reflect.Type

func (LiteTopicMap) ToLiteTopicMapOutput

func (i LiteTopicMap) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMap) ToLiteTopicMapOutputWithContext

func (i LiteTopicMap) ToLiteTopicMapOutputWithContext(ctx context.Context) LiteTopicMapOutput

func (LiteTopicMap) ToOutput added in v6.65.1

func (i LiteTopicMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*LiteTopic]

type LiteTopicMapInput

type LiteTopicMapInput interface {
	pulumi.Input

	ToLiteTopicMapOutput() LiteTopicMapOutput
	ToLiteTopicMapOutputWithContext(context.Context) LiteTopicMapOutput
}

LiteTopicMapInput is an input type that accepts LiteTopicMap and LiteTopicMapOutput values. You can construct a concrete instance of `LiteTopicMapInput` via:

LiteTopicMap{ "key": LiteTopicArgs{...} }

type LiteTopicMapOutput

type LiteTopicMapOutput struct{ *pulumi.OutputState }

func (LiteTopicMapOutput) ElementType

func (LiteTopicMapOutput) ElementType() reflect.Type

func (LiteTopicMapOutput) MapIndex

func (LiteTopicMapOutput) ToLiteTopicMapOutput

func (o LiteTopicMapOutput) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMapOutput) ToLiteTopicMapOutputWithContext

func (o LiteTopicMapOutput) ToLiteTopicMapOutputWithContext(ctx context.Context) LiteTopicMapOutput

func (LiteTopicMapOutput) ToOutput added in v6.65.1

type LiteTopicOutput

type LiteTopicOutput struct{ *pulumi.OutputState }

func (LiteTopicOutput) ElementType

func (LiteTopicOutput) ElementType() reflect.Type

func (LiteTopicOutput) Name added in v6.23.0

Name of the topic.

***

func (LiteTopicOutput) PartitionConfig added in v6.23.0

The settings for this topic's partitions. Structure is documented below.

func (LiteTopicOutput) Project added in v6.23.0

func (o LiteTopicOutput) Project() pulumi.StringOutput

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

func (LiteTopicOutput) Region added in v6.23.0

The region of the pubsub lite topic.

func (LiteTopicOutput) ReservationConfig added in v6.23.0

The settings for this topic's Reservation usage. Structure is documented below.

func (LiteTopicOutput) RetentionConfig added in v6.23.0

The settings for a topic's message retention. Structure is documented below.

func (LiteTopicOutput) ToLiteTopicOutput

func (o LiteTopicOutput) ToLiteTopicOutput() LiteTopicOutput

func (LiteTopicOutput) ToLiteTopicOutputWithContext

func (o LiteTopicOutput) ToLiteTopicOutputWithContext(ctx context.Context) LiteTopicOutput

func (LiteTopicOutput) ToOutput added in v6.65.1

func (LiteTopicOutput) Zone added in v6.23.0

The zone of the pubsub lite topic.

type LiteTopicPartitionConfig

type LiteTopicPartitionConfig struct {
	// The capacity configuration.
	// Structure is documented below.
	Capacity *LiteTopicPartitionConfigCapacity `pulumi:"capacity"`
	// The number of partitions in the topic. Must be at least 1.
	Count int `pulumi:"count"`
}

type LiteTopicPartitionConfigArgs

type LiteTopicPartitionConfigArgs struct {
	// The capacity configuration.
	// Structure is documented below.
	Capacity LiteTopicPartitionConfigCapacityPtrInput `pulumi:"capacity"`
	// The number of partitions in the topic. Must be at least 1.
	Count pulumi.IntInput `pulumi:"count"`
}

func (LiteTopicPartitionConfigArgs) ElementType

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutputWithContext

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutputWithContext(ctx context.Context) LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutputWithContext

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigArgs) ToOutput added in v6.65.1

type LiteTopicPartitionConfigCapacity

type LiteTopicPartitionConfigCapacity struct {
	// Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
	PublishMibPerSec int `pulumi:"publishMibPerSec"`
	// Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
	SubscribeMibPerSec int `pulumi:"subscribeMibPerSec"`
}

type LiteTopicPartitionConfigCapacityArgs

type LiteTopicPartitionConfigCapacityArgs struct {
	// Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
	PublishMibPerSec pulumi.IntInput `pulumi:"publishMibPerSec"`
	// Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.
	SubscribeMibPerSec pulumi.IntInput `pulumi:"subscribeMibPerSec"`
}

func (LiteTopicPartitionConfigCapacityArgs) ElementType

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutputWithContext

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutputWithContext(ctx context.Context) LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityArgs) ToOutput added in v6.65.1

type LiteTopicPartitionConfigCapacityInput

type LiteTopicPartitionConfigCapacityInput interface {
	pulumi.Input

	ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput
	ToLiteTopicPartitionConfigCapacityOutputWithContext(context.Context) LiteTopicPartitionConfigCapacityOutput
}

LiteTopicPartitionConfigCapacityInput is an input type that accepts LiteTopicPartitionConfigCapacityArgs and LiteTopicPartitionConfigCapacityOutput values. You can construct a concrete instance of `LiteTopicPartitionConfigCapacityInput` via:

LiteTopicPartitionConfigCapacityArgs{...}

type LiteTopicPartitionConfigCapacityOutput

type LiteTopicPartitionConfigCapacityOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityOutput) ElementType

func (LiteTopicPartitionConfigCapacityOutput) PublishMibPerSec

Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.

func (LiteTopicPartitionConfigCapacityOutput) SubscribeMibPerSec

Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutputWithContext

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutputWithContext(ctx context.Context) LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityOutput) ToOutput added in v6.65.1

type LiteTopicPartitionConfigCapacityPtrInput

type LiteTopicPartitionConfigCapacityPtrInput interface {
	pulumi.Input

	ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput
	ToLiteTopicPartitionConfigCapacityPtrOutputWithContext(context.Context) LiteTopicPartitionConfigCapacityPtrOutput
}

LiteTopicPartitionConfigCapacityPtrInput is an input type that accepts LiteTopicPartitionConfigCapacityArgs, LiteTopicPartitionConfigCapacityPtr and LiteTopicPartitionConfigCapacityPtrOutput values. You can construct a concrete instance of `LiteTopicPartitionConfigCapacityPtrInput` via:

        LiteTopicPartitionConfigCapacityArgs{...}

or:

        nil

type LiteTopicPartitionConfigCapacityPtrOutput

type LiteTopicPartitionConfigCapacityPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityPtrOutput) Elem

func (LiteTopicPartitionConfigCapacityPtrOutput) ElementType

func (LiteTopicPartitionConfigCapacityPtrOutput) PublishMibPerSec

Subscribe throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.

func (LiteTopicPartitionConfigCapacityPtrOutput) SubscribeMibPerSec

Publish throughput capacity per partition in MiB/s. Must be >= 4 and <= 16.

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput

func (o LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

func (o LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityPtrOutput) ToOutput added in v6.65.1

type LiteTopicPartitionConfigInput

type LiteTopicPartitionConfigInput interface {
	pulumi.Input

	ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput
	ToLiteTopicPartitionConfigOutputWithContext(context.Context) LiteTopicPartitionConfigOutput
}

LiteTopicPartitionConfigInput is an input type that accepts LiteTopicPartitionConfigArgs and LiteTopicPartitionConfigOutput values. You can construct a concrete instance of `LiteTopicPartitionConfigInput` via:

LiteTopicPartitionConfigArgs{...}

type LiteTopicPartitionConfigOutput

type LiteTopicPartitionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigOutput) Capacity

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigOutput) Count

The number of partitions in the topic. Must be at least 1.

func (LiteTopicPartitionConfigOutput) ElementType

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutputWithContext

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutputWithContext(ctx context.Context) LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutputWithContext

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigOutput) ToOutput added in v6.65.1

type LiteTopicPartitionConfigPtrInput

type LiteTopicPartitionConfigPtrInput interface {
	pulumi.Input

	ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput
	ToLiteTopicPartitionConfigPtrOutputWithContext(context.Context) LiteTopicPartitionConfigPtrOutput
}

LiteTopicPartitionConfigPtrInput is an input type that accepts LiteTopicPartitionConfigArgs, LiteTopicPartitionConfigPtr and LiteTopicPartitionConfigPtrOutput values. You can construct a concrete instance of `LiteTopicPartitionConfigPtrInput` via:

        LiteTopicPartitionConfigArgs{...}

or:

        nil

type LiteTopicPartitionConfigPtrOutput

type LiteTopicPartitionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigPtrOutput) Capacity

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigPtrOutput) Count

The number of partitions in the topic. Must be at least 1.

func (LiteTopicPartitionConfigPtrOutput) Elem

func (LiteTopicPartitionConfigPtrOutput) ElementType

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput

func (o LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutputWithContext

func (o LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutputWithContext(ctx context.Context) LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigPtrOutput) ToOutput added in v6.65.1

type LiteTopicReservationConfig

type LiteTopicReservationConfig struct {
	// The Reservation to use for this topic's throughput capacity.
	ThroughputReservation *string `pulumi:"throughputReservation"`
}

type LiteTopicReservationConfigArgs

type LiteTopicReservationConfigArgs struct {
	// The Reservation to use for this topic's throughput capacity.
	ThroughputReservation pulumi.StringPtrInput `pulumi:"throughputReservation"`
}

func (LiteTopicReservationConfigArgs) ElementType

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutput

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutput() LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutputWithContext

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutputWithContext(ctx context.Context) LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutput

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutputWithContext

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutputWithContext(ctx context.Context) LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigArgs) ToOutput added in v6.65.1

type LiteTopicReservationConfigInput

type LiteTopicReservationConfigInput interface {
	pulumi.Input

	ToLiteTopicReservationConfigOutput() LiteTopicReservationConfigOutput
	ToLiteTopicReservationConfigOutputWithContext(context.Context) LiteTopicReservationConfigOutput
}

LiteTopicReservationConfigInput is an input type that accepts LiteTopicReservationConfigArgs and LiteTopicReservationConfigOutput values. You can construct a concrete instance of `LiteTopicReservationConfigInput` via:

LiteTopicReservationConfigArgs{...}

type LiteTopicReservationConfigOutput

type LiteTopicReservationConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicReservationConfigOutput) ElementType

func (LiteTopicReservationConfigOutput) ThroughputReservation

func (o LiteTopicReservationConfigOutput) ThroughputReservation() pulumi.StringPtrOutput

The Reservation to use for this topic's throughput capacity.

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutput

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutput() LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutputWithContext

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutputWithContext(ctx context.Context) LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutput

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutputWithContext

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutputWithContext(ctx context.Context) LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigOutput) ToOutput added in v6.65.1

type LiteTopicReservationConfigPtrInput

type LiteTopicReservationConfigPtrInput interface {
	pulumi.Input

	ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput
	ToLiteTopicReservationConfigPtrOutputWithContext(context.Context) LiteTopicReservationConfigPtrOutput
}

LiteTopicReservationConfigPtrInput is an input type that accepts LiteTopicReservationConfigArgs, LiteTopicReservationConfigPtr and LiteTopicReservationConfigPtrOutput values. You can construct a concrete instance of `LiteTopicReservationConfigPtrInput` via:

        LiteTopicReservationConfigArgs{...}

or:

        nil

type LiteTopicReservationConfigPtrOutput

type LiteTopicReservationConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicReservationConfigPtrOutput) Elem

func (LiteTopicReservationConfigPtrOutput) ElementType

func (LiteTopicReservationConfigPtrOutput) ThroughputReservation

The Reservation to use for this topic's throughput capacity.

func (LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutput

func (o LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutputWithContext

func (o LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutputWithContext(ctx context.Context) LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigPtrOutput) ToOutput added in v6.65.1

type LiteTopicRetentionConfig

type LiteTopicRetentionConfig struct {
	// The provisioned storage, in bytes, per partition. If the number of bytes stored
	// in any of the topic's partitions grows beyond this value, older messages will be
	// dropped to make room for newer ones, regardless of the value of period.
	PerPartitionBytes string `pulumi:"perPartitionBytes"`
	// How long a published message is retained. If unset, messages will be retained as
	// long as the bytes retained for each partition is below perPartitionBytes. A
	// duration in seconds with up to nine fractional digits, terminated by 's'.
	// Example: "3.5s".
	Period *string `pulumi:"period"`
}

type LiteTopicRetentionConfigArgs

type LiteTopicRetentionConfigArgs struct {
	// The provisioned storage, in bytes, per partition. If the number of bytes stored
	// in any of the topic's partitions grows beyond this value, older messages will be
	// dropped to make room for newer ones, regardless of the value of period.
	PerPartitionBytes pulumi.StringInput `pulumi:"perPartitionBytes"`
	// How long a published message is retained. If unset, messages will be retained as
	// long as the bytes retained for each partition is below perPartitionBytes. A
	// duration in seconds with up to nine fractional digits, terminated by 's'.
	// Example: "3.5s".
	Period pulumi.StringPtrInput `pulumi:"period"`
}

func (LiteTopicRetentionConfigArgs) ElementType

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutputWithContext

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutputWithContext(ctx context.Context) LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutputWithContext

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutputWithContext(ctx context.Context) LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigArgs) ToOutput added in v6.65.1

type LiteTopicRetentionConfigInput

type LiteTopicRetentionConfigInput interface {
	pulumi.Input

	ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput
	ToLiteTopicRetentionConfigOutputWithContext(context.Context) LiteTopicRetentionConfigOutput
}

LiteTopicRetentionConfigInput is an input type that accepts LiteTopicRetentionConfigArgs and LiteTopicRetentionConfigOutput values. You can construct a concrete instance of `LiteTopicRetentionConfigInput` via:

LiteTopicRetentionConfigArgs{...}

type LiteTopicRetentionConfigOutput

type LiteTopicRetentionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigOutput) ElementType

func (LiteTopicRetentionConfigOutput) PerPartitionBytes

func (o LiteTopicRetentionConfigOutput) PerPartitionBytes() pulumi.StringOutput

The provisioned storage, in bytes, per partition. If the number of bytes stored in any of the topic's partitions grows beyond this value, older messages will be dropped to make room for newer ones, regardless of the value of period.

func (LiteTopicRetentionConfigOutput) Period

How long a published message is retained. If unset, messages will be retained as long as the bytes retained for each partition is below perPartitionBytes. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutput

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutputWithContext

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutputWithContext(ctx context.Context) LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutputWithContext

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutputWithContext(ctx context.Context) LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigOutput) ToOutput added in v6.65.1

type LiteTopicRetentionConfigPtrInput

type LiteTopicRetentionConfigPtrInput interface {
	pulumi.Input

	ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput
	ToLiteTopicRetentionConfigPtrOutputWithContext(context.Context) LiteTopicRetentionConfigPtrOutput
}

LiteTopicRetentionConfigPtrInput is an input type that accepts LiteTopicRetentionConfigArgs, LiteTopicRetentionConfigPtr and LiteTopicRetentionConfigPtrOutput values. You can construct a concrete instance of `LiteTopicRetentionConfigPtrInput` via:

        LiteTopicRetentionConfigArgs{...}

or:

        nil

type LiteTopicRetentionConfigPtrOutput

type LiteTopicRetentionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigPtrOutput) Elem

func (LiteTopicRetentionConfigPtrOutput) ElementType

func (LiteTopicRetentionConfigPtrOutput) PerPartitionBytes

The provisioned storage, in bytes, per partition. If the number of bytes stored in any of the topic's partitions grows beyond this value, older messages will be dropped to make room for newer ones, regardless of the value of period.

func (LiteTopicRetentionConfigPtrOutput) Period

How long a published message is retained. If unset, messages will be retained as long as the bytes retained for each partition is below perPartitionBytes. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput

func (o LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutputWithContext

func (o LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutputWithContext(ctx context.Context) LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigPtrOutput) ToOutput added in v6.65.1

type LiteTopicState

type LiteTopicState struct {
	// Name of the topic.
	//
	// ***
	Name pulumi.StringPtrInput
	// The settings for this topic's partitions.
	// Structure is documented below.
	PartitionConfig LiteTopicPartitionConfigPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the pubsub lite topic.
	Region pulumi.StringPtrInput
	// The settings for this topic's Reservation usage.
	// Structure is documented below.
	ReservationConfig LiteTopicReservationConfigPtrInput
	// The settings for a topic's message retention.
	// Structure is documented below.
	RetentionConfig LiteTopicRetentionConfigPtrInput
	// The zone of the pubsub lite topic.
	Zone pulumi.StringPtrInput
}

func (LiteTopicState) ElementType

func (LiteTopicState) ElementType() reflect.Type

type LookupSubscriptionArgs added in v6.47.0

type LookupSubscriptionArgs struct {
	// The name of the Cloud Pub/Sub Subscription.
	//
	// ***
	Name string `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getSubscription.

type LookupSubscriptionOutputArgs added in v6.47.0

type LookupSubscriptionOutputArgs struct {
	// The name of the Cloud Pub/Sub Subscription.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getSubscription.

func (LookupSubscriptionOutputArgs) ElementType added in v6.47.0

type LookupSubscriptionResult added in v6.47.0

type LookupSubscriptionResult struct {
	AckDeadlineSeconds        int                                 `pulumi:"ackDeadlineSeconds"`
	BigqueryConfigs           []GetSubscriptionBigqueryConfig     `pulumi:"bigqueryConfigs"`
	CloudStorageConfigs       []GetSubscriptionCloudStorageConfig `pulumi:"cloudStorageConfigs"`
	DeadLetterPolicies        []GetSubscriptionDeadLetterPolicy   `pulumi:"deadLetterPolicies"`
	EnableExactlyOnceDelivery bool                                `pulumi:"enableExactlyOnceDelivery"`
	EnableMessageOrdering     bool                                `pulumi:"enableMessageOrdering"`
	ExpirationPolicies        []GetSubscriptionExpirationPolicy   `pulumi:"expirationPolicies"`
	Filter                    string                              `pulumi:"filter"`
	// The provider-assigned unique ID for this managed resource.
	Id                       string                       `pulumi:"id"`
	Labels                   map[string]string            `pulumi:"labels"`
	MessageRetentionDuration string                       `pulumi:"messageRetentionDuration"`
	Name                     string                       `pulumi:"name"`
	Project                  *string                      `pulumi:"project"`
	PushConfigs              []GetSubscriptionPushConfig  `pulumi:"pushConfigs"`
	RetainAckedMessages      bool                         `pulumi:"retainAckedMessages"`
	RetryPolicies            []GetSubscriptionRetryPolicy `pulumi:"retryPolicies"`
	Topic                    string                       `pulumi:"topic"`
}

A collection of values returned by getSubscription.

func LookupSubscription added in v6.47.0

func LookupSubscription(ctx *pulumi.Context, args *LookupSubscriptionArgs, opts ...pulumi.InvokeOption) (*LookupSubscriptionResult, error)

Get information about a Google Cloud Pub/Sub Subscription. For more information see the [official documentation](https://cloud.google.com/pubsub/docs/) and [API](https://cloud.google.com/pubsub/docs/apis).

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.LookupSubscription(ctx, &pubsub.LookupSubscriptionArgs{
			Name: "my-pubsub-subscription",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupSubscriptionResultOutput added in v6.47.0

type LookupSubscriptionResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSubscription.

func LookupSubscriptionOutput added in v6.47.0

func (LookupSubscriptionResultOutput) AckDeadlineSeconds added in v6.47.0

func (o LookupSubscriptionResultOutput) AckDeadlineSeconds() pulumi.IntOutput

func (LookupSubscriptionResultOutput) BigqueryConfigs added in v6.47.0

func (LookupSubscriptionResultOutput) CloudStorageConfigs added in v6.64.0

func (LookupSubscriptionResultOutput) DeadLetterPolicies added in v6.47.0

func (LookupSubscriptionResultOutput) ElementType added in v6.47.0

func (LookupSubscriptionResultOutput) EnableExactlyOnceDelivery added in v6.47.0

func (o LookupSubscriptionResultOutput) EnableExactlyOnceDelivery() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) EnableMessageOrdering added in v6.47.0

func (o LookupSubscriptionResultOutput) EnableMessageOrdering() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) ExpirationPolicies added in v6.47.0

func (LookupSubscriptionResultOutput) Filter added in v6.47.0

func (LookupSubscriptionResultOutput) Id added in v6.47.0

The provider-assigned unique ID for this managed resource.

func (LookupSubscriptionResultOutput) Labels added in v6.47.0

func (LookupSubscriptionResultOutput) MessageRetentionDuration added in v6.47.0

func (o LookupSubscriptionResultOutput) MessageRetentionDuration() pulumi.StringOutput

func (LookupSubscriptionResultOutput) Name added in v6.47.0

func (LookupSubscriptionResultOutput) Project added in v6.47.0

func (LookupSubscriptionResultOutput) PushConfigs added in v6.47.0

func (LookupSubscriptionResultOutput) RetainAckedMessages added in v6.47.0

func (o LookupSubscriptionResultOutput) RetainAckedMessages() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) RetryPolicies added in v6.47.0

func (LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutput added in v6.47.0

func (o LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutput() LookupSubscriptionResultOutput

func (LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutputWithContext added in v6.47.0

func (o LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutputWithContext(ctx context.Context) LookupSubscriptionResultOutput

func (LookupSubscriptionResultOutput) ToOutput added in v6.65.1

func (LookupSubscriptionResultOutput) Topic added in v6.47.0

type LookupTopicArgs

type LookupTopicArgs struct {
	// The name of the Cloud Pub/Sub Topic.
	//
	// ***
	Name string `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project *string `pulumi:"project"`
}

A collection of arguments for invoking getTopic.

type LookupTopicOutputArgs

type LookupTopicOutputArgs struct {
	// The name of the Cloud Pub/Sub Topic.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
}

A collection of arguments for invoking getTopic.

func (LookupTopicOutputArgs) ElementType

func (LookupTopicOutputArgs) ElementType() reflect.Type

type LookupTopicResult

type LookupTopicResult struct {
	// The provider-assigned unique ID for this managed resource.
	Id                       string                         `pulumi:"id"`
	KmsKeyName               string                         `pulumi:"kmsKeyName"`
	Labels                   map[string]string              `pulumi:"labels"`
	MessageRetentionDuration string                         `pulumi:"messageRetentionDuration"`
	MessageStoragePolicies   []GetTopicMessageStoragePolicy `pulumi:"messageStoragePolicies"`
	Name                     string                         `pulumi:"name"`
	Project                  *string                        `pulumi:"project"`
	SchemaSettings           []GetTopicSchemaSetting        `pulumi:"schemaSettings"`
}

A collection of values returned by getTopic.

func LookupTopic

func LookupTopic(ctx *pulumi.Context, args *LookupTopicArgs, opts ...pulumi.InvokeOption) (*LookupTopicResult, error)

Get information about a Google Cloud Pub/Sub Topic. For more information see the [official documentation](https://cloud.google.com/pubsub/docs/) and [API](https://cloud.google.com/pubsub/docs/apis).

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.LookupTopic(ctx, &pubsub.LookupTopicArgs{
			Name: "my-pubsub-topic",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupTopicResultOutput

type LookupTopicResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTopic.

func (LookupTopicResultOutput) ElementType

func (LookupTopicResultOutput) ElementType() reflect.Type

func (LookupTopicResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupTopicResultOutput) KmsKeyName

func (LookupTopicResultOutput) Labels

func (LookupTopicResultOutput) MessageRetentionDuration added in v6.2.0

func (o LookupTopicResultOutput) MessageRetentionDuration() pulumi.StringOutput

func (LookupTopicResultOutput) MessageStoragePolicies

func (LookupTopicResultOutput) Name

func (LookupTopicResultOutput) Project

func (LookupTopicResultOutput) SchemaSettings

func (LookupTopicResultOutput) ToLookupTopicResultOutput

func (o LookupTopicResultOutput) ToLookupTopicResultOutput() LookupTopicResultOutput

func (LookupTopicResultOutput) ToLookupTopicResultOutputWithContext

func (o LookupTopicResultOutput) ToLookupTopicResultOutputWithContext(ctx context.Context) LookupTopicResultOutput

func (LookupTopicResultOutput) ToOutput added in v6.65.1

type Schema

type Schema struct {
	pulumi.CustomResourceState

	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type.
	Definition pulumi.StringPtrOutput `pulumi:"definition"`
	// The ID to use for the schema, which will become the final component of the schema's resource 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"`
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrOutput `pulumi:"type"`
}

A schema is a format that messages must follow, creating a contract between publisher and subscriber that Pub/Sub will enforce.

To get more information about Schema, see:

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

## Example Usage ### Pubsub Schema Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchema(ctx, "example", &pubsub.SchemaArgs{
			Definition: pulumi.String(`{
  "type" : "record",
  "name" : "Avro",
  "fields" : [
    {
      "name" : "StringField",
      "type" : "string"
    },
    {
      "name" : "IntField",
      "type" : "int"
    }
  ]
}

`),

			Type: pulumi.String("AVRO"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Schema Protobuf

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleSchema, err := pubsub.NewSchema(ctx, "exampleSchema", &pubsub.SchemaArgs{
			Type: pulumi.String("PROTOCOL_BUFFER"),
			Definition: pulumi.String(`syntax = "proto3";

message Results { string message_request = 1; string message_response = 2; string timestamp_request = 3; string timestamp_response = 4; }`),

		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopic(ctx, "exampleTopic", &pubsub.TopicArgs{
			SchemaSettings: &pubsub.TopicSchemaSettingsArgs{
				Schema:   pulumi.String("projects/my-project-name/schemas/example"),
				Encoding: pulumi.String("JSON"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleSchema,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Schema can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/schema:Schema default projects/{{project}}/schemas/{{name}}

```

```sh

$ pulumi import gcp:pubsub/schema:Schema default {{project}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/schema:Schema default {{name}}

```

func GetSchema

func GetSchema(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SchemaState, opts ...pulumi.ResourceOption) (*Schema, error)

GetSchema gets an existing Schema 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 NewSchema

func NewSchema(ctx *pulumi.Context,
	name string, args *SchemaArgs, opts ...pulumi.ResourceOption) (*Schema, error)

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

func (*Schema) ElementType

func (*Schema) ElementType() reflect.Type

func (*Schema) ToOutput added in v6.65.1

func (i *Schema) ToOutput(ctx context.Context) pulumix.Output[*Schema]

func (*Schema) ToSchemaOutput

func (i *Schema) ToSchemaOutput() SchemaOutput

func (*Schema) ToSchemaOutputWithContext

func (i *Schema) ToSchemaOutputWithContext(ctx context.Context) SchemaOutput

type SchemaArgs

type SchemaArgs struct {
	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type.
	Definition pulumi.StringPtrInput
	// The ID to use for the schema, which will become the final component of the schema's resource 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
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a Schema resource.

func (SchemaArgs) ElementType

func (SchemaArgs) ElementType() reflect.Type

type SchemaArray

type SchemaArray []SchemaInput

func (SchemaArray) ElementType

func (SchemaArray) ElementType() reflect.Type

func (SchemaArray) ToOutput added in v6.65.1

func (i SchemaArray) ToOutput(ctx context.Context) pulumix.Output[[]*Schema]

func (SchemaArray) ToSchemaArrayOutput

func (i SchemaArray) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArray) ToSchemaArrayOutputWithContext

func (i SchemaArray) ToSchemaArrayOutputWithContext(ctx context.Context) SchemaArrayOutput

type SchemaArrayInput

type SchemaArrayInput interface {
	pulumi.Input

	ToSchemaArrayOutput() SchemaArrayOutput
	ToSchemaArrayOutputWithContext(context.Context) SchemaArrayOutput
}

SchemaArrayInput is an input type that accepts SchemaArray and SchemaArrayOutput values. You can construct a concrete instance of `SchemaArrayInput` via:

SchemaArray{ SchemaArgs{...} }

type SchemaArrayOutput

type SchemaArrayOutput struct{ *pulumi.OutputState }

func (SchemaArrayOutput) ElementType

func (SchemaArrayOutput) ElementType() reflect.Type

func (SchemaArrayOutput) Index

func (SchemaArrayOutput) ToOutput added in v6.65.1

func (o SchemaArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Schema]

func (SchemaArrayOutput) ToSchemaArrayOutput

func (o SchemaArrayOutput) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArrayOutput) ToSchemaArrayOutputWithContext

func (o SchemaArrayOutput) ToSchemaArrayOutputWithContext(ctx context.Context) SchemaArrayOutput

type SchemaInput

type SchemaInput interface {
	pulumi.Input

	ToSchemaOutput() SchemaOutput
	ToSchemaOutputWithContext(ctx context.Context) SchemaOutput
}

type SchemaMap

type SchemaMap map[string]SchemaInput

func (SchemaMap) ElementType

func (SchemaMap) ElementType() reflect.Type

func (SchemaMap) ToOutput added in v6.65.1

func (i SchemaMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Schema]

func (SchemaMap) ToSchemaMapOutput

func (i SchemaMap) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMap) ToSchemaMapOutputWithContext

func (i SchemaMap) ToSchemaMapOutputWithContext(ctx context.Context) SchemaMapOutput

type SchemaMapInput

type SchemaMapInput interface {
	pulumi.Input

	ToSchemaMapOutput() SchemaMapOutput
	ToSchemaMapOutputWithContext(context.Context) SchemaMapOutput
}

SchemaMapInput is an input type that accepts SchemaMap and SchemaMapOutput values. You can construct a concrete instance of `SchemaMapInput` via:

SchemaMap{ "key": SchemaArgs{...} }

type SchemaMapOutput

type SchemaMapOutput struct{ *pulumi.OutputState }

func (SchemaMapOutput) ElementType

func (SchemaMapOutput) ElementType() reflect.Type

func (SchemaMapOutput) MapIndex

func (SchemaMapOutput) ToOutput added in v6.65.1

func (o SchemaMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Schema]

func (SchemaMapOutput) ToSchemaMapOutput

func (o SchemaMapOutput) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMapOutput) ToSchemaMapOutputWithContext

func (o SchemaMapOutput) ToSchemaMapOutputWithContext(ctx context.Context) SchemaMapOutput

type SchemaOutput

type SchemaOutput struct{ *pulumi.OutputState }

func (SchemaOutput) Definition added in v6.23.0

func (o SchemaOutput) Definition() pulumi.StringPtrOutput

The definition of the schema. This should contain a string representing the full definition of the schema that is a valid schema definition of the type specified in type.

func (SchemaOutput) ElementType

func (SchemaOutput) ElementType() reflect.Type

func (SchemaOutput) Name added in v6.23.0

func (o SchemaOutput) Name() pulumi.StringOutput

The ID to use for the schema, which will become the final component of the schema's resource name.

***

func (SchemaOutput) Project added in v6.23.0

func (o SchemaOutput) Project() pulumi.StringOutput

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

func (SchemaOutput) ToOutput added in v6.65.1

func (o SchemaOutput) ToOutput(ctx context.Context) pulumix.Output[*Schema]

func (SchemaOutput) ToSchemaOutput

func (o SchemaOutput) ToSchemaOutput() SchemaOutput

func (SchemaOutput) ToSchemaOutputWithContext

func (o SchemaOutput) ToSchemaOutputWithContext(ctx context.Context) SchemaOutput

func (SchemaOutput) Type added in v6.23.0

The type of the schema definition Default value is `TYPE_UNSPECIFIED`. Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.

type SchemaState

type SchemaState struct {
	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type.
	Definition pulumi.StringPtrInput
	// The ID to use for the schema, which will become the final component of the schema's resource 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
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrInput
}

func (SchemaState) ElementType

func (SchemaState) ElementType() reflect.Type

type Subscription

type Subscription struct {
	pulumi.CustomResourceState

	// This value is the maximum time after a subscriber receives a message
	// before the subscriber should acknowledge the message. After message
	// delivery but before the ack deadline expires and before the message is
	// acknowledged, it is an outstanding message and will not be delivered
	// again during that time (on a best-effort basis).
	// For pull subscriptions, this value is used as the initial value for
	// the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using
	// pull. The minimum custom deadline you can specify is 10 seconds. The
	// maximum custom deadline you can specify is 600 seconds (10 minutes).
	// If this parameter is 0, a default value of 10 seconds is used.
	// For push delivery, this value is also used to set the request timeout
	// for the call to the push endpoint.
	// If the subscriber never acknowledges the message, the Pub/Sub system
	// will eventually redeliver the message.
	AckDeadlineSeconds pulumi.IntOutput `pulumi:"ackDeadlineSeconds"`
	// If delivery to BigQuery is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	BigqueryConfig SubscriptionBigqueryConfigPtrOutput `pulumi:"bigqueryConfig"`
	// If delivery to Cloud Storage is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	CloudStorageConfig SubscriptionCloudStorageConfigPtrOutput `pulumi:"cloudStorageConfig"`
	// A policy that specifies the conditions for dead lettering messages in
	// this subscription. If deadLetterPolicy is not set, dead lettering
	// is disabled.
	// The Cloud Pub/Sub service account associated with this subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Acknowledge() messages on this subscription.
	// Structure is documented below.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrOutput `pulumi:"deadLetterPolicy"`
	// If `true`, Pub/Sub provides the following guarantees for the delivery
	// of a message with a given value of messageId on this Subscriptions':
	// - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
	// - An acknowledged message will not be resent to a subscriber.
	//   Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery`
	//   is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values
	EnableExactlyOnceDelivery pulumi.BoolPtrOutput `pulumi:"enableExactlyOnceDelivery"`
	// If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to
	// the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
	// may be delivered in any order.
	EnableMessageOrdering pulumi.BoolPtrOutput `pulumi:"enableMessageOrdering"`
	// A policy that specifies the conditions for this subscription's expiration.
	// A subscription is considered active as long as any connected subscriber
	// is successfully consuming messages from the subscription or is issuing
	// operations on the subscription. If expirationPolicy is not set, a default
	// policy with ttl of 31 days will be used.  If it is set but ttl is "", the
	// resource never expires.  The minimum allowed value for expirationPolicy.ttl
	// is 1 day.
	// Structure is documented below.
	ExpirationPolicy SubscriptionExpirationPolicyOutput `pulumi:"expirationPolicy"`
	// The subscription only delivers the messages that match the filter.
	// Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
	// by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
	// you can't modify the filter.
	Filter pulumi.StringPtrOutput `pulumi:"filter"`
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// How long to retain unacknowledged messages in the subscription's
	// backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention
	// of acknowledged messages, and thus configures how far back in time a
	// subscriptions.seek can be done. Defaults to 7 days. Cannot be more
	// than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`).
	// A duration in seconds with up to nine fractional digits, terminated
	// by 's'. Example: `"600.5s"`.
	MessageRetentionDuration pulumi.StringPtrOutput `pulumi:"messageRetentionDuration"`
	// Name of the subscription.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// If push delivery is used with this subscription, this field is used to
	// configure it. An empty pushConfig signifies that the subscriber will
	// pull and ack messages using API methods.
	// Structure is documented below.
	PushConfig SubscriptionPushConfigPtrOutput `pulumi:"pushConfig"`
	// Indicates whether to retain acknowledged messages. If `true`, then
	// messages are not expunged from the subscription's backlog, even if
	// they are acknowledged, until they fall out of the
	// messageRetentionDuration window.
	RetainAckedMessages pulumi.BoolPtrOutput `pulumi:"retainAckedMessages"`
	// A policy that specifies how Pub/Sub retries message delivery for this subscription.
	// If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
	// RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
	// Structure is documented below.
	RetryPolicy SubscriptionRetryPolicyPtrOutput `pulumi:"retryPolicy"`
	// A reference to a Topic resource.
	//
	// ***
	Topic pulumi.StringOutput `pulumi:"topic"`
}

A named resource representing the stream of messages from a single, specific topic, to be delivered to the subscribing application.

To get more information about Subscription, see:

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

> **Note:** You can retrieve the email of the Google Managed Pub/Sub Service Account used for forwarding by using the `projects.ServiceIdentity` resource.

## Example Usage ### Pubsub Subscription Push

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleTopic, err := pubsub.NewTopic(ctx, "exampleTopic", nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "exampleSubscription", &pubsub.SubscriptionArgs{
			Topic:              exampleTopic.Name,
			AckDeadlineSeconds: pulumi.Int(20),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			PushConfig: &pubsub.SubscriptionPushConfigArgs{
				PushEndpoint: pulumi.String("https://example.com/push"),
				Attributes: pulumi.StringMap{
					"x-goog-version": pulumi.String("v1"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Pull

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleTopic, err := pubsub.NewTopic(ctx, "exampleTopic", nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "exampleSubscription", &pubsub.SubscriptionArgs{
			Topic: exampleTopic.Name,
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			MessageRetentionDuration: pulumi.String("1200s"),
			RetainAckedMessages:      pulumi.Bool(true),
			AckDeadlineSeconds:       pulumi.Int(20),
			ExpirationPolicy: &pubsub.SubscriptionExpirationPolicyArgs{
				Ttl: pulumi.String("300000.5s"),
			},
			RetryPolicy: &pubsub.SubscriptionRetryPolicyArgs{
				MinimumBackoff: pulumi.String("10s"),
			},
			EnableMessageOrdering: pulumi.Bool(false),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Different Project

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleTopic, err := pubsub.NewTopic(ctx, "exampleTopic", &pubsub.TopicArgs{
			Project: pulumi.String("topic-project"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "exampleSubscription", &pubsub.SubscriptionArgs{
			Project: pulumi.String("subscription-project"),
			Topic:   exampleTopic.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Dead Letter

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleTopic, err := pubsub.NewTopic(ctx, "exampleTopic", nil)
		if err != nil {
			return err
		}
		exampleDeadLetter, err := pubsub.NewTopic(ctx, "exampleDeadLetter", nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "exampleSubscription", &pubsub.SubscriptionArgs{
			Topic: exampleTopic.Name,
			DeadLetterPolicy: &pubsub.SubscriptionDeadLetterPolicyArgs{
				DeadLetterTopic:     exampleDeadLetter.ID(),
				MaxDeliveryAttempts: pulumi.Int(10),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Push Bq

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/bigquery"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/projects"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleTopic, err := pubsub.NewTopic(ctx, "exampleTopic", nil)
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		viewer, err := projects.NewIAMMember(ctx, "viewer", &projects.IAMMemberArgs{
			Project: *pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.metadataViewer"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		editor, err := projects.NewIAMMember(ctx, "editor", &projects.IAMMemberArgs{
			Project: *pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.dataEditor"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		testDataset, err := bigquery.NewDataset(ctx, "testDataset", &bigquery.DatasetArgs{
			DatasetId: pulumi.String("example_dataset"),
		})
		if err != nil {
			return err
		}
		testTable, err := bigquery.NewTable(ctx, "testTable", &bigquery.TableArgs{
			DeletionProtection: pulumi.Bool(false),
			TableId:            pulumi.String("example_table"),
			DatasetId:          testDataset.DatasetId,
			Schema: pulumi.String(`[
  {
    "name": "data",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "The data"
  }

] `),

		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "exampleSubscription", &pubsub.SubscriptionArgs{
			Topic: exampleTopic.Name,
			BigqueryConfig: &pubsub.SubscriptionBigqueryConfigArgs{
				Table: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {
					project := _args[0].(string)
					datasetId := _args[1].(string)
					tableId := _args[2].(string)
					return fmt.Sprintf("%v.%v.%v", project, datasetId, tableId), nil
				}).(pulumi.StringOutput),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			viewer,
			editor,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Subscription can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/subscription:Subscription default projects/{{project}}/subscriptions/{{name}}

```

```sh

$ pulumi import gcp:pubsub/subscription:Subscription default {{project}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/subscription:Subscription default {{name}}

```

func GetSubscription

func GetSubscription(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubscriptionState, opts ...pulumi.ResourceOption) (*Subscription, error)

GetSubscription gets an existing Subscription 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 NewSubscription

func NewSubscription(ctx *pulumi.Context,
	name string, args *SubscriptionArgs, opts ...pulumi.ResourceOption) (*Subscription, error)

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

func (*Subscription) ElementType

func (*Subscription) ElementType() reflect.Type

func (*Subscription) ToOutput added in v6.65.1

func (*Subscription) ToSubscriptionOutput

func (i *Subscription) ToSubscriptionOutput() SubscriptionOutput

func (*Subscription) ToSubscriptionOutputWithContext

func (i *Subscription) ToSubscriptionOutputWithContext(ctx context.Context) SubscriptionOutput

type SubscriptionArgs

type SubscriptionArgs struct {
	// This value is the maximum time after a subscriber receives a message
	// before the subscriber should acknowledge the message. After message
	// delivery but before the ack deadline expires and before the message is
	// acknowledged, it is an outstanding message and will not be delivered
	// again during that time (on a best-effort basis).
	// For pull subscriptions, this value is used as the initial value for
	// the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using
	// pull. The minimum custom deadline you can specify is 10 seconds. The
	// maximum custom deadline you can specify is 600 seconds (10 minutes).
	// If this parameter is 0, a default value of 10 seconds is used.
	// For push delivery, this value is also used to set the request timeout
	// for the call to the push endpoint.
	// If the subscriber never acknowledges the message, the Pub/Sub system
	// will eventually redeliver the message.
	AckDeadlineSeconds pulumi.IntPtrInput
	// If delivery to BigQuery is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	BigqueryConfig SubscriptionBigqueryConfigPtrInput
	// If delivery to Cloud Storage is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	CloudStorageConfig SubscriptionCloudStorageConfigPtrInput
	// A policy that specifies the conditions for dead lettering messages in
	// this subscription. If deadLetterPolicy is not set, dead lettering
	// is disabled.
	// The Cloud Pub/Sub service account associated with this subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Acknowledge() messages on this subscription.
	// Structure is documented below.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// If `true`, Pub/Sub provides the following guarantees for the delivery
	// of a message with a given value of messageId on this Subscriptions':
	// - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
	// - An acknowledged message will not be resent to a subscriber.
	//   Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery`
	//   is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values
	EnableExactlyOnceDelivery pulumi.BoolPtrInput
	// If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to
	// the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
	// may be delivered in any order.
	EnableMessageOrdering pulumi.BoolPtrInput
	// A policy that specifies the conditions for this subscription's expiration.
	// A subscription is considered active as long as any connected subscriber
	// is successfully consuming messages from the subscription or is issuing
	// operations on the subscription. If expirationPolicy is not set, a default
	// policy with ttl of 31 days will be used.  If it is set but ttl is "", the
	// resource never expires.  The minimum allowed value for expirationPolicy.ttl
	// is 1 day.
	// Structure is documented below.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// The subscription only delivers the messages that match the filter.
	// Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
	// by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
	// you can't modify the filter.
	Filter pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapInput
	// How long to retain unacknowledged messages in the subscription's
	// backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention
	// of acknowledged messages, and thus configures how far back in time a
	// subscriptions.seek can be done. Defaults to 7 days. Cannot be more
	// than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`).
	// A duration in seconds with up to nine fractional digits, terminated
	// by 's'. Example: `"600.5s"`.
	MessageRetentionDuration pulumi.StringPtrInput
	// Name of the subscription.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If push delivery is used with this subscription, this field is used to
	// configure it. An empty pushConfig signifies that the subscriber will
	// pull and ack messages using API methods.
	// Structure is documented below.
	PushConfig SubscriptionPushConfigPtrInput
	// Indicates whether to retain acknowledged messages. If `true`, then
	// messages are not expunged from the subscription's backlog, even if
	// they are acknowledged, until they fall out of the
	// messageRetentionDuration window.
	RetainAckedMessages pulumi.BoolPtrInput
	// A policy that specifies how Pub/Sub retries message delivery for this subscription.
	// If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
	// RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
	// Structure is documented below.
	RetryPolicy SubscriptionRetryPolicyPtrInput
	// A reference to a Topic resource.
	//
	// ***
	Topic pulumi.StringInput
}

The set of arguments for constructing a Subscription resource.

func (SubscriptionArgs) ElementType

func (SubscriptionArgs) ElementType() reflect.Type

type SubscriptionArray

type SubscriptionArray []SubscriptionInput

func (SubscriptionArray) ElementType

func (SubscriptionArray) ElementType() reflect.Type

func (SubscriptionArray) ToOutput added in v6.65.1

func (SubscriptionArray) ToSubscriptionArrayOutput

func (i SubscriptionArray) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArray) ToSubscriptionArrayOutputWithContext

func (i SubscriptionArray) ToSubscriptionArrayOutputWithContext(ctx context.Context) SubscriptionArrayOutput

type SubscriptionArrayInput

type SubscriptionArrayInput interface {
	pulumi.Input

	ToSubscriptionArrayOutput() SubscriptionArrayOutput
	ToSubscriptionArrayOutputWithContext(context.Context) SubscriptionArrayOutput
}

SubscriptionArrayInput is an input type that accepts SubscriptionArray and SubscriptionArrayOutput values. You can construct a concrete instance of `SubscriptionArrayInput` via:

SubscriptionArray{ SubscriptionArgs{...} }

type SubscriptionArrayOutput

type SubscriptionArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionArrayOutput) ElementType

func (SubscriptionArrayOutput) ElementType() reflect.Type

func (SubscriptionArrayOutput) Index

func (SubscriptionArrayOutput) ToOutput added in v6.65.1

func (SubscriptionArrayOutput) ToSubscriptionArrayOutput

func (o SubscriptionArrayOutput) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArrayOutput) ToSubscriptionArrayOutputWithContext

func (o SubscriptionArrayOutput) ToSubscriptionArrayOutputWithContext(ctx context.Context) SubscriptionArrayOutput

type SubscriptionBigqueryConfig added in v6.34.0

type SubscriptionBigqueryConfig struct {
	// When true and useTopicSchema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
	// Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.
	DropUnknownFields *bool `pulumi:"dropUnknownFields"`
	// The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}
	Table string `pulumi:"table"`
	// When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
	UseTopicSchema *bool `pulumi:"useTopicSchema"`
	// When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
	// The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
	WriteMetadata *bool `pulumi:"writeMetadata"`
}

type SubscriptionBigqueryConfigArgs added in v6.34.0

type SubscriptionBigqueryConfigArgs struct {
	// When true and useTopicSchema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
	// Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.
	DropUnknownFields pulumi.BoolPtrInput `pulumi:"dropUnknownFields"`
	// The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}
	Table pulumi.StringInput `pulumi:"table"`
	// When true, use the topic's schema as the columns to write to in BigQuery, if it exists.
	UseTopicSchema pulumi.BoolPtrInput `pulumi:"useTopicSchema"`
	// When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
	// The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
	WriteMetadata pulumi.BoolPtrInput `pulumi:"writeMetadata"`
}

func (SubscriptionBigqueryConfigArgs) ElementType added in v6.34.0

func (SubscriptionBigqueryConfigArgs) ToOutput added in v6.65.1

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutput added in v6.34.0

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutput() SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutputWithContext added in v6.34.0

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutputWithContext(ctx context.Context) SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutput added in v6.34.0

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutputWithContext added in v6.34.0

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutputWithContext(ctx context.Context) SubscriptionBigqueryConfigPtrOutput

type SubscriptionBigqueryConfigInput added in v6.34.0

type SubscriptionBigqueryConfigInput interface {
	pulumi.Input

	ToSubscriptionBigqueryConfigOutput() SubscriptionBigqueryConfigOutput
	ToSubscriptionBigqueryConfigOutputWithContext(context.Context) SubscriptionBigqueryConfigOutput
}

SubscriptionBigqueryConfigInput is an input type that accepts SubscriptionBigqueryConfigArgs and SubscriptionBigqueryConfigOutput values. You can construct a concrete instance of `SubscriptionBigqueryConfigInput` via:

SubscriptionBigqueryConfigArgs{...}

type SubscriptionBigqueryConfigOutput added in v6.34.0

type SubscriptionBigqueryConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionBigqueryConfigOutput) DropUnknownFields added in v6.34.0

When true and useTopicSchema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.

func (SubscriptionBigqueryConfigOutput) ElementType added in v6.34.0

func (SubscriptionBigqueryConfigOutput) Table added in v6.34.0

The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}

func (SubscriptionBigqueryConfigOutput) ToOutput added in v6.65.1

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutput added in v6.34.0

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutput() SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutputWithContext added in v6.34.0

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutputWithContext(ctx context.Context) SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutput added in v6.34.0

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext added in v6.34.0

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext(ctx context.Context) SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigOutput) UseTopicSchema added in v6.34.0

When true, use the topic's schema as the columns to write to in BigQuery, if it exists.

func (SubscriptionBigqueryConfigOutput) WriteMetadata added in v6.34.0

When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table. The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.

type SubscriptionBigqueryConfigPtrInput added in v6.34.0

type SubscriptionBigqueryConfigPtrInput interface {
	pulumi.Input

	ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput
	ToSubscriptionBigqueryConfigPtrOutputWithContext(context.Context) SubscriptionBigqueryConfigPtrOutput
}

SubscriptionBigqueryConfigPtrInput is an input type that accepts SubscriptionBigqueryConfigArgs, SubscriptionBigqueryConfigPtr and SubscriptionBigqueryConfigPtrOutput values. You can construct a concrete instance of `SubscriptionBigqueryConfigPtrInput` via:

        SubscriptionBigqueryConfigArgs{...}

or:

        nil

func SubscriptionBigqueryConfigPtr added in v6.34.0

type SubscriptionBigqueryConfigPtrOutput added in v6.34.0

type SubscriptionBigqueryConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionBigqueryConfigPtrOutput) DropUnknownFields added in v6.34.0

When true and useTopicSchema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.

func (SubscriptionBigqueryConfigPtrOutput) Elem added in v6.34.0

func (SubscriptionBigqueryConfigPtrOutput) ElementType added in v6.34.0

func (SubscriptionBigqueryConfigPtrOutput) Table added in v6.34.0

The name of the table to which to write data, of the form {projectId}:{datasetId}.{tableId}

func (SubscriptionBigqueryConfigPtrOutput) ToOutput added in v6.65.1

func (SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutput added in v6.34.0

func (o SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext added in v6.34.0

func (o SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext(ctx context.Context) SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigPtrOutput) UseTopicSchema added in v6.34.0

When true, use the topic's schema as the columns to write to in BigQuery, if it exists.

func (SubscriptionBigqueryConfigPtrOutput) WriteMetadata added in v6.34.0

When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table. The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.

type SubscriptionCloudStorageConfig added in v6.64.0

type SubscriptionCloudStorageConfig struct {
	// If set, message data will be written to Cloud Storage in Avro format.
	// Structure is documented below.
	AvroConfig *SubscriptionCloudStorageConfigAvroConfig `pulumi:"avroConfig"`
	// User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://".
	Bucket string `pulumi:"bucket"`
	// User-provided prefix for Cloud Storage filename.
	FilenamePrefix *string `pulumi:"filenamePrefix"`
	// User-provided suffix for Cloud Storage filename. Must not end in "/".
	FilenameSuffix *string `pulumi:"filenameSuffix"`
	// The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB.
	// The maxBytes limit may be exceeded in cases where messages are larger than the limit.
	MaxBytes *int `pulumi:"maxBytes"`
	// The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes.
	// May not exceed the subscription's acknowledgement deadline.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	MaxDuration *string `pulumi:"maxDuration"`
	// (Output)
	// An output-only field that indicates whether or not the subscription can receive messages.
	State *string `pulumi:"state"`
}

type SubscriptionCloudStorageConfigArgs added in v6.64.0

type SubscriptionCloudStorageConfigArgs struct {
	// If set, message data will be written to Cloud Storage in Avro format.
	// Structure is documented below.
	AvroConfig SubscriptionCloudStorageConfigAvroConfigPtrInput `pulumi:"avroConfig"`
	// User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://".
	Bucket pulumi.StringInput `pulumi:"bucket"`
	// User-provided prefix for Cloud Storage filename.
	FilenamePrefix pulumi.StringPtrInput `pulumi:"filenamePrefix"`
	// User-provided suffix for Cloud Storage filename. Must not end in "/".
	FilenameSuffix pulumi.StringPtrInput `pulumi:"filenameSuffix"`
	// The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB.
	// The maxBytes limit may be exceeded in cases where messages are larger than the limit.
	MaxBytes pulumi.IntPtrInput `pulumi:"maxBytes"`
	// The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes.
	// May not exceed the subscription's acknowledgement deadline.
	// A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".
	MaxDuration pulumi.StringPtrInput `pulumi:"maxDuration"`
	// (Output)
	// An output-only field that indicates whether or not the subscription can receive messages.
	State pulumi.StringPtrInput `pulumi:"state"`
}

func (SubscriptionCloudStorageConfigArgs) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigArgs) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutput added in v6.64.0

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutput() SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutputWithContext added in v6.64.0

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutput added in v6.64.0

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutputWithContext added in v6.64.0

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigPtrOutput

type SubscriptionCloudStorageConfigAvroConfig added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfig struct {
	// When true, write the subscription name, messageId, publishTime, attributes, and orderingKey as additional fields in the output.
	WriteMetadata *bool `pulumi:"writeMetadata"`
}

type SubscriptionCloudStorageConfigAvroConfigArgs added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfigArgs struct {
	// When true, write the subscription name, messageId, publishTime, attributes, and orderingKey as additional fields in the output.
	WriteMetadata pulumi.BoolPtrInput `pulumi:"writeMetadata"`
}

func (SubscriptionCloudStorageConfigAvroConfigArgs) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutput() SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext added in v6.64.0

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput added in v6.64.0

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext added in v6.64.0

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigAvroConfigPtrOutput

type SubscriptionCloudStorageConfigAvroConfigInput added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfigInput interface {
	pulumi.Input

	ToSubscriptionCloudStorageConfigAvroConfigOutput() SubscriptionCloudStorageConfigAvroConfigOutput
	ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext(context.Context) SubscriptionCloudStorageConfigAvroConfigOutput
}

SubscriptionCloudStorageConfigAvroConfigInput is an input type that accepts SubscriptionCloudStorageConfigAvroConfigArgs and SubscriptionCloudStorageConfigAvroConfigOutput values. You can construct a concrete instance of `SubscriptionCloudStorageConfigAvroConfigInput` via:

SubscriptionCloudStorageConfigAvroConfigArgs{...}

type SubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigAvroConfigOutput) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutput() SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) WriteMetadata added in v6.64.0

When true, write the subscription name, messageId, publishTime, attributes, and orderingKey as additional fields in the output.

type SubscriptionCloudStorageConfigAvroConfigPtrInput added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfigPtrInput interface {
	pulumi.Input

	ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput
	ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext(context.Context) SubscriptionCloudStorageConfigAvroConfigPtrOutput
}

SubscriptionCloudStorageConfigAvroConfigPtrInput is an input type that accepts SubscriptionCloudStorageConfigAvroConfigArgs, SubscriptionCloudStorageConfigAvroConfigPtr and SubscriptionCloudStorageConfigAvroConfigPtrOutput values. You can construct a concrete instance of `SubscriptionCloudStorageConfigAvroConfigPtrInput` via:

        SubscriptionCloudStorageConfigAvroConfigArgs{...}

or:

        nil

type SubscriptionCloudStorageConfigAvroConfigPtrOutput added in v6.64.0

type SubscriptionCloudStorageConfigAvroConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) Elem added in v6.64.0

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) WriteMetadata added in v6.64.0

When true, write the subscription name, messageId, publishTime, attributes, and orderingKey as additional fields in the output.

type SubscriptionCloudStorageConfigInput added in v6.64.0

type SubscriptionCloudStorageConfigInput interface {
	pulumi.Input

	ToSubscriptionCloudStorageConfigOutput() SubscriptionCloudStorageConfigOutput
	ToSubscriptionCloudStorageConfigOutputWithContext(context.Context) SubscriptionCloudStorageConfigOutput
}

SubscriptionCloudStorageConfigInput is an input type that accepts SubscriptionCloudStorageConfigArgs and SubscriptionCloudStorageConfigOutput values. You can construct a concrete instance of `SubscriptionCloudStorageConfigInput` via:

SubscriptionCloudStorageConfigArgs{...}

type SubscriptionCloudStorageConfigOutput added in v6.64.0

type SubscriptionCloudStorageConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigOutput) AvroConfig added in v6.64.0

If set, message data will be written to Cloud Storage in Avro format. Structure is documented below.

func (SubscriptionCloudStorageConfigOutput) Bucket added in v6.64.0

User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://".

func (SubscriptionCloudStorageConfigOutput) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigOutput) FilenamePrefix added in v6.64.0

User-provided prefix for Cloud Storage filename.

func (SubscriptionCloudStorageConfigOutput) FilenameSuffix added in v6.64.0

User-provided suffix for Cloud Storage filename. Must not end in "/".

func (SubscriptionCloudStorageConfigOutput) MaxBytes added in v6.64.0

The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB. The maxBytes limit may be exceeded in cases where messages are larger than the limit.

func (SubscriptionCloudStorageConfigOutput) MaxDuration added in v6.64.0

The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed the subscription's acknowledgement deadline. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

func (SubscriptionCloudStorageConfigOutput) State added in v6.64.0

(Output) An output-only field that indicates whether or not the subscription can receive messages.

func (SubscriptionCloudStorageConfigOutput) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutput() SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigPtrOutput

type SubscriptionCloudStorageConfigPtrInput added in v6.64.0

type SubscriptionCloudStorageConfigPtrInput interface {
	pulumi.Input

	ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput
	ToSubscriptionCloudStorageConfigPtrOutputWithContext(context.Context) SubscriptionCloudStorageConfigPtrOutput
}

SubscriptionCloudStorageConfigPtrInput is an input type that accepts SubscriptionCloudStorageConfigArgs, SubscriptionCloudStorageConfigPtr and SubscriptionCloudStorageConfigPtrOutput values. You can construct a concrete instance of `SubscriptionCloudStorageConfigPtrInput` via:

        SubscriptionCloudStorageConfigArgs{...}

or:

        nil

type SubscriptionCloudStorageConfigPtrOutput added in v6.64.0

type SubscriptionCloudStorageConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigPtrOutput) AvroConfig added in v6.64.0

If set, message data will be written to Cloud Storage in Avro format. Structure is documented below.

func (SubscriptionCloudStorageConfigPtrOutput) Bucket added in v6.64.0

User-provided name for the Cloud Storage bucket. The bucket must be created by the user. The bucket name must be without any prefix like "gs://".

func (SubscriptionCloudStorageConfigPtrOutput) Elem added in v6.64.0

func (SubscriptionCloudStorageConfigPtrOutput) ElementType added in v6.64.0

func (SubscriptionCloudStorageConfigPtrOutput) FilenamePrefix added in v6.64.0

User-provided prefix for Cloud Storage filename.

func (SubscriptionCloudStorageConfigPtrOutput) FilenameSuffix added in v6.64.0

User-provided suffix for Cloud Storage filename. Must not end in "/".

func (SubscriptionCloudStorageConfigPtrOutput) MaxBytes added in v6.64.0

The maximum bytes that can be written to a Cloud Storage file before a new file is created. Min 1 KB, max 10 GiB. The maxBytes limit may be exceeded in cases where messages are larger than the limit.

func (SubscriptionCloudStorageConfigPtrOutput) MaxDuration added in v6.64.0

The maximum duration that can elapse before a new Cloud Storage file is created. Min 1 minute, max 10 minutes, default 5 minutes. May not exceed the subscription's acknowledgement deadline. A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

func (SubscriptionCloudStorageConfigPtrOutput) State added in v6.64.0

(Output) An output-only field that indicates whether or not the subscription can receive messages.

func (SubscriptionCloudStorageConfigPtrOutput) ToOutput added in v6.65.1

func (SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutput added in v6.64.0

func (o SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext added in v6.64.0

func (o SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext(ctx context.Context) SubscriptionCloudStorageConfigPtrOutput

type SubscriptionDeadLetterPolicy

type SubscriptionDeadLetterPolicy struct {
	// The name of the topic to which dead letter messages should be published.
	// Format is `projects/{project}/topics/{topic}`.
	// The Cloud Pub/Sub service account associated with the enclosing subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Publish() to this topic.
	// The operation will fail if the topic does not exist.
	// Users should ensure that there is a subscription attached to this topic
	// since messages published to a topic with no subscriptions are lost.
	DeadLetterTopic *string `pulumi:"deadLetterTopic"`
	// The maximum number of delivery attempts for any message. The value must be
	// between 5 and 100.
	// The number of delivery attempts is defined as 1 + (the sum of number of
	// NACKs and number of times the acknowledgement deadline has been exceeded for the message).
	// A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
	// client libraries may automatically extend ack_deadlines.
	// This field will be honored on a best effort basis.
	// If this parameter is 0, a default value of 5 is used.
	MaxDeliveryAttempts *int `pulumi:"maxDeliveryAttempts"`
}

type SubscriptionDeadLetterPolicyArgs

type SubscriptionDeadLetterPolicyArgs struct {
	// The name of the topic to which dead letter messages should be published.
	// Format is `projects/{project}/topics/{topic}`.
	// The Cloud Pub/Sub service account associated with the enclosing subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Publish() to this topic.
	// The operation will fail if the topic does not exist.
	// Users should ensure that there is a subscription attached to this topic
	// since messages published to a topic with no subscriptions are lost.
	DeadLetterTopic pulumi.StringPtrInput `pulumi:"deadLetterTopic"`
	// The maximum number of delivery attempts for any message. The value must be
	// between 5 and 100.
	// The number of delivery attempts is defined as 1 + (the sum of number of
	// NACKs and number of times the acknowledgement deadline has been exceeded for the message).
	// A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
	// client libraries may automatically extend ack_deadlines.
	// This field will be honored on a best effort basis.
	// If this parameter is 0, a default value of 5 is used.
	MaxDeliveryAttempts pulumi.IntPtrInput `pulumi:"maxDeliveryAttempts"`
}

func (SubscriptionDeadLetterPolicyArgs) ElementType

func (SubscriptionDeadLetterPolicyArgs) ToOutput added in v6.65.1

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutput

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutput() SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutputWithContext

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutputWithContext(ctx context.Context) SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutput

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutputWithContext

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutputWithContext(ctx context.Context) SubscriptionDeadLetterPolicyPtrOutput

type SubscriptionDeadLetterPolicyInput

type SubscriptionDeadLetterPolicyInput interface {
	pulumi.Input

	ToSubscriptionDeadLetterPolicyOutput() SubscriptionDeadLetterPolicyOutput
	ToSubscriptionDeadLetterPolicyOutputWithContext(context.Context) SubscriptionDeadLetterPolicyOutput
}

SubscriptionDeadLetterPolicyInput is an input type that accepts SubscriptionDeadLetterPolicyArgs and SubscriptionDeadLetterPolicyOutput values. You can construct a concrete instance of `SubscriptionDeadLetterPolicyInput` via:

SubscriptionDeadLetterPolicyArgs{...}

type SubscriptionDeadLetterPolicyOutput

type SubscriptionDeadLetterPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionDeadLetterPolicyOutput) DeadLetterTopic

The name of the topic to which dead letter messages should be published. Format is `projects/{project}/topics/{topic}`. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Publish() to this topic. The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached to this topic since messages published to a topic with no subscriptions are lost.

func (SubscriptionDeadLetterPolicyOutput) ElementType

func (SubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts

func (o SubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts() pulumi.IntPtrOutput

The maximum number of delivery attempts for any message. The value must be between 5 and 100. The number of delivery attempts is defined as 1 + (the sum of number of NACKs and number of times the acknowledgement deadline has been exceeded for the message). A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that client libraries may automatically extend ack_deadlines. This field will be honored on a best effort basis. If this parameter is 0, a default value of 5 is used.

func (SubscriptionDeadLetterPolicyOutput) ToOutput added in v6.65.1

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutput

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutput() SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutputWithContext

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutputWithContext(ctx context.Context) SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutput

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext(ctx context.Context) SubscriptionDeadLetterPolicyPtrOutput

type SubscriptionDeadLetterPolicyPtrInput

type SubscriptionDeadLetterPolicyPtrInput interface {
	pulumi.Input

	ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput
	ToSubscriptionDeadLetterPolicyPtrOutputWithContext(context.Context) SubscriptionDeadLetterPolicyPtrOutput
}

SubscriptionDeadLetterPolicyPtrInput is an input type that accepts SubscriptionDeadLetterPolicyArgs, SubscriptionDeadLetterPolicyPtr and SubscriptionDeadLetterPolicyPtrOutput values. You can construct a concrete instance of `SubscriptionDeadLetterPolicyPtrInput` via:

        SubscriptionDeadLetterPolicyArgs{...}

or:

        nil

type SubscriptionDeadLetterPolicyPtrOutput

type SubscriptionDeadLetterPolicyPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionDeadLetterPolicyPtrOutput) DeadLetterTopic

The name of the topic to which dead letter messages should be published. Format is `projects/{project}/topics/{topic}`. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Publish() to this topic. The operation will fail if the topic does not exist. Users should ensure that there is a subscription attached to this topic since messages published to a topic with no subscriptions are lost.

func (SubscriptionDeadLetterPolicyPtrOutput) Elem

func (SubscriptionDeadLetterPolicyPtrOutput) ElementType

func (SubscriptionDeadLetterPolicyPtrOutput) MaxDeliveryAttempts

The maximum number of delivery attempts for any message. The value must be between 5 and 100. The number of delivery attempts is defined as 1 + (the sum of number of NACKs and number of times the acknowledgement deadline has been exceeded for the message). A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that client libraries may automatically extend ack_deadlines. This field will be honored on a best effort basis. If this parameter is 0, a default value of 5 is used.

func (SubscriptionDeadLetterPolicyPtrOutput) ToOutput added in v6.65.1

func (SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutput

func (o SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext

func (o SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext(ctx context.Context) SubscriptionDeadLetterPolicyPtrOutput

type SubscriptionExpirationPolicy

type SubscriptionExpirationPolicy struct {
	// Specifies the "time-to-live" duration for an associated resource. The
	// resource expires if it is not active for a period of ttl.
	// If ttl is set to "", the associated resource never expires.
	// A duration in seconds with up to nine fractional digits, terminated by 's'.
	// Example - "3.5s".
	Ttl string `pulumi:"ttl"`
}

type SubscriptionExpirationPolicyArgs

type SubscriptionExpirationPolicyArgs struct {
	// Specifies the "time-to-live" duration for an associated resource. The
	// resource expires if it is not active for a period of ttl.
	// If ttl is set to "", the associated resource never expires.
	// A duration in seconds with up to nine fractional digits, terminated by 's'.
	// Example - "3.5s".
	Ttl pulumi.StringInput `pulumi:"ttl"`
}

func (SubscriptionExpirationPolicyArgs) ElementType

func (SubscriptionExpirationPolicyArgs) ToOutput added in v6.65.1

func (SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyOutput

func (i SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyOutput() SubscriptionExpirationPolicyOutput

func (SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyOutputWithContext

func (i SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyOutputWithContext(ctx context.Context) SubscriptionExpirationPolicyOutput

func (SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyPtrOutput

func (i SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyPtrOutput() SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyPtrOutputWithContext

func (i SubscriptionExpirationPolicyArgs) ToSubscriptionExpirationPolicyPtrOutputWithContext(ctx context.Context) SubscriptionExpirationPolicyPtrOutput

type SubscriptionExpirationPolicyInput

type SubscriptionExpirationPolicyInput interface {
	pulumi.Input

	ToSubscriptionExpirationPolicyOutput() SubscriptionExpirationPolicyOutput
	ToSubscriptionExpirationPolicyOutputWithContext(context.Context) SubscriptionExpirationPolicyOutput
}

SubscriptionExpirationPolicyInput is an input type that accepts SubscriptionExpirationPolicyArgs and SubscriptionExpirationPolicyOutput values. You can construct a concrete instance of `SubscriptionExpirationPolicyInput` via:

SubscriptionExpirationPolicyArgs{...}

type SubscriptionExpirationPolicyOutput

type SubscriptionExpirationPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionExpirationPolicyOutput) ElementType

func (SubscriptionExpirationPolicyOutput) ToOutput added in v6.65.1

func (SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyOutput

func (o SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyOutput() SubscriptionExpirationPolicyOutput

func (SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyOutputWithContext

func (o SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyOutputWithContext(ctx context.Context) SubscriptionExpirationPolicyOutput

func (SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyPtrOutput

func (o SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyPtrOutput() SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyPtrOutputWithContext

func (o SubscriptionExpirationPolicyOutput) ToSubscriptionExpirationPolicyPtrOutputWithContext(ctx context.Context) SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyOutput) Ttl

Specifies the "time-to-live" duration for an associated resource. The resource expires if it is not active for a period of ttl. If ttl is set to "", the associated resource never expires. A duration in seconds with up to nine fractional digits, terminated by 's'. Example - "3.5s".

type SubscriptionExpirationPolicyPtrInput

type SubscriptionExpirationPolicyPtrInput interface {
	pulumi.Input

	ToSubscriptionExpirationPolicyPtrOutput() SubscriptionExpirationPolicyPtrOutput
	ToSubscriptionExpirationPolicyPtrOutputWithContext(context.Context) SubscriptionExpirationPolicyPtrOutput
}

SubscriptionExpirationPolicyPtrInput is an input type that accepts SubscriptionExpirationPolicyArgs, SubscriptionExpirationPolicyPtr and SubscriptionExpirationPolicyPtrOutput values. You can construct a concrete instance of `SubscriptionExpirationPolicyPtrInput` via:

        SubscriptionExpirationPolicyArgs{...}

or:

        nil

type SubscriptionExpirationPolicyPtrOutput

type SubscriptionExpirationPolicyPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionExpirationPolicyPtrOutput) Elem

func (SubscriptionExpirationPolicyPtrOutput) ElementType

func (SubscriptionExpirationPolicyPtrOutput) ToOutput added in v6.65.1

func (SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutput

func (o SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutput() SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutputWithContext

func (o SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutputWithContext(ctx context.Context) SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyPtrOutput) Ttl

Specifies the "time-to-live" duration for an associated resource. The resource expires if it is not active for a period of ttl. If ttl is set to "", the associated resource never expires. A duration in seconds with up to nine fractional digits, terminated by 's'. Example - "3.5s".

type SubscriptionIAMBinding

type SubscriptionIAMBinding struct {
	pulumi.CustomResourceState

	Condition SubscriptionIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the subscription's IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` 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"`
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringOutput `pulumi:"subscription"`
}

Three different resources help you manage your IAM policy for pubsub subscription. Each of these resources serves a different use case:

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: 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 subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

> **Note:** `pubsub.SubscriptionIAMPolicy` **cannot** be used in conjunction with `pubsub.SubscriptionIAMBinding` and `pubsub.SubscriptionIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMBinding(ctx, "editor", &pubsub.SubscriptionIAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMMember(ctx, "editor", &pubsub.SubscriptionIAMMemberArgs{
			Member:       pulumi.String("user:jane@example.com"),
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Pubsub subscription IAM resources can be imported using the project, subscription name, role and member.

```sh

$ pulumi import gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding editor projects/{your-project-id}/subscriptions/{your-subscription-name}

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor"

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor jane@example.com"

```

-> **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 GetSubscriptionIAMBinding

func GetSubscriptionIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubscriptionIAMBindingState, opts ...pulumi.ResourceOption) (*SubscriptionIAMBinding, error)

GetSubscriptionIAMBinding gets an existing SubscriptionIAMBinding 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 NewSubscriptionIAMBinding

func NewSubscriptionIAMBinding(ctx *pulumi.Context,
	name string, args *SubscriptionIAMBindingArgs, opts ...pulumi.ResourceOption) (*SubscriptionIAMBinding, error)

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

func (*SubscriptionIAMBinding) ElementType

func (*SubscriptionIAMBinding) ElementType() reflect.Type

func (*SubscriptionIAMBinding) ToOutput added in v6.65.1

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutputWithContext

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingOutputWithContext(ctx context.Context) SubscriptionIAMBindingOutput

type SubscriptionIAMBindingArgs

type SubscriptionIAMBindingArgs struct {
	Condition SubscriptionIAMBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` 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 subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMBinding resource.

func (SubscriptionIAMBindingArgs) ElementType

func (SubscriptionIAMBindingArgs) ElementType() reflect.Type

type SubscriptionIAMBindingArray

type SubscriptionIAMBindingArray []SubscriptionIAMBindingInput

func (SubscriptionIAMBindingArray) ElementType

func (SubscriptionIAMBindingArray) ToOutput added in v6.65.1

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput

func (i SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutputWithContext

func (i SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutputWithContext(ctx context.Context) SubscriptionIAMBindingArrayOutput

type SubscriptionIAMBindingArrayInput

type SubscriptionIAMBindingArrayInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput
	ToSubscriptionIAMBindingArrayOutputWithContext(context.Context) SubscriptionIAMBindingArrayOutput
}

SubscriptionIAMBindingArrayInput is an input type that accepts SubscriptionIAMBindingArray and SubscriptionIAMBindingArrayOutput values. You can construct a concrete instance of `SubscriptionIAMBindingArrayInput` via:

SubscriptionIAMBindingArray{ SubscriptionIAMBindingArgs{...} }

type SubscriptionIAMBindingArrayOutput

type SubscriptionIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingArrayOutput) ElementType

func (SubscriptionIAMBindingArrayOutput) Index

func (SubscriptionIAMBindingArrayOutput) ToOutput added in v6.65.1

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput

func (o SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutputWithContext

func (o SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutputWithContext(ctx context.Context) SubscriptionIAMBindingArrayOutput

type SubscriptionIAMBindingCondition

type SubscriptionIAMBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type SubscriptionIAMBindingConditionArgs

type SubscriptionIAMBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (SubscriptionIAMBindingConditionArgs) ElementType

func (SubscriptionIAMBindingConditionArgs) ToOutput added in v6.65.1

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutput

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutput() SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutputWithContext

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutputWithContext(ctx context.Context) SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutput

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutputWithContext

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingConditionPtrOutput

type SubscriptionIAMBindingConditionInput

type SubscriptionIAMBindingConditionInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingConditionOutput() SubscriptionIAMBindingConditionOutput
	ToSubscriptionIAMBindingConditionOutputWithContext(context.Context) SubscriptionIAMBindingConditionOutput
}

SubscriptionIAMBindingConditionInput is an input type that accepts SubscriptionIAMBindingConditionArgs and SubscriptionIAMBindingConditionOutput values. You can construct a concrete instance of `SubscriptionIAMBindingConditionInput` via:

SubscriptionIAMBindingConditionArgs{...}

type SubscriptionIAMBindingConditionOutput

type SubscriptionIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingConditionOutput) Description

func (SubscriptionIAMBindingConditionOutput) ElementType

func (SubscriptionIAMBindingConditionOutput) Expression

func (SubscriptionIAMBindingConditionOutput) Title

func (SubscriptionIAMBindingConditionOutput) ToOutput added in v6.65.1

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutput

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutput() SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutputWithContext

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutputWithContext(ctx context.Context) SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutput

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingConditionPtrOutput

type SubscriptionIAMBindingConditionPtrInput

type SubscriptionIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput
	ToSubscriptionIAMBindingConditionPtrOutputWithContext(context.Context) SubscriptionIAMBindingConditionPtrOutput
}

SubscriptionIAMBindingConditionPtrInput is an input type that accepts SubscriptionIAMBindingConditionArgs, SubscriptionIAMBindingConditionPtr and SubscriptionIAMBindingConditionPtrOutput values. You can construct a concrete instance of `SubscriptionIAMBindingConditionPtrInput` via:

        SubscriptionIAMBindingConditionArgs{...}

or:

        nil

type SubscriptionIAMBindingConditionPtrOutput

type SubscriptionIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingConditionPtrOutput) Description

func (SubscriptionIAMBindingConditionPtrOutput) Elem

func (SubscriptionIAMBindingConditionPtrOutput) ElementType

func (SubscriptionIAMBindingConditionPtrOutput) Expression

func (SubscriptionIAMBindingConditionPtrOutput) Title

func (SubscriptionIAMBindingConditionPtrOutput) ToOutput added in v6.65.1

func (SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutput

func (o SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext

func (o SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingConditionPtrOutput

type SubscriptionIAMBindingInput

type SubscriptionIAMBindingInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput
	ToSubscriptionIAMBindingOutputWithContext(ctx context.Context) SubscriptionIAMBindingOutput
}

type SubscriptionIAMBindingMap

type SubscriptionIAMBindingMap map[string]SubscriptionIAMBindingInput

func (SubscriptionIAMBindingMap) ElementType

func (SubscriptionIAMBindingMap) ElementType() reflect.Type

func (SubscriptionIAMBindingMap) ToOutput added in v6.65.1

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput

func (i SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutputWithContext

func (i SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutputWithContext(ctx context.Context) SubscriptionIAMBindingMapOutput

type SubscriptionIAMBindingMapInput

type SubscriptionIAMBindingMapInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput
	ToSubscriptionIAMBindingMapOutputWithContext(context.Context) SubscriptionIAMBindingMapOutput
}

SubscriptionIAMBindingMapInput is an input type that accepts SubscriptionIAMBindingMap and SubscriptionIAMBindingMapOutput values. You can construct a concrete instance of `SubscriptionIAMBindingMapInput` via:

SubscriptionIAMBindingMap{ "key": SubscriptionIAMBindingArgs{...} }

type SubscriptionIAMBindingMapOutput

type SubscriptionIAMBindingMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingMapOutput) ElementType

func (SubscriptionIAMBindingMapOutput) MapIndex

func (SubscriptionIAMBindingMapOutput) ToOutput added in v6.65.1

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput

func (o SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutputWithContext

func (o SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutputWithContext(ctx context.Context) SubscriptionIAMBindingMapOutput

type SubscriptionIAMBindingOutput

type SubscriptionIAMBindingOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingOutput) Condition added in v6.23.0

func (SubscriptionIAMBindingOutput) ElementType

func (SubscriptionIAMBindingOutput) Etag added in v6.23.0

(Computed) The etag of the subscription's IAM policy.

func (SubscriptionIAMBindingOutput) Members added in v6.23.0

func (SubscriptionIAMBindingOutput) Project added in v6.23.0

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

func (SubscriptionIAMBindingOutput) Role added in v6.23.0

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

func (SubscriptionIAMBindingOutput) Subscription added in v6.23.0

The subscription name or id to bind to attach IAM policy to.

  • `member/members` - (Required) 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.

func (SubscriptionIAMBindingOutput) ToOutput added in v6.65.1

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutputWithContext

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutputWithContext(ctx context.Context) SubscriptionIAMBindingOutput

type SubscriptionIAMBindingState

type SubscriptionIAMBindingState struct {
	Condition SubscriptionIAMBindingConditionPtrInput
	// (Computed) The etag of the subscription's IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringPtrInput
}

func (SubscriptionIAMBindingState) ElementType

type SubscriptionIAMMember

type SubscriptionIAMMember struct {
	pulumi.CustomResourceState

	Condition SubscriptionIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the subscription's IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` 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"`
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringOutput `pulumi:"subscription"`
}

Three different resources help you manage your IAM policy for pubsub subscription. Each of these resources serves a different use case:

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: 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 subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

> **Note:** `pubsub.SubscriptionIAMPolicy` **cannot** be used in conjunction with `pubsub.SubscriptionIAMBinding` and `pubsub.SubscriptionIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMBinding(ctx, "editor", &pubsub.SubscriptionIAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMMember(ctx, "editor", &pubsub.SubscriptionIAMMemberArgs{
			Member:       pulumi.String("user:jane@example.com"),
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Pubsub subscription IAM resources can be imported using the project, subscription name, role and member.

```sh

$ pulumi import gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember editor projects/{your-project-id}/subscriptions/{your-subscription-name}

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor"

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor jane@example.com"

```

-> **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 GetSubscriptionIAMMember

func GetSubscriptionIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubscriptionIAMMemberState, opts ...pulumi.ResourceOption) (*SubscriptionIAMMember, error)

GetSubscriptionIAMMember gets an existing SubscriptionIAMMember 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 NewSubscriptionIAMMember

func NewSubscriptionIAMMember(ctx *pulumi.Context,
	name string, args *SubscriptionIAMMemberArgs, opts ...pulumi.ResourceOption) (*SubscriptionIAMMember, error)

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

func (*SubscriptionIAMMember) ElementType

func (*SubscriptionIAMMember) ElementType() reflect.Type

func (*SubscriptionIAMMember) ToOutput added in v6.65.1

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutput

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutputWithContext

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberOutputWithContext(ctx context.Context) SubscriptionIAMMemberOutput

type SubscriptionIAMMemberArgs

type SubscriptionIAMMemberArgs struct {
	Condition SubscriptionIAMMemberConditionPtrInput
	Member    pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` 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 subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMMember resource.

func (SubscriptionIAMMemberArgs) ElementType

func (SubscriptionIAMMemberArgs) ElementType() reflect.Type

type SubscriptionIAMMemberArray

type SubscriptionIAMMemberArray []SubscriptionIAMMemberInput

func (SubscriptionIAMMemberArray) ElementType

func (SubscriptionIAMMemberArray) ElementType() reflect.Type

func (SubscriptionIAMMemberArray) ToOutput added in v6.65.1

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput

func (i SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutputWithContext

func (i SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutputWithContext(ctx context.Context) SubscriptionIAMMemberArrayOutput

type SubscriptionIAMMemberArrayInput

type SubscriptionIAMMemberArrayInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput
	ToSubscriptionIAMMemberArrayOutputWithContext(context.Context) SubscriptionIAMMemberArrayOutput
}

SubscriptionIAMMemberArrayInput is an input type that accepts SubscriptionIAMMemberArray and SubscriptionIAMMemberArrayOutput values. You can construct a concrete instance of `SubscriptionIAMMemberArrayInput` via:

SubscriptionIAMMemberArray{ SubscriptionIAMMemberArgs{...} }

type SubscriptionIAMMemberArrayOutput

type SubscriptionIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberArrayOutput) ElementType

func (SubscriptionIAMMemberArrayOutput) Index

func (SubscriptionIAMMemberArrayOutput) ToOutput added in v6.65.1

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput

func (o SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutputWithContext

func (o SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutputWithContext(ctx context.Context) SubscriptionIAMMemberArrayOutput

type SubscriptionIAMMemberCondition

type SubscriptionIAMMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type SubscriptionIAMMemberConditionArgs

type SubscriptionIAMMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (SubscriptionIAMMemberConditionArgs) ElementType

func (SubscriptionIAMMemberConditionArgs) ToOutput added in v6.65.1

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutput

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutput() SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutputWithContext

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutputWithContext(ctx context.Context) SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutput

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutputWithContext

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberConditionPtrOutput

type SubscriptionIAMMemberConditionInput

type SubscriptionIAMMemberConditionInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberConditionOutput() SubscriptionIAMMemberConditionOutput
	ToSubscriptionIAMMemberConditionOutputWithContext(context.Context) SubscriptionIAMMemberConditionOutput
}

SubscriptionIAMMemberConditionInput is an input type that accepts SubscriptionIAMMemberConditionArgs and SubscriptionIAMMemberConditionOutput values. You can construct a concrete instance of `SubscriptionIAMMemberConditionInput` via:

SubscriptionIAMMemberConditionArgs{...}

type SubscriptionIAMMemberConditionOutput

type SubscriptionIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberConditionOutput) Description

func (SubscriptionIAMMemberConditionOutput) ElementType

func (SubscriptionIAMMemberConditionOutput) Expression

func (SubscriptionIAMMemberConditionOutput) Title

func (SubscriptionIAMMemberConditionOutput) ToOutput added in v6.65.1

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutput

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutput() SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutputWithContext

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutputWithContext(ctx context.Context) SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutput

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberConditionPtrOutput

type SubscriptionIAMMemberConditionPtrInput

type SubscriptionIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput
	ToSubscriptionIAMMemberConditionPtrOutputWithContext(context.Context) SubscriptionIAMMemberConditionPtrOutput
}

SubscriptionIAMMemberConditionPtrInput is an input type that accepts SubscriptionIAMMemberConditionArgs, SubscriptionIAMMemberConditionPtr and SubscriptionIAMMemberConditionPtrOutput values. You can construct a concrete instance of `SubscriptionIAMMemberConditionPtrInput` via:

        SubscriptionIAMMemberConditionArgs{...}

or:

        nil

type SubscriptionIAMMemberConditionPtrOutput

type SubscriptionIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberConditionPtrOutput) Description

func (SubscriptionIAMMemberConditionPtrOutput) Elem

func (SubscriptionIAMMemberConditionPtrOutput) ElementType

func (SubscriptionIAMMemberConditionPtrOutput) Expression

func (SubscriptionIAMMemberConditionPtrOutput) Title

func (SubscriptionIAMMemberConditionPtrOutput) ToOutput added in v6.65.1

func (SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutput

func (o SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext

func (o SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberConditionPtrOutput

type SubscriptionIAMMemberInput

type SubscriptionIAMMemberInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput
	ToSubscriptionIAMMemberOutputWithContext(ctx context.Context) SubscriptionIAMMemberOutput
}

type SubscriptionIAMMemberMap

type SubscriptionIAMMemberMap map[string]SubscriptionIAMMemberInput

func (SubscriptionIAMMemberMap) ElementType

func (SubscriptionIAMMemberMap) ElementType() reflect.Type

func (SubscriptionIAMMemberMap) ToOutput added in v6.65.1

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput

func (i SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutputWithContext

func (i SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutputWithContext(ctx context.Context) SubscriptionIAMMemberMapOutput

type SubscriptionIAMMemberMapInput

type SubscriptionIAMMemberMapInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput
	ToSubscriptionIAMMemberMapOutputWithContext(context.Context) SubscriptionIAMMemberMapOutput
}

SubscriptionIAMMemberMapInput is an input type that accepts SubscriptionIAMMemberMap and SubscriptionIAMMemberMapOutput values. You can construct a concrete instance of `SubscriptionIAMMemberMapInput` via:

SubscriptionIAMMemberMap{ "key": SubscriptionIAMMemberArgs{...} }

type SubscriptionIAMMemberMapOutput

type SubscriptionIAMMemberMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberMapOutput) ElementType

func (SubscriptionIAMMemberMapOutput) MapIndex

func (SubscriptionIAMMemberMapOutput) ToOutput added in v6.65.1

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput

func (o SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutputWithContext

func (o SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutputWithContext(ctx context.Context) SubscriptionIAMMemberMapOutput

type SubscriptionIAMMemberOutput

type SubscriptionIAMMemberOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberOutput) Condition added in v6.23.0

func (SubscriptionIAMMemberOutput) ElementType

func (SubscriptionIAMMemberOutput) Etag added in v6.23.0

(Computed) The etag of the subscription's IAM policy.

func (SubscriptionIAMMemberOutput) Member added in v6.23.0

func (SubscriptionIAMMemberOutput) Project added in v6.23.0

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

func (SubscriptionIAMMemberOutput) Role added in v6.23.0

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

func (SubscriptionIAMMemberOutput) Subscription added in v6.23.0

The subscription name or id to bind to attach IAM policy to.

  • `member/members` - (Required) 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.

func (SubscriptionIAMMemberOutput) ToOutput added in v6.65.1

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutputWithContext

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutputWithContext(ctx context.Context) SubscriptionIAMMemberOutput

type SubscriptionIAMMemberState

type SubscriptionIAMMemberState struct {
	Condition SubscriptionIAMMemberConditionPtrInput
	// (Computed) The etag of the subscription's IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringPtrInput
}

func (SubscriptionIAMMemberState) ElementType

func (SubscriptionIAMMemberState) ElementType() reflect.Type

type SubscriptionIAMPolicy

type SubscriptionIAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the subscription's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringOutput `pulumi:"subscription"`
}

Three different resources help you manage your IAM policy for pubsub subscription. Each of these resources serves a different use case:

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: 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 subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

> **Note:** `pubsub.SubscriptionIAMPolicy` **cannot** be used in conjunction with `pubsub.SubscriptionIAMBinding` and `pubsub.SubscriptionIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMBinding(ctx, "editor", &pubsub.SubscriptionIAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSubscriptionIAMMember(ctx, "editor", &pubsub.SubscriptionIAMMemberArgs{
			Member:       pulumi.String("user:jane@example.com"),
			Role:         pulumi.String("roles/editor"),
			Subscription: pulumi.String("your-subscription-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Pubsub subscription IAM resources can be imported using the project, subscription name, role and member.

```sh

$ pulumi import gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy editor projects/{your-project-id}/subscriptions/{your-subscription-name}

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor"

```

```sh

$ pulumi import gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy editor "projects/{your-project-id}/subscriptions/{your-subscription-name} roles/editor jane@example.com"

```

-> **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 GetSubscriptionIAMPolicy

func GetSubscriptionIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SubscriptionIAMPolicyState, opts ...pulumi.ResourceOption) (*SubscriptionIAMPolicy, error)

GetSubscriptionIAMPolicy gets an existing SubscriptionIAMPolicy 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 NewSubscriptionIAMPolicy

func NewSubscriptionIAMPolicy(ctx *pulumi.Context,
	name string, args *SubscriptionIAMPolicyArgs, opts ...pulumi.ResourceOption) (*SubscriptionIAMPolicy, error)

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

func (*SubscriptionIAMPolicy) ElementType

func (*SubscriptionIAMPolicy) ElementType() reflect.Type

func (*SubscriptionIAMPolicy) ToOutput added in v6.65.1

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutputWithContext

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutputWithContext(ctx context.Context) SubscriptionIAMPolicyOutput

type SubscriptionIAMPolicyArgs

type SubscriptionIAMPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMPolicy resource.

func (SubscriptionIAMPolicyArgs) ElementType

func (SubscriptionIAMPolicyArgs) ElementType() reflect.Type

type SubscriptionIAMPolicyArray

type SubscriptionIAMPolicyArray []SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyArray) ElementType

func (SubscriptionIAMPolicyArray) ElementType() reflect.Type

func (SubscriptionIAMPolicyArray) ToOutput added in v6.65.1

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput

func (i SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutputWithContext

func (i SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutputWithContext(ctx context.Context) SubscriptionIAMPolicyArrayOutput

type SubscriptionIAMPolicyArrayInput

type SubscriptionIAMPolicyArrayInput interface {
	pulumi.Input

	ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput
	ToSubscriptionIAMPolicyArrayOutputWithContext(context.Context) SubscriptionIAMPolicyArrayOutput
}

SubscriptionIAMPolicyArrayInput is an input type that accepts SubscriptionIAMPolicyArray and SubscriptionIAMPolicyArrayOutput values. You can construct a concrete instance of `SubscriptionIAMPolicyArrayInput` via:

SubscriptionIAMPolicyArray{ SubscriptionIAMPolicyArgs{...} }

type SubscriptionIAMPolicyArrayOutput

type SubscriptionIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyArrayOutput) ElementType

func (SubscriptionIAMPolicyArrayOutput) Index

func (SubscriptionIAMPolicyArrayOutput) ToOutput added in v6.65.1

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput

func (o SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutputWithContext

func (o SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutputWithContext(ctx context.Context) SubscriptionIAMPolicyArrayOutput

type SubscriptionIAMPolicyInput

type SubscriptionIAMPolicyInput interface {
	pulumi.Input

	ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput
	ToSubscriptionIAMPolicyOutputWithContext(ctx context.Context) SubscriptionIAMPolicyOutput
}

type SubscriptionIAMPolicyMap

type SubscriptionIAMPolicyMap map[string]SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyMap) ElementType

func (SubscriptionIAMPolicyMap) ElementType() reflect.Type

func (SubscriptionIAMPolicyMap) ToOutput added in v6.65.1

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput

func (i SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutputWithContext

func (i SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutputWithContext(ctx context.Context) SubscriptionIAMPolicyMapOutput

type SubscriptionIAMPolicyMapInput

type SubscriptionIAMPolicyMapInput interface {
	pulumi.Input

	ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput
	ToSubscriptionIAMPolicyMapOutputWithContext(context.Context) SubscriptionIAMPolicyMapOutput
}

SubscriptionIAMPolicyMapInput is an input type that accepts SubscriptionIAMPolicyMap and SubscriptionIAMPolicyMapOutput values. You can construct a concrete instance of `SubscriptionIAMPolicyMapInput` via:

SubscriptionIAMPolicyMap{ "key": SubscriptionIAMPolicyArgs{...} }

type SubscriptionIAMPolicyMapOutput

type SubscriptionIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyMapOutput) ElementType

func (SubscriptionIAMPolicyMapOutput) MapIndex

func (SubscriptionIAMPolicyMapOutput) ToOutput added in v6.65.1

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput

func (o SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutputWithContext

func (o SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutputWithContext(ctx context.Context) SubscriptionIAMPolicyMapOutput

type SubscriptionIAMPolicyOutput

type SubscriptionIAMPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyOutput) ElementType

func (SubscriptionIAMPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the subscription's IAM policy.

func (SubscriptionIAMPolicyOutput) PolicyData added in v6.23.0

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

***

func (SubscriptionIAMPolicyOutput) Project added in v6.23.0

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

func (SubscriptionIAMPolicyOutput) Subscription added in v6.23.0

The subscription name or id to bind to attach IAM policy to.

  • `member/members` - (Required) 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.

func (SubscriptionIAMPolicyOutput) ToOutput added in v6.65.1

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutputWithContext

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutputWithContext(ctx context.Context) SubscriptionIAMPolicyOutput

type SubscriptionIAMPolicyState

type SubscriptionIAMPolicyState struct {
	// (Computed) The etag of the subscription's IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringPtrInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The subscription name or id to bind to attach IAM policy to.
	//
	// * `member/members` - (Required) 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.
	Subscription pulumi.StringPtrInput
}

func (SubscriptionIAMPolicyState) ElementType

func (SubscriptionIAMPolicyState) ElementType() reflect.Type

type SubscriptionInput

type SubscriptionInput interface {
	pulumi.Input

	ToSubscriptionOutput() SubscriptionOutput
	ToSubscriptionOutputWithContext(ctx context.Context) SubscriptionOutput
}

type SubscriptionMap

type SubscriptionMap map[string]SubscriptionInput

func (SubscriptionMap) ElementType

func (SubscriptionMap) ElementType() reflect.Type

func (SubscriptionMap) ToOutput added in v6.65.1

func (SubscriptionMap) ToSubscriptionMapOutput

func (i SubscriptionMap) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMap) ToSubscriptionMapOutputWithContext

func (i SubscriptionMap) ToSubscriptionMapOutputWithContext(ctx context.Context) SubscriptionMapOutput

type SubscriptionMapInput

type SubscriptionMapInput interface {
	pulumi.Input

	ToSubscriptionMapOutput() SubscriptionMapOutput
	ToSubscriptionMapOutputWithContext(context.Context) SubscriptionMapOutput
}

SubscriptionMapInput is an input type that accepts SubscriptionMap and SubscriptionMapOutput values. You can construct a concrete instance of `SubscriptionMapInput` via:

SubscriptionMap{ "key": SubscriptionArgs{...} }

type SubscriptionMapOutput

type SubscriptionMapOutput struct{ *pulumi.OutputState }

func (SubscriptionMapOutput) ElementType

func (SubscriptionMapOutput) ElementType() reflect.Type

func (SubscriptionMapOutput) MapIndex

func (SubscriptionMapOutput) ToOutput added in v6.65.1

func (SubscriptionMapOutput) ToSubscriptionMapOutput

func (o SubscriptionMapOutput) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMapOutput) ToSubscriptionMapOutputWithContext

func (o SubscriptionMapOutput) ToSubscriptionMapOutputWithContext(ctx context.Context) SubscriptionMapOutput

type SubscriptionOutput

type SubscriptionOutput struct{ *pulumi.OutputState }

func (SubscriptionOutput) AckDeadlineSeconds added in v6.23.0

func (o SubscriptionOutput) AckDeadlineSeconds() pulumi.IntOutput

This value is the maximum time after a subscriber receives a message before the subscriber should acknowledge the message. After message delivery but before the ack deadline expires and before the message is acknowledged, it is an outstanding message and will not be delivered again during that time (on a best-effort basis). For pull subscriptions, this value is used as the initial value for the ack deadline. To override this value for a given message, call subscriptions.modifyAckDeadline with the corresponding ackId if using pull. The minimum custom deadline you can specify is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the message.

func (SubscriptionOutput) BigqueryConfig added in v6.34.0

If delivery to BigQuery is used with this subscription, this field is used to configure it. Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined. If all three are empty, then the subscriber will pull and ack messages using API methods. Structure is documented below.

func (SubscriptionOutput) CloudStorageConfig added in v6.64.0

If delivery to Cloud Storage is used with this subscription, this field is used to configure it. Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined. If all three are empty, then the subscriber will pull and ack messages using API methods. Structure is documented below.

func (SubscriptionOutput) DeadLetterPolicy added in v6.23.0

A policy that specifies the conditions for dead lettering messages in this subscription. If deadLetterPolicy is not set, dead lettering is disabled. The Cloud Pub/Sub service account associated with this subscription's parent project (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on this subscription. Structure is documented below.

func (SubscriptionOutput) ElementType

func (SubscriptionOutput) ElementType() reflect.Type

func (SubscriptionOutput) EnableExactlyOnceDelivery added in v6.23.0

func (o SubscriptionOutput) EnableExactlyOnceDelivery() pulumi.BoolPtrOutput

If `true`, Pub/Sub provides the following guarantees for the delivery of a message with a given value of messageId on this Subscriptions':

  • The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
  • An acknowledged message will not be resent to a subscriber. Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery` is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values

func (SubscriptionOutput) EnableMessageOrdering added in v6.23.0

func (o SubscriptionOutput) EnableMessageOrdering() pulumi.BoolPtrOutput

If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they may be delivered in any order.

func (SubscriptionOutput) ExpirationPolicy added in v6.23.0

A policy that specifies the conditions for this subscription's expiration. A subscription is considered active as long as any connected subscriber is successfully consuming messages from the subscription or is issuing operations on the subscription. If expirationPolicy is not set, a default policy with ttl of 31 days will be used. If it is set but ttl is "", the resource never expires. The minimum allowed value for expirationPolicy.ttl is 1 day. Structure is documented below.

func (SubscriptionOutput) Filter added in v6.23.0

The subscription only delivers the messages that match the filter. Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription, you can't modify the filter.

func (SubscriptionOutput) Labels added in v6.23.0

A set of key/value label pairs to assign to this Subscription.

func (SubscriptionOutput) MessageRetentionDuration added in v6.23.0

func (o SubscriptionOutput) MessageRetentionDuration() pulumi.StringPtrOutput

How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If retainAckedMessages is true, then this also configures the retention of acknowledged messages, and thus configures how far back in time a subscriptions.seek can be done. Defaults to 7 days. Cannot be more than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`). A duration in seconds with up to nine fractional digits, terminated by 's'. Example: `"600.5s"`.

func (SubscriptionOutput) Name added in v6.23.0

Name of the subscription.

func (SubscriptionOutput) Project added in v6.23.0

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

func (SubscriptionOutput) PushConfig added in v6.23.0

If push delivery is used with this subscription, this field is used to configure it. An empty pushConfig signifies that the subscriber will pull and ack messages using API methods. Structure is documented below.

func (SubscriptionOutput) RetainAckedMessages added in v6.23.0

func (o SubscriptionOutput) RetainAckedMessages() pulumi.BoolPtrOutput

Indicates whether to retain acknowledged messages. If `true`, then messages are not expunged from the subscription's backlog, even if they are acknowledged, until they fall out of the messageRetentionDuration window.

func (SubscriptionOutput) RetryPolicy added in v6.23.0

A policy that specifies how Pub/Sub retries message delivery for this subscription. If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers. RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message Structure is documented below.

func (SubscriptionOutput) ToOutput added in v6.65.1

func (SubscriptionOutput) ToSubscriptionOutput

func (o SubscriptionOutput) ToSubscriptionOutput() SubscriptionOutput

func (SubscriptionOutput) ToSubscriptionOutputWithContext

func (o SubscriptionOutput) ToSubscriptionOutputWithContext(ctx context.Context) SubscriptionOutput

func (SubscriptionOutput) Topic added in v6.23.0

A reference to a Topic resource.

***

type SubscriptionPushConfig

type SubscriptionPushConfig struct {
	// Endpoint configuration attributes.
	// Every endpoint has a set of API supported attributes that can
	// be used to control different aspects of the message delivery.
	// The currently supported attribute is x-goog-version, which you
	// can use to change the format of the pushed message. This
	// attribute indicates the version of the data expected by
	// the endpoint. This controls the shape of the pushed message
	// (i.e., its fields and metadata). The endpoint version is
	// based on the version of the Pub/Sub API.
	// If not present during the subscriptions.create call,
	// it will default to the version of the API used to make
	// such call. If not present during a subscriptions.modifyPushConfig
	// call, its value will not be changed. subscriptions.get
	// calls will always return a valid version, even if the
	// subscription was created without this attribute.
	// The possible values for this attribute are:
	// - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
	// - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
	Attributes map[string]string `pulumi:"attributes"`
	// When set, the payload to the push endpoint is not wrapped.Sets the
	// `data` field as the HTTP body for delivery.
	// Structure is documented below.
	NoWrapper *SubscriptionPushConfigNoWrapper `pulumi:"noWrapper"`
	// If specified, Pub/Sub will generate and attach an OIDC JWT token as
	// an Authorization header in the HTTP request for every pushed message.
	// Structure is documented below.
	OidcToken *SubscriptionPushConfigOidcToken `pulumi:"oidcToken"`
	// A URL locating the endpoint to which messages should be pushed.
	// For example, a Webhook endpoint might use
	// "https://example.com/push".
	PushEndpoint string `pulumi:"pushEndpoint"`
}

type SubscriptionPushConfigArgs

type SubscriptionPushConfigArgs struct {
	// Endpoint configuration attributes.
	// Every endpoint has a set of API supported attributes that can
	// be used to control different aspects of the message delivery.
	// The currently supported attribute is x-goog-version, which you
	// can use to change the format of the pushed message. This
	// attribute indicates the version of the data expected by
	// the endpoint. This controls the shape of the pushed message
	// (i.e., its fields and metadata). The endpoint version is
	// based on the version of the Pub/Sub API.
	// If not present during the subscriptions.create call,
	// it will default to the version of the API used to make
	// such call. If not present during a subscriptions.modifyPushConfig
	// call, its value will not be changed. subscriptions.get
	// calls will always return a valid version, even if the
	// subscription was created without this attribute.
	// The possible values for this attribute are:
	// - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
	// - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
	Attributes pulumi.StringMapInput `pulumi:"attributes"`
	// When set, the payload to the push endpoint is not wrapped.Sets the
	// `data` field as the HTTP body for delivery.
	// Structure is documented below.
	NoWrapper SubscriptionPushConfigNoWrapperPtrInput `pulumi:"noWrapper"`
	// If specified, Pub/Sub will generate and attach an OIDC JWT token as
	// an Authorization header in the HTTP request for every pushed message.
	// Structure is documented below.
	OidcToken SubscriptionPushConfigOidcTokenPtrInput `pulumi:"oidcToken"`
	// A URL locating the endpoint to which messages should be pushed.
	// For example, a Webhook endpoint might use
	// "https://example.com/push".
	PushEndpoint pulumi.StringInput `pulumi:"pushEndpoint"`
}

func (SubscriptionPushConfigArgs) ElementType

func (SubscriptionPushConfigArgs) ElementType() reflect.Type

func (SubscriptionPushConfigArgs) ToOutput added in v6.65.1

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutput

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutput() SubscriptionPushConfigOutput

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutputWithContext

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutputWithContext(ctx context.Context) SubscriptionPushConfigOutput

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutput

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutputWithContext

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigPtrOutput

type SubscriptionPushConfigInput

type SubscriptionPushConfigInput interface {
	pulumi.Input

	ToSubscriptionPushConfigOutput() SubscriptionPushConfigOutput
	ToSubscriptionPushConfigOutputWithContext(context.Context) SubscriptionPushConfigOutput
}

SubscriptionPushConfigInput is an input type that accepts SubscriptionPushConfigArgs and SubscriptionPushConfigOutput values. You can construct a concrete instance of `SubscriptionPushConfigInput` via:

SubscriptionPushConfigArgs{...}

type SubscriptionPushConfigNoWrapper added in v6.64.0

type SubscriptionPushConfigNoWrapper struct {
	// When true, writes the Pub/Sub message metadata to
	// `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
	// Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
	WriteMetadata bool `pulumi:"writeMetadata"`
}

type SubscriptionPushConfigNoWrapperArgs added in v6.64.0

type SubscriptionPushConfigNoWrapperArgs struct {
	// When true, writes the Pub/Sub message metadata to
	// `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the
	// Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.
	WriteMetadata pulumi.BoolInput `pulumi:"writeMetadata"`
}

func (SubscriptionPushConfigNoWrapperArgs) ElementType added in v6.64.0

func (SubscriptionPushConfigNoWrapperArgs) ToOutput added in v6.65.1

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutput added in v6.64.0

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutput() SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutputWithContext added in v6.64.0

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutputWithContext(ctx context.Context) SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutput added in v6.64.0

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext added in v6.64.0

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigNoWrapperPtrOutput

type SubscriptionPushConfigNoWrapperInput added in v6.64.0

type SubscriptionPushConfigNoWrapperInput interface {
	pulumi.Input

	ToSubscriptionPushConfigNoWrapperOutput() SubscriptionPushConfigNoWrapperOutput
	ToSubscriptionPushConfigNoWrapperOutputWithContext(context.Context) SubscriptionPushConfigNoWrapperOutput
}

SubscriptionPushConfigNoWrapperInput is an input type that accepts SubscriptionPushConfigNoWrapperArgs and SubscriptionPushConfigNoWrapperOutput values. You can construct a concrete instance of `SubscriptionPushConfigNoWrapperInput` via:

SubscriptionPushConfigNoWrapperArgs{...}

type SubscriptionPushConfigNoWrapperOutput added in v6.64.0

type SubscriptionPushConfigNoWrapperOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigNoWrapperOutput) ElementType added in v6.64.0

func (SubscriptionPushConfigNoWrapperOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutput added in v6.64.0

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutput() SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutputWithContext added in v6.64.0

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutputWithContext(ctx context.Context) SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutput added in v6.64.0

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext added in v6.64.0

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperOutput) WriteMetadata added in v6.64.0

When true, writes the Pub/Sub message metadata to `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.

type SubscriptionPushConfigNoWrapperPtrInput added in v6.64.0

type SubscriptionPushConfigNoWrapperPtrInput interface {
	pulumi.Input

	ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput
	ToSubscriptionPushConfigNoWrapperPtrOutputWithContext(context.Context) SubscriptionPushConfigNoWrapperPtrOutput
}

SubscriptionPushConfigNoWrapperPtrInput is an input type that accepts SubscriptionPushConfigNoWrapperArgs, SubscriptionPushConfigNoWrapperPtr and SubscriptionPushConfigNoWrapperPtrOutput values. You can construct a concrete instance of `SubscriptionPushConfigNoWrapperPtrInput` via:

        SubscriptionPushConfigNoWrapperArgs{...}

or:

        nil

type SubscriptionPushConfigNoWrapperPtrOutput added in v6.64.0

type SubscriptionPushConfigNoWrapperPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigNoWrapperPtrOutput) Elem added in v6.64.0

func (SubscriptionPushConfigNoWrapperPtrOutput) ElementType added in v6.64.0

func (SubscriptionPushConfigNoWrapperPtrOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutput added in v6.64.0

func (o SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext added in v6.64.0

func (o SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperPtrOutput) WriteMetadata added in v6.64.0

When true, writes the Pub/Sub message metadata to `x-goog-pubsub-<KEY>:<VAL>` headers of the HTTP request. Writes the Pub/Sub message attributes to `<KEY>:<VAL>` headers of the HTTP request.

type SubscriptionPushConfigOidcToken

type SubscriptionPushConfigOidcToken struct {
	// Audience to be used when generating OIDC token. The audience claim
	// identifies the recipients that the JWT is intended for. The audience
	// value is a single case-sensitive string. Having multiple values (array)
	// for the audience field is not supported. More info about the OIDC JWT
	// token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
	// Note: if not specified, the Push endpoint URL will be used.
	Audience *string `pulumi:"audience"`
	// Service account email to be used for generating the OIDC token.
	// The caller (for subscriptions.create, subscriptions.patch, and
	// subscriptions.modifyPushConfig RPCs) must have the
	// iam.serviceAccounts.actAs permission for the service account.
	ServiceAccountEmail string `pulumi:"serviceAccountEmail"`
}

type SubscriptionPushConfigOidcTokenArgs

type SubscriptionPushConfigOidcTokenArgs struct {
	// Audience to be used when generating OIDC token. The audience claim
	// identifies the recipients that the JWT is intended for. The audience
	// value is a single case-sensitive string. Having multiple values (array)
	// for the audience field is not supported. More info about the OIDC JWT
	// token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
	// Note: if not specified, the Push endpoint URL will be used.
	Audience pulumi.StringPtrInput `pulumi:"audience"`
	// Service account email to be used for generating the OIDC token.
	// The caller (for subscriptions.create, subscriptions.patch, and
	// subscriptions.modifyPushConfig RPCs) must have the
	// iam.serviceAccounts.actAs permission for the service account.
	ServiceAccountEmail pulumi.StringInput `pulumi:"serviceAccountEmail"`
}

func (SubscriptionPushConfigOidcTokenArgs) ElementType

func (SubscriptionPushConfigOidcTokenArgs) ToOutput added in v6.65.1

func (SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenOutput

func (i SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenOutput() SubscriptionPushConfigOidcTokenOutput

func (SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenOutputWithContext

func (i SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenOutputWithContext(ctx context.Context) SubscriptionPushConfigOidcTokenOutput

func (SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenPtrOutput

func (i SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenPtrOutput() SubscriptionPushConfigOidcTokenPtrOutput

func (SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext

func (i SubscriptionPushConfigOidcTokenArgs) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigOidcTokenPtrOutput

type SubscriptionPushConfigOidcTokenInput

type SubscriptionPushConfigOidcTokenInput interface {
	pulumi.Input

	ToSubscriptionPushConfigOidcTokenOutput() SubscriptionPushConfigOidcTokenOutput
	ToSubscriptionPushConfigOidcTokenOutputWithContext(context.Context) SubscriptionPushConfigOidcTokenOutput
}

SubscriptionPushConfigOidcTokenInput is an input type that accepts SubscriptionPushConfigOidcTokenArgs and SubscriptionPushConfigOidcTokenOutput values. You can construct a concrete instance of `SubscriptionPushConfigOidcTokenInput` via:

SubscriptionPushConfigOidcTokenArgs{...}

type SubscriptionPushConfigOidcTokenOutput

type SubscriptionPushConfigOidcTokenOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigOidcTokenOutput) Audience

Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used.

func (SubscriptionPushConfigOidcTokenOutput) ElementType

func (SubscriptionPushConfigOidcTokenOutput) ServiceAccountEmail

Service account email to be used for generating the OIDC token. The caller (for subscriptions.create, subscriptions.patch, and subscriptions.modifyPushConfig RPCs) must have the iam.serviceAccounts.actAs permission for the service account.

func (SubscriptionPushConfigOidcTokenOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenOutput

func (o SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenOutput() SubscriptionPushConfigOidcTokenOutput

func (SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenOutputWithContext

func (o SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenOutputWithContext(ctx context.Context) SubscriptionPushConfigOidcTokenOutput

func (SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenPtrOutput

func (o SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenPtrOutput() SubscriptionPushConfigOidcTokenPtrOutput

func (SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext

func (o SubscriptionPushConfigOidcTokenOutput) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigOidcTokenPtrOutput

type SubscriptionPushConfigOidcTokenPtrInput

type SubscriptionPushConfigOidcTokenPtrInput interface {
	pulumi.Input

	ToSubscriptionPushConfigOidcTokenPtrOutput() SubscriptionPushConfigOidcTokenPtrOutput
	ToSubscriptionPushConfigOidcTokenPtrOutputWithContext(context.Context) SubscriptionPushConfigOidcTokenPtrOutput
}

SubscriptionPushConfigOidcTokenPtrInput is an input type that accepts SubscriptionPushConfigOidcTokenArgs, SubscriptionPushConfigOidcTokenPtr and SubscriptionPushConfigOidcTokenPtrOutput values. You can construct a concrete instance of `SubscriptionPushConfigOidcTokenPtrInput` via:

        SubscriptionPushConfigOidcTokenArgs{...}

or:

        nil

type SubscriptionPushConfigOidcTokenPtrOutput

type SubscriptionPushConfigOidcTokenPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigOidcTokenPtrOutput) Audience

Audience to be used when generating OIDC token. The audience claim identifies the recipients that the JWT is intended for. The audience value is a single case-sensitive string. Having multiple values (array) for the audience field is not supported. More info about the OIDC JWT token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3 Note: if not specified, the Push endpoint URL will be used.

func (SubscriptionPushConfigOidcTokenPtrOutput) Elem

func (SubscriptionPushConfigOidcTokenPtrOutput) ElementType

func (SubscriptionPushConfigOidcTokenPtrOutput) ServiceAccountEmail

Service account email to be used for generating the OIDC token. The caller (for subscriptions.create, subscriptions.patch, and subscriptions.modifyPushConfig RPCs) must have the iam.serviceAccounts.actAs permission for the service account.

func (SubscriptionPushConfigOidcTokenPtrOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigOidcTokenPtrOutput) ToSubscriptionPushConfigOidcTokenPtrOutput

func (o SubscriptionPushConfigOidcTokenPtrOutput) ToSubscriptionPushConfigOidcTokenPtrOutput() SubscriptionPushConfigOidcTokenPtrOutput

func (SubscriptionPushConfigOidcTokenPtrOutput) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext

func (o SubscriptionPushConfigOidcTokenPtrOutput) ToSubscriptionPushConfigOidcTokenPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigOidcTokenPtrOutput

type SubscriptionPushConfigOutput

type SubscriptionPushConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigOutput) Attributes

Endpoint configuration attributes. Every endpoint has a set of API supported attributes that can be used to control different aspects of the message delivery. The currently supported attribute is x-goog-version, which you can use to change the format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). The endpoint version is based on the version of the Pub/Sub API. If not present during the subscriptions.create call, it will default to the version of the API used to make such call. If not present during a subscriptions.modifyPushConfig call, its value will not be changed. subscriptions.get calls will always return a valid version, even if the subscription was created without this attribute. The possible values for this attribute are: - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API. - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.

func (SubscriptionPushConfigOutput) ElementType

func (SubscriptionPushConfigOutput) NoWrapper added in v6.64.0

When set, the payload to the push endpoint is not wrapped.Sets the `data` field as the HTTP body for delivery. Structure is documented below.

func (SubscriptionPushConfigOutput) OidcToken

If specified, Pub/Sub will generate and attach an OIDC JWT token as an Authorization header in the HTTP request for every pushed message. Structure is documented below.

func (SubscriptionPushConfigOutput) PushEndpoint

A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use "https://example.com/push".

func (SubscriptionPushConfigOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutput

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutput() SubscriptionPushConfigOutput

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutputWithContext

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutputWithContext(ctx context.Context) SubscriptionPushConfigOutput

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutput

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutputWithContext

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigPtrOutput

type SubscriptionPushConfigPtrInput

type SubscriptionPushConfigPtrInput interface {
	pulumi.Input

	ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput
	ToSubscriptionPushConfigPtrOutputWithContext(context.Context) SubscriptionPushConfigPtrOutput
}

SubscriptionPushConfigPtrInput is an input type that accepts SubscriptionPushConfigArgs, SubscriptionPushConfigPtr and SubscriptionPushConfigPtrOutput values. You can construct a concrete instance of `SubscriptionPushConfigPtrInput` via:

        SubscriptionPushConfigArgs{...}

or:

        nil

type SubscriptionPushConfigPtrOutput

type SubscriptionPushConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigPtrOutput) Attributes

Endpoint configuration attributes. Every endpoint has a set of API supported attributes that can be used to control different aspects of the message delivery. The currently supported attribute is x-goog-version, which you can use to change the format of the pushed message. This attribute indicates the version of the data expected by the endpoint. This controls the shape of the pushed message (i.e., its fields and metadata). The endpoint version is based on the version of the Pub/Sub API. If not present during the subscriptions.create call, it will default to the version of the API used to make such call. If not present during a subscriptions.modifyPushConfig call, its value will not be changed. subscriptions.get calls will always return a valid version, even if the subscription was created without this attribute. The possible values for this attribute are: - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API. - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.

func (SubscriptionPushConfigPtrOutput) Elem

func (SubscriptionPushConfigPtrOutput) ElementType

func (SubscriptionPushConfigPtrOutput) NoWrapper added in v6.64.0

When set, the payload to the push endpoint is not wrapped.Sets the `data` field as the HTTP body for delivery. Structure is documented below.

func (SubscriptionPushConfigPtrOutput) OidcToken

If specified, Pub/Sub will generate and attach an OIDC JWT token as an Authorization header in the HTTP request for every pushed message. Structure is documented below.

func (SubscriptionPushConfigPtrOutput) PushEndpoint

A URL locating the endpoint to which messages should be pushed. For example, a Webhook endpoint might use "https://example.com/push".

func (SubscriptionPushConfigPtrOutput) ToOutput added in v6.65.1

func (SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutput

func (o SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutputWithContext

func (o SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutputWithContext(ctx context.Context) SubscriptionPushConfigPtrOutput

type SubscriptionRetryPolicy

type SubscriptionRetryPolicy struct {
	// The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MaximumBackoff *string `pulumi:"maximumBackoff"`
	// The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MinimumBackoff *string `pulumi:"minimumBackoff"`
}

type SubscriptionRetryPolicyArgs

type SubscriptionRetryPolicyArgs struct {
	// The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MaximumBackoff pulumi.StringPtrInput `pulumi:"maximumBackoff"`
	// The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
	// A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
	MinimumBackoff pulumi.StringPtrInput `pulumi:"minimumBackoff"`
}

func (SubscriptionRetryPolicyArgs) ElementType

func (SubscriptionRetryPolicyArgs) ToOutput added in v6.65.1

func (SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyOutput

func (i SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyOutput() SubscriptionRetryPolicyOutput

func (SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyOutputWithContext

func (i SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyOutputWithContext(ctx context.Context) SubscriptionRetryPolicyOutput

func (SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyPtrOutput

func (i SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyPtrOutput() SubscriptionRetryPolicyPtrOutput

func (SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyPtrOutputWithContext

func (i SubscriptionRetryPolicyArgs) ToSubscriptionRetryPolicyPtrOutputWithContext(ctx context.Context) SubscriptionRetryPolicyPtrOutput

type SubscriptionRetryPolicyInput

type SubscriptionRetryPolicyInput interface {
	pulumi.Input

	ToSubscriptionRetryPolicyOutput() SubscriptionRetryPolicyOutput
	ToSubscriptionRetryPolicyOutputWithContext(context.Context) SubscriptionRetryPolicyOutput
}

SubscriptionRetryPolicyInput is an input type that accepts SubscriptionRetryPolicyArgs and SubscriptionRetryPolicyOutput values. You can construct a concrete instance of `SubscriptionRetryPolicyInput` via:

SubscriptionRetryPolicyArgs{...}

type SubscriptionRetryPolicyOutput

type SubscriptionRetryPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionRetryPolicyOutput) ElementType

func (SubscriptionRetryPolicyOutput) MaximumBackoff

The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (SubscriptionRetryPolicyOutput) MinimumBackoff

The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (SubscriptionRetryPolicyOutput) ToOutput added in v6.65.1

func (SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyOutput

func (o SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyOutput() SubscriptionRetryPolicyOutput

func (SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyOutputWithContext

func (o SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyOutputWithContext(ctx context.Context) SubscriptionRetryPolicyOutput

func (SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyPtrOutput

func (o SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyPtrOutput() SubscriptionRetryPolicyPtrOutput

func (SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyPtrOutputWithContext

func (o SubscriptionRetryPolicyOutput) ToSubscriptionRetryPolicyPtrOutputWithContext(ctx context.Context) SubscriptionRetryPolicyPtrOutput

type SubscriptionRetryPolicyPtrInput

type SubscriptionRetryPolicyPtrInput interface {
	pulumi.Input

	ToSubscriptionRetryPolicyPtrOutput() SubscriptionRetryPolicyPtrOutput
	ToSubscriptionRetryPolicyPtrOutputWithContext(context.Context) SubscriptionRetryPolicyPtrOutput
}

SubscriptionRetryPolicyPtrInput is an input type that accepts SubscriptionRetryPolicyArgs, SubscriptionRetryPolicyPtr and SubscriptionRetryPolicyPtrOutput values. You can construct a concrete instance of `SubscriptionRetryPolicyPtrInput` via:

        SubscriptionRetryPolicyArgs{...}

or:

        nil

type SubscriptionRetryPolicyPtrOutput

type SubscriptionRetryPolicyPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionRetryPolicyPtrOutput) Elem

func (SubscriptionRetryPolicyPtrOutput) ElementType

func (SubscriptionRetryPolicyPtrOutput) MaximumBackoff

The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (SubscriptionRetryPolicyPtrOutput) MinimumBackoff

The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds. A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".

func (SubscriptionRetryPolicyPtrOutput) ToOutput added in v6.65.1

func (SubscriptionRetryPolicyPtrOutput) ToSubscriptionRetryPolicyPtrOutput

func (o SubscriptionRetryPolicyPtrOutput) ToSubscriptionRetryPolicyPtrOutput() SubscriptionRetryPolicyPtrOutput

func (SubscriptionRetryPolicyPtrOutput) ToSubscriptionRetryPolicyPtrOutputWithContext

func (o SubscriptionRetryPolicyPtrOutput) ToSubscriptionRetryPolicyPtrOutputWithContext(ctx context.Context) SubscriptionRetryPolicyPtrOutput

type SubscriptionState

type SubscriptionState struct {
	// This value is the maximum time after a subscriber receives a message
	// before the subscriber should acknowledge the message. After message
	// delivery but before the ack deadline expires and before the message is
	// acknowledged, it is an outstanding message and will not be delivered
	// again during that time (on a best-effort basis).
	// For pull subscriptions, this value is used as the initial value for
	// the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using
	// pull. The minimum custom deadline you can specify is 10 seconds. The
	// maximum custom deadline you can specify is 600 seconds (10 minutes).
	// If this parameter is 0, a default value of 10 seconds is used.
	// For push delivery, this value is also used to set the request timeout
	// for the call to the push endpoint.
	// If the subscriber never acknowledges the message, the Pub/Sub system
	// will eventually redeliver the message.
	AckDeadlineSeconds pulumi.IntPtrInput
	// If delivery to BigQuery is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	BigqueryConfig SubscriptionBigqueryConfigPtrInput
	// If delivery to Cloud Storage is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	CloudStorageConfig SubscriptionCloudStorageConfigPtrInput
	// A policy that specifies the conditions for dead lettering messages in
	// this subscription. If deadLetterPolicy is not set, dead lettering
	// is disabled.
	// The Cloud Pub/Sub service account associated with this subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Acknowledge() messages on this subscription.
	// Structure is documented below.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// If `true`, Pub/Sub provides the following guarantees for the delivery
	// of a message with a given value of messageId on this Subscriptions':
	// - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
	// - An acknowledged message will not be resent to a subscriber.
	//   Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery`
	//   is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values
	EnableExactlyOnceDelivery pulumi.BoolPtrInput
	// If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to
	// the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
	// may be delivered in any order.
	EnableMessageOrdering pulumi.BoolPtrInput
	// A policy that specifies the conditions for this subscription's expiration.
	// A subscription is considered active as long as any connected subscriber
	// is successfully consuming messages from the subscription or is issuing
	// operations on the subscription. If expirationPolicy is not set, a default
	// policy with ttl of 31 days will be used.  If it is set but ttl is "", the
	// resource never expires.  The minimum allowed value for expirationPolicy.ttl
	// is 1 day.
	// Structure is documented below.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// The subscription only delivers the messages that match the filter.
	// Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
	// by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
	// you can't modify the filter.
	Filter pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapInput
	// How long to retain unacknowledged messages in the subscription's
	// backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention
	// of acknowledged messages, and thus configures how far back in time a
	// subscriptions.seek can be done. Defaults to 7 days. Cannot be more
	// than 7 days (`"604800s"`) or less than 10 minutes (`"600s"`).
	// A duration in seconds with up to nine fractional digits, terminated
	// by 's'. Example: `"600.5s"`.
	MessageRetentionDuration pulumi.StringPtrInput
	// Name of the subscription.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If push delivery is used with this subscription, this field is used to
	// configure it. An empty pushConfig signifies that the subscriber will
	// pull and ack messages using API methods.
	// Structure is documented below.
	PushConfig SubscriptionPushConfigPtrInput
	// Indicates whether to retain acknowledged messages. If `true`, then
	// messages are not expunged from the subscription's backlog, even if
	// they are acknowledged, until they fall out of the
	// messageRetentionDuration window.
	RetainAckedMessages pulumi.BoolPtrInput
	// A policy that specifies how Pub/Sub retries message delivery for this subscription.
	// If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
	// RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message
	// Structure is documented below.
	RetryPolicy SubscriptionRetryPolicyPtrInput
	// A reference to a Topic resource.
	//
	// ***
	Topic pulumi.StringPtrInput
}

func (SubscriptionState) ElementType

func (SubscriptionState) ElementType() reflect.Type

type Topic

type Topic struct {
	pulumi.CustomResourceState

	// The resource name of the Cloud KMS CryptoKey to be used to protect access
	// to messages published on this topic. Your project's PubSub service account
	// (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
	// `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
	// The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`
	KmsKeyName pulumi.StringPtrOutput `pulumi:"kmsKeyName"`
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrOutput `pulumi:"messageRetentionDuration"`
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyOutput `pulumi:"messageStoragePolicy"`
	// Name of the topic.
	//
	// ***
	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"`
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsOutput `pulumi:"schemaSettings"`
}

A named resource to which messages are sent by publishers.

To get more information about Topic, see:

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

> **Note:** You can retrieve the email of the Google Managed Pub/Sub Service Account used for forwarding by using the `projects.ServiceIdentity` resource.

## Example Usage ### Pubsub Topic Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
			},
			MessageRetentionDuration: pulumi.String("86600s"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Topic Cmek

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyRing, err := kms.NewKeyRing(ctx, "keyRing", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
		})
		if err != nil {
			return err
		}
		cryptoKey, err := kms.NewCryptoKey(ctx, "cryptoKey", &kms.CryptoKeyArgs{
			KeyRing: keyRing.ID(),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			KmsKeyName: cryptoKey.ID(),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Topic Geo Restricted

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			MessageStoragePolicy: &pubsub.TopicMessageStoragePolicyArgs{
				AllowedPersistenceRegions: pulumi.StringArray{
					pulumi.String("europe-west3"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Topic Schema Settings

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleSchema, err := pubsub.NewSchema(ctx, "exampleSchema", &pubsub.SchemaArgs{
			Type: pulumi.String("AVRO"),
			Definition: pulumi.String(`{
  "type" : "record",
  "name" : "Avro",
  "fields" : [
    {
      "name" : "StringField",
      "type" : "string"
    },
    {
      "name" : "IntField",
      "type" : "int"
    }
  ]
}

`),

		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopic(ctx, "exampleTopic", &pubsub.TopicArgs{
			SchemaSettings: &pubsub.TopicSchemaSettingsArgs{
				Schema:   pulumi.String("projects/my-project-name/schemas/example"),
				Encoding: pulumi.String("JSON"),
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			exampleSchema,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Topic can be imported using any of these accepted formats

```sh

$ pulumi import gcp:pubsub/topic:Topic default projects/{{project}}/topics/{{name}}

```

```sh

$ pulumi import gcp:pubsub/topic:Topic default {{project}}/{{name}}

```

```sh

$ pulumi import gcp:pubsub/topic:Topic default {{name}}

```

func GetTopic

func GetTopic(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicState, opts ...pulumi.ResourceOption) (*Topic, error)

GetTopic gets an existing Topic 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 NewTopic

func NewTopic(ctx *pulumi.Context,
	name string, args *TopicArgs, opts ...pulumi.ResourceOption) (*Topic, error)

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

func (*Topic) ElementType

func (*Topic) ElementType() reflect.Type

func (*Topic) ToOutput added in v6.65.1

func (i *Topic) ToOutput(ctx context.Context) pulumix.Output[*Topic]

func (*Topic) ToTopicOutput

func (i *Topic) ToTopicOutput() TopicOutput

func (*Topic) ToTopicOutputWithContext

func (i *Topic) ToTopicOutputWithContext(ctx context.Context) TopicOutput

type TopicArgs

type TopicArgs struct {
	// The resource name of the Cloud KMS CryptoKey to be used to protect access
	// to messages published on this topic. Your project's PubSub service account
	// (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
	// `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
	// The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`
	KmsKeyName pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapInput
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrInput
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	//
	// ***
	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
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsPtrInput
}

The set of arguments for constructing a Topic resource.

func (TopicArgs) ElementType

func (TopicArgs) ElementType() reflect.Type

type TopicArray

type TopicArray []TopicInput

func (TopicArray) ElementType

func (TopicArray) ElementType() reflect.Type

func (TopicArray) ToOutput added in v6.65.1

func (i TopicArray) ToOutput(ctx context.Context) pulumix.Output[[]*Topic]

func (TopicArray) ToTopicArrayOutput

func (i TopicArray) ToTopicArrayOutput() TopicArrayOutput

func (TopicArray) ToTopicArrayOutputWithContext

func (i TopicArray) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput

type TopicArrayInput

type TopicArrayInput interface {
	pulumi.Input

	ToTopicArrayOutput() TopicArrayOutput
	ToTopicArrayOutputWithContext(context.Context) TopicArrayOutput
}

TopicArrayInput is an input type that accepts TopicArray and TopicArrayOutput values. You can construct a concrete instance of `TopicArrayInput` via:

TopicArray{ TopicArgs{...} }

type TopicArrayOutput

type TopicArrayOutput struct{ *pulumi.OutputState }

func (TopicArrayOutput) ElementType

func (TopicArrayOutput) ElementType() reflect.Type

func (TopicArrayOutput) Index

func (TopicArrayOutput) ToOutput added in v6.65.1

func (o TopicArrayOutput) ToOutput(ctx context.Context) pulumix.Output[[]*Topic]

func (TopicArrayOutput) ToTopicArrayOutput

func (o TopicArrayOutput) ToTopicArrayOutput() TopicArrayOutput

func (TopicArrayOutput) ToTopicArrayOutputWithContext

func (o TopicArrayOutput) ToTopicArrayOutputWithContext(ctx context.Context) TopicArrayOutput

type TopicIAMBinding

type TopicIAMBinding struct {
	pulumi.CustomResourceState

	Condition TopicIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` 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"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

Three different resources help you manage your IAM policy for Cloud Pub/Sub Topic. Each of these resources serves a different use case:

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: 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 topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

* `pubsub.TopicIAMPolicy`: Retrieves the IAM policy for the topic

> **Note:** `pubsub.TopicIAMPolicy` **cannot** be used in conjunction with `pubsub.TopicIAMBinding` and `pubsub.TopicIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:      pulumi.Any(google_pubsub_topic.Example.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/topics/{{name}} * {{project}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Pub/Sub topic IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:pubsub/topicIAMBinding:TopicIAMBinding editor "projects/{{project}}/topics/{{topic}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMBinding:TopicIAMBinding editor "projects/{{project}}/topics/{{topic}} roles/viewer"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMBinding:TopicIAMBinding editor projects/{{project}}/topics/{{topic}}

```

-> **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 GetTopicIAMBinding

func GetTopicIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicIAMBindingState, opts ...pulumi.ResourceOption) (*TopicIAMBinding, error)

GetTopicIAMBinding gets an existing TopicIAMBinding 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 NewTopicIAMBinding

func NewTopicIAMBinding(ctx *pulumi.Context,
	name string, args *TopicIAMBindingArgs, opts ...pulumi.ResourceOption) (*TopicIAMBinding, error)

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

func (*TopicIAMBinding) ElementType

func (*TopicIAMBinding) ElementType() reflect.Type

func (*TopicIAMBinding) ToOutput added in v6.65.1

func (*TopicIAMBinding) ToTopicIAMBindingOutput

func (i *TopicIAMBinding) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (*TopicIAMBinding) ToTopicIAMBindingOutputWithContext

func (i *TopicIAMBinding) ToTopicIAMBindingOutputWithContext(ctx context.Context) TopicIAMBindingOutput

type TopicIAMBindingArgs

type TopicIAMBindingArgs struct {
	Condition TopicIAMBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMBinding resource.

func (TopicIAMBindingArgs) ElementType

func (TopicIAMBindingArgs) ElementType() reflect.Type

type TopicIAMBindingArray

type TopicIAMBindingArray []TopicIAMBindingInput

func (TopicIAMBindingArray) ElementType

func (TopicIAMBindingArray) ElementType() reflect.Type

func (TopicIAMBindingArray) ToOutput added in v6.65.1

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutput

func (i TopicIAMBindingArray) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutputWithContext

func (i TopicIAMBindingArray) ToTopicIAMBindingArrayOutputWithContext(ctx context.Context) TopicIAMBindingArrayOutput

type TopicIAMBindingArrayInput

type TopicIAMBindingArrayInput interface {
	pulumi.Input

	ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput
	ToTopicIAMBindingArrayOutputWithContext(context.Context) TopicIAMBindingArrayOutput
}

TopicIAMBindingArrayInput is an input type that accepts TopicIAMBindingArray and TopicIAMBindingArrayOutput values. You can construct a concrete instance of `TopicIAMBindingArrayInput` via:

TopicIAMBindingArray{ TopicIAMBindingArgs{...} }

type TopicIAMBindingArrayOutput

type TopicIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingArrayOutput) ElementType

func (TopicIAMBindingArrayOutput) ElementType() reflect.Type

func (TopicIAMBindingArrayOutput) Index

func (TopicIAMBindingArrayOutput) ToOutput added in v6.65.1

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput

func (o TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutputWithContext

func (o TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutputWithContext(ctx context.Context) TopicIAMBindingArrayOutput

type TopicIAMBindingCondition

type TopicIAMBindingCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TopicIAMBindingConditionArgs

type TopicIAMBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TopicIAMBindingConditionArgs) ElementType

func (TopicIAMBindingConditionArgs) ToOutput added in v6.65.1

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutput

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutput() TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutputWithContext

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutputWithContext(ctx context.Context) TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutput

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutputWithContext

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutputWithContext(ctx context.Context) TopicIAMBindingConditionPtrOutput

type TopicIAMBindingConditionInput

type TopicIAMBindingConditionInput interface {
	pulumi.Input

	ToTopicIAMBindingConditionOutput() TopicIAMBindingConditionOutput
	ToTopicIAMBindingConditionOutputWithContext(context.Context) TopicIAMBindingConditionOutput
}

TopicIAMBindingConditionInput is an input type that accepts TopicIAMBindingConditionArgs and TopicIAMBindingConditionOutput values. You can construct a concrete instance of `TopicIAMBindingConditionInput` via:

TopicIAMBindingConditionArgs{...}

type TopicIAMBindingConditionOutput

type TopicIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingConditionOutput) Description

func (TopicIAMBindingConditionOutput) ElementType

func (TopicIAMBindingConditionOutput) Expression

func (TopicIAMBindingConditionOutput) Title

func (TopicIAMBindingConditionOutput) ToOutput added in v6.65.1

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutput

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutput() TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutputWithContext

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutputWithContext(ctx context.Context) TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutput

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutputWithContext

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutputWithContext(ctx context.Context) TopicIAMBindingConditionPtrOutput

type TopicIAMBindingConditionPtrInput

type TopicIAMBindingConditionPtrInput interface {
	pulumi.Input

	ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput
	ToTopicIAMBindingConditionPtrOutputWithContext(context.Context) TopicIAMBindingConditionPtrOutput
}

TopicIAMBindingConditionPtrInput is an input type that accepts TopicIAMBindingConditionArgs, TopicIAMBindingConditionPtr and TopicIAMBindingConditionPtrOutput values. You can construct a concrete instance of `TopicIAMBindingConditionPtrInput` via:

        TopicIAMBindingConditionArgs{...}

or:

        nil

type TopicIAMBindingConditionPtrOutput

type TopicIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingConditionPtrOutput) Description

func (TopicIAMBindingConditionPtrOutput) Elem

func (TopicIAMBindingConditionPtrOutput) ElementType

func (TopicIAMBindingConditionPtrOutput) Expression

func (TopicIAMBindingConditionPtrOutput) Title

func (TopicIAMBindingConditionPtrOutput) ToOutput added in v6.65.1

func (TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutput

func (o TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutputWithContext

func (o TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutputWithContext(ctx context.Context) TopicIAMBindingConditionPtrOutput

type TopicIAMBindingInput

type TopicIAMBindingInput interface {
	pulumi.Input

	ToTopicIAMBindingOutput() TopicIAMBindingOutput
	ToTopicIAMBindingOutputWithContext(ctx context.Context) TopicIAMBindingOutput
}

type TopicIAMBindingMap

type TopicIAMBindingMap map[string]TopicIAMBindingInput

func (TopicIAMBindingMap) ElementType

func (TopicIAMBindingMap) ElementType() reflect.Type

func (TopicIAMBindingMap) ToOutput added in v6.65.1

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutput

func (i TopicIAMBindingMap) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutputWithContext

func (i TopicIAMBindingMap) ToTopicIAMBindingMapOutputWithContext(ctx context.Context) TopicIAMBindingMapOutput

type TopicIAMBindingMapInput

type TopicIAMBindingMapInput interface {
	pulumi.Input

	ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput
	ToTopicIAMBindingMapOutputWithContext(context.Context) TopicIAMBindingMapOutput
}

TopicIAMBindingMapInput is an input type that accepts TopicIAMBindingMap and TopicIAMBindingMapOutput values. You can construct a concrete instance of `TopicIAMBindingMapInput` via:

TopicIAMBindingMap{ "key": TopicIAMBindingArgs{...} }

type TopicIAMBindingMapOutput

type TopicIAMBindingMapOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingMapOutput) ElementType

func (TopicIAMBindingMapOutput) ElementType() reflect.Type

func (TopicIAMBindingMapOutput) MapIndex

func (TopicIAMBindingMapOutput) ToOutput added in v6.65.1

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput

func (o TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutputWithContext

func (o TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutputWithContext(ctx context.Context) TopicIAMBindingMapOutput

type TopicIAMBindingOutput

type TopicIAMBindingOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingOutput) Condition added in v6.23.0

func (TopicIAMBindingOutput) ElementType

func (TopicIAMBindingOutput) ElementType() reflect.Type

func (TopicIAMBindingOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TopicIAMBindingOutput) Members added in v6.23.0

func (TopicIAMBindingOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TopicIAMBindingOutput) Role added in v6.23.0

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

func (TopicIAMBindingOutput) ToOutput added in v6.65.1

func (TopicIAMBindingOutput) ToTopicIAMBindingOutput

func (o TopicIAMBindingOutput) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingOutputWithContext

func (o TopicIAMBindingOutput) ToTopicIAMBindingOutputWithContext(ctx context.Context) TopicIAMBindingOutput

func (TopicIAMBindingOutput) Topic added in v6.23.0

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

type TopicIAMBindingState

type TopicIAMBindingState struct {
	Condition TopicIAMBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringPtrInput
}

func (TopicIAMBindingState) ElementType

func (TopicIAMBindingState) ElementType() reflect.Type

type TopicIAMMember

type TopicIAMMember struct {
	pulumi.CustomResourceState

	Condition TopicIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` 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"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

Three different resources help you manage your IAM policy for Cloud Pub/Sub Topic. Each of these resources serves a different use case:

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: 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 topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

* `pubsub.TopicIAMPolicy`: Retrieves the IAM policy for the topic

> **Note:** `pubsub.TopicIAMPolicy` **cannot** be used in conjunction with `pubsub.TopicIAMBinding` and `pubsub.TopicIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:      pulumi.Any(google_pubsub_topic.Example.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/topics/{{name}} * {{project}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Pub/Sub topic IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:pubsub/topicIAMMember:TopicIAMMember editor "projects/{{project}}/topics/{{topic}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMMember:TopicIAMMember editor "projects/{{project}}/topics/{{topic}} roles/viewer"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMMember:TopicIAMMember editor projects/{{project}}/topics/{{topic}}

```

-> **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 GetTopicIAMMember

func GetTopicIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicIAMMemberState, opts ...pulumi.ResourceOption) (*TopicIAMMember, error)

GetTopicIAMMember gets an existing TopicIAMMember 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 NewTopicIAMMember

func NewTopicIAMMember(ctx *pulumi.Context,
	name string, args *TopicIAMMemberArgs, opts ...pulumi.ResourceOption) (*TopicIAMMember, error)

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

func (*TopicIAMMember) ElementType

func (*TopicIAMMember) ElementType() reflect.Type

func (*TopicIAMMember) ToOutput added in v6.65.1

func (*TopicIAMMember) ToTopicIAMMemberOutput

func (i *TopicIAMMember) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (*TopicIAMMember) ToTopicIAMMemberOutputWithContext

func (i *TopicIAMMember) ToTopicIAMMemberOutputWithContext(ctx context.Context) TopicIAMMemberOutput

type TopicIAMMemberArgs

type TopicIAMMemberArgs struct {
	Condition TopicIAMMemberConditionPtrInput
	Member    pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMMember resource.

func (TopicIAMMemberArgs) ElementType

func (TopicIAMMemberArgs) ElementType() reflect.Type

type TopicIAMMemberArray

type TopicIAMMemberArray []TopicIAMMemberInput

func (TopicIAMMemberArray) ElementType

func (TopicIAMMemberArray) ElementType() reflect.Type

func (TopicIAMMemberArray) ToOutput added in v6.65.1

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutput

func (i TopicIAMMemberArray) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutputWithContext

func (i TopicIAMMemberArray) ToTopicIAMMemberArrayOutputWithContext(ctx context.Context) TopicIAMMemberArrayOutput

type TopicIAMMemberArrayInput

type TopicIAMMemberArrayInput interface {
	pulumi.Input

	ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput
	ToTopicIAMMemberArrayOutputWithContext(context.Context) TopicIAMMemberArrayOutput
}

TopicIAMMemberArrayInput is an input type that accepts TopicIAMMemberArray and TopicIAMMemberArrayOutput values. You can construct a concrete instance of `TopicIAMMemberArrayInput` via:

TopicIAMMemberArray{ TopicIAMMemberArgs{...} }

type TopicIAMMemberArrayOutput

type TopicIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberArrayOutput) ElementType

func (TopicIAMMemberArrayOutput) ElementType() reflect.Type

func (TopicIAMMemberArrayOutput) Index

func (TopicIAMMemberArrayOutput) ToOutput added in v6.65.1

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput

func (o TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutputWithContext

func (o TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutputWithContext(ctx context.Context) TopicIAMMemberArrayOutput

type TopicIAMMemberCondition

type TopicIAMMemberCondition struct {
	Description *string `pulumi:"description"`
	Expression  string  `pulumi:"expression"`
	Title       string  `pulumi:"title"`
}

type TopicIAMMemberConditionArgs

type TopicIAMMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	Expression  pulumi.StringInput    `pulumi:"expression"`
	Title       pulumi.StringInput    `pulumi:"title"`
}

func (TopicIAMMemberConditionArgs) ElementType

func (TopicIAMMemberConditionArgs) ToOutput added in v6.65.1

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutput

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutput() TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutputWithContext

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutputWithContext(ctx context.Context) TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutput

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutputWithContext

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutputWithContext(ctx context.Context) TopicIAMMemberConditionPtrOutput

type TopicIAMMemberConditionInput

type TopicIAMMemberConditionInput interface {
	pulumi.Input

	ToTopicIAMMemberConditionOutput() TopicIAMMemberConditionOutput
	ToTopicIAMMemberConditionOutputWithContext(context.Context) TopicIAMMemberConditionOutput
}

TopicIAMMemberConditionInput is an input type that accepts TopicIAMMemberConditionArgs and TopicIAMMemberConditionOutput values. You can construct a concrete instance of `TopicIAMMemberConditionInput` via:

TopicIAMMemberConditionArgs{...}

type TopicIAMMemberConditionOutput

type TopicIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberConditionOutput) Description

func (TopicIAMMemberConditionOutput) ElementType

func (TopicIAMMemberConditionOutput) Expression

func (TopicIAMMemberConditionOutput) Title

func (TopicIAMMemberConditionOutput) ToOutput added in v6.65.1

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutput

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutput() TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutputWithContext

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutputWithContext(ctx context.Context) TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutput

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutputWithContext

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutputWithContext(ctx context.Context) TopicIAMMemberConditionPtrOutput

type TopicIAMMemberConditionPtrInput

type TopicIAMMemberConditionPtrInput interface {
	pulumi.Input

	ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput
	ToTopicIAMMemberConditionPtrOutputWithContext(context.Context) TopicIAMMemberConditionPtrOutput
}

TopicIAMMemberConditionPtrInput is an input type that accepts TopicIAMMemberConditionArgs, TopicIAMMemberConditionPtr and TopicIAMMemberConditionPtrOutput values. You can construct a concrete instance of `TopicIAMMemberConditionPtrInput` via:

        TopicIAMMemberConditionArgs{...}

or:

        nil

type TopicIAMMemberConditionPtrOutput

type TopicIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberConditionPtrOutput) Description

func (TopicIAMMemberConditionPtrOutput) Elem

func (TopicIAMMemberConditionPtrOutput) ElementType

func (TopicIAMMemberConditionPtrOutput) Expression

func (TopicIAMMemberConditionPtrOutput) Title

func (TopicIAMMemberConditionPtrOutput) ToOutput added in v6.65.1

func (TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutput

func (o TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutputWithContext

func (o TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutputWithContext(ctx context.Context) TopicIAMMemberConditionPtrOutput

type TopicIAMMemberInput

type TopicIAMMemberInput interface {
	pulumi.Input

	ToTopicIAMMemberOutput() TopicIAMMemberOutput
	ToTopicIAMMemberOutputWithContext(ctx context.Context) TopicIAMMemberOutput
}

type TopicIAMMemberMap

type TopicIAMMemberMap map[string]TopicIAMMemberInput

func (TopicIAMMemberMap) ElementType

func (TopicIAMMemberMap) ElementType() reflect.Type

func (TopicIAMMemberMap) ToOutput added in v6.65.1

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutput

func (i TopicIAMMemberMap) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutputWithContext

func (i TopicIAMMemberMap) ToTopicIAMMemberMapOutputWithContext(ctx context.Context) TopicIAMMemberMapOutput

type TopicIAMMemberMapInput

type TopicIAMMemberMapInput interface {
	pulumi.Input

	ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput
	ToTopicIAMMemberMapOutputWithContext(context.Context) TopicIAMMemberMapOutput
}

TopicIAMMemberMapInput is an input type that accepts TopicIAMMemberMap and TopicIAMMemberMapOutput values. You can construct a concrete instance of `TopicIAMMemberMapInput` via:

TopicIAMMemberMap{ "key": TopicIAMMemberArgs{...} }

type TopicIAMMemberMapOutput

type TopicIAMMemberMapOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberMapOutput) ElementType

func (TopicIAMMemberMapOutput) ElementType() reflect.Type

func (TopicIAMMemberMapOutput) MapIndex

func (TopicIAMMemberMapOutput) ToOutput added in v6.65.1

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput

func (o TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutputWithContext

func (o TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutputWithContext(ctx context.Context) TopicIAMMemberMapOutput

type TopicIAMMemberOutput

type TopicIAMMemberOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberOutput) Condition added in v6.23.0

func (TopicIAMMemberOutput) ElementType

func (TopicIAMMemberOutput) ElementType() reflect.Type

func (TopicIAMMemberOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TopicIAMMemberOutput) Member added in v6.23.0

func (TopicIAMMemberOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TopicIAMMemberOutput) Role added in v6.23.0

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

func (TopicIAMMemberOutput) ToOutput added in v6.65.1

func (TopicIAMMemberOutput) ToTopicIAMMemberOutput

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext(ctx context.Context) TopicIAMMemberOutput

func (TopicIAMMemberOutput) Topic added in v6.23.0

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

type TopicIAMMemberState

type TopicIAMMemberState struct {
	Condition TopicIAMMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringPtrInput
}

func (TopicIAMMemberState) ElementType

func (TopicIAMMemberState) ElementType() reflect.Type

type TopicIAMPolicy

type TopicIAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringOutput `pulumi:"project"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

Three different resources help you manage your IAM policy for Cloud Pub/Sub Topic. Each of these resources serves a different use case:

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: 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 topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

* `pubsub.TopicIAMPolicy`: Retrieves the IAM policy for the topic

> **Note:** `pubsub.TopicIAMPolicy` **cannot** be used in conjunction with `pubsub.TopicIAMBinding` and `pubsub.TopicIAMMember` or they will fight over what your policy should be.

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/pubsub"
"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/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:      pulumi.Any(google_pubsub_topic.Example.Name),
			PolicyData: *pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_topic\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(google_pubsub_topic.Example.Project),
			Topic:   pulumi.Any(google_pubsub_topic.Example.Name),
			Role:    pulumi.String("roles/viewer"),
			Member:  pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

For all import syntaxes, the "resource in question" can take any of the following forms* projects/{{project}}/topics/{{name}} * {{project}}/{{name}} * {{name}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Pub/Sub topic IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:pubsub/topicIAMPolicy:TopicIAMPolicy editor "projects/{{project}}/topics/{{topic}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMPolicy:TopicIAMPolicy editor "projects/{{project}}/topics/{{topic}} roles/viewer"

```

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

```sh

$ pulumi import gcp:pubsub/topicIAMPolicy:TopicIAMPolicy editor projects/{{project}}/topics/{{topic}}

```

-> **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 GetTopicIAMPolicy

func GetTopicIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicIAMPolicyState, opts ...pulumi.ResourceOption) (*TopicIAMPolicy, error)

GetTopicIAMPolicy gets an existing TopicIAMPolicy 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 NewTopicIAMPolicy

func NewTopicIAMPolicy(ctx *pulumi.Context,
	name string, args *TopicIAMPolicyArgs, opts ...pulumi.ResourceOption) (*TopicIAMPolicy, error)

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

func (*TopicIAMPolicy) ElementType

func (*TopicIAMPolicy) ElementType() reflect.Type

func (*TopicIAMPolicy) ToOutput added in v6.65.1

func (*TopicIAMPolicy) ToTopicIAMPolicyOutput

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput

type TopicIAMPolicyArgs

type TopicIAMPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMPolicy resource.

func (TopicIAMPolicyArgs) ElementType

func (TopicIAMPolicyArgs) ElementType() reflect.Type

type TopicIAMPolicyArray

type TopicIAMPolicyArray []TopicIAMPolicyInput

func (TopicIAMPolicyArray) ElementType

func (TopicIAMPolicyArray) ElementType() reflect.Type

func (TopicIAMPolicyArray) ToOutput added in v6.65.1

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput

func (i TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutputWithContext

func (i TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutputWithContext(ctx context.Context) TopicIAMPolicyArrayOutput

type TopicIAMPolicyArrayInput

type TopicIAMPolicyArrayInput interface {
	pulumi.Input

	ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput
	ToTopicIAMPolicyArrayOutputWithContext(context.Context) TopicIAMPolicyArrayOutput
}

TopicIAMPolicyArrayInput is an input type that accepts TopicIAMPolicyArray and TopicIAMPolicyArrayOutput values. You can construct a concrete instance of `TopicIAMPolicyArrayInput` via:

TopicIAMPolicyArray{ TopicIAMPolicyArgs{...} }

type TopicIAMPolicyArrayOutput

type TopicIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyArrayOutput) ElementType

func (TopicIAMPolicyArrayOutput) ElementType() reflect.Type

func (TopicIAMPolicyArrayOutput) Index

func (TopicIAMPolicyArrayOutput) ToOutput added in v6.65.1

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput

func (o TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutputWithContext

func (o TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutputWithContext(ctx context.Context) TopicIAMPolicyArrayOutput

type TopicIAMPolicyInput

type TopicIAMPolicyInput interface {
	pulumi.Input

	ToTopicIAMPolicyOutput() TopicIAMPolicyOutput
	ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput
}

type TopicIAMPolicyMap

type TopicIAMPolicyMap map[string]TopicIAMPolicyInput

func (TopicIAMPolicyMap) ElementType

func (TopicIAMPolicyMap) ElementType() reflect.Type

func (TopicIAMPolicyMap) ToOutput added in v6.65.1

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput

func (i TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutputWithContext

func (i TopicIAMPolicyMap) ToTopicIAMPolicyMapOutputWithContext(ctx context.Context) TopicIAMPolicyMapOutput

type TopicIAMPolicyMapInput

type TopicIAMPolicyMapInput interface {
	pulumi.Input

	ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput
	ToTopicIAMPolicyMapOutputWithContext(context.Context) TopicIAMPolicyMapOutput
}

TopicIAMPolicyMapInput is an input type that accepts TopicIAMPolicyMap and TopicIAMPolicyMapOutput values. You can construct a concrete instance of `TopicIAMPolicyMapInput` via:

TopicIAMPolicyMap{ "key": TopicIAMPolicyArgs{...} }

type TopicIAMPolicyMapOutput

type TopicIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyMapOutput) ElementType

func (TopicIAMPolicyMapOutput) ElementType() reflect.Type

func (TopicIAMPolicyMapOutput) MapIndex

func (TopicIAMPolicyMapOutput) ToOutput added in v6.65.1

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput

func (o TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutputWithContext

func (o TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutputWithContext(ctx context.Context) TopicIAMPolicyMapOutput

type TopicIAMPolicyOutput

type TopicIAMPolicyOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyOutput) ElementType

func (TopicIAMPolicyOutput) ElementType() reflect.Type

func (TopicIAMPolicyOutput) Etag added in v6.23.0

(Computed) The etag of the IAM policy.

func (TopicIAMPolicyOutput) PolicyData added in v6.23.0

func (o TopicIAMPolicyOutput) PolicyData() pulumi.StringOutput

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

func (TopicIAMPolicyOutput) Project added in v6.23.0

The ID of the project in which the resource belongs. If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.

  • `member/members` - (Required) 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 (TopicIAMPolicyOutput) ToOutput added in v6.65.1

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutput

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) Topic added in v6.23.0

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

type TopicIAMPolicyState

type TopicIAMPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	//
	// * `member/members` - (Required) 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"
	Project pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringPtrInput
}

func (TopicIAMPolicyState) ElementType

func (TopicIAMPolicyState) ElementType() reflect.Type

type TopicInput

type TopicInput interface {
	pulumi.Input

	ToTopicOutput() TopicOutput
	ToTopicOutputWithContext(ctx context.Context) TopicOutput
}

type TopicMap

type TopicMap map[string]TopicInput

func (TopicMap) ElementType

func (TopicMap) ElementType() reflect.Type

func (TopicMap) ToOutput added in v6.65.1

func (i TopicMap) ToOutput(ctx context.Context) pulumix.Output[map[string]*Topic]

func (TopicMap) ToTopicMapOutput

func (i TopicMap) ToTopicMapOutput() TopicMapOutput

func (TopicMap) ToTopicMapOutputWithContext

func (i TopicMap) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicMapInput

type TopicMapInput interface {
	pulumi.Input

	ToTopicMapOutput() TopicMapOutput
	ToTopicMapOutputWithContext(context.Context) TopicMapOutput
}

TopicMapInput is an input type that accepts TopicMap and TopicMapOutput values. You can construct a concrete instance of `TopicMapInput` via:

TopicMap{ "key": TopicArgs{...} }

type TopicMapOutput

type TopicMapOutput struct{ *pulumi.OutputState }

func (TopicMapOutput) ElementType

func (TopicMapOutput) ElementType() reflect.Type

func (TopicMapOutput) MapIndex

func (TopicMapOutput) ToOutput added in v6.65.1

func (o TopicMapOutput) ToOutput(ctx context.Context) pulumix.Output[map[string]*Topic]

func (TopicMapOutput) ToTopicMapOutput

func (o TopicMapOutput) ToTopicMapOutput() TopicMapOutput

func (TopicMapOutput) ToTopicMapOutputWithContext

func (o TopicMapOutput) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicMessageStoragePolicy

type TopicMessageStoragePolicy struct {
	// A list of IDs of GCP regions where messages that are published to
	// the topic may be persisted in storage. Messages published by
	// publishers running in non-allowed GCP regions (or running outside
	// of GCP altogether) will be routed for storage in one of the
	// allowed regions. An empty list means that no regions are allowed,
	// and is not a valid configuration.
	AllowedPersistenceRegions []string `pulumi:"allowedPersistenceRegions"`
}

type TopicMessageStoragePolicyArgs

type TopicMessageStoragePolicyArgs struct {
	// A list of IDs of GCP regions where messages that are published to
	// the topic may be persisted in storage. Messages published by
	// publishers running in non-allowed GCP regions (or running outside
	// of GCP altogether) will be routed for storage in one of the
	// allowed regions. An empty list means that no regions are allowed,
	// and is not a valid configuration.
	AllowedPersistenceRegions pulumi.StringArrayInput `pulumi:"allowedPersistenceRegions"`
}

func (TopicMessageStoragePolicyArgs) ElementType

func (TopicMessageStoragePolicyArgs) ToOutput added in v6.65.1

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutput

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutputWithContext

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutputWithContext(ctx context.Context) TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutput

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutputWithContext

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyInput

type TopicMessageStoragePolicyInput interface {
	pulumi.Input

	ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput
	ToTopicMessageStoragePolicyOutputWithContext(context.Context) TopicMessageStoragePolicyOutput
}

TopicMessageStoragePolicyInput is an input type that accepts TopicMessageStoragePolicyArgs and TopicMessageStoragePolicyOutput values. You can construct a concrete instance of `TopicMessageStoragePolicyInput` via:

TopicMessageStoragePolicyArgs{...}

type TopicMessageStoragePolicyOutput

type TopicMessageStoragePolicyOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed GCP regions (or running outside of GCP altogether) will be routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.

func (TopicMessageStoragePolicyOutput) ElementType

func (TopicMessageStoragePolicyOutput) ToOutput added in v6.65.1

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutput

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutputWithContext

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutputWithContext(ctx context.Context) TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutput

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutputWithContext

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyPtrInput

type TopicMessageStoragePolicyPtrInput interface {
	pulumi.Input

	ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput
	ToTopicMessageStoragePolicyPtrOutputWithContext(context.Context) TopicMessageStoragePolicyPtrOutput
}

TopicMessageStoragePolicyPtrInput is an input type that accepts TopicMessageStoragePolicyArgs, TopicMessageStoragePolicyPtr and TopicMessageStoragePolicyPtrOutput values. You can construct a concrete instance of `TopicMessageStoragePolicyPtrInput` via:

        TopicMessageStoragePolicyArgs{...}

or:

        nil

type TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyPtrOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed GCP regions (or running outside of GCP altogether) will be routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.

func (TopicMessageStoragePolicyPtrOutput) Elem

func (TopicMessageStoragePolicyPtrOutput) ElementType

func (TopicMessageStoragePolicyPtrOutput) ToOutput added in v6.65.1

func (TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutput

func (o TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutputWithContext

func (o TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicOutput

type TopicOutput struct{ *pulumi.OutputState }

func (TopicOutput) ElementType

func (TopicOutput) ElementType() reflect.Type

func (TopicOutput) KmsKeyName added in v6.23.0

func (o TopicOutput) KmsKeyName() pulumi.StringPtrOutput

The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. Your project's PubSub service account (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`

func (TopicOutput) Labels added in v6.23.0

func (o TopicOutput) Labels() pulumi.StringMapOutput

A set of key/value label pairs to assign to this Topic.

func (TopicOutput) MessageRetentionDuration added in v6.23.0

func (o TopicOutput) MessageRetentionDuration() pulumi.StringPtrOutput

Indicates the minimum duration to retain a message after it is published to the topic. If this field is set, messages published to the topic in the last messageRetentionDuration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to messageRetentionDuration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. Cannot be more than 31 days or less than 10 minutes.

func (TopicOutput) MessageStoragePolicy added in v6.23.0

func (o TopicOutput) MessageStoragePolicy() TopicMessageStoragePolicyOutput

Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect. Structure is documented below.

func (TopicOutput) Name added in v6.23.0

func (o TopicOutput) Name() pulumi.StringOutput

Name of the topic.

***

func (TopicOutput) Project added in v6.23.0

func (o TopicOutput) Project() pulumi.StringOutput

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

func (TopicOutput) SchemaSettings added in v6.23.0

func (o TopicOutput) SchemaSettings() TopicSchemaSettingsOutput

Settings for validating messages published against a schema. Structure is documented below.

func (TopicOutput) ToOutput added in v6.65.1

func (o TopicOutput) ToOutput(ctx context.Context) pulumix.Output[*Topic]

func (TopicOutput) ToTopicOutput

func (o TopicOutput) ToTopicOutput() TopicOutput

func (TopicOutput) ToTopicOutputWithContext

func (o TopicOutput) ToTopicOutputWithContext(ctx context.Context) TopicOutput

type TopicSchemaSettings

type TopicSchemaSettings struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.
	Encoding *string `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema string `pulumi:"schema"`
}

type TopicSchemaSettingsArgs

type TopicSchemaSettingsArgs struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.
	Encoding pulumi.StringPtrInput `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema pulumi.StringInput `pulumi:"schema"`
}

func (TopicSchemaSettingsArgs) ElementType

func (TopicSchemaSettingsArgs) ElementType() reflect.Type

func (TopicSchemaSettingsArgs) ToOutput added in v6.65.1

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutputWithContext

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutputWithContext(ctx context.Context) TopicSchemaSettingsOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutputWithContext

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutputWithContext(ctx context.Context) TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsInput

type TopicSchemaSettingsInput interface {
	pulumi.Input

	ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput
	ToTopicSchemaSettingsOutputWithContext(context.Context) TopicSchemaSettingsOutput
}

TopicSchemaSettingsInput is an input type that accepts TopicSchemaSettingsArgs and TopicSchemaSettingsOutput values. You can construct a concrete instance of `TopicSchemaSettingsInput` via:

TopicSchemaSettingsArgs{...}

type TopicSchemaSettingsOutput

type TopicSchemaSettingsOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsOutput) ElementType

func (TopicSchemaSettingsOutput) ElementType() reflect.Type

func (TopicSchemaSettingsOutput) Encoding

The encoding of messages validated against schema. Default value is `ENCODING_UNSPECIFIED`. Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.

func (TopicSchemaSettingsOutput) Schema

The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

func (TopicSchemaSettingsOutput) ToOutput added in v6.65.1

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutput

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutputWithContext

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutputWithContext(ctx context.Context) TopicSchemaSettingsOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutputWithContext

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutputWithContext(ctx context.Context) TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsPtrInput

type TopicSchemaSettingsPtrInput interface {
	pulumi.Input

	ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput
	ToTopicSchemaSettingsPtrOutputWithContext(context.Context) TopicSchemaSettingsPtrOutput
}

TopicSchemaSettingsPtrInput is an input type that accepts TopicSchemaSettingsArgs, TopicSchemaSettingsPtr and TopicSchemaSettingsPtrOutput values. You can construct a concrete instance of `TopicSchemaSettingsPtrInput` via:

        TopicSchemaSettingsArgs{...}

or:

        nil

type TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsPtrOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsPtrOutput) Elem

func (TopicSchemaSettingsPtrOutput) ElementType

func (TopicSchemaSettingsPtrOutput) Encoding

The encoding of messages validated against schema. Default value is `ENCODING_UNSPECIFIED`. Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.

func (TopicSchemaSettingsPtrOutput) Schema

The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

func (TopicSchemaSettingsPtrOutput) ToOutput added in v6.65.1

func (TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutput

func (o TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutputWithContext

func (o TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutputWithContext(ctx context.Context) TopicSchemaSettingsPtrOutput

type TopicState

type TopicState struct {
	// The resource name of the Cloud KMS CryptoKey to be used to protect access
	// to messages published on this topic. Your project's PubSub service account
	// (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have
	// `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature.
	// The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`
	KmsKeyName pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapInput
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrInput
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	//
	// ***
	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
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsPtrInput
}

func (TopicState) ElementType

func (TopicState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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