pubsub

package
v7.20.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GetSubscriptionBigqueryConfig

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

type GetSubscriptionBigqueryConfigArgs

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

func (GetSubscriptionBigqueryConfigArgs) ElementType

func (GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutput

func (i GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutput() GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigArgs) ToGetSubscriptionBigqueryConfigOutputWithContext

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

type GetSubscriptionBigqueryConfigArray

type GetSubscriptionBigqueryConfigArray []GetSubscriptionBigqueryConfigInput

func (GetSubscriptionBigqueryConfigArray) ElementType

func (GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutput

func (i GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutput() GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArray) ToGetSubscriptionBigqueryConfigArrayOutputWithContext

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

type GetSubscriptionBigqueryConfigArrayInput

type GetSubscriptionBigqueryConfigArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionBigqueryConfigArray{ GetSubscriptionBigqueryConfigArgs{...} }

type GetSubscriptionBigqueryConfigArrayOutput

type GetSubscriptionBigqueryConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionBigqueryConfigArrayOutput) ElementType

func (GetSubscriptionBigqueryConfigArrayOutput) Index

func (GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutput

func (o GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutput() GetSubscriptionBigqueryConfigArrayOutput

func (GetSubscriptionBigqueryConfigArrayOutput) ToGetSubscriptionBigqueryConfigArrayOutputWithContext

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

type GetSubscriptionBigqueryConfigInput

type GetSubscriptionBigqueryConfigInput interface {
	pulumi.Input

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

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

GetSubscriptionBigqueryConfigArgs{...}

type GetSubscriptionBigqueryConfigOutput

type GetSubscriptionBigqueryConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionBigqueryConfigOutput) DropUnknownFields

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

func (GetSubscriptionBigqueryConfigOutput) ElementType

func (GetSubscriptionBigqueryConfigOutput) Table

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

func (GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutput

func (o GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutput() GetSubscriptionBigqueryConfigOutput

func (GetSubscriptionBigqueryConfigOutput) ToGetSubscriptionBigqueryConfigOutputWithContext

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

func (GetSubscriptionBigqueryConfigOutput) UseTableSchema added in v7.7.1

When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages must be published in JSON format. Only one of useTopicSchema and useTableSchema can be set.

func (GetSubscriptionBigqueryConfigOutput) UseTopicSchema

When true, use the topic's schema as the columns to write to in BigQuery, if it exists. Only one of useTopicSchema and useTableSchema can be set.

func (GetSubscriptionBigqueryConfigOutput) WriteMetadata

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

type GetSubscriptionCloudStorageConfig

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

type GetSubscriptionCloudStorageConfigArgs

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

func (GetSubscriptionCloudStorageConfigArgs) ElementType

func (GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutput

func (i GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutput() GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigArgs) ToGetSubscriptionCloudStorageConfigOutputWithContext

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

type GetSubscriptionCloudStorageConfigArray

type GetSubscriptionCloudStorageConfigArray []GetSubscriptionCloudStorageConfigInput

func (GetSubscriptionCloudStorageConfigArray) ElementType

func (GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutput

func (i GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutput() GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArray) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext

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

type GetSubscriptionCloudStorageConfigArrayInput

type GetSubscriptionCloudStorageConfigArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionCloudStorageConfigArray{ GetSubscriptionCloudStorageConfigArgs{...} }

type GetSubscriptionCloudStorageConfigArrayOutput

type GetSubscriptionCloudStorageConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigArrayOutput) ElementType

func (GetSubscriptionCloudStorageConfigArrayOutput) Index

func (GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutput

func (o GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutput() GetSubscriptionCloudStorageConfigArrayOutput

func (GetSubscriptionCloudStorageConfigArrayOutput) ToGetSubscriptionCloudStorageConfigArrayOutputWithContext

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

type GetSubscriptionCloudStorageConfigAvroConfig

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

type GetSubscriptionCloudStorageConfigAvroConfigArgs

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

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ElementType

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutput

func (i GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutput() GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArgs) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext

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

type GetSubscriptionCloudStorageConfigAvroConfigArray

type GetSubscriptionCloudStorageConfigAvroConfigArray []GetSubscriptionCloudStorageConfigAvroConfigInput

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ElementType

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (i GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput() GetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArray) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext

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

type GetSubscriptionCloudStorageConfigAvroConfigArrayInput

type GetSubscriptionCloudStorageConfigAvroConfigArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionCloudStorageConfigAvroConfigArray{ GetSubscriptionCloudStorageConfigAvroConfigArgs{...} }

type GetSubscriptionCloudStorageConfigAvroConfigArrayOutput

type GetSubscriptionCloudStorageConfigAvroConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ElementType

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) Index

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutput

func (GetSubscriptionCloudStorageConfigAvroConfigArrayOutput) ToGetSubscriptionCloudStorageConfigAvroConfigArrayOutputWithContext

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

type GetSubscriptionCloudStorageConfigAvroConfigInput

type GetSubscriptionCloudStorageConfigAvroConfigInput interface {
	pulumi.Input

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

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

GetSubscriptionCloudStorageConfigAvroConfigArgs{...}

type GetSubscriptionCloudStorageConfigAvroConfigOutput

type GetSubscriptionCloudStorageConfigAvroConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ElementType

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutput

func (o GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutput() GetSubscriptionCloudStorageConfigAvroConfigOutput

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) ToGetSubscriptionCloudStorageConfigAvroConfigOutputWithContext

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

func (GetSubscriptionCloudStorageConfigAvroConfigOutput) WriteMetadata

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

type GetSubscriptionCloudStorageConfigInput

type GetSubscriptionCloudStorageConfigInput interface {
	pulumi.Input

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

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

GetSubscriptionCloudStorageConfigArgs{...}

type GetSubscriptionCloudStorageConfigOutput

type GetSubscriptionCloudStorageConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionCloudStorageConfigOutput) AvroConfigs

If set, message data will be written to Cloud Storage in Avro format.

func (GetSubscriptionCloudStorageConfigOutput) Bucket

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

func (GetSubscriptionCloudStorageConfigOutput) ElementType

func (GetSubscriptionCloudStorageConfigOutput) FilenamePrefix

User-provided prefix for Cloud Storage filename.

func (GetSubscriptionCloudStorageConfigOutput) FilenameSuffix

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

func (GetSubscriptionCloudStorageConfigOutput) MaxBytes

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

func (GetSubscriptionCloudStorageConfigOutput) MaxDuration

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

func (GetSubscriptionCloudStorageConfigOutput) State

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

func (GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutput

func (o GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutput() GetSubscriptionCloudStorageConfigOutput

func (GetSubscriptionCloudStorageConfigOutput) ToGetSubscriptionCloudStorageConfigOutputWithContext

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

type GetSubscriptionDeadLetterPolicy

type GetSubscriptionDeadLetterPolicy 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 GetSubscriptionDeadLetterPolicyArgs

type GetSubscriptionDeadLetterPolicyArgs 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.StringInput `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.IntInput `pulumi:"maxDeliveryAttempts"`
}

func (GetSubscriptionDeadLetterPolicyArgs) ElementType

func (GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutput

func (i GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutput() GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyArgs) ToGetSubscriptionDeadLetterPolicyOutputWithContext

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

type GetSubscriptionDeadLetterPolicyArray

type GetSubscriptionDeadLetterPolicyArray []GetSubscriptionDeadLetterPolicyInput

func (GetSubscriptionDeadLetterPolicyArray) ElementType

func (GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutput

func (i GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutput() GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArray) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext

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

type GetSubscriptionDeadLetterPolicyArrayInput

type GetSubscriptionDeadLetterPolicyArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionDeadLetterPolicyArray{ GetSubscriptionDeadLetterPolicyArgs{...} }

type GetSubscriptionDeadLetterPolicyArrayOutput

type GetSubscriptionDeadLetterPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionDeadLetterPolicyArrayOutput) ElementType

func (GetSubscriptionDeadLetterPolicyArrayOutput) Index

func (GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutput

func (o GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutput() GetSubscriptionDeadLetterPolicyArrayOutput

func (GetSubscriptionDeadLetterPolicyArrayOutput) ToGetSubscriptionDeadLetterPolicyArrayOutputWithContext

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

type GetSubscriptionDeadLetterPolicyInput

type GetSubscriptionDeadLetterPolicyInput interface {
	pulumi.Input

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

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

GetSubscriptionDeadLetterPolicyArgs{...}

type GetSubscriptionDeadLetterPolicyOutput

type GetSubscriptionDeadLetterPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionDeadLetterPolicyOutput) 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 (GetSubscriptionDeadLetterPolicyOutput) ElementType

func (GetSubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts

func (o GetSubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts() pulumi.IntOutput

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 (GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutput

func (o GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutput() GetSubscriptionDeadLetterPolicyOutput

func (GetSubscriptionDeadLetterPolicyOutput) ToGetSubscriptionDeadLetterPolicyOutputWithContext

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

type GetSubscriptionExpirationPolicy

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

type GetSubscriptionExpirationPolicyArgs

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

func (GetSubscriptionExpirationPolicyArgs) ElementType

func (GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutput

func (i GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutput() GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyArgs) ToGetSubscriptionExpirationPolicyOutputWithContext

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

type GetSubscriptionExpirationPolicyArray

type GetSubscriptionExpirationPolicyArray []GetSubscriptionExpirationPolicyInput

func (GetSubscriptionExpirationPolicyArray) ElementType

func (GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutput

func (i GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutput() GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArray) ToGetSubscriptionExpirationPolicyArrayOutputWithContext

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

type GetSubscriptionExpirationPolicyArrayInput

type GetSubscriptionExpirationPolicyArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionExpirationPolicyArray{ GetSubscriptionExpirationPolicyArgs{...} }

type GetSubscriptionExpirationPolicyArrayOutput

type GetSubscriptionExpirationPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionExpirationPolicyArrayOutput) ElementType

func (GetSubscriptionExpirationPolicyArrayOutput) Index

func (GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutput

func (o GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutput() GetSubscriptionExpirationPolicyArrayOutput

func (GetSubscriptionExpirationPolicyArrayOutput) ToGetSubscriptionExpirationPolicyArrayOutputWithContext

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

type GetSubscriptionExpirationPolicyInput

type GetSubscriptionExpirationPolicyInput interface {
	pulumi.Input

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

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

GetSubscriptionExpirationPolicyArgs{...}

type GetSubscriptionExpirationPolicyOutput

type GetSubscriptionExpirationPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionExpirationPolicyOutput) ElementType

func (GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutput

func (o GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutput() GetSubscriptionExpirationPolicyOutput

func (GetSubscriptionExpirationPolicyOutput) ToGetSubscriptionExpirationPolicyOutputWithContext

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

func (GetSubscriptionExpirationPolicyOutput) Ttl

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

type GetSubscriptionIamPolicyArgs

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

A collection of arguments for invoking getSubscriptionIamPolicy.

type GetSubscriptionIamPolicyOutputArgs

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

A collection of arguments for invoking getSubscriptionIamPolicy.

func (GetSubscriptionIamPolicyOutputArgs) ElementType

type GetSubscriptionIamPolicyResult

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

A collection of values returned by getSubscriptionIamPolicy.

func GetSubscriptionIamPolicy

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

Retrieves the current IAM policy data for a Pubsub subscription.

## example

```go package main

import (

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

)

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

```

type GetSubscriptionIamPolicyResultOutput

type GetSubscriptionIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSubscriptionIamPolicy.

func (GetSubscriptionIamPolicyResultOutput) ElementType

func (GetSubscriptionIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (GetSubscriptionIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetSubscriptionIamPolicyResultOutput) PolicyData

(Computed) The policy data

func (GetSubscriptionIamPolicyResultOutput) Project

func (GetSubscriptionIamPolicyResultOutput) Subscription

func (GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutput

func (o GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutput() GetSubscriptionIamPolicyResultOutput

func (GetSubscriptionIamPolicyResultOutput) ToGetSubscriptionIamPolicyResultOutputWithContext

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

type GetSubscriptionPushConfig

type GetSubscriptionPushConfig struct {
	// Endpoint configuration attributes.
	//
	// Every endpoint has a set of API supported attributes that can
	// be used to control different aspects of the message delivery.
	//
	// The currently supported attribute is x-goog-version, which you
	// can use to change the format of the pushed message. This
	// attribute indicates the version of the data expected by
	// the endpoint. This controls the shape of the pushed message
	// (i.e., its fields and metadata). The endpoint version is
	// based on the version of the Pub/Sub API.
	//
	// If not present during the subscriptions.create call,
	// it will default to the version of the API used to make
	// such call. If not present during a subscriptions.modifyPushConfig
	// call, its value will not be changed. subscriptions.get
	// calls will always return a valid version, even if the
	// subscription was created without this attribute.
	//
	// The possible values for this attribute are:
	//
	// - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
	// - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
	Attributes map[string]string `pulumi:"attributes"`
	// When set, the payload to the push endpoint is not wrapped.Sets the
	// 'data' field as the HTTP body for delivery.
	NoWrappers []GetSubscriptionPushConfigNoWrapper `pulumi:"noWrappers"`
	// If specified, Pub/Sub will generate and attach an OIDC JWT token as
	// an Authorization header in the HTTP request for every pushed message.
	OidcTokens []GetSubscriptionPushConfigOidcToken `pulumi:"oidcTokens"`
	// 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 GetSubscriptionPushConfigArgs

type GetSubscriptionPushConfigArgs struct {
	// Endpoint configuration attributes.
	//
	// Every endpoint has a set of API supported attributes that can
	// be used to control different aspects of the message delivery.
	//
	// The currently supported attribute is x-goog-version, which you
	// can use to change the format of the pushed message. This
	// attribute indicates the version of the data expected by
	// the endpoint. This controls the shape of the pushed message
	// (i.e., its fields and metadata). The endpoint version is
	// based on the version of the Pub/Sub API.
	//
	// If not present during the subscriptions.create call,
	// it will default to the version of the API used to make
	// such call. If not present during a subscriptions.modifyPushConfig
	// call, its value will not be changed. subscriptions.get
	// calls will always return a valid version, even if the
	// subscription was created without this attribute.
	//
	// The possible values for this attribute are:
	//
	// - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
	// - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
	Attributes pulumi.StringMapInput `pulumi:"attributes"`
	// When set, the payload to the push endpoint is not wrapped.Sets the
	// 'data' field as the HTTP body for delivery.
	NoWrappers GetSubscriptionPushConfigNoWrapperArrayInput `pulumi:"noWrappers"`
	// If specified, Pub/Sub will generate and attach an OIDC JWT token as
	// an Authorization header in the HTTP request for every pushed message.
	OidcTokens GetSubscriptionPushConfigOidcTokenArrayInput `pulumi:"oidcTokens"`
	// 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 (GetSubscriptionPushConfigArgs) ElementType

func (GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutput

func (i GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutput() GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigArgs) ToGetSubscriptionPushConfigOutputWithContext

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

type GetSubscriptionPushConfigArray

type GetSubscriptionPushConfigArray []GetSubscriptionPushConfigInput

func (GetSubscriptionPushConfigArray) ElementType

func (GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutput

func (i GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutput() GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArray) ToGetSubscriptionPushConfigArrayOutputWithContext

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

type GetSubscriptionPushConfigArrayInput

type GetSubscriptionPushConfigArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigArray{ GetSubscriptionPushConfigArgs{...} }

type GetSubscriptionPushConfigArrayOutput

type GetSubscriptionPushConfigArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigArrayOutput) ElementType

func (GetSubscriptionPushConfigArrayOutput) Index

func (GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutput

func (o GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutput() GetSubscriptionPushConfigArrayOutput

func (GetSubscriptionPushConfigArrayOutput) ToGetSubscriptionPushConfigArrayOutputWithContext

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

type GetSubscriptionPushConfigInput

type GetSubscriptionPushConfigInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigArgs{...}

type GetSubscriptionPushConfigNoWrapper

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

type GetSubscriptionPushConfigNoWrapperArgs

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

func (GetSubscriptionPushConfigNoWrapperArgs) ElementType

func (GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutput

func (i GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutput() GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperArgs) ToGetSubscriptionPushConfigNoWrapperOutputWithContext

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

type GetSubscriptionPushConfigNoWrapperArray

type GetSubscriptionPushConfigNoWrapperArray []GetSubscriptionPushConfigNoWrapperInput

func (GetSubscriptionPushConfigNoWrapperArray) ElementType

func (GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutput

func (i GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutput() GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArray) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext

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

type GetSubscriptionPushConfigNoWrapperArrayInput

type GetSubscriptionPushConfigNoWrapperArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigNoWrapperArray{ GetSubscriptionPushConfigNoWrapperArgs{...} }

type GetSubscriptionPushConfigNoWrapperArrayOutput

type GetSubscriptionPushConfigNoWrapperArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ElementType

func (GetSubscriptionPushConfigNoWrapperArrayOutput) Index

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutput

func (o GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutput() GetSubscriptionPushConfigNoWrapperArrayOutput

func (GetSubscriptionPushConfigNoWrapperArrayOutput) ToGetSubscriptionPushConfigNoWrapperArrayOutputWithContext

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

type GetSubscriptionPushConfigNoWrapperInput

type GetSubscriptionPushConfigNoWrapperInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigNoWrapperArgs{...}

type GetSubscriptionPushConfigNoWrapperOutput

type GetSubscriptionPushConfigNoWrapperOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigNoWrapperOutput) ElementType

func (GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutput

func (o GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutput() GetSubscriptionPushConfigNoWrapperOutput

func (GetSubscriptionPushConfigNoWrapperOutput) ToGetSubscriptionPushConfigNoWrapperOutputWithContext

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

func (GetSubscriptionPushConfigNoWrapperOutput) WriteMetadata

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

type GetSubscriptionPushConfigOidcToken

type GetSubscriptionPushConfigOidcToken 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 GetSubscriptionPushConfigOidcTokenArgs

type GetSubscriptionPushConfigOidcTokenArgs 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.StringInput `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 (GetSubscriptionPushConfigOidcTokenArgs) ElementType

func (GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutput

func (i GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutput() GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenArgs) ToGetSubscriptionPushConfigOidcTokenOutputWithContext

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

type GetSubscriptionPushConfigOidcTokenArray

type GetSubscriptionPushConfigOidcTokenArray []GetSubscriptionPushConfigOidcTokenInput

func (GetSubscriptionPushConfigOidcTokenArray) ElementType

func (GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutput

func (i GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutput() GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArray) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext

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

type GetSubscriptionPushConfigOidcTokenArrayInput

type GetSubscriptionPushConfigOidcTokenArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigOidcTokenArray{ GetSubscriptionPushConfigOidcTokenArgs{...} }

type GetSubscriptionPushConfigOidcTokenArrayOutput

type GetSubscriptionPushConfigOidcTokenArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ElementType

func (GetSubscriptionPushConfigOidcTokenArrayOutput) Index

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutput

func (o GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutput() GetSubscriptionPushConfigOidcTokenArrayOutput

func (GetSubscriptionPushConfigOidcTokenArrayOutput) ToGetSubscriptionPushConfigOidcTokenArrayOutputWithContext

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

type GetSubscriptionPushConfigOidcTokenInput

type GetSubscriptionPushConfigOidcTokenInput interface {
	pulumi.Input

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

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

GetSubscriptionPushConfigOidcTokenArgs{...}

type GetSubscriptionPushConfigOidcTokenOutput

type GetSubscriptionPushConfigOidcTokenOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOidcTokenOutput) 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 (GetSubscriptionPushConfigOidcTokenOutput) ElementType

func (GetSubscriptionPushConfigOidcTokenOutput) 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 (GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutput

func (o GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutput() GetSubscriptionPushConfigOidcTokenOutput

func (GetSubscriptionPushConfigOidcTokenOutput) ToGetSubscriptionPushConfigOidcTokenOutputWithContext

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

type GetSubscriptionPushConfigOutput

type GetSubscriptionPushConfigOutput struct{ *pulumi.OutputState }

func (GetSubscriptionPushConfigOutput) 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 (GetSubscriptionPushConfigOutput) ElementType

func (GetSubscriptionPushConfigOutput) NoWrappers

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

func (GetSubscriptionPushConfigOutput) OidcTokens

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

func (GetSubscriptionPushConfigOutput) PushEndpoint

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

func (GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutput

func (o GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutput() GetSubscriptionPushConfigOutput

func (GetSubscriptionPushConfigOutput) ToGetSubscriptionPushConfigOutputWithContext

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

type GetSubscriptionRetryPolicy

type GetSubscriptionRetryPolicy 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 GetSubscriptionRetryPolicyArgs

type GetSubscriptionRetryPolicyArgs 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.StringInput `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.StringInput `pulumi:"minimumBackoff"`
}

func (GetSubscriptionRetryPolicyArgs) ElementType

func (GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutput

func (i GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutput() GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyArgs) ToGetSubscriptionRetryPolicyOutputWithContext

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

type GetSubscriptionRetryPolicyArray

type GetSubscriptionRetryPolicyArray []GetSubscriptionRetryPolicyInput

func (GetSubscriptionRetryPolicyArray) ElementType

func (GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutput

func (i GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutput() GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArray) ToGetSubscriptionRetryPolicyArrayOutputWithContext

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

type GetSubscriptionRetryPolicyArrayInput

type GetSubscriptionRetryPolicyArrayInput interface {
	pulumi.Input

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

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

GetSubscriptionRetryPolicyArray{ GetSubscriptionRetryPolicyArgs{...} }

type GetSubscriptionRetryPolicyArrayOutput

type GetSubscriptionRetryPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetSubscriptionRetryPolicyArrayOutput) ElementType

func (GetSubscriptionRetryPolicyArrayOutput) Index

func (GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutput

func (o GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutput() GetSubscriptionRetryPolicyArrayOutput

func (GetSubscriptionRetryPolicyArrayOutput) ToGetSubscriptionRetryPolicyArrayOutputWithContext

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

type GetSubscriptionRetryPolicyInput

type GetSubscriptionRetryPolicyInput interface {
	pulumi.Input

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

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

GetSubscriptionRetryPolicyArgs{...}

type GetSubscriptionRetryPolicyOutput

type GetSubscriptionRetryPolicyOutput struct{ *pulumi.OutputState }

func (GetSubscriptionRetryPolicyOutput) ElementType

func (GetSubscriptionRetryPolicyOutput) 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 (GetSubscriptionRetryPolicyOutput) 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 (GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutput

func (o GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutput() GetSubscriptionRetryPolicyOutput

func (GetSubscriptionRetryPolicyOutput) ToGetSubscriptionRetryPolicyOutputWithContext

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

type GetTopicIamPolicyArgs

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

A collection of arguments for invoking getTopicIamPolicy.

type GetTopicIamPolicyOutputArgs

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

A collection of arguments for invoking getTopicIamPolicy.

func (GetTopicIamPolicyOutputArgs) ElementType

type GetTopicIamPolicyResult

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

A collection of values returned by getTopicIamPolicy.

func GetTopicIamPolicy

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

Retrieves the current IAM policy data for topic

## example

```go package main

import (

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

)

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

```

type GetTopicIamPolicyResultOutput

type GetTopicIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTopicIamPolicy.

func (GetTopicIamPolicyResultOutput) ElementType

func (GetTopicIamPolicyResultOutput) Etag

(Computed) The etag of the IAM policy.

func (GetTopicIamPolicyResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (GetTopicIamPolicyResultOutput) PolicyData

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

func (GetTopicIamPolicyResultOutput) Project

func (GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutput

func (o GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutput() GetTopicIamPolicyResultOutput

func (GetTopicIamPolicyResultOutput) ToGetTopicIamPolicyResultOutputWithContext

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

func (GetTopicIamPolicyResultOutput) Topic

type GetTopicIngestionDataSourceSetting added in v7.16.0

type GetTopicIngestionDataSourceSetting struct {
	// Settings for ingestion from Amazon Kinesis Data Streams.
	AwsKineses []GetTopicIngestionDataSourceSettingAwsKinese `pulumi:"awsKineses"`
}

type GetTopicIngestionDataSourceSettingArgs added in v7.16.0

type GetTopicIngestionDataSourceSettingArgs struct {
	// Settings for ingestion from Amazon Kinesis Data Streams.
	AwsKineses GetTopicIngestionDataSourceSettingAwsKineseArrayInput `pulumi:"awsKineses"`
}

func (GetTopicIngestionDataSourceSettingArgs) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingArgs) ToGetTopicIngestionDataSourceSettingOutput added in v7.16.0

func (i GetTopicIngestionDataSourceSettingArgs) ToGetTopicIngestionDataSourceSettingOutput() GetTopicIngestionDataSourceSettingOutput

func (GetTopicIngestionDataSourceSettingArgs) ToGetTopicIngestionDataSourceSettingOutputWithContext added in v7.16.0

func (i GetTopicIngestionDataSourceSettingArgs) ToGetTopicIngestionDataSourceSettingOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingOutput

type GetTopicIngestionDataSourceSettingArray added in v7.16.0

type GetTopicIngestionDataSourceSettingArray []GetTopicIngestionDataSourceSettingInput

func (GetTopicIngestionDataSourceSettingArray) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingArray) ToGetTopicIngestionDataSourceSettingArrayOutput added in v7.16.0

func (i GetTopicIngestionDataSourceSettingArray) ToGetTopicIngestionDataSourceSettingArrayOutput() GetTopicIngestionDataSourceSettingArrayOutput

func (GetTopicIngestionDataSourceSettingArray) ToGetTopicIngestionDataSourceSettingArrayOutputWithContext added in v7.16.0

func (i GetTopicIngestionDataSourceSettingArray) ToGetTopicIngestionDataSourceSettingArrayOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingArrayOutput

type GetTopicIngestionDataSourceSettingArrayInput added in v7.16.0

type GetTopicIngestionDataSourceSettingArrayInput interface {
	pulumi.Input

	ToGetTopicIngestionDataSourceSettingArrayOutput() GetTopicIngestionDataSourceSettingArrayOutput
	ToGetTopicIngestionDataSourceSettingArrayOutputWithContext(context.Context) GetTopicIngestionDataSourceSettingArrayOutput
}

GetTopicIngestionDataSourceSettingArrayInput is an input type that accepts GetTopicIngestionDataSourceSettingArray and GetTopicIngestionDataSourceSettingArrayOutput values. You can construct a concrete instance of `GetTopicIngestionDataSourceSettingArrayInput` via:

GetTopicIngestionDataSourceSettingArray{ GetTopicIngestionDataSourceSettingArgs{...} }

type GetTopicIngestionDataSourceSettingArrayOutput added in v7.16.0

type GetTopicIngestionDataSourceSettingArrayOutput struct{ *pulumi.OutputState }

func (GetTopicIngestionDataSourceSettingArrayOutput) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingArrayOutput) Index added in v7.16.0

func (GetTopicIngestionDataSourceSettingArrayOutput) ToGetTopicIngestionDataSourceSettingArrayOutput added in v7.16.0

func (o GetTopicIngestionDataSourceSettingArrayOutput) ToGetTopicIngestionDataSourceSettingArrayOutput() GetTopicIngestionDataSourceSettingArrayOutput

func (GetTopicIngestionDataSourceSettingArrayOutput) ToGetTopicIngestionDataSourceSettingArrayOutputWithContext added in v7.16.0

func (o GetTopicIngestionDataSourceSettingArrayOutput) ToGetTopicIngestionDataSourceSettingArrayOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingArrayOutput

type GetTopicIngestionDataSourceSettingAwsKinese added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKinese struct {
	// AWS role ARN to be used for Federated Identity authentication with
	// Kinesis. Check the Pub/Sub docs for how to set up this role and the
	// required permissions that need to be attached to it.
	AwsRoleArn string `pulumi:"awsRoleArn"`
	// The Kinesis consumer ARN to used for ingestion in
	// Enhanced Fan-Out mode. The consumer must be already
	// created and ready to be used.
	ConsumerArn string `pulumi:"consumerArn"`
	// The GCP service account to be used for Federated Identity authentication
	// with Kinesis (via a 'AssumeRoleWithWebIdentity' call for the provided
	// role). The 'awsRoleArn' must be set up with 'accounts.google.com:sub'
	// equals to this service account number.
	GcpServiceAccount string `pulumi:"gcpServiceAccount"`
	// The Kinesis stream ARN to ingest data from.
	StreamArn string `pulumi:"streamArn"`
}

type GetTopicIngestionDataSourceSettingAwsKineseArgs added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseArgs struct {
	// AWS role ARN to be used for Federated Identity authentication with
	// Kinesis. Check the Pub/Sub docs for how to set up this role and the
	// required permissions that need to be attached to it.
	AwsRoleArn pulumi.StringInput `pulumi:"awsRoleArn"`
	// The Kinesis consumer ARN to used for ingestion in
	// Enhanced Fan-Out mode. The consumer must be already
	// created and ready to be used.
	ConsumerArn pulumi.StringInput `pulumi:"consumerArn"`
	// The GCP service account to be used for Federated Identity authentication
	// with Kinesis (via a 'AssumeRoleWithWebIdentity' call for the provided
	// role). The 'awsRoleArn' must be set up with 'accounts.google.com:sub'
	// equals to this service account number.
	GcpServiceAccount pulumi.StringInput `pulumi:"gcpServiceAccount"`
	// The Kinesis stream ARN to ingest data from.
	StreamArn pulumi.StringInput `pulumi:"streamArn"`
}

func (GetTopicIngestionDataSourceSettingAwsKineseArgs) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseArgs) ToGetTopicIngestionDataSourceSettingAwsKineseOutput added in v7.16.0

func (i GetTopicIngestionDataSourceSettingAwsKineseArgs) ToGetTopicIngestionDataSourceSettingAwsKineseOutput() GetTopicIngestionDataSourceSettingAwsKineseOutput

func (GetTopicIngestionDataSourceSettingAwsKineseArgs) ToGetTopicIngestionDataSourceSettingAwsKineseOutputWithContext added in v7.16.0

func (i GetTopicIngestionDataSourceSettingAwsKineseArgs) ToGetTopicIngestionDataSourceSettingAwsKineseOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingAwsKineseOutput

type GetTopicIngestionDataSourceSettingAwsKineseArray added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseArray []GetTopicIngestionDataSourceSettingAwsKineseInput

func (GetTopicIngestionDataSourceSettingAwsKineseArray) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseArray) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutput added in v7.16.0

func (i GetTopicIngestionDataSourceSettingAwsKineseArray) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutput() GetTopicIngestionDataSourceSettingAwsKineseArrayOutput

func (GetTopicIngestionDataSourceSettingAwsKineseArray) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutputWithContext added in v7.16.0

func (i GetTopicIngestionDataSourceSettingAwsKineseArray) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingAwsKineseArrayOutput

type GetTopicIngestionDataSourceSettingAwsKineseArrayInput added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseArrayInput interface {
	pulumi.Input

	ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutput() GetTopicIngestionDataSourceSettingAwsKineseArrayOutput
	ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutputWithContext(context.Context) GetTopicIngestionDataSourceSettingAwsKineseArrayOutput
}

GetTopicIngestionDataSourceSettingAwsKineseArrayInput is an input type that accepts GetTopicIngestionDataSourceSettingAwsKineseArray and GetTopicIngestionDataSourceSettingAwsKineseArrayOutput values. You can construct a concrete instance of `GetTopicIngestionDataSourceSettingAwsKineseArrayInput` via:

GetTopicIngestionDataSourceSettingAwsKineseArray{ GetTopicIngestionDataSourceSettingAwsKineseArgs{...} }

type GetTopicIngestionDataSourceSettingAwsKineseArrayOutput added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseArrayOutput struct{ *pulumi.OutputState }

func (GetTopicIngestionDataSourceSettingAwsKineseArrayOutput) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseArrayOutput) Index added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseArrayOutput) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutput added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseArrayOutput) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutputWithContext added in v7.16.0

func (o GetTopicIngestionDataSourceSettingAwsKineseArrayOutput) ToGetTopicIngestionDataSourceSettingAwsKineseArrayOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingAwsKineseArrayOutput

type GetTopicIngestionDataSourceSettingAwsKineseInput added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseInput interface {
	pulumi.Input

	ToGetTopicIngestionDataSourceSettingAwsKineseOutput() GetTopicIngestionDataSourceSettingAwsKineseOutput
	ToGetTopicIngestionDataSourceSettingAwsKineseOutputWithContext(context.Context) GetTopicIngestionDataSourceSettingAwsKineseOutput
}

GetTopicIngestionDataSourceSettingAwsKineseInput is an input type that accepts GetTopicIngestionDataSourceSettingAwsKineseArgs and GetTopicIngestionDataSourceSettingAwsKineseOutput values. You can construct a concrete instance of `GetTopicIngestionDataSourceSettingAwsKineseInput` via:

GetTopicIngestionDataSourceSettingAwsKineseArgs{...}

type GetTopicIngestionDataSourceSettingAwsKineseOutput added in v7.16.0

type GetTopicIngestionDataSourceSettingAwsKineseOutput struct{ *pulumi.OutputState }

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) AwsRoleArn added in v7.16.0

AWS role ARN to be used for Federated Identity authentication with Kinesis. Check the Pub/Sub docs for how to set up this role and the required permissions that need to be attached to it.

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) ConsumerArn added in v7.16.0

The Kinesis consumer ARN to used for ingestion in Enhanced Fan-Out mode. The consumer must be already created and ready to be used.

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) GcpServiceAccount added in v7.16.0

The GCP service account to be used for Federated Identity authentication with Kinesis (via a 'AssumeRoleWithWebIdentity' call for the provided role). The 'awsRoleArn' must be set up with 'accounts.google.com:sub' equals to this service account number.

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) StreamArn added in v7.16.0

The Kinesis stream ARN to ingest data from.

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) ToGetTopicIngestionDataSourceSettingAwsKineseOutput added in v7.16.0

func (o GetTopicIngestionDataSourceSettingAwsKineseOutput) ToGetTopicIngestionDataSourceSettingAwsKineseOutput() GetTopicIngestionDataSourceSettingAwsKineseOutput

func (GetTopicIngestionDataSourceSettingAwsKineseOutput) ToGetTopicIngestionDataSourceSettingAwsKineseOutputWithContext added in v7.16.0

func (o GetTopicIngestionDataSourceSettingAwsKineseOutput) ToGetTopicIngestionDataSourceSettingAwsKineseOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingAwsKineseOutput

type GetTopicIngestionDataSourceSettingInput added in v7.16.0

type GetTopicIngestionDataSourceSettingInput interface {
	pulumi.Input

	ToGetTopicIngestionDataSourceSettingOutput() GetTopicIngestionDataSourceSettingOutput
	ToGetTopicIngestionDataSourceSettingOutputWithContext(context.Context) GetTopicIngestionDataSourceSettingOutput
}

GetTopicIngestionDataSourceSettingInput is an input type that accepts GetTopicIngestionDataSourceSettingArgs and GetTopicIngestionDataSourceSettingOutput values. You can construct a concrete instance of `GetTopicIngestionDataSourceSettingInput` via:

GetTopicIngestionDataSourceSettingArgs{...}

type GetTopicIngestionDataSourceSettingOutput added in v7.16.0

type GetTopicIngestionDataSourceSettingOutput struct{ *pulumi.OutputState }

func (GetTopicIngestionDataSourceSettingOutput) AwsKineses added in v7.16.0

Settings for ingestion from Amazon Kinesis Data Streams.

func (GetTopicIngestionDataSourceSettingOutput) ElementType added in v7.16.0

func (GetTopicIngestionDataSourceSettingOutput) ToGetTopicIngestionDataSourceSettingOutput added in v7.16.0

func (o GetTopicIngestionDataSourceSettingOutput) ToGetTopicIngestionDataSourceSettingOutput() GetTopicIngestionDataSourceSettingOutput

func (GetTopicIngestionDataSourceSettingOutput) ToGetTopicIngestionDataSourceSettingOutputWithContext added in v7.16.0

func (o GetTopicIngestionDataSourceSettingOutput) ToGetTopicIngestionDataSourceSettingOutputWithContext(ctx context.Context) GetTopicIngestionDataSourceSettingOutput

type GetTopicMessageStoragePolicy

type GetTopicMessageStoragePolicy 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 GetTopicMessageStoragePolicyArgs

type GetTopicMessageStoragePolicyArgs 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 (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

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 (GetTopicMessageStoragePolicyOutput) ElementType

func (GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutput

func (o GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutput() GetTopicMessageStoragePolicyOutput

func (GetTopicMessageStoragePolicyOutput) ToGetTopicMessageStoragePolicyOutputWithContext

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

type GetTopicSchemaSetting

type GetTopicSchemaSetting struct {
	// The encoding of messages validated against schema. Default value: "ENCODING_UNSPECIFIED" Possible values: ["ENCODING_UNSPECIFIED", "JSON", "BINARY"]
	Encoding string `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema string `pulumi:"schema"`
}

type GetTopicSchemaSettingArgs

type GetTopicSchemaSettingArgs struct {
	// The encoding of messages validated against schema. Default value: "ENCODING_UNSPECIFIED" Possible values: ["ENCODING_UNSPECIFIED", "JSON", "BINARY"]
	Encoding pulumi.StringInput `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema pulumi.StringInput `pulumi:"schema"`
}

func (GetTopicSchemaSettingArgs) ElementType

func (GetTopicSchemaSettingArgs) ElementType() reflect.Type

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput

func (i GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingArgs) ToGetTopicSchemaSettingOutputWithContext

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

type GetTopicSchemaSettingArray

type GetTopicSchemaSettingArray []GetTopicSchemaSettingInput

func (GetTopicSchemaSettingArray) ElementType

func (GetTopicSchemaSettingArray) ElementType() reflect.Type

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput

func (i GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArray) ToGetTopicSchemaSettingArrayOutputWithContext

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

type GetTopicSchemaSettingArrayInput

type GetTopicSchemaSettingArrayInput interface {
	pulumi.Input

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

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

GetTopicSchemaSettingArray{ GetTopicSchemaSettingArgs{...} }

type GetTopicSchemaSettingArrayOutput

type GetTopicSchemaSettingArrayOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingArrayOutput) ElementType

func (GetTopicSchemaSettingArrayOutput) Index

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput

func (o GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutput() GetTopicSchemaSettingArrayOutput

func (GetTopicSchemaSettingArrayOutput) ToGetTopicSchemaSettingArrayOutputWithContext

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

type GetTopicSchemaSettingInput

type GetTopicSchemaSettingInput interface {
	pulumi.Input

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

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

GetTopicSchemaSettingArgs{...}

type GetTopicSchemaSettingOutput

type GetTopicSchemaSettingOutput struct{ *pulumi.OutputState }

func (GetTopicSchemaSettingOutput) ElementType

func (GetTopicSchemaSettingOutput) Encoding

The encoding of messages validated against schema. Default value: "ENCODING_UNSPECIFIED" Possible values: ["ENCODING_UNSPECIFIED", "JSON", "BINARY"]

func (GetTopicSchemaSettingOutput) Schema

The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput

func (o GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutput() GetTopicSchemaSettingOutput

func (GetTopicSchemaSettingOutput) ToGetTopicSchemaSettingOutputWithContext

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

type LiteReservation

type LiteReservation struct {
	pulumi.CustomResourceState

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

A named resource representing a shared pool of capacity.

To get more information about Reservation, see:

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

## Example Usage

### Pubsub Lite Reservation Basic

```go package main

import (

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

)

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

```

## Import

Reservation can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{region}}/reservations/{{name}}`

* `{{project}}/{{region}}/{{name}}`

* `{{region}}/{{name}}`

* `{{name}}`

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

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

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

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

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

func GetLiteReservation

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

GetLiteReservation gets an existing LiteReservation resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLiteReservation

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

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

func (*LiteReservation) ElementType

func (*LiteReservation) ElementType() reflect.Type

func (*LiteReservation) ToLiteReservationOutput

func (i *LiteReservation) ToLiteReservationOutput() LiteReservationOutput

func (*LiteReservation) ToLiteReservationOutputWithContext

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

type LiteReservationArgs

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

The set of arguments for constructing a LiteReservation resource.

func (LiteReservationArgs) ElementType

func (LiteReservationArgs) ElementType() reflect.Type

type LiteReservationArray

type LiteReservationArray []LiteReservationInput

func (LiteReservationArray) ElementType

func (LiteReservationArray) ElementType() reflect.Type

func (LiteReservationArray) ToLiteReservationArrayOutput

func (i LiteReservationArray) ToLiteReservationArrayOutput() LiteReservationArrayOutput

func (LiteReservationArray) ToLiteReservationArrayOutputWithContext

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

type LiteReservationArrayInput

type LiteReservationArrayInput interface {
	pulumi.Input

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

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

LiteReservationArray{ LiteReservationArgs{...} }

type LiteReservationArrayOutput

type LiteReservationArrayOutput struct{ *pulumi.OutputState }

func (LiteReservationArrayOutput) ElementType

func (LiteReservationArrayOutput) ElementType() reflect.Type

func (LiteReservationArrayOutput) Index

func (LiteReservationArrayOutput) ToLiteReservationArrayOutput

func (o LiteReservationArrayOutput) ToLiteReservationArrayOutput() LiteReservationArrayOutput

func (LiteReservationArrayOutput) ToLiteReservationArrayOutputWithContext

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

type LiteReservationInput

type LiteReservationInput interface {
	pulumi.Input

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

type LiteReservationMap

type LiteReservationMap map[string]LiteReservationInput

func (LiteReservationMap) ElementType

func (LiteReservationMap) ElementType() reflect.Type

func (LiteReservationMap) ToLiteReservationMapOutput

func (i LiteReservationMap) ToLiteReservationMapOutput() LiteReservationMapOutput

func (LiteReservationMap) ToLiteReservationMapOutputWithContext

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

type LiteReservationMapInput

type LiteReservationMapInput interface {
	pulumi.Input

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

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

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

type LiteReservationMapOutput

type LiteReservationMapOutput struct{ *pulumi.OutputState }

func (LiteReservationMapOutput) ElementType

func (LiteReservationMapOutput) ElementType() reflect.Type

func (LiteReservationMapOutput) MapIndex

func (LiteReservationMapOutput) ToLiteReservationMapOutput

func (o LiteReservationMapOutput) ToLiteReservationMapOutput() LiteReservationMapOutput

func (LiteReservationMapOutput) ToLiteReservationMapOutputWithContext

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

type LiteReservationOutput

type LiteReservationOutput struct{ *pulumi.OutputState }

func (LiteReservationOutput) ElementType

func (LiteReservationOutput) ElementType() reflect.Type

func (LiteReservationOutput) Name

Name of the reservation.

***

func (LiteReservationOutput) Project

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

func (LiteReservationOutput) Region

The region of the pubsub lite reservation.

func (LiteReservationOutput) ThroughputCapacity

func (o LiteReservationOutput) ThroughputCapacity() pulumi.IntOutput

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

func (LiteReservationOutput) ToLiteReservationOutput

func (o LiteReservationOutput) ToLiteReservationOutput() LiteReservationOutput

func (LiteReservationOutput) ToLiteReservationOutputWithContext

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

type LiteReservationState

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

func (LiteReservationState) ElementType

func (LiteReservationState) ElementType() reflect.Type

type LiteSubscription

type LiteSubscription struct {
	pulumi.CustomResourceState

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

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

To get more information about Subscription, see:

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

## Example Usage

### Pubsub Lite Subscription Basic

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		example, err := pubsub.NewLiteTopic(ctx, "example", &pubsub.LiteTopicArgs{
			Name:    pulumi.String("example-topic"),
			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, "example", &pubsub.LiteSubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: example.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:

* `projects/{{project}}/locations/{{zone}}/subscriptions/{{name}}`

* `{{project}}/{{zone}}/{{name}}`

* `{{zone}}/{{name}}`

* `{{name}}`

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

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

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

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

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

func GetLiteSubscription

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

GetLiteSubscription gets an existing LiteSubscription resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLiteSubscription

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

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

func (*LiteSubscription) ElementType

func (*LiteSubscription) ElementType() reflect.Type

func (*LiteSubscription) ToLiteSubscriptionOutput

func (i *LiteSubscription) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (*LiteSubscription) ToLiteSubscriptionOutputWithContext

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

type LiteSubscriptionArgs

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

The set of arguments for constructing a LiteSubscription resource.

func (LiteSubscriptionArgs) ElementType

func (LiteSubscriptionArgs) ElementType() reflect.Type

type LiteSubscriptionArray

type LiteSubscriptionArray []LiteSubscriptionInput

func (LiteSubscriptionArray) ElementType

func (LiteSubscriptionArray) ElementType() reflect.Type

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutput

func (i LiteSubscriptionArray) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArray) ToLiteSubscriptionArrayOutputWithContext

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

type LiteSubscriptionArrayInput

type LiteSubscriptionArrayInput interface {
	pulumi.Input

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

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

LiteSubscriptionArray{ LiteSubscriptionArgs{...} }

type LiteSubscriptionArrayOutput

type LiteSubscriptionArrayOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionArrayOutput) ElementType

func (LiteSubscriptionArrayOutput) Index

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput

func (o LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutput() LiteSubscriptionArrayOutput

func (LiteSubscriptionArrayOutput) ToLiteSubscriptionArrayOutputWithContext

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

type LiteSubscriptionDeliveryConfig

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

type LiteSubscriptionDeliveryConfigArgs

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

func (LiteSubscriptionDeliveryConfigArgs) ElementType

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigOutputWithContext

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

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput

func (i LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigArgs) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

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

type LiteSubscriptionDeliveryConfigInput

type LiteSubscriptionDeliveryConfigInput interface {
	pulumi.Input

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

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

LiteSubscriptionDeliveryConfigArgs{...}

type LiteSubscriptionDeliveryConfigOutput

type LiteSubscriptionDeliveryConfigOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigOutput) DeliveryRequirement

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

func (LiteSubscriptionDeliveryConfigOutput) ElementType

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutput() LiteSubscriptionDeliveryConfigOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigOutputWithContext

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

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput

func (o LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

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

type LiteSubscriptionDeliveryConfigPtrInput

type LiteSubscriptionDeliveryConfigPtrInput interface {
	pulumi.Input

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

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

        LiteSubscriptionDeliveryConfigArgs{...}

or:

        nil

type LiteSubscriptionDeliveryConfigPtrOutput

type LiteSubscriptionDeliveryConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionDeliveryConfigPtrOutput) DeliveryRequirement

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

func (LiteSubscriptionDeliveryConfigPtrOutput) Elem

func (LiteSubscriptionDeliveryConfigPtrOutput) ElementType

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput

func (o LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutput() LiteSubscriptionDeliveryConfigPtrOutput

func (LiteSubscriptionDeliveryConfigPtrOutput) ToLiteSubscriptionDeliveryConfigPtrOutputWithContext

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

type LiteSubscriptionInput

type LiteSubscriptionInput interface {
	pulumi.Input

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

type LiteSubscriptionMap

type LiteSubscriptionMap map[string]LiteSubscriptionInput

func (LiteSubscriptionMap) ElementType

func (LiteSubscriptionMap) ElementType() reflect.Type

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutput

func (i LiteSubscriptionMap) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMap) ToLiteSubscriptionMapOutputWithContext

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

type LiteSubscriptionMapInput

type LiteSubscriptionMapInput interface {
	pulumi.Input

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

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

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

type LiteSubscriptionMapOutput

type LiteSubscriptionMapOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionMapOutput) ElementType

func (LiteSubscriptionMapOutput) ElementType() reflect.Type

func (LiteSubscriptionMapOutput) MapIndex

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput

func (o LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutput() LiteSubscriptionMapOutput

func (LiteSubscriptionMapOutput) ToLiteSubscriptionMapOutputWithContext

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

type LiteSubscriptionOutput

type LiteSubscriptionOutput struct{ *pulumi.OutputState }

func (LiteSubscriptionOutput) DeliveryConfig

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

func (LiteSubscriptionOutput) ElementType

func (LiteSubscriptionOutput) ElementType() reflect.Type

func (LiteSubscriptionOutput) Name

Name of the subscription.

***

func (LiteSubscriptionOutput) Project

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

func (LiteSubscriptionOutput) Region

The region of the pubsub lite topic.

func (LiteSubscriptionOutput) ToLiteSubscriptionOutput

func (o LiteSubscriptionOutput) ToLiteSubscriptionOutput() LiteSubscriptionOutput

func (LiteSubscriptionOutput) ToLiteSubscriptionOutputWithContext

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

func (LiteSubscriptionOutput) Topic

A reference to a Topic resource.

func (LiteSubscriptionOutput) Zone

The zone of the pubsub lite topic.

type LiteSubscriptionState

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

func (LiteSubscriptionState) ElementType

func (LiteSubscriptionState) ElementType() reflect.Type

type LiteTopic

type LiteTopic struct {
	pulumi.CustomResourceState

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

A named resource to which messages are sent by publishers.

To get more information about Topic, see:

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

## Example Usage

### Pubsub Lite Topic Basic

```go package main

import (

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

)

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

```

## Import

Topic can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{zone}}/topics/{{name}}`

* `{{project}}/{{zone}}/{{name}}`

* `{{zone}}/{{name}}`

* `{{name}}`

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

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

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

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

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

func GetLiteTopic

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

GetLiteTopic gets an existing LiteTopic resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewLiteTopic

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

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

func (*LiteTopic) ElementType

func (*LiteTopic) ElementType() reflect.Type

func (*LiteTopic) ToLiteTopicOutput

func (i *LiteTopic) ToLiteTopicOutput() LiteTopicOutput

func (*LiteTopic) ToLiteTopicOutputWithContext

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

type LiteTopicArgs

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

The set of arguments for constructing a LiteTopic resource.

func (LiteTopicArgs) ElementType

func (LiteTopicArgs) ElementType() reflect.Type

type LiteTopicArray

type LiteTopicArray []LiteTopicInput

func (LiteTopicArray) ElementType

func (LiteTopicArray) ElementType() reflect.Type

func (LiteTopicArray) ToLiteTopicArrayOutput

func (i LiteTopicArray) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArray) ToLiteTopicArrayOutputWithContext

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

type LiteTopicArrayInput

type LiteTopicArrayInput interface {
	pulumi.Input

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

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

LiteTopicArray{ LiteTopicArgs{...} }

type LiteTopicArrayOutput

type LiteTopicArrayOutput struct{ *pulumi.OutputState }

func (LiteTopicArrayOutput) ElementType

func (LiteTopicArrayOutput) ElementType() reflect.Type

func (LiteTopicArrayOutput) Index

func (LiteTopicArrayOutput) ToLiteTopicArrayOutput

func (o LiteTopicArrayOutput) ToLiteTopicArrayOutput() LiteTopicArrayOutput

func (LiteTopicArrayOutput) ToLiteTopicArrayOutputWithContext

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

type LiteTopicInput

type LiteTopicInput interface {
	pulumi.Input

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

type LiteTopicMap

type LiteTopicMap map[string]LiteTopicInput

func (LiteTopicMap) ElementType

func (LiteTopicMap) ElementType() reflect.Type

func (LiteTopicMap) ToLiteTopicMapOutput

func (i LiteTopicMap) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMap) ToLiteTopicMapOutputWithContext

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

type LiteTopicMapInput

type LiteTopicMapInput interface {
	pulumi.Input

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

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

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

type LiteTopicMapOutput

type LiteTopicMapOutput struct{ *pulumi.OutputState }

func (LiteTopicMapOutput) ElementType

func (LiteTopicMapOutput) ElementType() reflect.Type

func (LiteTopicMapOutput) MapIndex

func (LiteTopicMapOutput) ToLiteTopicMapOutput

func (o LiteTopicMapOutput) ToLiteTopicMapOutput() LiteTopicMapOutput

func (LiteTopicMapOutput) ToLiteTopicMapOutputWithContext

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

type LiteTopicOutput

type LiteTopicOutput struct{ *pulumi.OutputState }

func (LiteTopicOutput) ElementType

func (LiteTopicOutput) ElementType() reflect.Type

func (LiteTopicOutput) Name

Name of the topic.

***

func (LiteTopicOutput) PartitionConfig

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

func (LiteTopicOutput) Project

func (o LiteTopicOutput) Project() pulumi.StringOutput

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

func (LiteTopicOutput) Region

The region of the pubsub lite topic.

func (LiteTopicOutput) ReservationConfig

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

func (LiteTopicOutput) RetentionConfig

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

func (LiteTopicOutput) ToLiteTopicOutput

func (o LiteTopicOutput) ToLiteTopicOutput() LiteTopicOutput

func (LiteTopicOutput) ToLiteTopicOutputWithContext

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

func (LiteTopicOutput) Zone

The zone of the pubsub lite topic.

type LiteTopicPartitionConfig

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

type LiteTopicPartitionConfigArgs

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

func (LiteTopicPartitionConfigArgs) ElementType

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigOutputWithContext

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

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput

func (i LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigArgs) ToLiteTopicPartitionConfigPtrOutputWithContext

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

type LiteTopicPartitionConfigCapacity

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

type LiteTopicPartitionConfigCapacityArgs

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

func (LiteTopicPartitionConfigCapacityArgs) ElementType

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityOutputWithContext

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

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput

func (i LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityArgs) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

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

type LiteTopicPartitionConfigCapacityInput

type LiteTopicPartitionConfigCapacityInput interface {
	pulumi.Input

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

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

LiteTopicPartitionConfigCapacityArgs{...}

type LiteTopicPartitionConfigCapacityOutput

type LiteTopicPartitionConfigCapacityOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityOutput) ElementType

func (LiteTopicPartitionConfigCapacityOutput) PublishMibPerSec

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

func (LiteTopicPartitionConfigCapacityOutput) SubscribeMibPerSec

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

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutput() LiteTopicPartitionConfigCapacityOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityOutputWithContext

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

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput

func (o LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

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

type LiteTopicPartitionConfigCapacityPtrInput

type LiteTopicPartitionConfigCapacityPtrInput interface {
	pulumi.Input

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

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

        LiteTopicPartitionConfigCapacityArgs{...}

or:

        nil

type LiteTopicPartitionConfigCapacityPtrOutput

type LiteTopicPartitionConfigCapacityPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigCapacityPtrOutput) Elem

func (LiteTopicPartitionConfigCapacityPtrOutput) ElementType

func (LiteTopicPartitionConfigCapacityPtrOutput) PublishMibPerSec

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

func (LiteTopicPartitionConfigCapacityPtrOutput) SubscribeMibPerSec

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

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput

func (o LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutput() LiteTopicPartitionConfigCapacityPtrOutput

func (LiteTopicPartitionConfigCapacityPtrOutput) ToLiteTopicPartitionConfigCapacityPtrOutputWithContext

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

type LiteTopicPartitionConfigInput

type LiteTopicPartitionConfigInput interface {
	pulumi.Input

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

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

LiteTopicPartitionConfigArgs{...}

type LiteTopicPartitionConfigOutput

type LiteTopicPartitionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigOutput) Capacity

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigOutput) Count

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

func (LiteTopicPartitionConfigOutput) ElementType

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutput() LiteTopicPartitionConfigOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigOutputWithContext

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

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput

func (o LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigOutput) ToLiteTopicPartitionConfigPtrOutputWithContext

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

type LiteTopicPartitionConfigPtrInput

type LiteTopicPartitionConfigPtrInput interface {
	pulumi.Input

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

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

        LiteTopicPartitionConfigArgs{...}

or:

        nil

type LiteTopicPartitionConfigPtrOutput

type LiteTopicPartitionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicPartitionConfigPtrOutput) Capacity

The capacity configuration. Structure is documented below.

func (LiteTopicPartitionConfigPtrOutput) Count

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

func (LiteTopicPartitionConfigPtrOutput) Elem

func (LiteTopicPartitionConfigPtrOutput) ElementType

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput

func (o LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutput() LiteTopicPartitionConfigPtrOutput

func (LiteTopicPartitionConfigPtrOutput) ToLiteTopicPartitionConfigPtrOutputWithContext

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

type LiteTopicReservationConfig

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

type LiteTopicReservationConfigArgs

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

func (LiteTopicReservationConfigArgs) ElementType

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutput

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutput() LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigOutputWithContext

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

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutput

func (i LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigArgs) ToLiteTopicReservationConfigPtrOutputWithContext

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

type LiteTopicReservationConfigInput

type LiteTopicReservationConfigInput interface {
	pulumi.Input

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

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

LiteTopicReservationConfigArgs{...}

type LiteTopicReservationConfigOutput

type LiteTopicReservationConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicReservationConfigOutput) ElementType

func (LiteTopicReservationConfigOutput) ThroughputReservation

func (o LiteTopicReservationConfigOutput) ThroughputReservation() pulumi.StringPtrOutput

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

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutput

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutput() LiteTopicReservationConfigOutput

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigOutputWithContext

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

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutput

func (o LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigOutput) ToLiteTopicReservationConfigPtrOutputWithContext

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

type LiteTopicReservationConfigPtrInput

type LiteTopicReservationConfigPtrInput interface {
	pulumi.Input

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

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

        LiteTopicReservationConfigArgs{...}

or:

        nil

type LiteTopicReservationConfigPtrOutput

type LiteTopicReservationConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicReservationConfigPtrOutput) Elem

func (LiteTopicReservationConfigPtrOutput) ElementType

func (LiteTopicReservationConfigPtrOutput) ThroughputReservation

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

func (LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutput

func (o LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutput() LiteTopicReservationConfigPtrOutput

func (LiteTopicReservationConfigPtrOutput) ToLiteTopicReservationConfigPtrOutputWithContext

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

type LiteTopicRetentionConfig

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

type LiteTopicRetentionConfigArgs

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

func (LiteTopicRetentionConfigArgs) ElementType

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigOutputWithContext

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

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput

func (i LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigArgs) ToLiteTopicRetentionConfigPtrOutputWithContext

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

type LiteTopicRetentionConfigInput

type LiteTopicRetentionConfigInput interface {
	pulumi.Input

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

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

LiteTopicRetentionConfigArgs{...}

type LiteTopicRetentionConfigOutput

type LiteTopicRetentionConfigOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigOutput) ElementType

func (LiteTopicRetentionConfigOutput) PerPartitionBytes

func (o LiteTopicRetentionConfigOutput) PerPartitionBytes() pulumi.StringOutput

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

func (LiteTopicRetentionConfigOutput) Period

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

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutput

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutput() LiteTopicRetentionConfigOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigOutputWithContext

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

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput

func (o LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigOutput) ToLiteTopicRetentionConfigPtrOutputWithContext

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

type LiteTopicRetentionConfigPtrInput

type LiteTopicRetentionConfigPtrInput interface {
	pulumi.Input

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

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

        LiteTopicRetentionConfigArgs{...}

or:

        nil

type LiteTopicRetentionConfigPtrOutput

type LiteTopicRetentionConfigPtrOutput struct{ *pulumi.OutputState }

func (LiteTopicRetentionConfigPtrOutput) Elem

func (LiteTopicRetentionConfigPtrOutput) ElementType

func (LiteTopicRetentionConfigPtrOutput) PerPartitionBytes

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

func (LiteTopicRetentionConfigPtrOutput) Period

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

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput

func (o LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutput() LiteTopicRetentionConfigPtrOutput

func (LiteTopicRetentionConfigPtrOutput) ToLiteTopicRetentionConfigPtrOutputWithContext

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

type LiteTopicState

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

func (LiteTopicState) ElementType

func (LiteTopicState) ElementType() reflect.Type

type LookupSchemaIamPolicyArgs added in v7.1.0

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

A collection of arguments for invoking getSchemaIamPolicy.

type LookupSchemaIamPolicyOutputArgs added in v7.1.0

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

A collection of arguments for invoking getSchemaIamPolicy.

func (LookupSchemaIamPolicyOutputArgs) ElementType added in v7.1.0

type LookupSchemaIamPolicyResult added in v7.1.0

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

A collection of values returned by getSchemaIamPolicy.

func LookupSchemaIamPolicy added in v7.1.0

func LookupSchemaIamPolicy(ctx *pulumi.Context, args *LookupSchemaIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupSchemaIamPolicyResult, error)

Retrieves the current IAM policy data for schema

## example

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.LookupSchemaIamPolicy(ctx, &pubsub.LookupSchemaIamPolicyArgs{
			Project: pulumi.StringRef(example.Project),
			Schema:  example.Name,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupSchemaIamPolicyResultOutput added in v7.1.0

type LookupSchemaIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSchemaIamPolicy.

func LookupSchemaIamPolicyOutput added in v7.1.0

func (LookupSchemaIamPolicyResultOutput) ElementType added in v7.1.0

func (LookupSchemaIamPolicyResultOutput) Etag added in v7.1.0

(Computed) The etag of the IAM policy.

func (LookupSchemaIamPolicyResultOutput) Id added in v7.1.0

The provider-assigned unique ID for this managed resource.

func (LookupSchemaIamPolicyResultOutput) PolicyData added in v7.1.0

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

func (LookupSchemaIamPolicyResultOutput) Project added in v7.1.0

func (LookupSchemaIamPolicyResultOutput) Schema added in v7.1.0

func (LookupSchemaIamPolicyResultOutput) ToLookupSchemaIamPolicyResultOutput added in v7.1.0

func (o LookupSchemaIamPolicyResultOutput) ToLookupSchemaIamPolicyResultOutput() LookupSchemaIamPolicyResultOutput

func (LookupSchemaIamPolicyResultOutput) ToLookupSchemaIamPolicyResultOutputWithContext added in v7.1.0

func (o LookupSchemaIamPolicyResultOutput) ToLookupSchemaIamPolicyResultOutputWithContext(ctx context.Context) LookupSchemaIamPolicyResultOutput

type LookupSubscriptionArgs

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

A collection of arguments for invoking getSubscription.

type LookupSubscriptionOutputArgs

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

A collection of arguments for invoking getSubscription.

func (LookupSubscriptionOutputArgs) ElementType

type LookupSubscriptionResult

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

A collection of values returned by getSubscription.

func LookupSubscription

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

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

## Example Usage

```go package main

import (

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

)

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

```

type LookupSubscriptionResultOutput

type LookupSubscriptionResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSubscription.

func (LookupSubscriptionResultOutput) AckDeadlineSeconds

func (o LookupSubscriptionResultOutput) AckDeadlineSeconds() pulumi.IntOutput

func (LookupSubscriptionResultOutput) BigqueryConfigs

func (LookupSubscriptionResultOutput) CloudStorageConfigs

func (LookupSubscriptionResultOutput) DeadLetterPolicies

func (LookupSubscriptionResultOutput) EffectiveLabels

func (LookupSubscriptionResultOutput) ElementType

func (LookupSubscriptionResultOutput) EnableExactlyOnceDelivery

func (o LookupSubscriptionResultOutput) EnableExactlyOnceDelivery() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) EnableMessageOrdering

func (o LookupSubscriptionResultOutput) EnableMessageOrdering() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) ExpirationPolicies

func (LookupSubscriptionResultOutput) Filter

func (LookupSubscriptionResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupSubscriptionResultOutput) Labels

func (LookupSubscriptionResultOutput) MessageRetentionDuration

func (o LookupSubscriptionResultOutput) MessageRetentionDuration() pulumi.StringOutput

func (LookupSubscriptionResultOutput) Name

func (LookupSubscriptionResultOutput) Project

func (LookupSubscriptionResultOutput) PulumiLabels

func (LookupSubscriptionResultOutput) PushConfigs

func (LookupSubscriptionResultOutput) RetainAckedMessages

func (o LookupSubscriptionResultOutput) RetainAckedMessages() pulumi.BoolOutput

func (LookupSubscriptionResultOutput) RetryPolicies

func (LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutput

func (o LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutput() LookupSubscriptionResultOutput

func (LookupSubscriptionResultOutput) ToLookupSubscriptionResultOutputWithContext

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

func (LookupSubscriptionResultOutput) Topic

type LookupTopicArgs

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

A collection of arguments for invoking getTopic.

type LookupTopicOutputArgs

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

A collection of arguments for invoking getTopic.

func (LookupTopicOutputArgs) ElementType

func (LookupTopicOutputArgs) ElementType() reflect.Type

type LookupTopicResult

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

A collection of values returned by getTopic.

func LookupTopic

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

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

## Example Usage

```go package main

import (

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

)

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

```

type LookupTopicResultOutput

type LookupTopicResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getTopic.

func (LookupTopicResultOutput) EffectiveLabels

func (o LookupTopicResultOutput) EffectiveLabels() pulumi.StringMapOutput

func (LookupTopicResultOutput) ElementType

func (LookupTopicResultOutput) ElementType() reflect.Type

func (LookupTopicResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupTopicResultOutput) IngestionDataSourceSettings added in v7.16.0

func (LookupTopicResultOutput) KmsKeyName

func (LookupTopicResultOutput) Labels

func (LookupTopicResultOutput) MessageRetentionDuration

func (o LookupTopicResultOutput) MessageRetentionDuration() pulumi.StringOutput

func (LookupTopicResultOutput) MessageStoragePolicies

func (LookupTopicResultOutput) Name

func (LookupTopicResultOutput) Project

func (LookupTopicResultOutput) PulumiLabels

func (LookupTopicResultOutput) SchemaSettings

func (LookupTopicResultOutput) ToLookupTopicResultOutput

func (o LookupTopicResultOutput) ToLookupTopicResultOutput() LookupTopicResultOutput

func (LookupTopicResultOutput) ToLookupTopicResultOutputWithContext

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

type Schema

type Schema struct {
	pulumi.CustomResourceState

	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type. Changes
	// to the definition commit new [schema revisions](https://cloud.google.com/pubsub/docs/commit-schema-revision).
	// A schema can only have up to 20 revisions, so updates that fail with an
	// error indicating that the limit has been reached require manually
	// [deleting old revisions](https://cloud.google.com/pubsub/docs/delete-schema-revision).
	Definition pulumi.StringPtrOutput `pulumi:"definition"`
	// The ID to use for the schema, which will become the final component of the schema's resource name.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrOutput `pulumi:"type"`
}

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

To get more information about Schema, see:

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

## Example Usage

### Pubsub Schema Basic

```go package main

import (

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

)

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

`),

		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Schema Protobuf

```go package main

import (

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

)

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

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

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

```

## Import

Schema can be imported using any of these accepted formats:

* `projects/{{project}}/schemas/{{name}}`

* `{{project}}/{{name}}`

* `{{name}}`

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

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

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

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

func GetSchema

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

GetSchema gets an existing Schema resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSchema

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

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

func (*Schema) ElementType

func (*Schema) ElementType() reflect.Type

func (*Schema) ToSchemaOutput

func (i *Schema) ToSchemaOutput() SchemaOutput

func (*Schema) ToSchemaOutputWithContext

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

type SchemaArgs

type SchemaArgs struct {
	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type. Changes
	// to the definition commit new [schema revisions](https://cloud.google.com/pubsub/docs/commit-schema-revision).
	// A schema can only have up to 20 revisions, so updates that fail with an
	// error indicating that the limit has been reached require manually
	// [deleting old revisions](https://cloud.google.com/pubsub/docs/delete-schema-revision).
	Definition pulumi.StringPtrInput
	// The ID to use for the schema, which will become the final component of the schema's resource name.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a Schema resource.

func (SchemaArgs) ElementType

func (SchemaArgs) ElementType() reflect.Type

type SchemaArray

type SchemaArray []SchemaInput

func (SchemaArray) ElementType

func (SchemaArray) ElementType() reflect.Type

func (SchemaArray) ToSchemaArrayOutput

func (i SchemaArray) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArray) ToSchemaArrayOutputWithContext

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

type SchemaArrayInput

type SchemaArrayInput interface {
	pulumi.Input

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

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

SchemaArray{ SchemaArgs{...} }

type SchemaArrayOutput

type SchemaArrayOutput struct{ *pulumi.OutputState }

func (SchemaArrayOutput) ElementType

func (SchemaArrayOutput) ElementType() reflect.Type

func (SchemaArrayOutput) Index

func (SchemaArrayOutput) ToSchemaArrayOutput

func (o SchemaArrayOutput) ToSchemaArrayOutput() SchemaArrayOutput

func (SchemaArrayOutput) ToSchemaArrayOutputWithContext

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

type SchemaIamBinding added in v7.1.0

type SchemaIamBinding struct {
	pulumi.CustomResourceState

	Condition SchemaIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// 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.SchemaIamBinding` 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
	Schema pulumi.StringOutput `pulumi:"schema"`
}

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

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

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

* `pubsub.SchemaIamPolicy`: Retrieves the IAM policy for the schema

> **Note:** `pubsub.SchemaIamPolicy` **cannot** be used in conjunction with `pubsub.SchemaIamBinding` and `pubsub.SchemaIamMember` or they will fight over what your policy should be.

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

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamMember(ctx, "member", &pubsub.SchemaIamMemberArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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}}/schemas/{{name}}

* {{project}}/{{name}}

* {{name}}

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

Cloud Pub/Sub schema IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:pubsub/schemaIamBinding:SchemaIamBinding editor "projects/{{project}}/schemas/{{schema}} roles/viewer user:jane@example.com" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamBinding:SchemaIamBinding editor "projects/{{project}}/schemas/{{schema}} roles/viewer" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamBinding:SchemaIamBinding editor projects/{{project}}/schemas/{{schema}} ```

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

func GetSchemaIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SchemaIamBindingState, opts ...pulumi.ResourceOption) (*SchemaIamBinding, error)

GetSchemaIamBinding gets an existing SchemaIamBinding 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 NewSchemaIamBinding added in v7.1.0

func NewSchemaIamBinding(ctx *pulumi.Context,
	name string, args *SchemaIamBindingArgs, opts ...pulumi.ResourceOption) (*SchemaIamBinding, error)

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

func (*SchemaIamBinding) ElementType added in v7.1.0

func (*SchemaIamBinding) ElementType() reflect.Type

func (*SchemaIamBinding) ToSchemaIamBindingOutput added in v7.1.0

func (i *SchemaIamBinding) ToSchemaIamBindingOutput() SchemaIamBindingOutput

func (*SchemaIamBinding) ToSchemaIamBindingOutputWithContext added in v7.1.0

func (i *SchemaIamBinding) ToSchemaIamBindingOutputWithContext(ctx context.Context) SchemaIamBindingOutput

type SchemaIamBindingArgs added in v7.1.0

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

The set of arguments for constructing a SchemaIamBinding resource.

func (SchemaIamBindingArgs) ElementType added in v7.1.0

func (SchemaIamBindingArgs) ElementType() reflect.Type

type SchemaIamBindingArray added in v7.1.0

type SchemaIamBindingArray []SchemaIamBindingInput

func (SchemaIamBindingArray) ElementType added in v7.1.0

func (SchemaIamBindingArray) ElementType() reflect.Type

func (SchemaIamBindingArray) ToSchemaIamBindingArrayOutput added in v7.1.0

func (i SchemaIamBindingArray) ToSchemaIamBindingArrayOutput() SchemaIamBindingArrayOutput

func (SchemaIamBindingArray) ToSchemaIamBindingArrayOutputWithContext added in v7.1.0

func (i SchemaIamBindingArray) ToSchemaIamBindingArrayOutputWithContext(ctx context.Context) SchemaIamBindingArrayOutput

type SchemaIamBindingArrayInput added in v7.1.0

type SchemaIamBindingArrayInput interface {
	pulumi.Input

	ToSchemaIamBindingArrayOutput() SchemaIamBindingArrayOutput
	ToSchemaIamBindingArrayOutputWithContext(context.Context) SchemaIamBindingArrayOutput
}

SchemaIamBindingArrayInput is an input type that accepts SchemaIamBindingArray and SchemaIamBindingArrayOutput values. You can construct a concrete instance of `SchemaIamBindingArrayInput` via:

SchemaIamBindingArray{ SchemaIamBindingArgs{...} }

type SchemaIamBindingArrayOutput added in v7.1.0

type SchemaIamBindingArrayOutput struct{ *pulumi.OutputState }

func (SchemaIamBindingArrayOutput) ElementType added in v7.1.0

func (SchemaIamBindingArrayOutput) Index added in v7.1.0

func (SchemaIamBindingArrayOutput) ToSchemaIamBindingArrayOutput added in v7.1.0

func (o SchemaIamBindingArrayOutput) ToSchemaIamBindingArrayOutput() SchemaIamBindingArrayOutput

func (SchemaIamBindingArrayOutput) ToSchemaIamBindingArrayOutputWithContext added in v7.1.0

func (o SchemaIamBindingArrayOutput) ToSchemaIamBindingArrayOutputWithContext(ctx context.Context) SchemaIamBindingArrayOutput

type SchemaIamBindingCondition added in v7.1.0

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

type SchemaIamBindingConditionArgs added in v7.1.0

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

func (SchemaIamBindingConditionArgs) ElementType added in v7.1.0

func (SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionOutput added in v7.1.0

func (i SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionOutput() SchemaIamBindingConditionOutput

func (SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionOutputWithContext added in v7.1.0

func (i SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionOutputWithContext(ctx context.Context) SchemaIamBindingConditionOutput

func (SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionPtrOutput added in v7.1.0

func (i SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionPtrOutput() SchemaIamBindingConditionPtrOutput

func (SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionPtrOutputWithContext added in v7.1.0

func (i SchemaIamBindingConditionArgs) ToSchemaIamBindingConditionPtrOutputWithContext(ctx context.Context) SchemaIamBindingConditionPtrOutput

type SchemaIamBindingConditionInput added in v7.1.0

type SchemaIamBindingConditionInput interface {
	pulumi.Input

	ToSchemaIamBindingConditionOutput() SchemaIamBindingConditionOutput
	ToSchemaIamBindingConditionOutputWithContext(context.Context) SchemaIamBindingConditionOutput
}

SchemaIamBindingConditionInput is an input type that accepts SchemaIamBindingConditionArgs and SchemaIamBindingConditionOutput values. You can construct a concrete instance of `SchemaIamBindingConditionInput` via:

SchemaIamBindingConditionArgs{...}

type SchemaIamBindingConditionOutput added in v7.1.0

type SchemaIamBindingConditionOutput struct{ *pulumi.OutputState }

func (SchemaIamBindingConditionOutput) Description added in v7.1.0

func (SchemaIamBindingConditionOutput) ElementType added in v7.1.0

func (SchemaIamBindingConditionOutput) Expression added in v7.1.0

func (SchemaIamBindingConditionOutput) Title added in v7.1.0

func (SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionOutput added in v7.1.0

func (o SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionOutput() SchemaIamBindingConditionOutput

func (SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionOutputWithContext added in v7.1.0

func (o SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionOutputWithContext(ctx context.Context) SchemaIamBindingConditionOutput

func (SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionPtrOutput added in v7.1.0

func (o SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionPtrOutput() SchemaIamBindingConditionPtrOutput

func (SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionPtrOutputWithContext added in v7.1.0

func (o SchemaIamBindingConditionOutput) ToSchemaIamBindingConditionPtrOutputWithContext(ctx context.Context) SchemaIamBindingConditionPtrOutput

type SchemaIamBindingConditionPtrInput added in v7.1.0

type SchemaIamBindingConditionPtrInput interface {
	pulumi.Input

	ToSchemaIamBindingConditionPtrOutput() SchemaIamBindingConditionPtrOutput
	ToSchemaIamBindingConditionPtrOutputWithContext(context.Context) SchemaIamBindingConditionPtrOutput
}

SchemaIamBindingConditionPtrInput is an input type that accepts SchemaIamBindingConditionArgs, SchemaIamBindingConditionPtr and SchemaIamBindingConditionPtrOutput values. You can construct a concrete instance of `SchemaIamBindingConditionPtrInput` via:

        SchemaIamBindingConditionArgs{...}

or:

        nil

func SchemaIamBindingConditionPtr added in v7.1.0

type SchemaIamBindingConditionPtrOutput added in v7.1.0

type SchemaIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (SchemaIamBindingConditionPtrOutput) Description added in v7.1.0

func (SchemaIamBindingConditionPtrOutput) Elem added in v7.1.0

func (SchemaIamBindingConditionPtrOutput) ElementType added in v7.1.0

func (SchemaIamBindingConditionPtrOutput) Expression added in v7.1.0

func (SchemaIamBindingConditionPtrOutput) Title added in v7.1.0

func (SchemaIamBindingConditionPtrOutput) ToSchemaIamBindingConditionPtrOutput added in v7.1.0

func (o SchemaIamBindingConditionPtrOutput) ToSchemaIamBindingConditionPtrOutput() SchemaIamBindingConditionPtrOutput

func (SchemaIamBindingConditionPtrOutput) ToSchemaIamBindingConditionPtrOutputWithContext added in v7.1.0

func (o SchemaIamBindingConditionPtrOutput) ToSchemaIamBindingConditionPtrOutputWithContext(ctx context.Context) SchemaIamBindingConditionPtrOutput

type SchemaIamBindingInput added in v7.1.0

type SchemaIamBindingInput interface {
	pulumi.Input

	ToSchemaIamBindingOutput() SchemaIamBindingOutput
	ToSchemaIamBindingOutputWithContext(ctx context.Context) SchemaIamBindingOutput
}

type SchemaIamBindingMap added in v7.1.0

type SchemaIamBindingMap map[string]SchemaIamBindingInput

func (SchemaIamBindingMap) ElementType added in v7.1.0

func (SchemaIamBindingMap) ElementType() reflect.Type

func (SchemaIamBindingMap) ToSchemaIamBindingMapOutput added in v7.1.0

func (i SchemaIamBindingMap) ToSchemaIamBindingMapOutput() SchemaIamBindingMapOutput

func (SchemaIamBindingMap) ToSchemaIamBindingMapOutputWithContext added in v7.1.0

func (i SchemaIamBindingMap) ToSchemaIamBindingMapOutputWithContext(ctx context.Context) SchemaIamBindingMapOutput

type SchemaIamBindingMapInput added in v7.1.0

type SchemaIamBindingMapInput interface {
	pulumi.Input

	ToSchemaIamBindingMapOutput() SchemaIamBindingMapOutput
	ToSchemaIamBindingMapOutputWithContext(context.Context) SchemaIamBindingMapOutput
}

SchemaIamBindingMapInput is an input type that accepts SchemaIamBindingMap and SchemaIamBindingMapOutput values. You can construct a concrete instance of `SchemaIamBindingMapInput` via:

SchemaIamBindingMap{ "key": SchemaIamBindingArgs{...} }

type SchemaIamBindingMapOutput added in v7.1.0

type SchemaIamBindingMapOutput struct{ *pulumi.OutputState }

func (SchemaIamBindingMapOutput) ElementType added in v7.1.0

func (SchemaIamBindingMapOutput) ElementType() reflect.Type

func (SchemaIamBindingMapOutput) MapIndex added in v7.1.0

func (SchemaIamBindingMapOutput) ToSchemaIamBindingMapOutput added in v7.1.0

func (o SchemaIamBindingMapOutput) ToSchemaIamBindingMapOutput() SchemaIamBindingMapOutput

func (SchemaIamBindingMapOutput) ToSchemaIamBindingMapOutputWithContext added in v7.1.0

func (o SchemaIamBindingMapOutput) ToSchemaIamBindingMapOutputWithContext(ctx context.Context) SchemaIamBindingMapOutput

type SchemaIamBindingOutput added in v7.1.0

type SchemaIamBindingOutput struct{ *pulumi.OutputState }

func (SchemaIamBindingOutput) Condition added in v7.1.0

func (SchemaIamBindingOutput) ElementType added in v7.1.0

func (SchemaIamBindingOutput) ElementType() reflect.Type

func (SchemaIamBindingOutput) Etag added in v7.1.0

(Computed) The etag of the IAM policy.

func (SchemaIamBindingOutput) Members added in v7.1.0

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

func (SchemaIamBindingOutput) Project added in v7.1.0

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

func (SchemaIamBindingOutput) Role added in v7.1.0

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

func (SchemaIamBindingOutput) Schema added in v7.1.0

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

func (SchemaIamBindingOutput) ToSchemaIamBindingOutput added in v7.1.0

func (o SchemaIamBindingOutput) ToSchemaIamBindingOutput() SchemaIamBindingOutput

func (SchemaIamBindingOutput) ToSchemaIamBindingOutputWithContext added in v7.1.0

func (o SchemaIamBindingOutput) ToSchemaIamBindingOutputWithContext(ctx context.Context) SchemaIamBindingOutput

type SchemaIamBindingState added in v7.1.0

type SchemaIamBindingState struct {
	Condition SchemaIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// 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.SchemaIamBinding` 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
	Schema pulumi.StringPtrInput
}

func (SchemaIamBindingState) ElementType added in v7.1.0

func (SchemaIamBindingState) ElementType() reflect.Type

type SchemaIamMember added in v7.1.0

type SchemaIamMember struct {
	pulumi.CustomResourceState

	Condition SchemaIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// 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.SchemaIamBinding` 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
	Schema pulumi.StringOutput `pulumi:"schema"`
}

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

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

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

* `pubsub.SchemaIamPolicy`: Retrieves the IAM policy for the schema

> **Note:** `pubsub.SchemaIamPolicy` **cannot** be used in conjunction with `pubsub.SchemaIamBinding` and `pubsub.SchemaIamMember` or they will fight over what your policy should be.

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

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamMember(ctx, "member", &pubsub.SchemaIamMemberArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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}}/schemas/{{name}}

* {{project}}/{{name}}

* {{name}}

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

Cloud Pub/Sub schema IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:pubsub/schemaIamMember:SchemaIamMember editor "projects/{{project}}/schemas/{{schema}} roles/viewer user:jane@example.com" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamMember:SchemaIamMember editor "projects/{{project}}/schemas/{{schema}} roles/viewer" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamMember:SchemaIamMember editor projects/{{project}}/schemas/{{schema}} ```

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

func GetSchemaIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SchemaIamMemberState, opts ...pulumi.ResourceOption) (*SchemaIamMember, error)

GetSchemaIamMember gets an existing SchemaIamMember 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 NewSchemaIamMember added in v7.1.0

func NewSchemaIamMember(ctx *pulumi.Context,
	name string, args *SchemaIamMemberArgs, opts ...pulumi.ResourceOption) (*SchemaIamMember, error)

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

func (*SchemaIamMember) ElementType added in v7.1.0

func (*SchemaIamMember) ElementType() reflect.Type

func (*SchemaIamMember) ToSchemaIamMemberOutput added in v7.1.0

func (i *SchemaIamMember) ToSchemaIamMemberOutput() SchemaIamMemberOutput

func (*SchemaIamMember) ToSchemaIamMemberOutputWithContext added in v7.1.0

func (i *SchemaIamMember) ToSchemaIamMemberOutputWithContext(ctx context.Context) SchemaIamMemberOutput

type SchemaIamMemberArgs added in v7.1.0

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

The set of arguments for constructing a SchemaIamMember resource.

func (SchemaIamMemberArgs) ElementType added in v7.1.0

func (SchemaIamMemberArgs) ElementType() reflect.Type

type SchemaIamMemberArray added in v7.1.0

type SchemaIamMemberArray []SchemaIamMemberInput

func (SchemaIamMemberArray) ElementType added in v7.1.0

func (SchemaIamMemberArray) ElementType() reflect.Type

func (SchemaIamMemberArray) ToSchemaIamMemberArrayOutput added in v7.1.0

func (i SchemaIamMemberArray) ToSchemaIamMemberArrayOutput() SchemaIamMemberArrayOutput

func (SchemaIamMemberArray) ToSchemaIamMemberArrayOutputWithContext added in v7.1.0

func (i SchemaIamMemberArray) ToSchemaIamMemberArrayOutputWithContext(ctx context.Context) SchemaIamMemberArrayOutput

type SchemaIamMemberArrayInput added in v7.1.0

type SchemaIamMemberArrayInput interface {
	pulumi.Input

	ToSchemaIamMemberArrayOutput() SchemaIamMemberArrayOutput
	ToSchemaIamMemberArrayOutputWithContext(context.Context) SchemaIamMemberArrayOutput
}

SchemaIamMemberArrayInput is an input type that accepts SchemaIamMemberArray and SchemaIamMemberArrayOutput values. You can construct a concrete instance of `SchemaIamMemberArrayInput` via:

SchemaIamMemberArray{ SchemaIamMemberArgs{...} }

type SchemaIamMemberArrayOutput added in v7.1.0

type SchemaIamMemberArrayOutput struct{ *pulumi.OutputState }

func (SchemaIamMemberArrayOutput) ElementType added in v7.1.0

func (SchemaIamMemberArrayOutput) ElementType() reflect.Type

func (SchemaIamMemberArrayOutput) Index added in v7.1.0

func (SchemaIamMemberArrayOutput) ToSchemaIamMemberArrayOutput added in v7.1.0

func (o SchemaIamMemberArrayOutput) ToSchemaIamMemberArrayOutput() SchemaIamMemberArrayOutput

func (SchemaIamMemberArrayOutput) ToSchemaIamMemberArrayOutputWithContext added in v7.1.0

func (o SchemaIamMemberArrayOutput) ToSchemaIamMemberArrayOutputWithContext(ctx context.Context) SchemaIamMemberArrayOutput

type SchemaIamMemberCondition added in v7.1.0

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

type SchemaIamMemberConditionArgs added in v7.1.0

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

func (SchemaIamMemberConditionArgs) ElementType added in v7.1.0

func (SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionOutput added in v7.1.0

func (i SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionOutput() SchemaIamMemberConditionOutput

func (SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionOutputWithContext added in v7.1.0

func (i SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionOutputWithContext(ctx context.Context) SchemaIamMemberConditionOutput

func (SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionPtrOutput added in v7.1.0

func (i SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionPtrOutput() SchemaIamMemberConditionPtrOutput

func (SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionPtrOutputWithContext added in v7.1.0

func (i SchemaIamMemberConditionArgs) ToSchemaIamMemberConditionPtrOutputWithContext(ctx context.Context) SchemaIamMemberConditionPtrOutput

type SchemaIamMemberConditionInput added in v7.1.0

type SchemaIamMemberConditionInput interface {
	pulumi.Input

	ToSchemaIamMemberConditionOutput() SchemaIamMemberConditionOutput
	ToSchemaIamMemberConditionOutputWithContext(context.Context) SchemaIamMemberConditionOutput
}

SchemaIamMemberConditionInput is an input type that accepts SchemaIamMemberConditionArgs and SchemaIamMemberConditionOutput values. You can construct a concrete instance of `SchemaIamMemberConditionInput` via:

SchemaIamMemberConditionArgs{...}

type SchemaIamMemberConditionOutput added in v7.1.0

type SchemaIamMemberConditionOutput struct{ *pulumi.OutputState }

func (SchemaIamMemberConditionOutput) Description added in v7.1.0

func (SchemaIamMemberConditionOutput) ElementType added in v7.1.0

func (SchemaIamMemberConditionOutput) Expression added in v7.1.0

func (SchemaIamMemberConditionOutput) Title added in v7.1.0

func (SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionOutput added in v7.1.0

func (o SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionOutput() SchemaIamMemberConditionOutput

func (SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionOutputWithContext added in v7.1.0

func (o SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionOutputWithContext(ctx context.Context) SchemaIamMemberConditionOutput

func (SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionPtrOutput added in v7.1.0

func (o SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionPtrOutput() SchemaIamMemberConditionPtrOutput

func (SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionPtrOutputWithContext added in v7.1.0

func (o SchemaIamMemberConditionOutput) ToSchemaIamMemberConditionPtrOutputWithContext(ctx context.Context) SchemaIamMemberConditionPtrOutput

type SchemaIamMemberConditionPtrInput added in v7.1.0

type SchemaIamMemberConditionPtrInput interface {
	pulumi.Input

	ToSchemaIamMemberConditionPtrOutput() SchemaIamMemberConditionPtrOutput
	ToSchemaIamMemberConditionPtrOutputWithContext(context.Context) SchemaIamMemberConditionPtrOutput
}

SchemaIamMemberConditionPtrInput is an input type that accepts SchemaIamMemberConditionArgs, SchemaIamMemberConditionPtr and SchemaIamMemberConditionPtrOutput values. You can construct a concrete instance of `SchemaIamMemberConditionPtrInput` via:

        SchemaIamMemberConditionArgs{...}

or:

        nil

func SchemaIamMemberConditionPtr added in v7.1.0

func SchemaIamMemberConditionPtr(v *SchemaIamMemberConditionArgs) SchemaIamMemberConditionPtrInput

type SchemaIamMemberConditionPtrOutput added in v7.1.0

type SchemaIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (SchemaIamMemberConditionPtrOutput) Description added in v7.1.0

func (SchemaIamMemberConditionPtrOutput) Elem added in v7.1.0

func (SchemaIamMemberConditionPtrOutput) ElementType added in v7.1.0

func (SchemaIamMemberConditionPtrOutput) Expression added in v7.1.0

func (SchemaIamMemberConditionPtrOutput) Title added in v7.1.0

func (SchemaIamMemberConditionPtrOutput) ToSchemaIamMemberConditionPtrOutput added in v7.1.0

func (o SchemaIamMemberConditionPtrOutput) ToSchemaIamMemberConditionPtrOutput() SchemaIamMemberConditionPtrOutput

func (SchemaIamMemberConditionPtrOutput) ToSchemaIamMemberConditionPtrOutputWithContext added in v7.1.0

func (o SchemaIamMemberConditionPtrOutput) ToSchemaIamMemberConditionPtrOutputWithContext(ctx context.Context) SchemaIamMemberConditionPtrOutput

type SchemaIamMemberInput added in v7.1.0

type SchemaIamMemberInput interface {
	pulumi.Input

	ToSchemaIamMemberOutput() SchemaIamMemberOutput
	ToSchemaIamMemberOutputWithContext(ctx context.Context) SchemaIamMemberOutput
}

type SchemaIamMemberMap added in v7.1.0

type SchemaIamMemberMap map[string]SchemaIamMemberInput

func (SchemaIamMemberMap) ElementType added in v7.1.0

func (SchemaIamMemberMap) ElementType() reflect.Type

func (SchemaIamMemberMap) ToSchemaIamMemberMapOutput added in v7.1.0

func (i SchemaIamMemberMap) ToSchemaIamMemberMapOutput() SchemaIamMemberMapOutput

func (SchemaIamMemberMap) ToSchemaIamMemberMapOutputWithContext added in v7.1.0

func (i SchemaIamMemberMap) ToSchemaIamMemberMapOutputWithContext(ctx context.Context) SchemaIamMemberMapOutput

type SchemaIamMemberMapInput added in v7.1.0

type SchemaIamMemberMapInput interface {
	pulumi.Input

	ToSchemaIamMemberMapOutput() SchemaIamMemberMapOutput
	ToSchemaIamMemberMapOutputWithContext(context.Context) SchemaIamMemberMapOutput
}

SchemaIamMemberMapInput is an input type that accepts SchemaIamMemberMap and SchemaIamMemberMapOutput values. You can construct a concrete instance of `SchemaIamMemberMapInput` via:

SchemaIamMemberMap{ "key": SchemaIamMemberArgs{...} }

type SchemaIamMemberMapOutput added in v7.1.0

type SchemaIamMemberMapOutput struct{ *pulumi.OutputState }

func (SchemaIamMemberMapOutput) ElementType added in v7.1.0

func (SchemaIamMemberMapOutput) ElementType() reflect.Type

func (SchemaIamMemberMapOutput) MapIndex added in v7.1.0

func (SchemaIamMemberMapOutput) ToSchemaIamMemberMapOutput added in v7.1.0

func (o SchemaIamMemberMapOutput) ToSchemaIamMemberMapOutput() SchemaIamMemberMapOutput

func (SchemaIamMemberMapOutput) ToSchemaIamMemberMapOutputWithContext added in v7.1.0

func (o SchemaIamMemberMapOutput) ToSchemaIamMemberMapOutputWithContext(ctx context.Context) SchemaIamMemberMapOutput

type SchemaIamMemberOutput added in v7.1.0

type SchemaIamMemberOutput struct{ *pulumi.OutputState }

func (SchemaIamMemberOutput) Condition added in v7.1.0

func (SchemaIamMemberOutput) ElementType added in v7.1.0

func (SchemaIamMemberOutput) ElementType() reflect.Type

func (SchemaIamMemberOutput) Etag added in v7.1.0

(Computed) The etag of the IAM policy.

func (SchemaIamMemberOutput) Member added in v7.1.0

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

func (SchemaIamMemberOutput) Project added in v7.1.0

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

func (SchemaIamMemberOutput) Role added in v7.1.0

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

func (SchemaIamMemberOutput) Schema added in v7.1.0

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

func (SchemaIamMemberOutput) ToSchemaIamMemberOutput added in v7.1.0

func (o SchemaIamMemberOutput) ToSchemaIamMemberOutput() SchemaIamMemberOutput

func (SchemaIamMemberOutput) ToSchemaIamMemberOutputWithContext added in v7.1.0

func (o SchemaIamMemberOutput) ToSchemaIamMemberOutputWithContext(ctx context.Context) SchemaIamMemberOutput

type SchemaIamMemberState added in v7.1.0

type SchemaIamMemberState struct {
	Condition SchemaIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// 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.SchemaIamBinding` 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
	Schema pulumi.StringPtrInput
}

func (SchemaIamMemberState) ElementType added in v7.1.0

func (SchemaIamMemberState) ElementType() reflect.Type

type SchemaIamPolicy added in v7.1.0

type SchemaIamPolicy 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
	Schema pulumi.StringOutput `pulumi:"schema"`
}

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

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

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

* `pubsub.SchemaIamPolicy`: Retrieves the IAM policy for the schema

> **Note:** `pubsub.SchemaIamPolicy` **cannot** be used in conjunction with `pubsub.SchemaIamBinding` and `pubsub.SchemaIamMember` or they will fight over what your policy should be.

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

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_schema\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSchemaIamPolicy(ctx, "policy", &pubsub.SchemaIamPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Schema:     pulumi.Any(example.Name),
			PolicyData: pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_schema\_iam\_binding

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamBinding(ctx, "binding", &pubsub.SchemaIamBindingArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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\_schema\_iam\_member

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewSchemaIamMember(ctx, "member", &pubsub.SchemaIamMemberArgs{
			Project: pulumi.Any(example.Project),
			Schema:  pulumi.Any(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}}/schemas/{{name}}

* {{project}}/{{name}}

* {{name}}

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

Cloud Pub/Sub schema IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:pubsub/schemaIamPolicy:SchemaIamPolicy editor "projects/{{project}}/schemas/{{schema}} roles/viewer user:jane@example.com" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamPolicy:SchemaIamPolicy editor "projects/{{project}}/schemas/{{schema}} roles/viewer" ```

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

```sh $ pulumi import gcp:pubsub/schemaIamPolicy:SchemaIamPolicy editor projects/{{project}}/schemas/{{schema}} ```

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

func GetSchemaIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SchemaIamPolicyState, opts ...pulumi.ResourceOption) (*SchemaIamPolicy, error)

GetSchemaIamPolicy gets an existing SchemaIamPolicy 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 NewSchemaIamPolicy added in v7.1.0

func NewSchemaIamPolicy(ctx *pulumi.Context,
	name string, args *SchemaIamPolicyArgs, opts ...pulumi.ResourceOption) (*SchemaIamPolicy, error)

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

func (*SchemaIamPolicy) ElementType added in v7.1.0

func (*SchemaIamPolicy) ElementType() reflect.Type

func (*SchemaIamPolicy) ToSchemaIamPolicyOutput added in v7.1.0

func (i *SchemaIamPolicy) ToSchemaIamPolicyOutput() SchemaIamPolicyOutput

func (*SchemaIamPolicy) ToSchemaIamPolicyOutputWithContext added in v7.1.0

func (i *SchemaIamPolicy) ToSchemaIamPolicyOutputWithContext(ctx context.Context) SchemaIamPolicyOutput

type SchemaIamPolicyArgs added in v7.1.0

type SchemaIamPolicyArgs 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
	Schema pulumi.StringInput
}

The set of arguments for constructing a SchemaIamPolicy resource.

func (SchemaIamPolicyArgs) ElementType added in v7.1.0

func (SchemaIamPolicyArgs) ElementType() reflect.Type

type SchemaIamPolicyArray added in v7.1.0

type SchemaIamPolicyArray []SchemaIamPolicyInput

func (SchemaIamPolicyArray) ElementType added in v7.1.0

func (SchemaIamPolicyArray) ElementType() reflect.Type

func (SchemaIamPolicyArray) ToSchemaIamPolicyArrayOutput added in v7.1.0

func (i SchemaIamPolicyArray) ToSchemaIamPolicyArrayOutput() SchemaIamPolicyArrayOutput

func (SchemaIamPolicyArray) ToSchemaIamPolicyArrayOutputWithContext added in v7.1.0

func (i SchemaIamPolicyArray) ToSchemaIamPolicyArrayOutputWithContext(ctx context.Context) SchemaIamPolicyArrayOutput

type SchemaIamPolicyArrayInput added in v7.1.0

type SchemaIamPolicyArrayInput interface {
	pulumi.Input

	ToSchemaIamPolicyArrayOutput() SchemaIamPolicyArrayOutput
	ToSchemaIamPolicyArrayOutputWithContext(context.Context) SchemaIamPolicyArrayOutput
}

SchemaIamPolicyArrayInput is an input type that accepts SchemaIamPolicyArray and SchemaIamPolicyArrayOutput values. You can construct a concrete instance of `SchemaIamPolicyArrayInput` via:

SchemaIamPolicyArray{ SchemaIamPolicyArgs{...} }

type SchemaIamPolicyArrayOutput added in v7.1.0

type SchemaIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (SchemaIamPolicyArrayOutput) ElementType added in v7.1.0

func (SchemaIamPolicyArrayOutput) ElementType() reflect.Type

func (SchemaIamPolicyArrayOutput) Index added in v7.1.0

func (SchemaIamPolicyArrayOutput) ToSchemaIamPolicyArrayOutput added in v7.1.0

func (o SchemaIamPolicyArrayOutput) ToSchemaIamPolicyArrayOutput() SchemaIamPolicyArrayOutput

func (SchemaIamPolicyArrayOutput) ToSchemaIamPolicyArrayOutputWithContext added in v7.1.0

func (o SchemaIamPolicyArrayOutput) ToSchemaIamPolicyArrayOutputWithContext(ctx context.Context) SchemaIamPolicyArrayOutput

type SchemaIamPolicyInput added in v7.1.0

type SchemaIamPolicyInput interface {
	pulumi.Input

	ToSchemaIamPolicyOutput() SchemaIamPolicyOutput
	ToSchemaIamPolicyOutputWithContext(ctx context.Context) SchemaIamPolicyOutput
}

type SchemaIamPolicyMap added in v7.1.0

type SchemaIamPolicyMap map[string]SchemaIamPolicyInput

func (SchemaIamPolicyMap) ElementType added in v7.1.0

func (SchemaIamPolicyMap) ElementType() reflect.Type

func (SchemaIamPolicyMap) ToSchemaIamPolicyMapOutput added in v7.1.0

func (i SchemaIamPolicyMap) ToSchemaIamPolicyMapOutput() SchemaIamPolicyMapOutput

func (SchemaIamPolicyMap) ToSchemaIamPolicyMapOutputWithContext added in v7.1.0

func (i SchemaIamPolicyMap) ToSchemaIamPolicyMapOutputWithContext(ctx context.Context) SchemaIamPolicyMapOutput

type SchemaIamPolicyMapInput added in v7.1.0

type SchemaIamPolicyMapInput interface {
	pulumi.Input

	ToSchemaIamPolicyMapOutput() SchemaIamPolicyMapOutput
	ToSchemaIamPolicyMapOutputWithContext(context.Context) SchemaIamPolicyMapOutput
}

SchemaIamPolicyMapInput is an input type that accepts SchemaIamPolicyMap and SchemaIamPolicyMapOutput values. You can construct a concrete instance of `SchemaIamPolicyMapInput` via:

SchemaIamPolicyMap{ "key": SchemaIamPolicyArgs{...} }

type SchemaIamPolicyMapOutput added in v7.1.0

type SchemaIamPolicyMapOutput struct{ *pulumi.OutputState }

func (SchemaIamPolicyMapOutput) ElementType added in v7.1.0

func (SchemaIamPolicyMapOutput) ElementType() reflect.Type

func (SchemaIamPolicyMapOutput) MapIndex added in v7.1.0

func (SchemaIamPolicyMapOutput) ToSchemaIamPolicyMapOutput added in v7.1.0

func (o SchemaIamPolicyMapOutput) ToSchemaIamPolicyMapOutput() SchemaIamPolicyMapOutput

func (SchemaIamPolicyMapOutput) ToSchemaIamPolicyMapOutputWithContext added in v7.1.0

func (o SchemaIamPolicyMapOutput) ToSchemaIamPolicyMapOutputWithContext(ctx context.Context) SchemaIamPolicyMapOutput

type SchemaIamPolicyOutput added in v7.1.0

type SchemaIamPolicyOutput struct{ *pulumi.OutputState }

func (SchemaIamPolicyOutput) ElementType added in v7.1.0

func (SchemaIamPolicyOutput) ElementType() reflect.Type

func (SchemaIamPolicyOutput) Etag added in v7.1.0

(Computed) The etag of the IAM policy.

func (SchemaIamPolicyOutput) PolicyData added in v7.1.0

func (o SchemaIamPolicyOutput) PolicyData() pulumi.StringOutput

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

func (SchemaIamPolicyOutput) Project added in v7.1.0

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

func (SchemaIamPolicyOutput) Schema added in v7.1.0

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

func (SchemaIamPolicyOutput) ToSchemaIamPolicyOutput added in v7.1.0

func (o SchemaIamPolicyOutput) ToSchemaIamPolicyOutput() SchemaIamPolicyOutput

func (SchemaIamPolicyOutput) ToSchemaIamPolicyOutputWithContext added in v7.1.0

func (o SchemaIamPolicyOutput) ToSchemaIamPolicyOutputWithContext(ctx context.Context) SchemaIamPolicyOutput

type SchemaIamPolicyState added in v7.1.0

type SchemaIamPolicyState 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
	Schema pulumi.StringPtrInput
}

func (SchemaIamPolicyState) ElementType added in v7.1.0

func (SchemaIamPolicyState) ElementType() reflect.Type

type SchemaInput

type SchemaInput interface {
	pulumi.Input

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

type SchemaMap

type SchemaMap map[string]SchemaInput

func (SchemaMap) ElementType

func (SchemaMap) ElementType() reflect.Type

func (SchemaMap) ToSchemaMapOutput

func (i SchemaMap) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMap) ToSchemaMapOutputWithContext

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

type SchemaMapInput

type SchemaMapInput interface {
	pulumi.Input

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

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

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

type SchemaMapOutput

type SchemaMapOutput struct{ *pulumi.OutputState }

func (SchemaMapOutput) ElementType

func (SchemaMapOutput) ElementType() reflect.Type

func (SchemaMapOutput) MapIndex

func (SchemaMapOutput) ToSchemaMapOutput

func (o SchemaMapOutput) ToSchemaMapOutput() SchemaMapOutput

func (SchemaMapOutput) ToSchemaMapOutputWithContext

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

type SchemaOutput

type SchemaOutput struct{ *pulumi.OutputState }

func (SchemaOutput) Definition

func (o SchemaOutput) Definition() pulumi.StringPtrOutput

The definition of the schema. This should contain a string representing the full definition of the schema that is a valid schema definition of the type specified in type. Changes to the definition commit new [schema revisions](https://cloud.google.com/pubsub/docs/commit-schema-revision). A schema can only have up to 20 revisions, so updates that fail with an error indicating that the limit has been reached require manually [deleting old revisions](https://cloud.google.com/pubsub/docs/delete-schema-revision).

func (SchemaOutput) ElementType

func (SchemaOutput) ElementType() reflect.Type

func (SchemaOutput) Name

func (o SchemaOutput) Name() pulumi.StringOutput

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

***

func (SchemaOutput) Project

func (o SchemaOutput) Project() pulumi.StringOutput

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

func (SchemaOutput) ToSchemaOutput

func (o SchemaOutput) ToSchemaOutput() SchemaOutput

func (SchemaOutput) ToSchemaOutputWithContext

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

func (SchemaOutput) Type

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

type SchemaState

type SchemaState struct {
	// The definition of the schema.
	// This should contain a string representing the full definition of the schema
	// that is a valid schema definition of the type specified in type. Changes
	// to the definition commit new [schema revisions](https://cloud.google.com/pubsub/docs/commit-schema-revision).
	// A schema can only have up to 20 revisions, so updates that fail with an
	// error indicating that the limit has been reached require manually
	// [deleting old revisions](https://cloud.google.com/pubsub/docs/delete-schema-revision).
	Definition pulumi.StringPtrInput
	// The ID to use for the schema, which will become the final component of the schema's resource name.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The type of the schema definition
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `PROTOCOL_BUFFER`, `AVRO`.
	Type pulumi.StringPtrInput
}

func (SchemaState) ElementType

func (SchemaState) ElementType() reflect.Type

type Subscription

type Subscription struct {
	pulumi.CustomResourceState

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:               pulumi.String("example-subscription"),
			Topic:              example.ID(),
			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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: example.ID(),
			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 Dead Letter

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		exampleDeadLetter, err := pubsub.NewTopic(ctx, "example_dead_letter", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic-dead-letter"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: example.ID(),
			DeadLetterPolicy: &pubsub.SubscriptionDeadLetterPolicyArgs{
				DeadLetterTopic:     exampleDeadLetter.ID(),
				MaxDeliveryAttempts: pulumi.Int(10),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Push Bq

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		test, err := bigquery.NewDataset(ctx, "test", &bigquery.DatasetArgs{
			DatasetId: pulumi.String("example_dataset"),
		})
		if err != nil {
			return err
		}
		testTable, err := bigquery.NewTable(ctx, "test", &bigquery.TableArgs{
			DeletionProtection: pulumi.Bool(false),
			TableId:            pulumi.String("example_table"),
			DatasetId:          test.DatasetId,
			Schema: pulumi.String(`[
  {
    "name": "data",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "The data"
  }

] `),

		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: example.ID(),
			BigqueryConfig: &pubsub.SubscriptionBigqueryConfigArgs{
				Table: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {
					project := _args[0].(string)
					datasetId := _args[1].(string)
					tableId := _args[2].(string)
					return fmt.Sprintf("%v.%v.%v", project, datasetId, tableId), nil
				}).(pulumi.StringOutput),
			},
		})
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "viewer", &projects.IAMMemberArgs{
			Project: pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.metadataViewer"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "editor", &projects.IAMMemberArgs{
			Project: pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.dataEditor"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Push Bq Table Schema

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		test, err := bigquery.NewDataset(ctx, "test", &bigquery.DatasetArgs{
			DatasetId: pulumi.String("example_dataset"),
		})
		if err != nil {
			return err
		}
		testTable, err := bigquery.NewTable(ctx, "test", &bigquery.TableArgs{
			DeletionProtection: pulumi.Bool(false),
			TableId:            pulumi.String("example_table"),
			DatasetId:          test.DatasetId,
			Schema: pulumi.String(`[
  {
    "name": "data",
    "type": "STRING",
    "mode": "NULLABLE",
    "description": "The data"
  }

] `),

		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: example.ID(),
			BigqueryConfig: &pubsub.SubscriptionBigqueryConfigArgs{
				Table: pulumi.All(testTable.Project, testTable.DatasetId, testTable.TableId).ApplyT(func(_args []interface{}) (string, error) {
					project := _args[0].(string)
					datasetId := _args[1].(string)
					tableId := _args[2].(string)
					return fmt.Sprintf("%v.%v.%v", project, datasetId, tableId), nil
				}).(pulumi.StringOutput),
				UseTableSchema: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "viewer", &projects.IAMMemberArgs{
			Project: pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.metadataViewer"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "editor", &projects.IAMMemberArgs{
			Project: pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.dataEditor"),
			Member:  pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Push Cloudstorage

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := storage.NewBucket(ctx, "example", &storage.BucketArgs{
			Name:                     pulumi.String("example-bucket"),
			Location:                 pulumi.String("US"),
			UniformBucketLevelAccess: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		exampleTopic, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: exampleTopic.ID(),
			CloudStorageConfig: &pubsub.SubscriptionCloudStorageConfigArgs{
				Bucket:         example.Name,
				FilenamePrefix: pulumi.String("pre-"),
				FilenameSuffix: pulumi.String("-_2605"),
				MaxBytes:       pulumi.Int(1000),
				MaxDuration:    pulumi.String("300s"),
			},
		})
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMMember(ctx, "admin", &storage.BucketIAMMemberArgs{
			Bucket: example.Name,
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Pubsub Subscription Push Cloudstorage Avro

```go package main

import (

"fmt"

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := storage.NewBucket(ctx, "example", &storage.BucketArgs{
			Name:                     pulumi.String("example-bucket"),
			Location:                 pulumi.String("US"),
			UniformBucketLevelAccess: pulumi.Bool(true),
		})
		if err != nil {
			return err
		}
		exampleTopic, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
		})
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscription(ctx, "example", &pubsub.SubscriptionArgs{
			Name:  pulumi.String("example-subscription"),
			Topic: exampleTopic.ID(),
			CloudStorageConfig: &pubsub.SubscriptionCloudStorageConfigArgs{
				Bucket:         example.Name,
				FilenamePrefix: pulumi.String("pre-"),
				FilenameSuffix: pulumi.String("-_34535"),
				MaxBytes:       pulumi.Int(1000),
				MaxDuration:    pulumi.String("300s"),
				AvroConfig: &pubsub.SubscriptionCloudStorageConfigAvroConfigArgs{
					WriteMetadata: pulumi.Bool(true),
				},
			},
		})
		if err != nil {
			return err
		}
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		_, err = storage.NewBucketIAMMember(ctx, "admin", &storage.BucketIAMMemberArgs{
			Bucket: example.Name,
			Role:   pulumi.String("roles/storage.admin"),
			Member: pulumi.String(fmt.Sprintf("serviceAccount:service-%v@gcp-sa-pubsub.iam.gserviceaccount.com", project.Number)),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Subscription can be imported using any of these accepted formats:

* `projects/{{project}}/subscriptions/{{name}}`

* `{{project}}/{{name}}`

* `{{name}}`

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

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

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

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

func GetSubscription

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

GetSubscription gets an existing Subscription resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSubscription

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

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

func (*Subscription) ElementType

func (*Subscription) ElementType() reflect.Type

func (*Subscription) ToSubscriptionOutput

func (i *Subscription) ToSubscriptionOutput() SubscriptionOutput

func (*Subscription) ToSubscriptionOutputWithContext

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

type SubscriptionArgs

type SubscriptionArgs struct {
	// This value is the maximum time after a subscriber receives a message
	// before the subscriber should acknowledge the message. After message
	// delivery but before the ack deadline expires and before the message is
	// acknowledged, it is an outstanding message and will not be delivered
	// again during that time (on a best-effort basis).
	// For pull subscriptions, this value is used as the initial value for
	// the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using
	// pull. The minimum custom deadline you can specify is 10 seconds. The
	// maximum custom deadline you can specify is 600 seconds (10 minutes).
	// If this parameter is 0, a default value of 10 seconds is used.
	// For push delivery, this value is also used to set the request timeout
	// for the call to the push endpoint.
	// If the subscriber never acknowledges the message, the Pub/Sub system
	// will eventually redeliver the message.
	AckDeadlineSeconds pulumi.IntPtrInput
	// If delivery to BigQuery is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	BigqueryConfig SubscriptionBigqueryConfigPtrInput
	// If delivery to Cloud Storage is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	CloudStorageConfig SubscriptionCloudStorageConfigPtrInput
	// A policy that specifies the conditions for dead lettering messages in
	// this subscription. If deadLetterPolicy is not set, dead lettering
	// is disabled.
	// The Cloud Pub/Sub service account associated with this subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Acknowledge() messages on this subscription.
	// Structure is documented below.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// If `true`, Pub/Sub provides the following guarantees for the delivery
	// of a message with a given value of messageId on this Subscriptions':
	// - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
	// - An acknowledged message will not be resent to a subscriber.
	//   Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery`
	//   is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values
	EnableExactlyOnceDelivery pulumi.BoolPtrInput
	// If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to
	// the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
	// may be delivered in any order.
	EnableMessageOrdering pulumi.BoolPtrInput
	// A policy that specifies the conditions for this subscription's expiration.
	// A subscription is considered active as long as any connected subscriber
	// is successfully consuming messages from the subscription or is issuing
	// operations on the subscription. If expirationPolicy is not set, a default
	// policy with ttl of 31 days will be used.  If it is set but ttl is "", the
	// resource never expires.  The minimum allowed value for expirationPolicy.ttl
	// is 1 day.
	// Structure is documented below.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// The subscription only delivers the messages that match the filter.
	// Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
	// by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
	// you can't modify the filter.
	Filter pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	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, of the form projects/{project}/topics/{{name}}
	// (as in the id property of a google_pubsub_topic), or just a topic name if
	// the topic is in the same project as the subscription.
	//
	// ***
	Topic pulumi.StringInput
}

The set of arguments for constructing a Subscription resource.

func (SubscriptionArgs) ElementType

func (SubscriptionArgs) ElementType() reflect.Type

type SubscriptionArray

type SubscriptionArray []SubscriptionInput

func (SubscriptionArray) ElementType

func (SubscriptionArray) ElementType() reflect.Type

func (SubscriptionArray) ToSubscriptionArrayOutput

func (i SubscriptionArray) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArray) ToSubscriptionArrayOutputWithContext

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

type SubscriptionArrayInput

type SubscriptionArrayInput interface {
	pulumi.Input

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

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

SubscriptionArray{ SubscriptionArgs{...} }

type SubscriptionArrayOutput

type SubscriptionArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionArrayOutput) ElementType

func (SubscriptionArrayOutput) ElementType() reflect.Type

func (SubscriptionArrayOutput) Index

func (SubscriptionArrayOutput) ToSubscriptionArrayOutput

func (o SubscriptionArrayOutput) ToSubscriptionArrayOutput() SubscriptionArrayOutput

func (SubscriptionArrayOutput) ToSubscriptionArrayOutputWithContext

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

type SubscriptionBigqueryConfig

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

type SubscriptionBigqueryConfigArgs

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

func (SubscriptionBigqueryConfigArgs) ElementType

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutput

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutput() SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigOutputWithContext

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

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutput

func (i SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigArgs) ToSubscriptionBigqueryConfigPtrOutputWithContext

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

type SubscriptionBigqueryConfigInput

type SubscriptionBigqueryConfigInput interface {
	pulumi.Input

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

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

SubscriptionBigqueryConfigArgs{...}

type SubscriptionBigqueryConfigOutput

type SubscriptionBigqueryConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionBigqueryConfigOutput) DropUnknownFields

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

func (SubscriptionBigqueryConfigOutput) ElementType

func (SubscriptionBigqueryConfigOutput) Table

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

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutput

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutput() SubscriptionBigqueryConfigOutput

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigOutputWithContext

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

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutput

func (o SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext

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

func (SubscriptionBigqueryConfigOutput) UseTableSchema added in v7.7.1

When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages must be published in JSON format. Only one of useTopicSchema and useTableSchema can be set.

func (SubscriptionBigqueryConfigOutput) UseTopicSchema

When true, use the topic's schema as the columns to write to in BigQuery, if it exists. Only one of useTopicSchema and useTableSchema can be set.

func (SubscriptionBigqueryConfigOutput) WriteMetadata

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

type SubscriptionBigqueryConfigPtrInput

type SubscriptionBigqueryConfigPtrInput interface {
	pulumi.Input

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

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

        SubscriptionBigqueryConfigArgs{...}

or:

        nil

type SubscriptionBigqueryConfigPtrOutput

type SubscriptionBigqueryConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionBigqueryConfigPtrOutput) DropUnknownFields

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

func (SubscriptionBigqueryConfigPtrOutput) Elem

func (SubscriptionBigqueryConfigPtrOutput) ElementType

func (SubscriptionBigqueryConfigPtrOutput) Table

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

func (SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutput

func (o SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutput() SubscriptionBigqueryConfigPtrOutput

func (SubscriptionBigqueryConfigPtrOutput) ToSubscriptionBigqueryConfigPtrOutputWithContext

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

func (SubscriptionBigqueryConfigPtrOutput) UseTableSchema added in v7.7.1

When true, use the BigQuery table's schema as the columns to write to in BigQuery. Messages must be published in JSON format. Only one of useTopicSchema and useTableSchema can be set.

func (SubscriptionBigqueryConfigPtrOutput) UseTopicSchema

When true, use the topic's schema as the columns to write to in BigQuery, if it exists. Only one of useTopicSchema and useTableSchema can be set.

func (SubscriptionBigqueryConfigPtrOutput) WriteMetadata

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

type SubscriptionCloudStorageConfig

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

type SubscriptionCloudStorageConfigArgs

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

func (SubscriptionCloudStorageConfigArgs) ElementType

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutput

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutput() SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigOutputWithContext

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

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutput

func (i SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigArgs) ToSubscriptionCloudStorageConfigPtrOutputWithContext

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

type SubscriptionCloudStorageConfigAvroConfig

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

type SubscriptionCloudStorageConfigAvroConfigArgs

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

func (SubscriptionCloudStorageConfigAvroConfigArgs) ElementType

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutput

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutput() SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext

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

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput

func (i SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigArgs) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext

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

type SubscriptionCloudStorageConfigAvroConfigInput

type SubscriptionCloudStorageConfigAvroConfigInput interface {
	pulumi.Input

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

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

SubscriptionCloudStorageConfigAvroConfigArgs{...}

type SubscriptionCloudStorageConfigAvroConfigOutput

type SubscriptionCloudStorageConfigAvroConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigAvroConfigOutput) ElementType

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutput

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutput() SubscriptionCloudStorageConfigAvroConfigOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigOutputWithContext

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

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput

func (o SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext

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

func (SubscriptionCloudStorageConfigAvroConfigOutput) WriteMetadata

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

type SubscriptionCloudStorageConfigAvroConfigPtrInput

type SubscriptionCloudStorageConfigAvroConfigPtrInput interface {
	pulumi.Input

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

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

        SubscriptionCloudStorageConfigAvroConfigArgs{...}

or:

        nil

type SubscriptionCloudStorageConfigAvroConfigPtrOutput

type SubscriptionCloudStorageConfigAvroConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) Elem

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ElementType

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput

func (o SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutput() SubscriptionCloudStorageConfigAvroConfigPtrOutput

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) ToSubscriptionCloudStorageConfigAvroConfigPtrOutputWithContext

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

func (SubscriptionCloudStorageConfigAvroConfigPtrOutput) WriteMetadata

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

type SubscriptionCloudStorageConfigInput

type SubscriptionCloudStorageConfigInput interface {
	pulumi.Input

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

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

SubscriptionCloudStorageConfigArgs{...}

type SubscriptionCloudStorageConfigOutput

type SubscriptionCloudStorageConfigOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigOutput) AvroConfig

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

func (SubscriptionCloudStorageConfigOutput) Bucket

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

func (SubscriptionCloudStorageConfigOutput) ElementType

func (SubscriptionCloudStorageConfigOutput) FilenamePrefix

User-provided prefix for Cloud Storage filename.

func (SubscriptionCloudStorageConfigOutput) FilenameSuffix

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

func (SubscriptionCloudStorageConfigOutput) MaxBytes

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

func (SubscriptionCloudStorageConfigOutput) MaxDuration

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

func (SubscriptionCloudStorageConfigOutput) State

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

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutput

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutput() SubscriptionCloudStorageConfigOutput

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigOutputWithContext

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

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutput

func (o SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext

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

type SubscriptionCloudStorageConfigPtrInput

type SubscriptionCloudStorageConfigPtrInput interface {
	pulumi.Input

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

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

        SubscriptionCloudStorageConfigArgs{...}

or:

        nil

type SubscriptionCloudStorageConfigPtrOutput

type SubscriptionCloudStorageConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionCloudStorageConfigPtrOutput) AvroConfig

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

func (SubscriptionCloudStorageConfigPtrOutput) Bucket

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

func (SubscriptionCloudStorageConfigPtrOutput) Elem

func (SubscriptionCloudStorageConfigPtrOutput) ElementType

func (SubscriptionCloudStorageConfigPtrOutput) FilenamePrefix

User-provided prefix for Cloud Storage filename.

func (SubscriptionCloudStorageConfigPtrOutput) FilenameSuffix

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

func (SubscriptionCloudStorageConfigPtrOutput) MaxBytes

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

func (SubscriptionCloudStorageConfigPtrOutput) MaxDuration

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

func (SubscriptionCloudStorageConfigPtrOutput) State

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

func (SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutput

func (o SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutput() SubscriptionCloudStorageConfigPtrOutput

func (SubscriptionCloudStorageConfigPtrOutput) ToSubscriptionCloudStorageConfigPtrOutputWithContext

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

type SubscriptionDeadLetterPolicy

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

type SubscriptionDeadLetterPolicyArgs

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

func (SubscriptionDeadLetterPolicyArgs) ElementType

func (SubscriptionDeadLetterPolicyArgs) 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 set to "", the associated resource never expires.
	// A duration in seconds with up to nine fractional digits, terminated by 's'.
	// Example - "3.5s".
	Ttl string `pulumi:"ttl"`
}

type SubscriptionExpirationPolicyArgs

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

func (SubscriptionExpirationPolicyArgs) ElementType

func (SubscriptionExpirationPolicyArgs) 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 set to "", the associated resource never expires. A duration in seconds with up to nine fractional digits, terminated by 's'. Example - "3.5s".

type SubscriptionExpirationPolicyPtrInput

type SubscriptionExpirationPolicyPtrInput interface {
	pulumi.Input

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

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

        SubscriptionExpirationPolicyArgs{...}

or:

        nil

type SubscriptionExpirationPolicyPtrOutput

type SubscriptionExpirationPolicyPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionExpirationPolicyPtrOutput) Elem

func (SubscriptionExpirationPolicyPtrOutput) ElementType

func (SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutput

func (o SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutput() SubscriptionExpirationPolicyPtrOutput

func (SubscriptionExpirationPolicyPtrOutput) ToSubscriptionExpirationPolicyPtrOutputWithContext

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

func (SubscriptionExpirationPolicyPtrOutput) Ttl

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

type SubscriptionIAMBinding

type SubscriptionIAMBinding struct {
	pulumi.CustomResourceState

	Condition SubscriptionIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the subscription's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Pubsub Subscription resource. For example:

* `"projects/{{project_id}}/subscriptions/{{subscription}}"`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = "projects/{{project_id}}/subscriptions/{{subscription}}"

to = google_pubsub_subscription_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:pubsub/subscriptionIAMBinding:SubscriptionIAMBinding default projects/{{project_id}}/subscriptions/{{subscription}} ```

func GetSubscriptionIAMBinding

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

GetSubscriptionIAMBinding gets an existing SubscriptionIAMBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSubscriptionIAMBinding

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

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

func (*SubscriptionIAMBinding) ElementType

func (*SubscriptionIAMBinding) ElementType() reflect.Type

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput

func (i *SubscriptionIAMBinding) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (*SubscriptionIAMBinding) ToSubscriptionIAMBindingOutputWithContext

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

type SubscriptionIAMBindingArgs

type SubscriptionIAMBindingArgs struct {
	Condition SubscriptionIAMBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Members pulumi.StringArrayInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMBinding resource.

func (SubscriptionIAMBindingArgs) ElementType

func (SubscriptionIAMBindingArgs) ElementType() reflect.Type

type SubscriptionIAMBindingArray

type SubscriptionIAMBindingArray []SubscriptionIAMBindingInput

func (SubscriptionIAMBindingArray) ElementType

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput

func (i SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArray) ToSubscriptionIAMBindingArrayOutputWithContext

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

type SubscriptionIAMBindingArrayInput

type SubscriptionIAMBindingArrayInput interface {
	pulumi.Input

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

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

SubscriptionIAMBindingArray{ SubscriptionIAMBindingArgs{...} }

type SubscriptionIAMBindingArrayOutput

type SubscriptionIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingArrayOutput) ElementType

func (SubscriptionIAMBindingArrayOutput) Index

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput

func (o SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutput() SubscriptionIAMBindingArrayOutput

func (SubscriptionIAMBindingArrayOutput) ToSubscriptionIAMBindingArrayOutputWithContext

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

type SubscriptionIAMBindingCondition

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

type SubscriptionIAMBindingConditionArgs

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

func (SubscriptionIAMBindingConditionArgs) ElementType

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutput

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutput() SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionOutputWithContext

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

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutput

func (i SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionArgs) ToSubscriptionIAMBindingConditionPtrOutputWithContext

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

type SubscriptionIAMBindingConditionInput

type SubscriptionIAMBindingConditionInput interface {
	pulumi.Input

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

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

SubscriptionIAMBindingConditionArgs{...}

type SubscriptionIAMBindingConditionOutput

type SubscriptionIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingConditionOutput) Description

func (SubscriptionIAMBindingConditionOutput) ElementType

func (SubscriptionIAMBindingConditionOutput) Expression

func (SubscriptionIAMBindingConditionOutput) Title

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutput

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutput() SubscriptionIAMBindingConditionOutput

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionOutputWithContext

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

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutput

func (o SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext

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

type SubscriptionIAMBindingConditionPtrInput

type SubscriptionIAMBindingConditionPtrInput interface {
	pulumi.Input

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

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

        SubscriptionIAMBindingConditionArgs{...}

or:

        nil

type SubscriptionIAMBindingConditionPtrOutput

type SubscriptionIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingConditionPtrOutput) Description

func (SubscriptionIAMBindingConditionPtrOutput) Elem

func (SubscriptionIAMBindingConditionPtrOutput) ElementType

func (SubscriptionIAMBindingConditionPtrOutput) Expression

func (SubscriptionIAMBindingConditionPtrOutput) Title

func (SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutput

func (o SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutput() SubscriptionIAMBindingConditionPtrOutput

func (SubscriptionIAMBindingConditionPtrOutput) ToSubscriptionIAMBindingConditionPtrOutputWithContext

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

type SubscriptionIAMBindingInput

type SubscriptionIAMBindingInput interface {
	pulumi.Input

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

type SubscriptionIAMBindingMap

type SubscriptionIAMBindingMap map[string]SubscriptionIAMBindingInput

func (SubscriptionIAMBindingMap) ElementType

func (SubscriptionIAMBindingMap) ElementType() reflect.Type

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput

func (i SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMap) ToSubscriptionIAMBindingMapOutputWithContext

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

type SubscriptionIAMBindingMapInput

type SubscriptionIAMBindingMapInput interface {
	pulumi.Input

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

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

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

type SubscriptionIAMBindingMapOutput

type SubscriptionIAMBindingMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingMapOutput) ElementType

func (SubscriptionIAMBindingMapOutput) MapIndex

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput

func (o SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutput() SubscriptionIAMBindingMapOutput

func (SubscriptionIAMBindingMapOutput) ToSubscriptionIAMBindingMapOutputWithContext

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

type SubscriptionIAMBindingOutput

type SubscriptionIAMBindingOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMBindingOutput) Condition

func (SubscriptionIAMBindingOutput) ElementType

func (SubscriptionIAMBindingOutput) Etag

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

func (SubscriptionIAMBindingOutput) Members

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

func (SubscriptionIAMBindingOutput) Project

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

func (SubscriptionIAMBindingOutput) Role

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

func (SubscriptionIAMBindingOutput) Subscription

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

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput

func (o SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutput() SubscriptionIAMBindingOutput

func (SubscriptionIAMBindingOutput) ToSubscriptionIAMBindingOutputWithContext

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

type SubscriptionIAMBindingState

type SubscriptionIAMBindingState struct {
	Condition SubscriptionIAMBindingConditionPtrInput
	// (Computed) The etag of the subscription's IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Pubsub Subscription resource. For example:

* `"projects/{{project_id}}/subscriptions/{{subscription}}"`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = "projects/{{project_id}}/subscriptions/{{subscription}}"

to = google_pubsub_subscription_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:pubsub/subscriptionIAMMember:SubscriptionIAMMember default projects/{{project_id}}/subscriptions/{{subscription}} ```

func GetSubscriptionIAMMember

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

GetSubscriptionIAMMember gets an existing SubscriptionIAMMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSubscriptionIAMMember

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

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

func (*SubscriptionIAMMember) ElementType

func (*SubscriptionIAMMember) ElementType() reflect.Type

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutput

func (i *SubscriptionIAMMember) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (*SubscriptionIAMMember) ToSubscriptionIAMMemberOutputWithContext

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

type SubscriptionIAMMemberArgs

type SubscriptionIAMMemberArgs struct {
	Condition SubscriptionIAMMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	Member pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMMember resource.

func (SubscriptionIAMMemberArgs) ElementType

func (SubscriptionIAMMemberArgs) ElementType() reflect.Type

type SubscriptionIAMMemberArray

type SubscriptionIAMMemberArray []SubscriptionIAMMemberInput

func (SubscriptionIAMMemberArray) ElementType

func (SubscriptionIAMMemberArray) ElementType() reflect.Type

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput

func (i SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArray) ToSubscriptionIAMMemberArrayOutputWithContext

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

type SubscriptionIAMMemberArrayInput

type SubscriptionIAMMemberArrayInput interface {
	pulumi.Input

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

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

SubscriptionIAMMemberArray{ SubscriptionIAMMemberArgs{...} }

type SubscriptionIAMMemberArrayOutput

type SubscriptionIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberArrayOutput) ElementType

func (SubscriptionIAMMemberArrayOutput) Index

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput

func (o SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutput() SubscriptionIAMMemberArrayOutput

func (SubscriptionIAMMemberArrayOutput) ToSubscriptionIAMMemberArrayOutputWithContext

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

type SubscriptionIAMMemberCondition

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

type SubscriptionIAMMemberConditionArgs

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

func (SubscriptionIAMMemberConditionArgs) ElementType

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutput

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutput() SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionOutputWithContext

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

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutput

func (i SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionArgs) ToSubscriptionIAMMemberConditionPtrOutputWithContext

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

type SubscriptionIAMMemberConditionInput

type SubscriptionIAMMemberConditionInput interface {
	pulumi.Input

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

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

SubscriptionIAMMemberConditionArgs{...}

type SubscriptionIAMMemberConditionOutput

type SubscriptionIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberConditionOutput) Description

func (SubscriptionIAMMemberConditionOutput) ElementType

func (SubscriptionIAMMemberConditionOutput) Expression

func (SubscriptionIAMMemberConditionOutput) Title

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutput

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutput() SubscriptionIAMMemberConditionOutput

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionOutputWithContext

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

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutput

func (o SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext

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

type SubscriptionIAMMemberConditionPtrInput

type SubscriptionIAMMemberConditionPtrInput interface {
	pulumi.Input

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

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

        SubscriptionIAMMemberConditionArgs{...}

or:

        nil

type SubscriptionIAMMemberConditionPtrOutput

type SubscriptionIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberConditionPtrOutput) Description

func (SubscriptionIAMMemberConditionPtrOutput) Elem

func (SubscriptionIAMMemberConditionPtrOutput) ElementType

func (SubscriptionIAMMemberConditionPtrOutput) Expression

func (SubscriptionIAMMemberConditionPtrOutput) Title

func (SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutput

func (o SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutput() SubscriptionIAMMemberConditionPtrOutput

func (SubscriptionIAMMemberConditionPtrOutput) ToSubscriptionIAMMemberConditionPtrOutputWithContext

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

type SubscriptionIAMMemberInput

type SubscriptionIAMMemberInput interface {
	pulumi.Input

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

type SubscriptionIAMMemberMap

type SubscriptionIAMMemberMap map[string]SubscriptionIAMMemberInput

func (SubscriptionIAMMemberMap) ElementType

func (SubscriptionIAMMemberMap) ElementType() reflect.Type

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput

func (i SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMap) ToSubscriptionIAMMemberMapOutputWithContext

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

type SubscriptionIAMMemberMapInput

type SubscriptionIAMMemberMapInput interface {
	pulumi.Input

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

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

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

type SubscriptionIAMMemberMapOutput

type SubscriptionIAMMemberMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberMapOutput) ElementType

func (SubscriptionIAMMemberMapOutput) MapIndex

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput

func (o SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutput() SubscriptionIAMMemberMapOutput

func (SubscriptionIAMMemberMapOutput) ToSubscriptionIAMMemberMapOutputWithContext

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

type SubscriptionIAMMemberOutput

type SubscriptionIAMMemberOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMMemberOutput) Condition

func (SubscriptionIAMMemberOutput) ElementType

func (SubscriptionIAMMemberOutput) Etag

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

func (SubscriptionIAMMemberOutput) Member

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

func (SubscriptionIAMMemberOutput) Project

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

func (SubscriptionIAMMemberOutput) Role

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

func (SubscriptionIAMMemberOutput) Subscription

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

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput

func (o SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutput() SubscriptionIAMMemberOutput

func (SubscriptionIAMMemberOutput) ToSubscriptionIAMMemberOutputWithContext

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

type SubscriptionIAMMemberState

type SubscriptionIAMMemberState struct {
	Condition SubscriptionIAMMemberConditionPtrInput
	// (Computed) The etag of the subscription's IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	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/v7/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewSubscriptionIAMPolicy(ctx, "editor", &pubsub.SubscriptionIAMPolicyArgs{
			Subscription: pulumi.String("your-subscription-name"),
			PolicyData:   pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_pubsub\_subscription\_iam\_binding

```go package main

import (

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

)

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

```

## google\_pubsub\_subscription\_iam\_member

```go package main

import (

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

)

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

```

## Import

### Importing IAM policies

IAM policy imports use the identifier of the Pubsub Subscription resource. For example:

* `"projects/{{project_id}}/subscriptions/{{subscription}}"`

An `import` block (Terraform v1.5.0 and later) can be used to import IAM policies:

tf

import {

id = "projects/{{project_id}}/subscriptions/{{subscription}}"

to = google_pubsub_subscription_iam_policy.default

}

The `pulumi import` command can also be used:

```sh $ pulumi import gcp:pubsub/subscriptionIAMPolicy:SubscriptionIAMPolicy default projects/{{project_id}}/subscriptions/{{subscription}} ```

func GetSubscriptionIAMPolicy

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

GetSubscriptionIAMPolicy gets an existing SubscriptionIAMPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSubscriptionIAMPolicy

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

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

func (*SubscriptionIAMPolicy) ElementType

func (*SubscriptionIAMPolicy) ElementType() reflect.Type

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput

func (i *SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (*SubscriptionIAMPolicy) ToSubscriptionIAMPolicyOutputWithContext

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

type SubscriptionIAMPolicyArgs

type SubscriptionIAMPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	//
	// ***
	PolicyData pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMPolicy resource.

func (SubscriptionIAMPolicyArgs) ElementType

func (SubscriptionIAMPolicyArgs) ElementType() reflect.Type

type SubscriptionIAMPolicyArray

type SubscriptionIAMPolicyArray []SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyArray) ElementType

func (SubscriptionIAMPolicyArray) ElementType() reflect.Type

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput

func (i SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArray) ToSubscriptionIAMPolicyArrayOutputWithContext

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

type SubscriptionIAMPolicyArrayInput

type SubscriptionIAMPolicyArrayInput interface {
	pulumi.Input

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

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

SubscriptionIAMPolicyArray{ SubscriptionIAMPolicyArgs{...} }

type SubscriptionIAMPolicyArrayOutput

type SubscriptionIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyArrayOutput) ElementType

func (SubscriptionIAMPolicyArrayOutput) Index

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput

func (o SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutput() SubscriptionIAMPolicyArrayOutput

func (SubscriptionIAMPolicyArrayOutput) ToSubscriptionIAMPolicyArrayOutputWithContext

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

type SubscriptionIAMPolicyInput

type SubscriptionIAMPolicyInput interface {
	pulumi.Input

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

type SubscriptionIAMPolicyMap

type SubscriptionIAMPolicyMap map[string]SubscriptionIAMPolicyInput

func (SubscriptionIAMPolicyMap) ElementType

func (SubscriptionIAMPolicyMap) ElementType() reflect.Type

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput

func (i SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMap) ToSubscriptionIAMPolicyMapOutputWithContext

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

type SubscriptionIAMPolicyMapInput

type SubscriptionIAMPolicyMapInput interface {
	pulumi.Input

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

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

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

type SubscriptionIAMPolicyMapOutput

type SubscriptionIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyMapOutput) ElementType

func (SubscriptionIAMPolicyMapOutput) MapIndex

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput

func (o SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutput() SubscriptionIAMPolicyMapOutput

func (SubscriptionIAMPolicyMapOutput) ToSubscriptionIAMPolicyMapOutputWithContext

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

type SubscriptionIAMPolicyOutput

type SubscriptionIAMPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionIAMPolicyOutput) ElementType

func (SubscriptionIAMPolicyOutput) Etag

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

func (SubscriptionIAMPolicyOutput) PolicyData

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

***

func (SubscriptionIAMPolicyOutput) Project

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

func (SubscriptionIAMPolicyOutput) Subscription

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

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput

func (o SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutput() SubscriptionIAMPolicyOutput

func (SubscriptionIAMPolicyOutput) ToSubscriptionIAMPolicyOutputWithContext

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

type SubscriptionIAMPolicyState

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

func (SubscriptionIAMPolicyState) ElementType

func (SubscriptionIAMPolicyState) ElementType() reflect.Type

type SubscriptionInput

type SubscriptionInput interface {
	pulumi.Input

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

type SubscriptionMap

type SubscriptionMap map[string]SubscriptionInput

func (SubscriptionMap) ElementType

func (SubscriptionMap) ElementType() reflect.Type

func (SubscriptionMap) ToSubscriptionMapOutput

func (i SubscriptionMap) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMap) ToSubscriptionMapOutputWithContext

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

type SubscriptionMapInput

type SubscriptionMapInput interface {
	pulumi.Input

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

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

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

type SubscriptionMapOutput

type SubscriptionMapOutput struct{ *pulumi.OutputState }

func (SubscriptionMapOutput) ElementType

func (SubscriptionMapOutput) ElementType() reflect.Type

func (SubscriptionMapOutput) MapIndex

func (SubscriptionMapOutput) ToSubscriptionMapOutput

func (o SubscriptionMapOutput) ToSubscriptionMapOutput() SubscriptionMapOutput

func (SubscriptionMapOutput) ToSubscriptionMapOutputWithContext

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

type SubscriptionOutput

type SubscriptionOutput struct{ *pulumi.OutputState }

func (SubscriptionOutput) AckDeadlineSeconds

func (o SubscriptionOutput) AckDeadlineSeconds() pulumi.IntOutput

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

func (SubscriptionOutput) BigqueryConfig

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

func (SubscriptionOutput) CloudStorageConfig

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

func (SubscriptionOutput) DeadLetterPolicy

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

func (SubscriptionOutput) EffectiveLabels

func (o SubscriptionOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (SubscriptionOutput) ElementType

func (SubscriptionOutput) ElementType() reflect.Type

func (SubscriptionOutput) EnableExactlyOnceDelivery

func (o SubscriptionOutput) EnableExactlyOnceDelivery() pulumi.BoolPtrOutput

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

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

func (SubscriptionOutput) EnableMessageOrdering

func (o SubscriptionOutput) EnableMessageOrdering() pulumi.BoolPtrOutput

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

func (SubscriptionOutput) ExpirationPolicy

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

func (SubscriptionOutput) Filter

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

func (SubscriptionOutput) Labels

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

**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (SubscriptionOutput) MessageRetentionDuration

func (o SubscriptionOutput) MessageRetentionDuration() pulumi.StringPtrOutput

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

func (SubscriptionOutput) Name

Name of the subscription.

func (SubscriptionOutput) Project

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

func (SubscriptionOutput) PulumiLabels

func (o SubscriptionOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (SubscriptionOutput) PushConfig

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

func (SubscriptionOutput) RetainAckedMessages

func (o SubscriptionOutput) RetainAckedMessages() pulumi.BoolPtrOutput

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

func (SubscriptionOutput) RetryPolicy

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

func (SubscriptionOutput) ToSubscriptionOutput

func (o SubscriptionOutput) ToSubscriptionOutput() SubscriptionOutput

func (SubscriptionOutput) ToSubscriptionOutputWithContext

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

func (SubscriptionOutput) Topic

A reference to a Topic resource, of the form projects/{project}/topics/{{name}} (as in the id property of a google_pubsub_topic), or just a topic name if the topic is in the same project as the subscription.

***

type SubscriptionPushConfig

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

type SubscriptionPushConfigArgs

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

func (SubscriptionPushConfigArgs) ElementType

func (SubscriptionPushConfigArgs) ElementType() reflect.Type

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutput

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutput() SubscriptionPushConfigOutput

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigOutputWithContext

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

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutput

func (i SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigArgs) ToSubscriptionPushConfigPtrOutputWithContext

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

type SubscriptionPushConfigInput

type SubscriptionPushConfigInput interface {
	pulumi.Input

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

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

SubscriptionPushConfigArgs{...}

type SubscriptionPushConfigNoWrapper

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

type SubscriptionPushConfigNoWrapperArgs

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

func (SubscriptionPushConfigNoWrapperArgs) ElementType

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutput

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutput() SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperOutputWithContext

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

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutput

func (i SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperArgs) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext

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

type SubscriptionPushConfigNoWrapperInput

type SubscriptionPushConfigNoWrapperInput interface {
	pulumi.Input

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

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

SubscriptionPushConfigNoWrapperArgs{...}

type SubscriptionPushConfigNoWrapperOutput

type SubscriptionPushConfigNoWrapperOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigNoWrapperOutput) ElementType

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutput

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutput() SubscriptionPushConfigNoWrapperOutput

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperOutputWithContext

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

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutput

func (o SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext

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

func (SubscriptionPushConfigNoWrapperOutput) WriteMetadata

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

type SubscriptionPushConfigNoWrapperPtrInput

type SubscriptionPushConfigNoWrapperPtrInput interface {
	pulumi.Input

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

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

        SubscriptionPushConfigNoWrapperArgs{...}

or:

        nil

type SubscriptionPushConfigNoWrapperPtrOutput

type SubscriptionPushConfigNoWrapperPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigNoWrapperPtrOutput) Elem

func (SubscriptionPushConfigNoWrapperPtrOutput) ElementType

func (SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutput

func (o SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutput() SubscriptionPushConfigNoWrapperPtrOutput

func (SubscriptionPushConfigNoWrapperPtrOutput) ToSubscriptionPushConfigNoWrapperPtrOutputWithContext

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

func (SubscriptionPushConfigNoWrapperPtrOutput) WriteMetadata

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

type SubscriptionPushConfigOidcToken

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

type SubscriptionPushConfigOidcTokenArgs

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

func (SubscriptionPushConfigOidcTokenArgs) ElementType

func (SubscriptionPushConfigOidcTokenArgs) 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) NoWrapper

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

func (SubscriptionPushConfigOutput) OidcToken

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

func (SubscriptionPushConfigOutput) PushEndpoint

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

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutput

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutput() SubscriptionPushConfigOutput

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigOutputWithContext

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

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutput

func (o SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigOutput) ToSubscriptionPushConfigPtrOutputWithContext

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

type SubscriptionPushConfigPtrInput

type SubscriptionPushConfigPtrInput interface {
	pulumi.Input

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

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

        SubscriptionPushConfigArgs{...}

or:

        nil

type SubscriptionPushConfigPtrOutput

type SubscriptionPushConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigPtrOutput) Attributes

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

func (SubscriptionPushConfigPtrOutput) Elem

func (SubscriptionPushConfigPtrOutput) ElementType

func (SubscriptionPushConfigPtrOutput) NoWrapper

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

func (SubscriptionPushConfigPtrOutput) OidcToken

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

func (SubscriptionPushConfigPtrOutput) PushEndpoint

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

func (SubscriptionPushConfigPtrOutput) 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
	// If delivery to BigQuery is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	BigqueryConfig SubscriptionBigqueryConfigPtrInput
	// If delivery to Cloud Storage is used with this subscription, this field is used to configure it.
	// Either pushConfig, bigQueryConfig or cloudStorageConfig can be set, but not combined.
	// If all three are empty, then the subscriber will pull and ack messages using API methods.
	// Structure is documented below.
	CloudStorageConfig SubscriptionCloudStorageConfigPtrInput
	// A policy that specifies the conditions for dead lettering messages in
	// this subscription. If deadLetterPolicy is not set, dead lettering
	// is disabled.
	// The Cloud Pub/Sub service account associated with this subscription's
	// parent project (i.e.,
	// service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
	// permission to Acknowledge() messages on this subscription.
	// Structure is documented below.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// If `true`, Pub/Sub provides the following guarantees for the delivery
	// of a message with a given value of messageId on this Subscriptions':
	// - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
	// - An acknowledged message will not be resent to a subscriber.
	//   Note that subscribers may still receive multiple copies of a message when `enableExactlyOnceDelivery`
	//   is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values
	EnableExactlyOnceDelivery pulumi.BoolPtrInput
	// If `true`, messages published with the same orderingKey in PubsubMessage will be delivered to
	// the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
	// may be delivered in any order.
	EnableMessageOrdering pulumi.BoolPtrInput
	// A policy that specifies the conditions for this subscription's expiration.
	// A subscription is considered active as long as any connected subscriber
	// is successfully consuming messages from the subscription or is issuing
	// operations on the subscription. If expirationPolicy is not set, a default
	// policy with ttl of 31 days will be used.  If it is set but ttl is "", the
	// resource never expires.  The minimum allowed value for expirationPolicy.ttl
	// is 1 day.
	// Structure is documented below.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// The subscription only delivers the messages that match the filter.
	// Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
	// by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
	// you can't modify the filter.
	Filter pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	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
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// 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, of the form projects/{project}/topics/{{name}}
	// (as in the id property of a google_pubsub_topic), or just a topic name if
	// the topic is in the same project as the subscription.
	//
	// ***
	Topic pulumi.StringPtrInput
}

func (SubscriptionState) ElementType

func (SubscriptionState) ElementType() reflect.Type

type Topic

type Topic struct {
	pulumi.CustomResourceState

	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Settings for ingestion from a data source into this topic.
	// Structure is documented below.
	IngestionDataSourceSettings TopicIngestionDataSourceSettingsPtrOutput `pulumi:"ingestionDataSourceSettings"`
	// 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.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// The rotation period has the format of a decimal number, followed by the
	// letter `s` (seconds). Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrOutput `pulumi:"messageRetentionDuration"`
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyOutput `pulumi:"messageStoragePolicy"`
	// Name of the topic.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsOutput `pulumi:"schemaSettings"`
}

A named resource to which messages are sent by publishers.

To get more information about Topic, see:

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

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

## Example Usage

### Pubsub Topic Basic

```go package main

import (

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

)

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

``` ### Pubsub Topic Cmek

```go package main

import (

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

)

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

``` ### Pubsub Topic Geo Restricted

```go package main

import (

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

)

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

``` ### Pubsub Topic Schema Settings

```go package main

import (

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

)

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

`),

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

``` ### Pubsub Topic Ingestion Kinesis

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopic(ctx, "example", &pubsub.TopicArgs{
			Name: pulumi.String("example-topic"),
			IngestionDataSourceSettings: &pubsub.TopicIngestionDataSourceSettingsArgs{
				AwsKinesis: &pubsub.TopicIngestionDataSourceSettingsAwsKinesisArgs{
					StreamArn:         pulumi.String("arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name"),
					ConsumerArn:       pulumi.String("arn:aws:kinesis:us-west-2:111111111111:stream/fake-stream-name/consumer/consumer-1:1111111111"),
					AwsRoleArn:        pulumi.String("arn:aws:iam::111111111111:role/fake-role-name"),
					GcpServiceAccount: pulumi.String("fake-service-account@fake-gcp-project.iam.gserviceaccount.com"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Topic can be imported using any of these accepted formats:

* `projects/{{project}}/topics/{{name}}`

* `{{project}}/{{name}}`

* `{{name}}`

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

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

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

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

func GetTopic

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

GetTopic gets an existing Topic resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopic

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

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

func (*Topic) ElementType

func (*Topic) ElementType() reflect.Type

func (*Topic) ToTopicOutput

func (i *Topic) ToTopicOutput() TopicOutput

func (*Topic) ToTopicOutputWithContext

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

type TopicArgs

type TopicArgs struct {
	// Settings for ingestion from a data source into this topic.
	// Structure is documented below.
	IngestionDataSourceSettings TopicIngestionDataSourceSettingsPtrInput
	// 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.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// The rotation period has the format of a decimal number, followed by the
	// letter `s` (seconds). Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrInput
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsPtrInput
}

The set of arguments for constructing a Topic resource.

func (TopicArgs) ElementType

func (TopicArgs) ElementType() reflect.Type

type TopicArray

type TopicArray []TopicInput

func (TopicArray) ElementType

func (TopicArray) ElementType() reflect.Type

func (TopicArray) ToTopicArrayOutput

func (i TopicArray) ToTopicArrayOutput() TopicArrayOutput

func (TopicArray) ToTopicArrayOutputWithContext

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

type TopicArrayInput

type TopicArrayInput interface {
	pulumi.Input

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

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

TopicArray{ TopicArgs{...} }

type TopicArrayOutput

type TopicArrayOutput struct{ *pulumi.OutputState }

func (TopicArrayOutput) ElementType

func (TopicArrayOutput) ElementType() reflect.Type

func (TopicArrayOutput) Index

func (TopicArrayOutput) ToTopicArrayOutput

func (o TopicArrayOutput) ToTopicArrayOutput() TopicArrayOutput

func (TopicArrayOutput) ToTopicArrayOutputWithContext

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

type TopicIAMBinding

type TopicIAMBinding struct {
	pulumi.CustomResourceState

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

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

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

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

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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 identifiers: the 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 identifiers: the resource in question and the role, e.g.

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

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

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

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

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

func GetTopicIAMBinding

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

GetTopicIAMBinding gets an existing TopicIAMBinding resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopicIAMBinding

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

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

func (*TopicIAMBinding) ElementType

func (*TopicIAMBinding) ElementType() reflect.Type

func (*TopicIAMBinding) ToTopicIAMBindingOutput

func (i *TopicIAMBinding) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (*TopicIAMBinding) ToTopicIAMBindingOutputWithContext

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

type TopicIAMBindingArgs

type TopicIAMBindingArgs struct {
	Condition TopicIAMBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMBinding resource.

func (TopicIAMBindingArgs) ElementType

func (TopicIAMBindingArgs) ElementType() reflect.Type

type TopicIAMBindingArray

type TopicIAMBindingArray []TopicIAMBindingInput

func (TopicIAMBindingArray) ElementType

func (TopicIAMBindingArray) ElementType() reflect.Type

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutput

func (i TopicIAMBindingArray) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArray) ToTopicIAMBindingArrayOutputWithContext

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

type TopicIAMBindingArrayInput

type TopicIAMBindingArrayInput interface {
	pulumi.Input

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

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

TopicIAMBindingArray{ TopicIAMBindingArgs{...} }

type TopicIAMBindingArrayOutput

type TopicIAMBindingArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingArrayOutput) ElementType

func (TopicIAMBindingArrayOutput) ElementType() reflect.Type

func (TopicIAMBindingArrayOutput) Index

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput

func (o TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutput() TopicIAMBindingArrayOutput

func (TopicIAMBindingArrayOutput) ToTopicIAMBindingArrayOutputWithContext

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

type TopicIAMBindingCondition

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

type TopicIAMBindingConditionArgs

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

func (TopicIAMBindingConditionArgs) ElementType

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutput

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutput() TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionOutputWithContext

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

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutput

func (i TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionArgs) ToTopicIAMBindingConditionPtrOutputWithContext

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

type TopicIAMBindingConditionInput

type TopicIAMBindingConditionInput interface {
	pulumi.Input

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

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

TopicIAMBindingConditionArgs{...}

type TopicIAMBindingConditionOutput

type TopicIAMBindingConditionOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingConditionOutput) Description

func (TopicIAMBindingConditionOutput) ElementType

func (TopicIAMBindingConditionOutput) Expression

func (TopicIAMBindingConditionOutput) Title

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutput

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutput() TopicIAMBindingConditionOutput

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionOutputWithContext

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

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutput

func (o TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionOutput) ToTopicIAMBindingConditionPtrOutputWithContext

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

type TopicIAMBindingConditionPtrInput

type TopicIAMBindingConditionPtrInput interface {
	pulumi.Input

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

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

        TopicIAMBindingConditionArgs{...}

or:

        nil

type TopicIAMBindingConditionPtrOutput

type TopicIAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingConditionPtrOutput) Description

func (TopicIAMBindingConditionPtrOutput) Elem

func (TopicIAMBindingConditionPtrOutput) ElementType

func (TopicIAMBindingConditionPtrOutput) Expression

func (TopicIAMBindingConditionPtrOutput) Title

func (TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutput

func (o TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutput() TopicIAMBindingConditionPtrOutput

func (TopicIAMBindingConditionPtrOutput) ToTopicIAMBindingConditionPtrOutputWithContext

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

type TopicIAMBindingInput

type TopicIAMBindingInput interface {
	pulumi.Input

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

type TopicIAMBindingMap

type TopicIAMBindingMap map[string]TopicIAMBindingInput

func (TopicIAMBindingMap) ElementType

func (TopicIAMBindingMap) ElementType() reflect.Type

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutput

func (i TopicIAMBindingMap) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMap) ToTopicIAMBindingMapOutputWithContext

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

type TopicIAMBindingMapInput

type TopicIAMBindingMapInput interface {
	pulumi.Input

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

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

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

type TopicIAMBindingMapOutput

type TopicIAMBindingMapOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingMapOutput) ElementType

func (TopicIAMBindingMapOutput) ElementType() reflect.Type

func (TopicIAMBindingMapOutput) MapIndex

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput

func (o TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutput() TopicIAMBindingMapOutput

func (TopicIAMBindingMapOutput) ToTopicIAMBindingMapOutputWithContext

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

type TopicIAMBindingOutput

type TopicIAMBindingOutput struct{ *pulumi.OutputState }

func (TopicIAMBindingOutput) Condition

func (TopicIAMBindingOutput) ElementType

func (TopicIAMBindingOutput) ElementType() reflect.Type

func (TopicIAMBindingOutput) Etag

(Computed) The etag of the IAM policy.

func (TopicIAMBindingOutput) Members

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

func (TopicIAMBindingOutput) Project

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.

func (TopicIAMBindingOutput) Role

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

func (TopicIAMBindingOutput) ToTopicIAMBindingOutput

func (o TopicIAMBindingOutput) ToTopicIAMBindingOutput() TopicIAMBindingOutput

func (TopicIAMBindingOutput) ToTopicIAMBindingOutputWithContext

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

func (TopicIAMBindingOutput) Topic

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

type TopicIAMBindingState

type TopicIAMBindingState struct {
	Condition TopicIAMBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// 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"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// 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.

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

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

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

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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 identifiers: the 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 identifiers: the resource in question and the role, e.g.

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

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

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

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

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

func GetTopicIAMMember

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

GetTopicIAMMember gets an existing TopicIAMMember resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopicIAMMember

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

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

func (*TopicIAMMember) ElementType

func (*TopicIAMMember) ElementType() reflect.Type

func (*TopicIAMMember) ToTopicIAMMemberOutput

func (i *TopicIAMMember) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (*TopicIAMMember) ToTopicIAMMemberOutputWithContext

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

type TopicIAMMemberArgs

type TopicIAMMemberArgs struct {
	Condition TopicIAMMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMMember resource.

func (TopicIAMMemberArgs) ElementType

func (TopicIAMMemberArgs) ElementType() reflect.Type

type TopicIAMMemberArray

type TopicIAMMemberArray []TopicIAMMemberInput

func (TopicIAMMemberArray) ElementType

func (TopicIAMMemberArray) ElementType() reflect.Type

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutput

func (i TopicIAMMemberArray) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArray) ToTopicIAMMemberArrayOutputWithContext

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

type TopicIAMMemberArrayInput

type TopicIAMMemberArrayInput interface {
	pulumi.Input

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

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

TopicIAMMemberArray{ TopicIAMMemberArgs{...} }

type TopicIAMMemberArrayOutput

type TopicIAMMemberArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberArrayOutput) ElementType

func (TopicIAMMemberArrayOutput) ElementType() reflect.Type

func (TopicIAMMemberArrayOutput) Index

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput

func (o TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutput() TopicIAMMemberArrayOutput

func (TopicIAMMemberArrayOutput) ToTopicIAMMemberArrayOutputWithContext

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

type TopicIAMMemberCondition

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

type TopicIAMMemberConditionArgs

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

func (TopicIAMMemberConditionArgs) ElementType

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutput

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutput() TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionOutputWithContext

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

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutput

func (i TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionArgs) ToTopicIAMMemberConditionPtrOutputWithContext

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

type TopicIAMMemberConditionInput

type TopicIAMMemberConditionInput interface {
	pulumi.Input

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

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

TopicIAMMemberConditionArgs{...}

type TopicIAMMemberConditionOutput

type TopicIAMMemberConditionOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberConditionOutput) Description

func (TopicIAMMemberConditionOutput) ElementType

func (TopicIAMMemberConditionOutput) Expression

func (TopicIAMMemberConditionOutput) Title

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutput

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutput() TopicIAMMemberConditionOutput

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionOutputWithContext

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

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutput

func (o TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionOutput) ToTopicIAMMemberConditionPtrOutputWithContext

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

type TopicIAMMemberConditionPtrInput

type TopicIAMMemberConditionPtrInput interface {
	pulumi.Input

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

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

        TopicIAMMemberConditionArgs{...}

or:

        nil

type TopicIAMMemberConditionPtrOutput

type TopicIAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberConditionPtrOutput) Description

func (TopicIAMMemberConditionPtrOutput) Elem

func (TopicIAMMemberConditionPtrOutput) ElementType

func (TopicIAMMemberConditionPtrOutput) Expression

func (TopicIAMMemberConditionPtrOutput) Title

func (TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutput

func (o TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutput() TopicIAMMemberConditionPtrOutput

func (TopicIAMMemberConditionPtrOutput) ToTopicIAMMemberConditionPtrOutputWithContext

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

type TopicIAMMemberInput

type TopicIAMMemberInput interface {
	pulumi.Input

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

type TopicIAMMemberMap

type TopicIAMMemberMap map[string]TopicIAMMemberInput

func (TopicIAMMemberMap) ElementType

func (TopicIAMMemberMap) ElementType() reflect.Type

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutput

func (i TopicIAMMemberMap) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMap) ToTopicIAMMemberMapOutputWithContext

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

type TopicIAMMemberMapInput

type TopicIAMMemberMapInput interface {
	pulumi.Input

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

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

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

type TopicIAMMemberMapOutput

type TopicIAMMemberMapOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberMapOutput) ElementType

func (TopicIAMMemberMapOutput) ElementType() reflect.Type

func (TopicIAMMemberMapOutput) MapIndex

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput

func (o TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutput() TopicIAMMemberMapOutput

func (TopicIAMMemberMapOutput) ToTopicIAMMemberMapOutputWithContext

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

type TopicIAMMemberOutput

type TopicIAMMemberOutput struct{ *pulumi.OutputState }

func (TopicIAMMemberOutput) Condition

func (TopicIAMMemberOutput) ElementType

func (TopicIAMMemberOutput) ElementType() reflect.Type

func (TopicIAMMemberOutput) Etag

(Computed) The etag of the IAM policy.

func (TopicIAMMemberOutput) Member

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

func (TopicIAMMemberOutput) Project

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.

func (TopicIAMMemberOutput) Role

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

func (TopicIAMMemberOutput) ToTopicIAMMemberOutput

func (o TopicIAMMemberOutput) ToTopicIAMMemberOutput() TopicIAMMemberOutput

func (TopicIAMMemberOutput) ToTopicIAMMemberOutputWithContext

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

func (TopicIAMMemberOutput) Topic

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

type TopicIAMMemberState

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

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

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

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

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

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

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

```

## google\_pubsub\_topic\_iam\_policy

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/viewer",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = pubsub.NewTopicIAMPolicy(ctx, "policy", &pubsub.TopicIAMPolicyArgs{
			Project:    pulumi.Any(example.Project),
			Topic:      pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMBinding(ctx, "binding", &pubsub.TopicIAMBindingArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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/v7/go/gcp/pubsub"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := pubsub.NewTopicIAMMember(ctx, "member", &pubsub.TopicIAMMemberArgs{
			Project: pulumi.Any(example.Project),
			Topic:   pulumi.Any(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 identifiers: the 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 identifiers: the resource in question and the role, e.g.

```sh $ pulumi import gcp:pubsub/topicIAMPolicy:TopicIAMPolicy editor "projects/{{project}}/topics/{{topic}} roles/viewer" ```

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

```sh $ pulumi import gcp:pubsub/topicIAMPolicy:TopicIAMPolicy editor projects/{{project}}/topics/{{topic}} ```

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

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

func GetTopicIAMPolicy

func GetTopicIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *TopicIAMPolicyState, opts ...pulumi.ResourceOption) (*TopicIAMPolicy, error)

GetTopicIAMPolicy gets an existing TopicIAMPolicy resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewTopicIAMPolicy

func NewTopicIAMPolicy(ctx *pulumi.Context,
	name string, args *TopicIAMPolicyArgs, opts ...pulumi.ResourceOption) (*TopicIAMPolicy, error)

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

func (*TopicIAMPolicy) ElementType

func (*TopicIAMPolicy) ElementType() reflect.Type

func (*TopicIAMPolicy) ToTopicIAMPolicyOutput

func (i *TopicIAMPolicy) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (*TopicIAMPolicy) ToTopicIAMPolicyOutputWithContext

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

type TopicIAMPolicyArgs

type TopicIAMPolicyArgs struct {
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringInput
}

The set of arguments for constructing a TopicIAMPolicy resource.

func (TopicIAMPolicyArgs) ElementType

func (TopicIAMPolicyArgs) ElementType() reflect.Type

type TopicIAMPolicyArray

type TopicIAMPolicyArray []TopicIAMPolicyInput

func (TopicIAMPolicyArray) ElementType

func (TopicIAMPolicyArray) ElementType() reflect.Type

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput

func (i TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArray) ToTopicIAMPolicyArrayOutputWithContext

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

type TopicIAMPolicyArrayInput

type TopicIAMPolicyArrayInput interface {
	pulumi.Input

	ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput
	ToTopicIAMPolicyArrayOutputWithContext(context.Context) TopicIAMPolicyArrayOutput
}

TopicIAMPolicyArrayInput is an input type that accepts TopicIAMPolicyArray and TopicIAMPolicyArrayOutput values. You can construct a concrete instance of `TopicIAMPolicyArrayInput` via:

TopicIAMPolicyArray{ TopicIAMPolicyArgs{...} }

type TopicIAMPolicyArrayOutput

type TopicIAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyArrayOutput) ElementType

func (TopicIAMPolicyArrayOutput) ElementType() reflect.Type

func (TopicIAMPolicyArrayOutput) Index

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput

func (o TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutput() TopicIAMPolicyArrayOutput

func (TopicIAMPolicyArrayOutput) ToTopicIAMPolicyArrayOutputWithContext

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

type TopicIAMPolicyInput

type TopicIAMPolicyInput interface {
	pulumi.Input

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

type TopicIAMPolicyMap

type TopicIAMPolicyMap map[string]TopicIAMPolicyInput

func (TopicIAMPolicyMap) ElementType

func (TopicIAMPolicyMap) ElementType() reflect.Type

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput

func (i TopicIAMPolicyMap) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMap) ToTopicIAMPolicyMapOutputWithContext

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

type TopicIAMPolicyMapInput

type TopicIAMPolicyMapInput interface {
	pulumi.Input

	ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput
	ToTopicIAMPolicyMapOutputWithContext(context.Context) TopicIAMPolicyMapOutput
}

TopicIAMPolicyMapInput is an input type that accepts TopicIAMPolicyMap and TopicIAMPolicyMapOutput values. You can construct a concrete instance of `TopicIAMPolicyMapInput` via:

TopicIAMPolicyMap{ "key": TopicIAMPolicyArgs{...} }

type TopicIAMPolicyMapOutput

type TopicIAMPolicyMapOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyMapOutput) ElementType

func (TopicIAMPolicyMapOutput) ElementType() reflect.Type

func (TopicIAMPolicyMapOutput) MapIndex

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput

func (o TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutput() TopicIAMPolicyMapOutput

func (TopicIAMPolicyMapOutput) ToTopicIAMPolicyMapOutputWithContext

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

type TopicIAMPolicyOutput

type TopicIAMPolicyOutput struct{ *pulumi.OutputState }

func (TopicIAMPolicyOutput) ElementType

func (TopicIAMPolicyOutput) ElementType() reflect.Type

func (TopicIAMPolicyOutput) Etag

(Computed) The etag of the IAM policy.

func (TopicIAMPolicyOutput) PolicyData

func (o TopicIAMPolicyOutput) PolicyData() pulumi.StringOutput

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

func (TopicIAMPolicyOutput) Project

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.

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutput

func (o TopicIAMPolicyOutput) ToTopicIAMPolicyOutput() TopicIAMPolicyOutput

func (TopicIAMPolicyOutput) ToTopicIAMPolicyOutputWithContext

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

func (TopicIAMPolicyOutput) Topic

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

type TopicIAMPolicyState

type TopicIAMPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	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 TopicIngestionDataSourceSettings added in v7.16.0

type TopicIngestionDataSourceSettings struct {
	// Settings for ingestion from Amazon Kinesis Data Streams.
	// Structure is documented below.
	AwsKinesis *TopicIngestionDataSourceSettingsAwsKinesis `pulumi:"awsKinesis"`
}

type TopicIngestionDataSourceSettingsArgs added in v7.16.0

type TopicIngestionDataSourceSettingsArgs struct {
	// Settings for ingestion from Amazon Kinesis Data Streams.
	// Structure is documented below.
	AwsKinesis TopicIngestionDataSourceSettingsAwsKinesisPtrInput `pulumi:"awsKinesis"`
}

func (TopicIngestionDataSourceSettingsArgs) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsOutput added in v7.16.0

func (i TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsOutput() TopicIngestionDataSourceSettingsOutput

func (TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsOutputWithContext added in v7.16.0

func (i TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsOutput

func (TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsPtrOutput added in v7.16.0

func (i TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsPtrOutput() TopicIngestionDataSourceSettingsPtrOutput

func (TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsPtrOutputWithContext added in v7.16.0

func (i TopicIngestionDataSourceSettingsArgs) ToTopicIngestionDataSourceSettingsPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsPtrOutput

type TopicIngestionDataSourceSettingsAwsKinesis added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesis struct {
	// AWS role ARN to be used for Federated Identity authentication with
	// Kinesis. Check the Pub/Sub docs for how to set up this role and the
	// required permissions that need to be attached to it.
	AwsRoleArn string `pulumi:"awsRoleArn"`
	// The Kinesis consumer ARN to used for ingestion in
	// Enhanced Fan-Out mode. The consumer must be already
	// created and ready to be used.
	ConsumerArn string `pulumi:"consumerArn"`
	// The GCP service account to be used for Federated Identity authentication
	// with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided
	// role). The `awsRoleArn` must be set up with `accounts.google.com:sub`
	// equals to this service account number.
	GcpServiceAccount string `pulumi:"gcpServiceAccount"`
	// The Kinesis stream ARN to ingest data from.
	StreamArn string `pulumi:"streamArn"`
}

type TopicIngestionDataSourceSettingsAwsKinesisArgs added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesisArgs struct {
	// AWS role ARN to be used for Federated Identity authentication with
	// Kinesis. Check the Pub/Sub docs for how to set up this role and the
	// required permissions that need to be attached to it.
	AwsRoleArn pulumi.StringInput `pulumi:"awsRoleArn"`
	// The Kinesis consumer ARN to used for ingestion in
	// Enhanced Fan-Out mode. The consumer must be already
	// created and ready to be used.
	ConsumerArn pulumi.StringInput `pulumi:"consumerArn"`
	// The GCP service account to be used for Federated Identity authentication
	// with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided
	// role). The `awsRoleArn` must be set up with `accounts.google.com:sub`
	// equals to this service account number.
	GcpServiceAccount pulumi.StringInput `pulumi:"gcpServiceAccount"`
	// The Kinesis stream ARN to ingest data from.
	StreamArn pulumi.StringInput `pulumi:"streamArn"`
}

func (TopicIngestionDataSourceSettingsAwsKinesisArgs) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisOutput added in v7.16.0

func (i TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisOutput() TopicIngestionDataSourceSettingsAwsKinesisOutput

func (TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisOutputWithContext added in v7.16.0

func (i TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsAwsKinesisOutput

func (TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput added in v7.16.0

func (i TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput() TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

func (TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext added in v7.16.0

func (i TopicIngestionDataSourceSettingsAwsKinesisArgs) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

type TopicIngestionDataSourceSettingsAwsKinesisInput added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesisInput interface {
	pulumi.Input

	ToTopicIngestionDataSourceSettingsAwsKinesisOutput() TopicIngestionDataSourceSettingsAwsKinesisOutput
	ToTopicIngestionDataSourceSettingsAwsKinesisOutputWithContext(context.Context) TopicIngestionDataSourceSettingsAwsKinesisOutput
}

TopicIngestionDataSourceSettingsAwsKinesisInput is an input type that accepts TopicIngestionDataSourceSettingsAwsKinesisArgs and TopicIngestionDataSourceSettingsAwsKinesisOutput values. You can construct a concrete instance of `TopicIngestionDataSourceSettingsAwsKinesisInput` via:

TopicIngestionDataSourceSettingsAwsKinesisArgs{...}

type TopicIngestionDataSourceSettingsAwsKinesisOutput added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesisOutput struct{ *pulumi.OutputState }

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) AwsRoleArn added in v7.16.0

AWS role ARN to be used for Federated Identity authentication with Kinesis. Check the Pub/Sub docs for how to set up this role and the required permissions that need to be attached to it.

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ConsumerArn added in v7.16.0

The Kinesis consumer ARN to used for ingestion in Enhanced Fan-Out mode. The consumer must be already created and ready to be used.

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) GcpServiceAccount added in v7.16.0

The GCP service account to be used for Federated Identity authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided role). The `awsRoleArn` must be set up with `accounts.google.com:sub` equals to this service account number.

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) StreamArn added in v7.16.0

The Kinesis stream ARN to ingest data from.

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisOutput() TopicIngestionDataSourceSettingsAwsKinesisOutput

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsAwsKinesisOutput

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput() TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

func (TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

type TopicIngestionDataSourceSettingsAwsKinesisPtrInput added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesisPtrInput interface {
	pulumi.Input

	ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput() TopicIngestionDataSourceSettingsAwsKinesisPtrOutput
	ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext(context.Context) TopicIngestionDataSourceSettingsAwsKinesisPtrOutput
}

TopicIngestionDataSourceSettingsAwsKinesisPtrInput is an input type that accepts TopicIngestionDataSourceSettingsAwsKinesisArgs, TopicIngestionDataSourceSettingsAwsKinesisPtr and TopicIngestionDataSourceSettingsAwsKinesisPtrOutput values. You can construct a concrete instance of `TopicIngestionDataSourceSettingsAwsKinesisPtrInput` via:

        TopicIngestionDataSourceSettingsAwsKinesisArgs{...}

or:

        nil

type TopicIngestionDataSourceSettingsAwsKinesisPtrOutput added in v7.16.0

type TopicIngestionDataSourceSettingsAwsKinesisPtrOutput struct{ *pulumi.OutputState }

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) AwsRoleArn added in v7.16.0

AWS role ARN to be used for Federated Identity authentication with Kinesis. Check the Pub/Sub docs for how to set up this role and the required permissions that need to be attached to it.

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ConsumerArn added in v7.16.0

The Kinesis consumer ARN to used for ingestion in Enhanced Fan-Out mode. The consumer must be already created and ready to be used.

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) Elem added in v7.16.0

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) GcpServiceAccount added in v7.16.0

The GCP service account to be used for Federated Identity authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided role). The `awsRoleArn` must be set up with `accounts.google.com:sub` equals to this service account number.

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) StreamArn added in v7.16.0

The Kinesis stream ARN to ingest data from.

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutput() TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

func (TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsAwsKinesisPtrOutput) ToTopicIngestionDataSourceSettingsAwsKinesisPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsAwsKinesisPtrOutput

type TopicIngestionDataSourceSettingsInput added in v7.16.0

type TopicIngestionDataSourceSettingsInput interface {
	pulumi.Input

	ToTopicIngestionDataSourceSettingsOutput() TopicIngestionDataSourceSettingsOutput
	ToTopicIngestionDataSourceSettingsOutputWithContext(context.Context) TopicIngestionDataSourceSettingsOutput
}

TopicIngestionDataSourceSettingsInput is an input type that accepts TopicIngestionDataSourceSettingsArgs and TopicIngestionDataSourceSettingsOutput values. You can construct a concrete instance of `TopicIngestionDataSourceSettingsInput` via:

TopicIngestionDataSourceSettingsArgs{...}

type TopicIngestionDataSourceSettingsOutput added in v7.16.0

type TopicIngestionDataSourceSettingsOutput struct{ *pulumi.OutputState }

func (TopicIngestionDataSourceSettingsOutput) AwsKinesis added in v7.16.0

Settings for ingestion from Amazon Kinesis Data Streams. Structure is documented below.

func (TopicIngestionDataSourceSettingsOutput) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsOutput() TopicIngestionDataSourceSettingsOutput

func (TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsOutput

func (TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsPtrOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsPtrOutput() TopicIngestionDataSourceSettingsPtrOutput

func (TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsPtrOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsOutput) ToTopicIngestionDataSourceSettingsPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsPtrOutput

type TopicIngestionDataSourceSettingsPtrInput added in v7.16.0

type TopicIngestionDataSourceSettingsPtrInput interface {
	pulumi.Input

	ToTopicIngestionDataSourceSettingsPtrOutput() TopicIngestionDataSourceSettingsPtrOutput
	ToTopicIngestionDataSourceSettingsPtrOutputWithContext(context.Context) TopicIngestionDataSourceSettingsPtrOutput
}

TopicIngestionDataSourceSettingsPtrInput is an input type that accepts TopicIngestionDataSourceSettingsArgs, TopicIngestionDataSourceSettingsPtr and TopicIngestionDataSourceSettingsPtrOutput values. You can construct a concrete instance of `TopicIngestionDataSourceSettingsPtrInput` via:

        TopicIngestionDataSourceSettingsArgs{...}

or:

        nil

type TopicIngestionDataSourceSettingsPtrOutput added in v7.16.0

type TopicIngestionDataSourceSettingsPtrOutput struct{ *pulumi.OutputState }

func (TopicIngestionDataSourceSettingsPtrOutput) AwsKinesis added in v7.16.0

Settings for ingestion from Amazon Kinesis Data Streams. Structure is documented below.

func (TopicIngestionDataSourceSettingsPtrOutput) Elem added in v7.16.0

func (TopicIngestionDataSourceSettingsPtrOutput) ElementType added in v7.16.0

func (TopicIngestionDataSourceSettingsPtrOutput) ToTopicIngestionDataSourceSettingsPtrOutput added in v7.16.0

func (o TopicIngestionDataSourceSettingsPtrOutput) ToTopicIngestionDataSourceSettingsPtrOutput() TopicIngestionDataSourceSettingsPtrOutput

func (TopicIngestionDataSourceSettingsPtrOutput) ToTopicIngestionDataSourceSettingsPtrOutputWithContext added in v7.16.0

func (o TopicIngestionDataSourceSettingsPtrOutput) ToTopicIngestionDataSourceSettingsPtrOutputWithContext(ctx context.Context) TopicIngestionDataSourceSettingsPtrOutput

type TopicInput

type TopicInput interface {
	pulumi.Input

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

type TopicMap

type TopicMap map[string]TopicInput

func (TopicMap) ElementType

func (TopicMap) ElementType() reflect.Type

func (TopicMap) ToTopicMapOutput

func (i TopicMap) ToTopicMapOutput() TopicMapOutput

func (TopicMap) ToTopicMapOutputWithContext

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

type TopicMapInput

type TopicMapInput interface {
	pulumi.Input

	ToTopicMapOutput() TopicMapOutput
	ToTopicMapOutputWithContext(context.Context) TopicMapOutput
}

TopicMapInput is an input type that accepts TopicMap and TopicMapOutput values. You can construct a concrete instance of `TopicMapInput` via:

TopicMap{ "key": TopicArgs{...} }

type TopicMapOutput

type TopicMapOutput struct{ *pulumi.OutputState }

func (TopicMapOutput) ElementType

func (TopicMapOutput) ElementType() reflect.Type

func (TopicMapOutput) MapIndex

func (TopicMapOutput) ToTopicMapOutput

func (o TopicMapOutput) ToTopicMapOutput() TopicMapOutput

func (TopicMapOutput) ToTopicMapOutputWithContext

func (o TopicMapOutput) ToTopicMapOutputWithContext(ctx context.Context) TopicMapOutput

type TopicMessageStoragePolicy

type TopicMessageStoragePolicy struct {
	// A list of IDs of GCP regions where messages that are published to
	// the topic may be persisted in storage. Messages published by
	// publishers running in non-allowed GCP regions (or running outside
	// of GCP altogether) will be routed for storage in one of the
	// allowed regions. An empty list means that no regions are allowed,
	// and is not a valid configuration.
	AllowedPersistenceRegions []string `pulumi:"allowedPersistenceRegions"`
}

type TopicMessageStoragePolicyArgs

type TopicMessageStoragePolicyArgs struct {
	// A list of IDs of GCP regions where messages that are published to
	// the topic may be persisted in storage. Messages published by
	// publishers running in non-allowed GCP regions (or running outside
	// of GCP altogether) will be routed for storage in one of the
	// allowed regions. An empty list means that no regions are allowed,
	// and is not a valid configuration.
	AllowedPersistenceRegions pulumi.StringArrayInput `pulumi:"allowedPersistenceRegions"`
}

func (TopicMessageStoragePolicyArgs) ElementType

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutput

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutputWithContext

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyOutputWithContext(ctx context.Context) TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutput

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutputWithContext

func (i TopicMessageStoragePolicyArgs) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyInput

type TopicMessageStoragePolicyInput interface {
	pulumi.Input

	ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput
	ToTopicMessageStoragePolicyOutputWithContext(context.Context) TopicMessageStoragePolicyOutput
}

TopicMessageStoragePolicyInput is an input type that accepts TopicMessageStoragePolicyArgs and TopicMessageStoragePolicyOutput values. You can construct a concrete instance of `TopicMessageStoragePolicyInput` via:

TopicMessageStoragePolicyArgs{...}

type TopicMessageStoragePolicyOutput

type TopicMessageStoragePolicyOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed GCP regions (or running outside of GCP altogether) will be routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.

func (TopicMessageStoragePolicyOutput) ElementType

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutput

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutput() TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutputWithContext

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyOutputWithContext(ctx context.Context) TopicMessageStoragePolicyOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutput

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutputWithContext

func (o TopicMessageStoragePolicyOutput) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyPtrInput

type TopicMessageStoragePolicyPtrInput interface {
	pulumi.Input

	ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput
	ToTopicMessageStoragePolicyPtrOutputWithContext(context.Context) TopicMessageStoragePolicyPtrOutput
}

TopicMessageStoragePolicyPtrInput is an input type that accepts TopicMessageStoragePolicyArgs, TopicMessageStoragePolicyPtr and TopicMessageStoragePolicyPtrOutput values. You can construct a concrete instance of `TopicMessageStoragePolicyPtrInput` via:

        TopicMessageStoragePolicyArgs{...}

or:

        nil

type TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyPtrOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

A list of IDs of GCP regions where messages that are published to the topic may be persisted in storage. Messages published by publishers running in non-allowed GCP regions (or running outside of GCP altogether) will be routed for storage in one of the allowed regions. An empty list means that no regions are allowed, and is not a valid configuration.

func (TopicMessageStoragePolicyPtrOutput) Elem

func (TopicMessageStoragePolicyPtrOutput) ElementType

func (TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutput

func (o TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutput() TopicMessageStoragePolicyPtrOutput

func (TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutputWithContext

func (o TopicMessageStoragePolicyPtrOutput) ToTopicMessageStoragePolicyPtrOutputWithContext(ctx context.Context) TopicMessageStoragePolicyPtrOutput

type TopicOutput

type TopicOutput struct{ *pulumi.OutputState }

func (TopicOutput) EffectiveLabels

func (o TopicOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (TopicOutput) ElementType

func (TopicOutput) ElementType() reflect.Type

func (TopicOutput) IngestionDataSourceSettings added in v7.16.0

func (o TopicOutput) IngestionDataSourceSettings() TopicIngestionDataSourceSettingsPtrOutput

Settings for ingestion from a data source into this topic. Structure is documented below.

func (TopicOutput) KmsKeyName

func (o TopicOutput) KmsKeyName() pulumi.StringPtrOutput

The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. Your project's PubSub service account (`service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com`) must have `roles/cloudkms.cryptoKeyEncrypterDecrypter` to use this feature. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`

func (TopicOutput) Labels

func (o TopicOutput) Labels() pulumi.StringMapOutput

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

**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (TopicOutput) MessageRetentionDuration

func (o TopicOutput) MessageRetentionDuration() pulumi.StringPtrOutput

Indicates the minimum duration to retain a message after it is published to the topic. If this field is set, messages published to the topic in the last messageRetentionDuration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to messageRetentionDuration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. The rotation period has the format of a decimal number, followed by the letter `s` (seconds). Cannot be more than 31 days or less than 10 minutes.

func (TopicOutput) MessageStoragePolicy

func (o TopicOutput) MessageStoragePolicy() TopicMessageStoragePolicyOutput

Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect. Structure is documented below.

func (TopicOutput) Name

func (o TopicOutput) Name() pulumi.StringOutput

Name of the topic.

***

func (TopicOutput) Project

func (o TopicOutput) Project() pulumi.StringOutput

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

func (TopicOutput) PulumiLabels

func (o TopicOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (TopicOutput) SchemaSettings

func (o TopicOutput) SchemaSettings() TopicSchemaSettingsOutput

Settings for validating messages published against a schema. Structure is documented below.

func (TopicOutput) ToTopicOutput

func (o TopicOutput) ToTopicOutput() TopicOutput

func (TopicOutput) ToTopicOutputWithContext

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

type TopicSchemaSettings

type TopicSchemaSettings struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.
	Encoding *string `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema string `pulumi:"schema"`
}

type TopicSchemaSettingsArgs

type TopicSchemaSettingsArgs struct {
	// The encoding of messages validated against schema.
	// Default value is `ENCODING_UNSPECIFIED`.
	// Possible values are: `ENCODING_UNSPECIFIED`, `JSON`, `BINARY`.
	Encoding pulumi.StringPtrInput `pulumi:"encoding"`
	// The name of the schema that messages published should be
	// validated against. Format is projects/{project}/schemas/{schema}.
	// The value of this field will be _deleted-schema_
	// if the schema has been deleted.
	Schema pulumi.StringInput `pulumi:"schema"`
}

func (TopicSchemaSettingsArgs) ElementType

func (TopicSchemaSettingsArgs) ElementType() reflect.Type

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsOutputWithContext

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

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput

func (i TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsArgs) ToTopicSchemaSettingsPtrOutputWithContext

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

type TopicSchemaSettingsInput

type TopicSchemaSettingsInput interface {
	pulumi.Input

	ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput
	ToTopicSchemaSettingsOutputWithContext(context.Context) TopicSchemaSettingsOutput
}

TopicSchemaSettingsInput is an input type that accepts TopicSchemaSettingsArgs and TopicSchemaSettingsOutput values. You can construct a concrete instance of `TopicSchemaSettingsInput` via:

TopicSchemaSettingsArgs{...}

type TopicSchemaSettingsOutput

type TopicSchemaSettingsOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsOutput) ElementType

func (TopicSchemaSettingsOutput) ElementType() reflect.Type

func (TopicSchemaSettingsOutput) Encoding

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

func (TopicSchemaSettingsOutput) Schema

The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutput

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutput() TopicSchemaSettingsOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsOutputWithContext

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

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput

func (o TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsOutput) ToTopicSchemaSettingsPtrOutputWithContext

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

type TopicSchemaSettingsPtrInput

type TopicSchemaSettingsPtrInput interface {
	pulumi.Input

	ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput
	ToTopicSchemaSettingsPtrOutputWithContext(context.Context) TopicSchemaSettingsPtrOutput
}

TopicSchemaSettingsPtrInput is an input type that accepts TopicSchemaSettingsArgs, TopicSchemaSettingsPtr and TopicSchemaSettingsPtrOutput values. You can construct a concrete instance of `TopicSchemaSettingsPtrInput` via:

        TopicSchemaSettingsArgs{...}

or:

        nil

type TopicSchemaSettingsPtrOutput

type TopicSchemaSettingsPtrOutput struct{ *pulumi.OutputState }

func (TopicSchemaSettingsPtrOutput) Elem

func (TopicSchemaSettingsPtrOutput) ElementType

func (TopicSchemaSettingsPtrOutput) Encoding

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

func (TopicSchemaSettingsPtrOutput) Schema

The name of the schema that messages published should be validated against. Format is projects/{project}/schemas/{schema}. The value of this field will be _deleted-schema_ if the schema has been deleted.

func (TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutput

func (o TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutput() TopicSchemaSettingsPtrOutput

func (TopicSchemaSettingsPtrOutput) ToTopicSchemaSettingsPtrOutputWithContext

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

type TopicState

type TopicState struct {
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Settings for ingestion from a data source into this topic.
	// Structure is documented below.
	IngestionDataSourceSettings TopicIngestionDataSourceSettingsPtrInput
	// 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.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// Indicates the minimum duration to retain a message after it is published
	// to the topic. If this field is set, messages published to the topic in
	// the last messageRetentionDuration are always available to subscribers.
	// For instance, it allows any attached subscription to seek to a timestamp
	// that is up to messageRetentionDuration in the past. If this field is not
	// set, message retention is controlled by settings on individual subscriptions.
	// The rotation period has the format of a decimal number, followed by the
	// letter `s` (seconds). Cannot be more than 31 days or less than 10 minutes.
	MessageRetentionDuration pulumi.StringPtrInput
	// Policy constraining the set of Google Cloud Platform regions where
	// messages published to the topic may be stored. If not present, then no
	// constraints are in effect.
	// Structure is documented below.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// Settings for validating messages published against a schema.
	// Structure is documented below.
	SchemaSettings TopicSchemaSettingsPtrInput
}

func (TopicState) ElementType

func (TopicState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL