pubsub

package
v5.9.0 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type 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

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

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

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

type GetTopicSchemaSetting added in v5.4.0

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

type GetTopicSchemaSettingArgs added in v5.4.0

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

func (GetTopicSchemaSettingArgs) ElementType added in v5.4.0

func (GetTopicSchemaSettingArgs) ElementType() reflect.Type

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput added in v5.4.0

func (i GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutputWithContext added in v5.4.0

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

type GetTopicSchemaSettingArray added in v5.4.0

type GetTopicSchemaSettingArray []GetTopicSchemaSettingInput

func (GetTopicSchemaSettingArray) ElementType added in v5.4.0

func (GetTopicSchemaSettingArray) ElementType() reflect.Type

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput added in v5.4.0

func (i GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutputWithContext added in v5.4.0

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

type GetTopicSchemaSettingArrayInput added in v5.4.0

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 added in v5.4.0

type GetTopicSchemaSettingArrayOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingArrayOutput) ElementType added in v5.4.0

func (GetTopicSchemaSettingArrayOutput) Index added in v5.4.0

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput added in v5.4.0

func (o GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutputWithContext added in v5.4.0

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

type GetTopicSchemaSettingInput added in v5.4.0

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 added in v5.4.0

type GetTopicSchemaSettingOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingOutput) ElementType added in v5.4.0

func (GetTopicSchemaSettingOutput) Encoding added in v5.4.0

func (GetTopicSchemaSettingOutput) Schema added in v5.4.0

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput added in v5.4.0

func (o GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutputWithContext added in v5.4.0

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

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/docs/reference/rest/v1/projects.subscriptions) * How-to Guides

## Example Usage ### Pubsub Lite Subscription Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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) ToLiteSubscriptionPtrOutput

func (i *LiteSubscription) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (*LiteSubscription) ToLiteSubscriptionPtrOutputWithContext

func (i *LiteSubscription) ToLiteSubscriptionPtrOutputWithContext(ctx context.Context) LiteSubscriptionPtrOutput

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

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

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

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

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

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

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

type LiteSubscriptionOutput

type LiteSubscriptionOutput struct {
	*pulumi.OutputState
}

func (LiteSubscriptionOutput) ElementType

func (LiteSubscriptionOutput) ElementType() reflect.Type

func (LiteSubscriptionOutput) ToLiteSubscriptionOutput

func (o LiteSubscriptionOutput) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionOutputWithContext

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

func (LiteSubscriptionOutput) ToLiteSubscriptionPtrOutput

func (o LiteSubscriptionOutput) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionPtrOutputWithContext

func (o LiteSubscriptionOutput) ToLiteSubscriptionPtrOutputWithContext(ctx context.Context) LiteSubscriptionPtrOutput

type LiteSubscriptionPtrInput

type LiteSubscriptionPtrInput interface {
	pulumi.Input

	ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput
	ToLiteSubscriptionPtrOutputWithContext(ctx context.Context) LiteSubscriptionPtrOutput
}

type LiteSubscriptionPtrOutput

type LiteSubscriptionPtrOutput struct {
	*pulumi.OutputState
}

func (LiteSubscriptionPtrOutput) ElementType

func (LiteSubscriptionPtrOutput) ElementType() reflect.Type

func (LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutput

func (o LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutputWithContext

func (o LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutputWithContext(ctx context.Context) LiteSubscriptionPtrOutput

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 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/docs/reference/rest/v1/projects.topics) * How-to Guides

## Example Usage ### Pubsub Lite Topic Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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.NewLiteTopic(ctx, "example", &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
		}
		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) ToLiteTopicPtrOutput

func (i *LiteTopic) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (*LiteTopic) ToLiteTopicPtrOutputWithContext

func (i *LiteTopic) ToLiteTopicPtrOutputWithContext(ctx context.Context) LiteTopicPtrOutput

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

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

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

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

type LiteTopicOutput

type LiteTopicOutput struct {
	*pulumi.OutputState
}

func (LiteTopicOutput) ElementType

func (LiteTopicOutput) ElementType() reflect.Type

func (LiteTopicOutput) ToLiteTopicOutput

func (o LiteTopicOutput) ToLiteTopicOutput() LiteTopicOutput

func (LiteTopicOutput) ToLiteTopicOutputWithContext

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

func (LiteTopicOutput) ToLiteTopicPtrOutput

func (o LiteTopicOutput) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (LiteTopicOutput) ToLiteTopicPtrOutputWithContext

func (o LiteTopicOutput) ToLiteTopicPtrOutputWithContext(ctx context.Context) LiteTopicPtrOutput

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

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

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

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

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

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

type LiteTopicPtrInput

type LiteTopicPtrInput interface {
	pulumi.Input

	ToLiteTopicPtrOutput() LiteTopicPtrOutput
	ToLiteTopicPtrOutputWithContext(ctx context.Context) LiteTopicPtrOutput
}

type LiteTopicPtrOutput

type LiteTopicPtrOutput struct {
	*pulumi.OutputState
}

func (LiteTopicPtrOutput) ElementType

func (LiteTopicPtrOutput) ElementType() reflect.Type

func (LiteTopicPtrOutput) ToLiteTopicPtrOutput

func (o LiteTopicPtrOutput) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (LiteTopicPtrOutput) ToLiteTopicPtrOutputWithContext

func (o LiteTopicPtrOutput) ToLiteTopicPtrOutputWithContext(ctx context.Context) LiteTopicPtrOutput

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

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.

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

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.

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput

func (o LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutputWithContext

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

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 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 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 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"`
	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/v5/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 Schema added in v5.8.1

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`, and `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 (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v5/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(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "  \"type\" : \"record\",\n", "  \"name\" : \"Avro\",\n", "  \"fields\" : [\n", "    {\n", "      \"name\" : \"StringField\",\n", "      \"type\" : \"string\"\n", "    },\n", "    {\n", "      \"name\" : \"IntField\",\n", "      \"type\" : \"int\"\n", "    }\n", "  ]\n", "}\n", "\n")),
			Type:       pulumi.String("AVRO"),
		})
		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 added in v5.8.1

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 added in v5.8.1

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 added in v5.8.1

func (*Schema) ElementType() reflect.Type

func (*Schema) ToSchemaOutput added in v5.8.1

func (i *Schema) ToSchemaOutput() SchemaOutput

func (*Schema) ToSchemaOutputWithContext added in v5.8.1

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

func (*Schema) ToSchemaPtrOutput added in v5.8.1

func (i *Schema) ToSchemaPtrOutput() SchemaPtrOutput

func (*Schema) ToSchemaPtrOutputWithContext added in v5.8.1

func (i *Schema) ToSchemaPtrOutputWithContext(ctx context.Context) SchemaPtrOutput

type SchemaArgs added in v5.8.1

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`, and `AVRO`.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a Schema resource.

func (SchemaArgs) ElementType added in v5.8.1

func (SchemaArgs) ElementType() reflect.Type

type SchemaArray added in v5.8.1

type SchemaArray []SchemaInput

func (SchemaArray) ElementType added in v5.8.1

func (SchemaArray) ElementType() reflect.Type

func (SchemaArray) ToSchemaArrayOutput added in v5.8.1

func (i SchemaArray) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArray) ToSchemaArrayOutputWithContext added in v5.8.1

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

type SchemaArrayInput added in v5.8.1

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 added in v5.8.1

type SchemaArrayOutput struct{ *pulumi.OutputState }

func (SchemaArrayOutput) ElementType added in v5.8.1

func (SchemaArrayOutput) ElementType() reflect.Type

func (SchemaArrayOutput) Index added in v5.8.1

func (SchemaArrayOutput) ToSchemaArrayOutput added in v5.8.1

func (o SchemaArrayOutput) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArrayOutput) ToSchemaArrayOutputWithContext added in v5.8.1

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

type SchemaInput added in v5.8.1

type SchemaInput interface {
	pulumi.Input

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

type SchemaMap added in v5.8.1

type SchemaMap map[string]SchemaInput

func (SchemaMap) ElementType added in v5.8.1

func (SchemaMap) ElementType() reflect.Type

func (SchemaMap) ToSchemaMapOutput added in v5.8.1

func (i SchemaMap) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMap) ToSchemaMapOutputWithContext added in v5.8.1

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

type SchemaMapInput added in v5.8.1

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 added in v5.8.1

type SchemaMapOutput struct{ *pulumi.OutputState }

func (SchemaMapOutput) ElementType added in v5.8.1

func (SchemaMapOutput) ElementType() reflect.Type

func (SchemaMapOutput) MapIndex added in v5.8.1

func (SchemaMapOutput) ToSchemaMapOutput added in v5.8.1

func (o SchemaMapOutput) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMapOutput) ToSchemaMapOutputWithContext added in v5.8.1

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

type SchemaOutput added in v5.8.1

type SchemaOutput struct {
	*pulumi.OutputState
}

func (SchemaOutput) ElementType added in v5.8.1

func (SchemaOutput) ElementType() reflect.Type

func (SchemaOutput) ToSchemaOutput added in v5.8.1

func (o SchemaOutput) ToSchemaOutput() SchemaOutput

func (SchemaOutput) ToSchemaOutputWithContext added in v5.8.1

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

func (SchemaOutput) ToSchemaPtrOutput added in v5.8.1

func (o SchemaOutput) ToSchemaPtrOutput() SchemaPtrOutput

func (SchemaOutput) ToSchemaPtrOutputWithContext added in v5.8.1

func (o SchemaOutput) ToSchemaPtrOutputWithContext(ctx context.Context) SchemaPtrOutput

type SchemaPtrInput added in v5.8.1

type SchemaPtrInput interface {
	pulumi.Input

	ToSchemaPtrOutput() SchemaPtrOutput
	ToSchemaPtrOutputWithContext(ctx context.Context) SchemaPtrOutput
}

type SchemaPtrOutput added in v5.8.1

type SchemaPtrOutput struct {
	*pulumi.OutputState
}

func (SchemaPtrOutput) ElementType added in v5.8.1

func (SchemaPtrOutput) ElementType() reflect.Type

func (SchemaPtrOutput) ToSchemaPtrOutput added in v5.8.1

func (o SchemaPtrOutput) ToSchemaPtrOutput() SchemaPtrOutput

func (SchemaPtrOutput) ToSchemaPtrOutputWithContext added in v5.8.1

func (o SchemaPtrOutput) ToSchemaPtrOutputWithContext(ctx context.Context) SchemaPtrOutput

type SchemaState added in v5.8.1

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`, and `AVRO`.
	Type pulumi.StringPtrInput
}

func (SchemaState) ElementType added in v5.8.1

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"`
	// 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`, 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"`
	// Path of the subscription in the format projects/{project}/subscriptions/{name}
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	Path pulumi.StringOutput `pulumi:"path"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// 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/v5/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/v5/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/v5/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/v5/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
	})
}

```

## 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) ToSubscriptionOutput

func (i *Subscription) ToSubscriptionOutput() SubscriptionOutput

func (*Subscription) ToSubscriptionOutputWithContext

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

func (*Subscription) ToSubscriptionPtrOutput

func (i *Subscription) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (*Subscription) ToSubscriptionPtrOutputWithContext

func (i *Subscription) ToSubscriptionPtrOutputWithContext(ctx context.Context) SubscriptionPtrOutput

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
	// 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`, 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) 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) ToSubscriptionArrayOutput

func (o SubscriptionArrayOutput) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArrayOutput) ToSubscriptionArrayOutputWithContext

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

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) 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) 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) 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 not set, 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 not set, 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) 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) 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 not set, 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) 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 not set, 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.
	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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToSubscriptionIAMBindingOutput

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutputWithContext

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

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutput

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutputWithContext

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingPtrOutput

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.
	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) 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) 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) 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) 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) 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) 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) 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) ElementType

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutputWithContext

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

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutput

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutputWithContext

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingPtrOutput

type SubscriptionIAMBindingPtrInput

type SubscriptionIAMBindingPtrInput interface {
	pulumi.Input

	ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput
	ToSubscriptionIAMBindingPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingPtrOutput
}

type SubscriptionIAMBindingPtrOutput

type SubscriptionIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMBindingPtrOutput) ElementType

func (SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutput

func (o SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutputWithContext

func (o SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutputWithContext(ctx context.Context) SubscriptionIAMBindingPtrOutput

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.
	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.
	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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToSubscriptionIAMMemberOutput

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutputWithContext

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

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutput

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutputWithContext

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberPtrOutput

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.
	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) 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) 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) 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) 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) 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) 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) 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) ElementType

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutputWithContext

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

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutput

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutputWithContext

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberPtrOutput

type SubscriptionIAMMemberPtrInput

type SubscriptionIAMMemberPtrInput interface {
	pulumi.Input

	ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput
	ToSubscriptionIAMMemberPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberPtrOutput
}

type SubscriptionIAMMemberPtrOutput

type SubscriptionIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMMemberPtrOutput) ElementType

func (SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutput

func (o SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutputWithContext

func (o SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutputWithContext(ctx context.Context) SubscriptionIAMMemberPtrOutput

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.
	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.
	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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToSubscriptionIAMPolicyOutput

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutputWithContext

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

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutput

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutputWithContext

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutputWithContext(ctx context.Context) SubscriptionIAMPolicyPtrOutput

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.
	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) 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) 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) 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) 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) ToSubscriptionIAMPolicyOutput

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutputWithContext

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

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutput

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutputWithContext

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutputWithContext(ctx context.Context) SubscriptionIAMPolicyPtrOutput

type SubscriptionIAMPolicyPtrInput

type SubscriptionIAMPolicyPtrInput interface {
	pulumi.Input

	ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput
	ToSubscriptionIAMPolicyPtrOutputWithContext(ctx context.Context) SubscriptionIAMPolicyPtrOutput
}

type SubscriptionIAMPolicyPtrOutput

type SubscriptionIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMPolicyPtrOutput) ElementType

func (SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutput

func (o SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutputWithContext

func (o SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutputWithContext(ctx context.Context) SubscriptionIAMPolicyPtrOutput

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.
	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) 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) 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) ElementType

func (SubscriptionOutput) ElementType() reflect.Type

func (SubscriptionOutput) ToSubscriptionOutput

func (o SubscriptionOutput) ToSubscriptionOutput() SubscriptionOutput

func (SubscriptionOutput) ToSubscriptionOutputWithContext

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

func (SubscriptionOutput) ToSubscriptionPtrOutput

func (o SubscriptionOutput) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (SubscriptionOutput) ToSubscriptionPtrOutputWithContext

func (o SubscriptionOutput) ToSubscriptionPtrOutputWithContext(ctx context.Context) SubscriptionPtrOutput

type SubscriptionPtrInput

type SubscriptionPtrInput interface {
	pulumi.Input

	ToSubscriptionPtrOutput() SubscriptionPtrOutput
	ToSubscriptionPtrOutputWithContext(ctx context.Context) SubscriptionPtrOutput
}

type SubscriptionPtrOutput

type SubscriptionPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionPtrOutput) ElementType

func (SubscriptionPtrOutput) ElementType() reflect.Type

func (SubscriptionPtrOutput) ToSubscriptionPtrOutput

func (o SubscriptionPtrOutput) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (SubscriptionPtrOutput) ToSubscriptionPtrOutputWithContext

func (o SubscriptionPtrOutput) ToSubscriptionPtrOutputWithContext(ctx context.Context) SubscriptionPtrOutput

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"`
	// 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"`
	// 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) 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 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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
	// 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`, 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
	// Path of the subscription in the format projects/{project}/subscriptions/{name}
	//
	// Deprecated: Deprecated in favor of id, which contains an identical value. This field will be removed in the next major release of the provider.
	Path pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// 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"`
	// 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/v5/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"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Topic Cmek

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v5/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/v5/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/v5/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("{\n  \"type\" : \"record\",\n  \"name\" : \"Avro\",\n  \"fields\" : [\n    {\n      \"name\" : \"StringField\",\n      \"type\" : \"string\"\n    },\n    {\n      \"name\" : \"IntField\",\n      \"type\" : \"int\"\n    }\n  ]\n}\n"),
		})
		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) ToTopicOutput

func (i *Topic) ToTopicOutput() TopicOutput

func (*Topic) ToTopicOutputWithContext

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

func (*Topic) ToTopicPtrOutput

func (i *Topic) ToTopicPtrOutput() TopicPtrOutput

func (*Topic) ToTopicPtrOutputWithContext

func (i *Topic) ToTopicPtrOutputWithContext(ctx context.Context) TopicPtrOutput

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
	// 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) 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) 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.
	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.

> **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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToTopicIAMBindingOutput

func (i *TopicIAMBinding) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (*TopicIAMBinding) ToTopicIAMBindingOutputWithContext

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

func (*TopicIAMBinding) ToTopicIAMBindingPtrOutput

func (i *TopicIAMBinding) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (*TopicIAMBinding) ToTopicIAMBindingPtrOutputWithContext

func (i *TopicIAMBinding) ToTopicIAMBindingPtrOutputWithContext(ctx context.Context) TopicIAMBindingPtrOutput

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.
	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) 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) 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) 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) 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) 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) 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) 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) ElementType

func (TopicIAMBindingOutput) ElementType() reflect.Type

func (TopicIAMBindingOutput) ToTopicIAMBindingOutput

func (o TopicIAMBindingOutput) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingOutputWithContext

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

func (TopicIAMBindingOutput) ToTopicIAMBindingPtrOutput

func (o TopicIAMBindingOutput) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingPtrOutputWithContext

func (o TopicIAMBindingOutput) ToTopicIAMBindingPtrOutputWithContext(ctx context.Context) TopicIAMBindingPtrOutput

type TopicIAMBindingPtrInput

type TopicIAMBindingPtrInput interface {
	pulumi.Input

	ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput
	ToTopicIAMBindingPtrOutputWithContext(ctx context.Context) TopicIAMBindingPtrOutput
}

type TopicIAMBindingPtrOutput

type TopicIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMBindingPtrOutput) ElementType

func (TopicIAMBindingPtrOutput) ElementType() reflect.Type

func (TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutput

func (o TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutputWithContext

func (o TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutputWithContext(ctx context.Context) TopicIAMBindingPtrOutput

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

> **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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToTopicIAMMemberOutput

func (i *TopicIAMMember) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (*TopicIAMMember) ToTopicIAMMemberOutputWithContext

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

func (*TopicIAMMember) ToTopicIAMMemberPtrOutput

func (i *TopicIAMMember) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (*TopicIAMMember) ToTopicIAMMemberPtrOutputWithContext

func (i *TopicIAMMember) ToTopicIAMMemberPtrOutputWithContext(ctx context.Context) TopicIAMMemberPtrOutput

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.
	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) 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) 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) 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) 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) 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) 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) 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) ElementType

func (TopicIAMMemberOutput) ElementType() reflect.Type

func (TopicIAMMemberOutput) ToTopicIAMMemberOutput

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext(ctx context.Context) TopicIAMMemberOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberPtrOutput

func (o TopicIAMMemberOutput) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberPtrOutputWithContext

func (o TopicIAMMemberOutput) ToTopicIAMMemberPtrOutputWithContext(ctx context.Context) TopicIAMMemberPtrOutput

type TopicIAMMemberPtrInput

type TopicIAMMemberPtrInput interface {
	pulumi.Input

	ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput
	ToTopicIAMMemberPtrOutputWithContext(ctx context.Context) TopicIAMMemberPtrOutput
}

type TopicIAMMemberPtrOutput

type TopicIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMMemberPtrOutput) ElementType

func (TopicIAMMemberPtrOutput) ElementType() reflect.Type

func (TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutput

func (o TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutputWithContext

func (o TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutputWithContext(ctx context.Context) TopicIAMMemberPtrOutput

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

> **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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/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{
				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/v5/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/v5/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) ToTopicIAMPolicyOutput

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyPtrOutput

func (i *TopicIAMPolicy) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyPtrOutputWithContext

func (i *TopicIAMPolicy) ToTopicIAMPolicyPtrOutputWithContext(ctx context.Context) TopicIAMPolicyPtrOutput

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.
	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) 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) 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) 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) 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) ToTopicIAMPolicyOutput

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutput

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutputWithContext

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutputWithContext(ctx context.Context) TopicIAMPolicyPtrOutput

type TopicIAMPolicyPtrInput

type TopicIAMPolicyPtrInput interface {
	pulumi.Input

	ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput
	ToTopicIAMPolicyPtrOutputWithContext(ctx context.Context) TopicIAMPolicyPtrOutput
}

type TopicIAMPolicyPtrOutput

type TopicIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMPolicyPtrOutput) ElementType

func (TopicIAMPolicyPtrOutput) ElementType() reflect.Type

func (TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutput

func (o TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutputWithContext

func (o TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutputWithContext(ctx context.Context) TopicIAMPolicyPtrOutput

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.
	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) 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) 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) 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) 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) 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) ToTopicOutput

func (o TopicOutput) ToTopicOutput() TopicOutput

func (TopicOutput) ToTopicOutputWithContext

func (o TopicOutput) ToTopicOutputWithContext(ctx context.Context) TopicOutput

func (TopicOutput) ToTopicPtrOutput

func (o TopicOutput) ToTopicPtrOutput() TopicPtrOutput

func (TopicOutput) ToTopicPtrOutputWithContext

func (o TopicOutput) ToTopicPtrOutputWithContext(ctx context.Context) TopicPtrOutput

type TopicPtrInput

type TopicPtrInput interface {
	pulumi.Input

	ToTopicPtrOutput() TopicPtrOutput
	ToTopicPtrOutputWithContext(ctx context.Context) TopicPtrOutput
}

type TopicPtrOutput

type TopicPtrOutput struct {
	*pulumi.OutputState
}

func (TopicPtrOutput) ElementType

func (TopicPtrOutput) ElementType() reflect.Type

func (TopicPtrOutput) ToTopicPtrOutput

func (o TopicPtrOutput) ToTopicPtrOutput() TopicPtrOutput

func (TopicPtrOutput) ToTopicPtrOutputWithContext

func (o TopicPtrOutput) ToTopicPtrOutputWithContext(ctx context.Context) TopicPtrOutput

type TopicSchemaSettings added in v5.4.0

type TopicSchemaSettings struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are `ENCODING_UNSPECIFIED`, `JSON`, and `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 added in v5.4.0

type TopicSchemaSettingsArgs struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are `ENCODING_UNSPECIFIED`, `JSON`, and `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 added in v5.4.0

func (TopicSchemaSettingsArgs) ElementType() reflect.Type

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput added in v5.4.0

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutputWithContext added in v5.4.0

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutputWithContext(ctx context.Context) TopicSchemaSettingsOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput added in v5.4.0

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutputWithContext added in v5.4.0

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutputWithContext(ctx context.Context) TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsInput added in v5.4.0

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 added in v5.4.0

type TopicSchemaSettingsOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsOutput) ElementType added in v5.4.0

func (TopicSchemaSettingsOutput) ElementType() reflect.Type

func (TopicSchemaSettingsOutput) Encoding added in v5.4.0

The encoding of messages validated against schema. Default value is `ENCODING_UNSPECIFIED`. Possible values are `ENCODING_UNSPECIFIED`, `JSON`, and `BINARY`.

func (TopicSchemaSettingsOutput) Schema added in v5.4.0

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) ToTopicSchemaSettingsOutput added in v5.4.0

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutputWithContext added in v5.4.0

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutputWithContext(ctx context.Context) TopicSchemaSettingsOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput added in v5.4.0

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutputWithContext added in v5.4.0

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutputWithContext(ctx context.Context) TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsPtrInput added in v5.4.0

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

func TopicSchemaSettingsPtr added in v5.4.0

func TopicSchemaSettingsPtr(v *TopicSchemaSettingsArgs) TopicSchemaSettingsPtrInput

type TopicSchemaSettingsPtrOutput added in v5.4.0

type TopicSchemaSettingsPtrOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsPtrOutput) Elem added in v5.4.0

func (TopicSchemaSettingsPtrOutput) ElementType added in v5.4.0

func (TopicSchemaSettingsPtrOutput) Encoding added in v5.4.0

The encoding of messages validated against schema. Default value is `ENCODING_UNSPECIFIED`. Possible values are `ENCODING_UNSPECIFIED`, `JSON`, and `BINARY`.

func (TopicSchemaSettingsPtrOutput) Schema added in v5.4.0

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) ToTopicSchemaSettingsPtrOutput added in v5.4.0

func (o TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutputWithContext added in v5.4.0

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