pubsub

package
v4.21.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 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 LiteSubscription added in v4.7.0

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (*LiteSubscription) ElementType() reflect.Type

func (*LiteSubscription) ToLiteSubscriptionOutput added in v4.7.0

func (i *LiteSubscription) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (*LiteSubscription) ToLiteSubscriptionOutputWithContext added in v4.7.0

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

func (*LiteSubscription) ToLiteSubscriptionPtrOutput added in v4.11.1

func (i *LiteSubscription) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (*LiteSubscription) ToLiteSubscriptionPtrOutputWithContext added in v4.11.1

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

type LiteSubscriptionArgs added in v4.7.0

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 added in v4.7.0

func (LiteSubscriptionArgs) ElementType() reflect.Type

type LiteSubscriptionArray added in v4.11.1

type LiteSubscriptionArray []LiteSubscriptionInput

func (LiteSubscriptionArray) ElementType added in v4.11.1

func (LiteSubscriptionArray) ElementType() reflect.Type

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutput added in v4.11.1

func (i LiteSubscriptionArray) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutputWithContext added in v4.11.1

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

type LiteSubscriptionArrayInput added in v4.11.1

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 added in v4.11.1

type LiteSubscriptionArrayOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionArrayOutput) ElementType added in v4.11.1

func (LiteSubscriptionArrayOutput) Index added in v4.11.1

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput added in v4.11.1

func (o LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutputWithContext added in v4.11.1

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

type LiteSubscriptionDeliveryConfig added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput added in v4.7.0

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutputWithContext added in v4.7.0

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

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput added in v4.7.0

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext added in v4.7.0

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

type LiteSubscriptionDeliveryConfigInput added in v4.7.0

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 added in v4.7.0

type LiteSubscriptionDeliveryConfigOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigOutput) DeliveryRequirement added in v4.7.0

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 added in v4.7.0

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput added in v4.7.0

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutputWithContext added in v4.7.0

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

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput added in v4.7.0

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext added in v4.7.0

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

type LiteSubscriptionDeliveryConfigPtrInput added in v4.7.0

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 added in v4.7.0

type LiteSubscriptionDeliveryConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigPtrOutput) DeliveryRequirement added in v4.7.0

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 added in v4.7.0

func (LiteSubscriptionDeliveryConfigPtrOutput) ElementType added in v4.7.0

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput added in v4.7.0

func (o LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext added in v4.7.0

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

type LiteSubscriptionInput added in v4.7.0

type LiteSubscriptionInput interface {
	pulumi.Input

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

type LiteSubscriptionMap added in v4.11.1

type LiteSubscriptionMap map[string]LiteSubscriptionInput

func (LiteSubscriptionMap) ElementType added in v4.11.1

func (LiteSubscriptionMap) ElementType() reflect.Type

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutput added in v4.11.1

func (i LiteSubscriptionMap) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutputWithContext added in v4.11.1

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

type LiteSubscriptionMapInput added in v4.11.1

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 added in v4.11.1

type LiteSubscriptionMapOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionMapOutput) ElementType added in v4.11.1

func (LiteSubscriptionMapOutput) ElementType() reflect.Type

func (LiteSubscriptionMapOutput) MapIndex added in v4.11.1

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput added in v4.11.1

func (o LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutputWithContext added in v4.11.1

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

type LiteSubscriptionOutput added in v4.7.0

type LiteSubscriptionOutput struct {
	*pulumi.OutputState
}

func (LiteSubscriptionOutput) ElementType added in v4.7.0

func (LiteSubscriptionOutput) ElementType() reflect.Type

func (LiteSubscriptionOutput) ToLiteSubscriptionOutput added in v4.7.0

func (o LiteSubscriptionOutput) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionOutputWithContext added in v4.7.0

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

func (LiteSubscriptionOutput) ToLiteSubscriptionPtrOutput added in v4.11.1

func (o LiteSubscriptionOutput) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionPtrOutputWithContext added in v4.11.1

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

type LiteSubscriptionPtrInput added in v4.11.1

type LiteSubscriptionPtrInput interface {
	pulumi.Input

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

type LiteSubscriptionPtrOutput added in v4.11.1

type LiteSubscriptionPtrOutput struct {
	*pulumi.OutputState
}

func (LiteSubscriptionPtrOutput) ElementType added in v4.11.1

func (LiteSubscriptionPtrOutput) ElementType() reflect.Type

func (LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutput added in v4.11.1

func (o LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutput() LiteSubscriptionPtrOutput

func (LiteSubscriptionPtrOutput) ToLiteSubscriptionPtrOutputWithContext added in v4.11.1

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

type LiteSubscriptionState added in v4.7.0

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 added in v4.7.0

func (LiteSubscriptionState) ElementType() reflect.Type

type LiteTopic added in v4.7.0

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (*LiteTopic) ElementType() reflect.Type

func (*LiteTopic) ToLiteTopicOutput added in v4.7.0

func (i *LiteTopic) ToLiteTopicOutput() LiteTopicOutput

func (*LiteTopic) ToLiteTopicOutputWithContext added in v4.7.0

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

func (*LiteTopic) ToLiteTopicPtrOutput added in v4.11.1

func (i *LiteTopic) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (*LiteTopic) ToLiteTopicPtrOutputWithContext added in v4.11.1

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

type LiteTopicArgs added in v4.7.0

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 added in v4.7.0

func (LiteTopicArgs) ElementType() reflect.Type

type LiteTopicArray added in v4.11.1

type LiteTopicArray []LiteTopicInput

func (LiteTopicArray) ElementType added in v4.11.1

func (LiteTopicArray) ElementType() reflect.Type

func (LiteTopicArray) ToLiteTopicArrayOutput added in v4.11.1

func (i LiteTopicArray) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArray) ToLiteTopicArrayOutputWithContext added in v4.11.1

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

type LiteTopicArrayInput added in v4.11.1

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 added in v4.11.1

type LiteTopicArrayOutput struct{ *pulumi.OutputState }

func (LiteTopicArrayOutput) ElementType added in v4.11.1

func (LiteTopicArrayOutput) ElementType() reflect.Type

func (LiteTopicArrayOutput) Index added in v4.11.1

func (LiteTopicArrayOutput) ToLiteTopicArrayOutput added in v4.11.1

func (o LiteTopicArrayOutput) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArrayOutput) ToLiteTopicArrayOutputWithContext added in v4.11.1

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

type LiteTopicInput added in v4.7.0

type LiteTopicInput interface {
	pulumi.Input

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

type LiteTopicMap added in v4.11.1

type LiteTopicMap map[string]LiteTopicInput

func (LiteTopicMap) ElementType added in v4.11.1

func (LiteTopicMap) ElementType() reflect.Type

func (LiteTopicMap) ToLiteTopicMapOutput added in v4.11.1

func (i LiteTopicMap) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMap) ToLiteTopicMapOutputWithContext added in v4.11.1

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

type LiteTopicMapInput added in v4.11.1

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 added in v4.11.1

type LiteTopicMapOutput struct{ *pulumi.OutputState }

func (LiteTopicMapOutput) ElementType added in v4.11.1

func (LiteTopicMapOutput) ElementType() reflect.Type

func (LiteTopicMapOutput) MapIndex added in v4.11.1

func (LiteTopicMapOutput) ToLiteTopicMapOutput added in v4.11.1

func (o LiteTopicMapOutput) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMapOutput) ToLiteTopicMapOutputWithContext added in v4.11.1

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

type LiteTopicOutput added in v4.7.0

type LiteTopicOutput struct {
	*pulumi.OutputState
}

func (LiteTopicOutput) ElementType added in v4.7.0

func (LiteTopicOutput) ElementType() reflect.Type

func (LiteTopicOutput) ToLiteTopicOutput added in v4.7.0

func (o LiteTopicOutput) ToLiteTopicOutput() LiteTopicOutput

func (LiteTopicOutput) ToLiteTopicOutputWithContext added in v4.7.0

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

func (LiteTopicOutput) ToLiteTopicPtrOutput added in v4.11.1

func (o LiteTopicOutput) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (LiteTopicOutput) ToLiteTopicPtrOutputWithContext added in v4.11.1

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

type LiteTopicPartitionConfig added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput added in v4.7.0

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutputWithContext added in v4.7.0

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

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput added in v4.7.0

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicPartitionConfigCapacity added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput added in v4.7.0

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutputWithContext added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput added in v4.7.0

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext added in v4.7.0

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

type LiteTopicPartitionConfigCapacityInput added in v4.7.0

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 added in v4.7.0

type LiteTopicPartitionConfigCapacityOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityOutput) ElementType added in v4.7.0

func (LiteTopicPartitionConfigCapacityOutput) PublishMibPerSec added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityOutput) SubscribeMibPerSec added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput added in v4.7.0

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutputWithContext added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput added in v4.7.0

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext added in v4.7.0

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

type LiteTopicPartitionConfigCapacityPtrInput added in v4.7.0

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 added in v4.7.0

type LiteTopicPartitionConfigCapacityPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityPtrOutput) Elem added in v4.7.0

func (LiteTopicPartitionConfigCapacityPtrOutput) ElementType added in v4.7.0

func (LiteTopicPartitionConfigCapacityPtrOutput) PublishMibPerSec added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityPtrOutput) SubscribeMibPerSec added in v4.7.0

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

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput added in v4.7.0

func (o LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext added in v4.7.0

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

type LiteTopicPartitionConfigInput added in v4.7.0

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 added in v4.7.0

type LiteTopicPartitionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigOutput) Capacity added in v4.7.0

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigOutput) Count added in v4.7.0

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

func (LiteTopicPartitionConfigOutput) ElementType added in v4.7.0

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput added in v4.7.0

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutputWithContext added in v4.7.0

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

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput added in v4.7.0

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicPartitionConfigPtrInput added in v4.7.0

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

func LiteTopicPartitionConfigPtr added in v4.7.0

func LiteTopicPartitionConfigPtr(v *LiteTopicPartitionConfigArgs) LiteTopicPartitionConfigPtrInput

type LiteTopicPartitionConfigPtrOutput added in v4.7.0

type LiteTopicPartitionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigPtrOutput) Capacity added in v4.7.0

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigPtrOutput) Count added in v4.7.0

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

func (LiteTopicPartitionConfigPtrOutput) Elem added in v4.7.0

func (LiteTopicPartitionConfigPtrOutput) ElementType added in v4.7.0

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput added in v4.7.0

func (o LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicPtrInput added in v4.11.1

type LiteTopicPtrInput interface {
	pulumi.Input

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

type LiteTopicPtrOutput added in v4.11.1

type LiteTopicPtrOutput struct {
	*pulumi.OutputState
}

func (LiteTopicPtrOutput) ElementType added in v4.11.1

func (LiteTopicPtrOutput) ElementType() reflect.Type

func (LiteTopicPtrOutput) ToLiteTopicPtrOutput added in v4.11.1

func (o LiteTopicPtrOutput) ToLiteTopicPtrOutput() LiteTopicPtrOutput

func (LiteTopicPtrOutput) ToLiteTopicPtrOutputWithContext added in v4.11.1

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

type LiteTopicRetentionConfig added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput added in v4.7.0

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutputWithContext added in v4.7.0

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

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput added in v4.7.0

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicRetentionConfigInput added in v4.7.0

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 added in v4.7.0

type LiteTopicRetentionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigOutput) ElementType added in v4.7.0

func (LiteTopicRetentionConfigOutput) PerPartitionBytes added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutputWithContext added in v4.7.0

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

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput added in v4.7.0

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicRetentionConfigPtrInput added in v4.7.0

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

func LiteTopicRetentionConfigPtr added in v4.7.0

func LiteTopicRetentionConfigPtr(v *LiteTopicRetentionConfigArgs) LiteTopicRetentionConfigPtrInput

type LiteTopicRetentionConfigPtrOutput added in v4.7.0

type LiteTopicRetentionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigPtrOutput) Elem added in v4.7.0

func (LiteTopicRetentionConfigPtrOutput) ElementType added in v4.7.0

func (LiteTopicRetentionConfigPtrOutput) PerPartitionBytes added in v4.7.0

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 added in v4.7.0

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 added in v4.7.0

func (o LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutputWithContext added in v4.7.0

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

type LiteTopicState added in v4.7.0

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 added in v4.7.0

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

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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*Subscription) ElementType() reflect.Type

func (*Subscription) ToSubscriptionOutput added in v4.4.0

func (i *Subscription) ToSubscriptionOutput() SubscriptionOutput

func (*Subscription) ToSubscriptionOutputWithContext added in v4.4.0

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

func (*Subscription) ToSubscriptionPtrOutput added in v4.11.1

func (i *Subscription) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (*Subscription) ToSubscriptionPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type SubscriptionArray []SubscriptionInput

func (SubscriptionArray) ElementType added in v4.11.1

func (SubscriptionArray) ElementType() reflect.Type

func (SubscriptionArray) ToSubscriptionArrayOutput added in v4.11.1

func (i SubscriptionArray) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArray) ToSubscriptionArrayOutputWithContext added in v4.11.1

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

type SubscriptionArrayInput added in v4.11.1

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 added in v4.11.1

type SubscriptionArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionArrayOutput) ElementType added in v4.11.1

func (SubscriptionArrayOutput) ElementType() reflect.Type

func (SubscriptionArrayOutput) Index added in v4.11.1

func (SubscriptionArrayOutput) ToSubscriptionArrayOutput added in v4.11.1

func (o SubscriptionArrayOutput) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArrayOutput) ToSubscriptionArrayOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*SubscriptionIAMBinding) ElementType() reflect.Type

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput added in v4.4.0

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutputWithContext added in v4.4.0

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

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutput added in v4.11.1

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMBindingArray []SubscriptionIAMBindingInput

func (SubscriptionIAMBindingArray) ElementType added in v4.11.1

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput added in v4.11.1

func (i SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMBindingArrayInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingArrayOutput) ElementType added in v4.11.1

func (SubscriptionIAMBindingArrayOutput) Index added in v4.11.1

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput added in v4.11.1

func (o SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMBindingInput interface {
	pulumi.Input

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

type SubscriptionIAMBindingMap added in v4.11.1

type SubscriptionIAMBindingMap map[string]SubscriptionIAMBindingInput

func (SubscriptionIAMBindingMap) ElementType added in v4.11.1

func (SubscriptionIAMBindingMap) ElementType() reflect.Type

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput added in v4.11.1

func (i SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMBindingMapInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMBindingMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingMapOutput) ElementType added in v4.11.1

func (SubscriptionIAMBindingMapOutput) MapIndex added in v4.11.1

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput added in v4.11.1

func (o SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMBindingOutput added in v4.4.0

type SubscriptionIAMBindingOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMBindingOutput) ElementType added in v4.4.0

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput added in v4.4.0

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutputWithContext added in v4.4.0

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

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutput added in v4.11.1

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingPtrOutputWithContext added in v4.11.1

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

type SubscriptionIAMBindingPtrInput added in v4.11.1

type SubscriptionIAMBindingPtrInput interface {
	pulumi.Input

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

type SubscriptionIAMBindingPtrOutput added in v4.11.1

type SubscriptionIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMBindingPtrOutput) ElementType added in v4.11.1

func (SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutput added in v4.11.1

func (o SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutput() SubscriptionIAMBindingPtrOutput

func (SubscriptionIAMBindingPtrOutput) ToSubscriptionIAMBindingPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*SubscriptionIAMMember) ElementType() reflect.Type

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutput added in v4.4.0

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutputWithContext added in v4.4.0

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

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutput added in v4.11.1

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMMemberArray []SubscriptionIAMMemberInput

func (SubscriptionIAMMemberArray) ElementType added in v4.11.1

func (SubscriptionIAMMemberArray) ElementType() reflect.Type

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput added in v4.11.1

func (i SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMMemberArrayInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberArrayOutput) ElementType added in v4.11.1

func (SubscriptionIAMMemberArrayOutput) Index added in v4.11.1

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput added in v4.11.1

func (o SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMMemberInput interface {
	pulumi.Input

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

type SubscriptionIAMMemberMap added in v4.11.1

type SubscriptionIAMMemberMap map[string]SubscriptionIAMMemberInput

func (SubscriptionIAMMemberMap) ElementType added in v4.11.1

func (SubscriptionIAMMemberMap) ElementType() reflect.Type

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput added in v4.11.1

func (i SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMMemberMapInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMMemberMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberMapOutput) ElementType added in v4.11.1

func (SubscriptionIAMMemberMapOutput) MapIndex added in v4.11.1

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput added in v4.11.1

func (o SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMMemberOutput added in v4.4.0

type SubscriptionIAMMemberOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMMemberOutput) ElementType added in v4.4.0

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput added in v4.4.0

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutputWithContext added in v4.4.0

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

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutput added in v4.11.1

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberPtrOutputWithContext added in v4.11.1

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

type SubscriptionIAMMemberPtrInput added in v4.11.1

type SubscriptionIAMMemberPtrInput interface {
	pulumi.Input

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

type SubscriptionIAMMemberPtrOutput added in v4.11.1

type SubscriptionIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMMemberPtrOutput) ElementType added in v4.11.1

func (SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutput added in v4.11.1

func (o SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutput() SubscriptionIAMMemberPtrOutput

func (SubscriptionIAMMemberPtrOutput) ToSubscriptionIAMMemberPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*SubscriptionIAMPolicy) ElementType() reflect.Type

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput added in v4.4.0

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutputWithContext added in v4.4.0

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

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutput added in v4.11.1

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMPolicyArray []SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyArray) ElementType added in v4.11.1

func (SubscriptionIAMPolicyArray) ElementType() reflect.Type

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput added in v4.11.1

func (i SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMPolicyArrayInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyArrayOutput) ElementType added in v4.11.1

func (SubscriptionIAMPolicyArrayOutput) Index added in v4.11.1

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput added in v4.11.1

func (o SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutputWithContext added in v4.11.1

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

type SubscriptionIAMPolicyInput added in v4.4.0

type SubscriptionIAMPolicyInput interface {
	pulumi.Input

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

type SubscriptionIAMPolicyMap added in v4.11.1

type SubscriptionIAMPolicyMap map[string]SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyMap) ElementType added in v4.11.1

func (SubscriptionIAMPolicyMap) ElementType() reflect.Type

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput added in v4.11.1

func (i SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMPolicyMapInput added in v4.11.1

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 added in v4.11.1

type SubscriptionIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyMapOutput) ElementType added in v4.11.1

func (SubscriptionIAMPolicyMapOutput) MapIndex added in v4.11.1

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput added in v4.11.1

func (o SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutputWithContext added in v4.11.1

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

type SubscriptionIAMPolicyOutput added in v4.4.0

type SubscriptionIAMPolicyOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMPolicyOutput) ElementType added in v4.4.0

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput added in v4.4.0

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutputWithContext added in v4.4.0

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

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutput added in v4.11.1

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyPtrOutputWithContext added in v4.11.1

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

type SubscriptionIAMPolicyPtrInput added in v4.11.1

type SubscriptionIAMPolicyPtrInput interface {
	pulumi.Input

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

type SubscriptionIAMPolicyPtrOutput added in v4.11.1

type SubscriptionIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionIAMPolicyPtrOutput) ElementType added in v4.11.1

func (SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutput added in v4.11.1

func (o SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutput() SubscriptionIAMPolicyPtrOutput

func (SubscriptionIAMPolicyPtrOutput) ToSubscriptionIAMPolicyPtrOutputWithContext added in v4.11.1

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

type SubscriptionInput interface {
	pulumi.Input

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

type SubscriptionMap added in v4.11.1

type SubscriptionMap map[string]SubscriptionInput

func (SubscriptionMap) ElementType added in v4.11.1

func (SubscriptionMap) ElementType() reflect.Type

func (SubscriptionMap) ToSubscriptionMapOutput added in v4.11.1

func (i SubscriptionMap) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMap) ToSubscriptionMapOutputWithContext added in v4.11.1

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

type SubscriptionMapInput added in v4.11.1

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 added in v4.11.1

type SubscriptionMapOutput struct{ *pulumi.OutputState }

func (SubscriptionMapOutput) ElementType added in v4.11.1

func (SubscriptionMapOutput) ElementType() reflect.Type

func (SubscriptionMapOutput) MapIndex added in v4.11.1

func (SubscriptionMapOutput) ToSubscriptionMapOutput added in v4.11.1

func (o SubscriptionMapOutput) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMapOutput) ToSubscriptionMapOutputWithContext added in v4.11.1

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

type SubscriptionOutput added in v4.4.0

type SubscriptionOutput struct {
	*pulumi.OutputState
}

func (SubscriptionOutput) ElementType added in v4.4.0

func (SubscriptionOutput) ElementType() reflect.Type

func (SubscriptionOutput) ToSubscriptionOutput added in v4.4.0

func (o SubscriptionOutput) ToSubscriptionOutput() SubscriptionOutput

func (SubscriptionOutput) ToSubscriptionOutputWithContext added in v4.4.0

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

func (SubscriptionOutput) ToSubscriptionPtrOutput added in v4.11.1

func (o SubscriptionOutput) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (SubscriptionOutput) ToSubscriptionPtrOutputWithContext added in v4.11.1

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

type SubscriptionPtrInput added in v4.11.1

type SubscriptionPtrInput interface {
	pulumi.Input

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

type SubscriptionPtrOutput added in v4.11.1

type SubscriptionPtrOutput struct {
	*pulumi.OutputState
}

func (SubscriptionPtrOutput) ElementType added in v4.11.1

func (SubscriptionPtrOutput) ElementType() reflect.Type

func (SubscriptionPtrOutput) ToSubscriptionPtrOutput added in v4.11.1

func (o SubscriptionPtrOutput) ToSubscriptionPtrOutput() SubscriptionPtrOutput

func (SubscriptionPtrOutput) ToSubscriptionPtrOutputWithContext added in v4.11.1

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

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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/kms"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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
	})
}

```

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

func (*Topic) ElementType() reflect.Type

func (*Topic) ToTopicOutput added in v4.4.0

func (i *Topic) ToTopicOutput() TopicOutput

func (*Topic) ToTopicOutputWithContext added in v4.4.0

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

func (*Topic) ToTopicPtrOutput added in v4.11.1

func (i *Topic) ToTopicPtrOutput() TopicPtrOutput

func (*Topic) ToTopicPtrOutputWithContext added in v4.11.1

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
}

The set of arguments for constructing a Topic resource.

func (TopicArgs) ElementType

func (TopicArgs) ElementType() reflect.Type

type TopicArray added in v4.11.1

type TopicArray []TopicInput

func (TopicArray) ElementType added in v4.11.1

func (TopicArray) ElementType() reflect.Type

func (TopicArray) ToTopicArrayOutput added in v4.11.1

func (i TopicArray) ToTopicArrayOutput() TopicArrayOutput

func (TopicArray) ToTopicArrayOutputWithContext added in v4.11.1

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

type TopicArrayInput added in v4.11.1

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 added in v4.11.1

type TopicArrayOutput struct{ *pulumi.OutputState }

func (TopicArrayOutput) ElementType added in v4.11.1

func (TopicArrayOutput) ElementType() reflect.Type

func (TopicArrayOutput) Index added in v4.11.1

func (TopicArrayOutput) ToTopicArrayOutput added in v4.11.1

func (o TopicArrayOutput) ToTopicArrayOutput() TopicArrayOutput

func (TopicArrayOutput) ToTopicArrayOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*TopicIAMBinding) ElementType() reflect.Type

func (*TopicIAMBinding) ToTopicIAMBindingOutput added in v4.4.0

func (i *TopicIAMBinding) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (*TopicIAMBinding) ToTopicIAMBindingOutputWithContext added in v4.4.0

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

func (*TopicIAMBinding) ToTopicIAMBindingPtrOutput added in v4.11.1

func (i *TopicIAMBinding) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (*TopicIAMBinding) ToTopicIAMBindingPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type TopicIAMBindingArray []TopicIAMBindingInput

func (TopicIAMBindingArray) ElementType added in v4.11.1

func (TopicIAMBindingArray) ElementType() reflect.Type

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutput added in v4.11.1

func (i TopicIAMBindingArray) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutputWithContext added in v4.11.1

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

type TopicIAMBindingArrayInput added in v4.11.1

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 added in v4.11.1

type TopicIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingArrayOutput) ElementType added in v4.11.1

func (TopicIAMBindingArrayOutput) ElementType() reflect.Type

func (TopicIAMBindingArrayOutput) Index added in v4.11.1

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput added in v4.11.1

func (o TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutputWithContext added in v4.11.1

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

type TopicIAMBindingInput interface {
	pulumi.Input

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

type TopicIAMBindingMap added in v4.11.1

type TopicIAMBindingMap map[string]TopicIAMBindingInput

func (TopicIAMBindingMap) ElementType added in v4.11.1

func (TopicIAMBindingMap) ElementType() reflect.Type

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutput added in v4.11.1

func (i TopicIAMBindingMap) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutputWithContext added in v4.11.1

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

type TopicIAMBindingMapInput added in v4.11.1

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 added in v4.11.1

type TopicIAMBindingMapOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingMapOutput) ElementType added in v4.11.1

func (TopicIAMBindingMapOutput) ElementType() reflect.Type

func (TopicIAMBindingMapOutput) MapIndex added in v4.11.1

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput added in v4.11.1

func (o TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutputWithContext added in v4.11.1

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

type TopicIAMBindingOutput added in v4.4.0

type TopicIAMBindingOutput struct {
	*pulumi.OutputState
}

func (TopicIAMBindingOutput) ElementType added in v4.4.0

func (TopicIAMBindingOutput) ElementType() reflect.Type

func (TopicIAMBindingOutput) ToTopicIAMBindingOutput added in v4.4.0

func (o TopicIAMBindingOutput) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingOutputWithContext added in v4.4.0

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

func (TopicIAMBindingOutput) ToTopicIAMBindingPtrOutput added in v4.11.1

func (o TopicIAMBindingOutput) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingPtrOutputWithContext added in v4.11.1

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

type TopicIAMBindingPtrInput added in v4.11.1

type TopicIAMBindingPtrInput interface {
	pulumi.Input

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

type TopicIAMBindingPtrOutput added in v4.11.1

type TopicIAMBindingPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMBindingPtrOutput) ElementType added in v4.11.1

func (TopicIAMBindingPtrOutput) ElementType() reflect.Type

func (TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutput added in v4.11.1

func (o TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutput() TopicIAMBindingPtrOutput

func (TopicIAMBindingPtrOutput) ToTopicIAMBindingPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*TopicIAMMember) ElementType() reflect.Type

func (*TopicIAMMember) ToTopicIAMMemberOutput added in v4.4.0

func (i *TopicIAMMember) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (*TopicIAMMember) ToTopicIAMMemberOutputWithContext added in v4.4.0

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

func (*TopicIAMMember) ToTopicIAMMemberPtrOutput added in v4.11.1

func (i *TopicIAMMember) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (*TopicIAMMember) ToTopicIAMMemberPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type TopicIAMMemberArray []TopicIAMMemberInput

func (TopicIAMMemberArray) ElementType added in v4.11.1

func (TopicIAMMemberArray) ElementType() reflect.Type

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutput added in v4.11.1

func (i TopicIAMMemberArray) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutputWithContext added in v4.11.1

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

type TopicIAMMemberArrayInput added in v4.11.1

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 added in v4.11.1

type TopicIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberArrayOutput) ElementType added in v4.11.1

func (TopicIAMMemberArrayOutput) ElementType() reflect.Type

func (TopicIAMMemberArrayOutput) Index added in v4.11.1

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput added in v4.11.1

func (o TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutputWithContext added in v4.11.1

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

type TopicIAMMemberInput interface {
	pulumi.Input

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

type TopicIAMMemberMap added in v4.11.1

type TopicIAMMemberMap map[string]TopicIAMMemberInput

func (TopicIAMMemberMap) ElementType added in v4.11.1

func (TopicIAMMemberMap) ElementType() reflect.Type

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutput added in v4.11.1

func (i TopicIAMMemberMap) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutputWithContext added in v4.11.1

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

type TopicIAMMemberMapInput added in v4.11.1

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 added in v4.11.1

type TopicIAMMemberMapOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberMapOutput) ElementType added in v4.11.1

func (TopicIAMMemberMapOutput) ElementType() reflect.Type

func (TopicIAMMemberMapOutput) MapIndex added in v4.11.1

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput added in v4.11.1

func (o TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutputWithContext added in v4.11.1

func (o TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutputWithContext(ctx context.Context) TopicIAMMemberMapOutput

type TopicIAMMemberOutput added in v4.4.0

type TopicIAMMemberOutput struct {
	*pulumi.OutputState
}

func (TopicIAMMemberOutput) ElementType added in v4.4.0

func (TopicIAMMemberOutput) ElementType() reflect.Type

func (TopicIAMMemberOutput) ToTopicIAMMemberOutput added in v4.4.0

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext added in v4.4.0

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

func (TopicIAMMemberOutput) ToTopicIAMMemberPtrOutput added in v4.11.1

func (o TopicIAMMemberOutput) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberPtrOutputWithContext added in v4.11.1

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

type TopicIAMMemberPtrInput added in v4.11.1

type TopicIAMMemberPtrInput interface {
	pulumi.Input

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

type TopicIAMMemberPtrOutput added in v4.11.1

type TopicIAMMemberPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMMemberPtrOutput) ElementType added in v4.11.1

func (TopicIAMMemberPtrOutput) ElementType() reflect.Type

func (TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutput added in v4.11.1

func (o TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutput() TopicIAMMemberPtrOutput

func (TopicIAMMemberPtrOutput) ToTopicIAMMemberPtrOutputWithContext added in v4.11.1

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/v4/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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/v4/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v2/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 added in v4.4.0

func (*TopicIAMPolicy) ElementType() reflect.Type

func (*TopicIAMPolicy) ToTopicIAMPolicyOutput added in v4.4.0

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext added in v4.4.0

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

func (*TopicIAMPolicy) ToTopicIAMPolicyPtrOutput added in v4.11.1

func (i *TopicIAMPolicy) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyPtrOutputWithContext added in v4.11.1

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 added in v4.11.1

type TopicIAMPolicyArray []TopicIAMPolicyInput

func (TopicIAMPolicyArray) ElementType added in v4.11.1

func (TopicIAMPolicyArray) ElementType() reflect.Type

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput added in v4.11.1

func (i TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutputWithContext added in v4.11.1

func (i TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutputWithContext(ctx context.Context) TopicIAMPolicyArrayOutput

type TopicIAMPolicyArrayInput added in v4.11.1

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 added in v4.11.1

type TopicIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyArrayOutput) ElementType added in v4.11.1

func (TopicIAMPolicyArrayOutput) ElementType() reflect.Type

func (TopicIAMPolicyArrayOutput) Index added in v4.11.1

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput added in v4.11.1

func (o TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutputWithContext added in v4.11.1

func (o TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutputWithContext(ctx context.Context) TopicIAMPolicyArrayOutput

type TopicIAMPolicyInput added in v4.4.0

type TopicIAMPolicyInput interface {
	pulumi.Input

	ToTopicIAMPolicyOutput() TopicIAMPolicyOutput
	ToTopicIAMPolicyOutputWithContext(ctx context.Context) TopicIAMPolicyOutput
}

type TopicIAMPolicyMap added in v4.11.1

type TopicIAMPolicyMap map[string]TopicIAMPolicyInput

func (TopicIAMPolicyMap) ElementType added in v4.11.1

func (TopicIAMPolicyMap) ElementType() reflect.Type

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput added in v4.11.1

func (i TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutputWithContext added in v4.11.1

func (i TopicIAMPolicyMap) ToTopicIAMPolicyMapOutputWithContext(ctx context.Context) TopicIAMPolicyMapOutput

type TopicIAMPolicyMapInput added in v4.11.1

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 added in v4.11.1

type TopicIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyMapOutput) ElementType added in v4.11.1

func (TopicIAMPolicyMapOutput) ElementType() reflect.Type

func (TopicIAMPolicyMapOutput) MapIndex added in v4.11.1

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput added in v4.11.1

func (o TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutputWithContext added in v4.11.1

func (o TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutputWithContext(ctx context.Context) TopicIAMPolicyMapOutput

type TopicIAMPolicyOutput added in v4.4.0

type TopicIAMPolicyOutput struct {
	*pulumi.OutputState
}

func (TopicIAMPolicyOutput) ElementType added in v4.4.0

func (TopicIAMPolicyOutput) ElementType() reflect.Type

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutput added in v4.4.0

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext added in v4.4.0

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

func (TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutput added in v4.11.1

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyPtrOutputWithContext added in v4.11.1

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

type TopicIAMPolicyPtrInput added in v4.11.1

type TopicIAMPolicyPtrInput interface {
	pulumi.Input

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

type TopicIAMPolicyPtrOutput added in v4.11.1

type TopicIAMPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (TopicIAMPolicyPtrOutput) ElementType added in v4.11.1

func (TopicIAMPolicyPtrOutput) ElementType() reflect.Type

func (TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutput added in v4.11.1

func (o TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutput() TopicIAMPolicyPtrOutput

func (TopicIAMPolicyPtrOutput) ToTopicIAMPolicyPtrOutputWithContext added in v4.11.1

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

type TopicInput interface {
	pulumi.Input

	ToTopicOutput() TopicOutput
	ToTopicOutputWithContext(ctx context.Context) TopicOutput
}

type TopicMap added in v4.11.1

type TopicMap map[string]TopicInput

func (TopicMap) ElementType added in v4.11.1

func (TopicMap) ElementType() reflect.Type

func (TopicMap) ToTopicMapOutput added in v4.11.1

func (i TopicMap) ToTopicMapOutput() TopicMapOutput

func (TopicMap) ToTopicMapOutputWithContext added in v4.11.1

func (i TopicMap) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicMapInput added in v4.11.1

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 added in v4.11.1

type TopicMapOutput struct{ *pulumi.OutputState }

func (TopicMapOutput) ElementType added in v4.11.1

func (TopicMapOutput) ElementType() reflect.Type

func (TopicMapOutput) MapIndex added in v4.11.1

func (TopicMapOutput) ToTopicMapOutput added in v4.11.1

func (o TopicMapOutput) ToTopicMapOutput() TopicMapOutput

func (TopicMapOutput) ToTopicMapOutputWithContext added in v4.11.1

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

type TopicOutput struct {
	*pulumi.OutputState
}

func (TopicOutput) ElementType added in v4.4.0

func (TopicOutput) ElementType() reflect.Type

func (TopicOutput) ToTopicOutput added in v4.4.0

func (o TopicOutput) ToTopicOutput() TopicOutput

func (TopicOutput) ToTopicOutputWithContext added in v4.4.0

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

func (TopicOutput) ToTopicPtrOutput added in v4.11.1

func (o TopicOutput) ToTopicPtrOutput() TopicPtrOutput

func (TopicOutput) ToTopicPtrOutputWithContext added in v4.11.1

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

type TopicPtrInput added in v4.11.1

type TopicPtrInput interface {
	pulumi.Input

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

type TopicPtrOutput added in v4.11.1

type TopicPtrOutput struct {
	*pulumi.OutputState
}

func (TopicPtrOutput) ElementType added in v4.11.1

func (TopicPtrOutput) ElementType() reflect.Type

func (TopicPtrOutput) ToTopicPtrOutput added in v4.11.1

func (o TopicPtrOutput) ToTopicPtrOutput() TopicPtrOutput

func (TopicPtrOutput) ToTopicPtrOutputWithContext added in v4.11.1

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

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
}

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