pubsub

package
v2.13.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2020 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

nolint: lll

nolint: lll

nolint: lll

nolint: lll

nolint: lll

nolint: lll

nolint: lll

nolint: lll

nolint: lll

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Subscription

type Subscription struct {
	pulumi.CustomResourceState

	// This value is the maximum time after a subscriber receives a message before the subscriber should acknowledge the
	// message. After message delivery but before the ack deadline expires and before the message is acknowledged, it is an
	// outstanding message and will not be delivered again during that time (on a best-effort basis). For pull subscriptions,
	// this value is used as the initial value for the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using pull. The minimum custom deadline you can specify
	// is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a
	// default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call
	// to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the
	// message.
	AckDeadlineSeconds pulumi.IntOutput `pulumi:"ackDeadlineSeconds"`
	// A policy that specifies the conditions for dead lettering messages in this subscription. If dead_letter_policy is not
	// set, dead lettering is disabled. The Cloud Pub/Sub service account associated with this subscriptions's parent project
	// (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on
	// this subscription.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrOutput `pulumi:"deadLetterPolicy"`
	// 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.
	ExpirationPolicy SubscriptionExpirationPolicyOutput `pulumi:"expirationPolicy"`
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention of acknowledged messages, and thus configures how
	// far back in time a subscriptions.seek can be done. Defaults to 7 days. Cannot be more than 7 days ('"604800s"') or less
	// than 10 minutes ('"600s"'). A duration in seconds with up to nine fractional digits, terminated by 's'. Example:
	// '"600.5s"'.
	MessageRetentionDuration pulumi.StringPtrOutput `pulumi:"messageRetentionDuration"`
	// Name of the subscription.
	Name pulumi.StringOutput `pulumi:"name"`
	Path pulumi.StringOutput `pulumi:"path"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// If push delivery is used with this subscription, this field is used to configure it. An empty pushConfig signifies that
	// the subscriber will pull and ack messages using API methods.
	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 reference to a Topic resource.
	Topic pulumi.StringOutput `pulumi:"topic"`
}

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

To get more information about Subscription, see:

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_subscription.html.markdown.

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.

type SubscriptionArgs

type SubscriptionArgs struct {
	// This value is the maximum time after a subscriber receives a message before the subscriber should acknowledge the
	// message. After message delivery but before the ack deadline expires and before the message is acknowledged, it is an
	// outstanding message and will not be delivered again during that time (on a best-effort basis). For pull subscriptions,
	// this value is used as the initial value for the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using pull. The minimum custom deadline you can specify
	// is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a
	// default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call
	// to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the
	// message.
	AckDeadlineSeconds pulumi.IntPtrInput
	// A policy that specifies the conditions for dead lettering messages in this subscription. If dead_letter_policy is not
	// set, dead lettering is disabled. The Cloud Pub/Sub service account associated with this subscriptions's parent project
	// (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on
	// this subscription.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// 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.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapInput
	// How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention of acknowledged messages, and thus configures how
	// far back in time a subscriptions.seek can be done. Defaults to 7 days. Cannot be more than 7 days ('"604800s"') or less
	// than 10 minutes ('"600s"'). A duration in seconds with up to nine fractional digits, terminated by 's'. Example:
	// '"600.5s"'.
	MessageRetentionDuration pulumi.StringPtrInput
	// Name of the subscription.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// If push delivery is used with this subscription, this field is used to configure it. An empty pushConfig signifies that
	// the subscriber will pull and ack messages using API methods.
	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 reference to a Topic resource.
	Topic pulumi.StringInput
}

The set of arguments for constructing a Subscription resource.

func (SubscriptionArgs) ElementType

func (SubscriptionArgs) ElementType() reflect.Type

type SubscriptionDeadLetterPolicy added in v2.13.0

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

type SubscriptionDeadLetterPolicyArgs added in v2.13.0

type SubscriptionDeadLetterPolicyArgs struct {
	DeadLetterTopic     pulumi.StringPtrInput `pulumi:"deadLetterTopic"`
	MaxDeliveryAttempts pulumi.IntPtrInput    `pulumi:"maxDeliveryAttempts"`
}

func (SubscriptionDeadLetterPolicyArgs) ElementType added in v2.13.0

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutput added in v2.13.0

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutput() SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyOutputWithContext added in v2.13.0

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

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutput added in v2.13.0

func (i SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyArgs) ToSubscriptionDeadLetterPolicyPtrOutputWithContext added in v2.13.0

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

type SubscriptionDeadLetterPolicyInput added in v2.13.0

type SubscriptionDeadLetterPolicyInput interface {
	pulumi.Input

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

type SubscriptionDeadLetterPolicyOutput added in v2.13.0

type SubscriptionDeadLetterPolicyOutput struct{ *pulumi.OutputState }

func (SubscriptionDeadLetterPolicyOutput) DeadLetterTopic added in v2.13.0

func (SubscriptionDeadLetterPolicyOutput) ElementType added in v2.13.0

func (SubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts added in v2.13.0

func (o SubscriptionDeadLetterPolicyOutput) MaxDeliveryAttempts() pulumi.IntPtrOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutput added in v2.13.0

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutput() SubscriptionDeadLetterPolicyOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyOutputWithContext added in v2.13.0

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

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutput added in v2.13.0

func (o SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext added in v2.13.0

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

type SubscriptionDeadLetterPolicyPtrInput added in v2.13.0

type SubscriptionDeadLetterPolicyPtrInput interface {
	pulumi.Input

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

func SubscriptionDeadLetterPolicyPtr added in v2.13.0

type SubscriptionDeadLetterPolicyPtrOutput added in v2.13.0

type SubscriptionDeadLetterPolicyPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionDeadLetterPolicyPtrOutput) DeadLetterTopic added in v2.13.0

func (SubscriptionDeadLetterPolicyPtrOutput) Elem added in v2.13.0

func (SubscriptionDeadLetterPolicyPtrOutput) ElementType added in v2.13.0

func (SubscriptionDeadLetterPolicyPtrOutput) MaxDeliveryAttempts added in v2.13.0

func (SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutput added in v2.13.0

func (o SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutput() SubscriptionDeadLetterPolicyPtrOutput

func (SubscriptionDeadLetterPolicyPtrOutput) ToSubscriptionDeadLetterPolicyPtrOutputWithContext added in v2.13.0

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

type SubscriptionExpirationPolicy

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

type SubscriptionExpirationPolicyArgs

type SubscriptionExpirationPolicyArgs struct {
	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
}

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

type SubscriptionExpirationPolicyPtrInput

type SubscriptionExpirationPolicyPtrInput interface {
	pulumi.Input

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

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

type SubscriptionIAMBinding

type SubscriptionIAMBinding struct {
	pulumi.CustomResourceState

	Condition SubscriptionIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the subscription's IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringOutput `pulumi:"subscription"`
}

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

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_subscription_iam.html.markdown.

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.

type SubscriptionIAMBindingArgs

type SubscriptionIAMBindingArgs struct {
	Condition SubscriptionIAMBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMBinding resource.

func (SubscriptionIAMBindingArgs) ElementType

func (SubscriptionIAMBindingArgs) ElementType() reflect.Type

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

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
}

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 SubscriptionIAMBindingState

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

func (SubscriptionIAMBindingState) ElementType

type SubscriptionIAMMember

type SubscriptionIAMMember struct {
	pulumi.CustomResourceState

	Condition SubscriptionIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the subscription's IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringOutput `pulumi:"subscription"`
}

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

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_subscription_iam.html.markdown.

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.

type SubscriptionIAMMemberArgs

type SubscriptionIAMMemberArgs struct {
	Condition SubscriptionIAMMemberConditionPtrInput
	Member    pulumi.StringInput
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `pubsub.SubscriptionIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
	// The subscription name or id to bind to attach IAM policy to.
	Subscription pulumi.StringInput
}

The set of arguments for constructing a SubscriptionIAMMember resource.

func (SubscriptionIAMMemberArgs) ElementType

func (SubscriptionIAMMemberArgs) ElementType() reflect.Type

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

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
}

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 SubscriptionIAMMemberState

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

func (SubscriptionIAMMemberState) ElementType

func (SubscriptionIAMMemberState) ElementType() reflect.Type

type SubscriptionIAMPolicy

type SubscriptionIAMPolicy struct {
	pulumi.CustomResourceState

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

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

* `pubsub.SubscriptionIAMPolicy`: Authoritative. Sets the IAM policy for the subscription and replaces any existing policy already attached. * `pubsub.SubscriptionIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the subscription are preserved. * `pubsub.SubscriptionIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the subscription are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_subscription_iam.html.markdown.

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.

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

type SubscriptionPushConfig struct {
	Attributes   map[string]string                `pulumi:"attributes"`
	OidcToken    *SubscriptionPushConfigOidcToken `pulumi:"oidcToken"`
	PushEndpoint string                           `pulumi:"pushEndpoint"`
}

type SubscriptionPushConfigArgs

type SubscriptionPushConfigArgs struct {
	Attributes   pulumi.StringMapInput                   `pulumi:"attributes"`
	OidcToken    SubscriptionPushConfigOidcTokenPtrInput `pulumi:"oidcToken"`
	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
}

type SubscriptionPushConfigOidcToken

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

type SubscriptionPushConfigOidcTokenArgs

type SubscriptionPushConfigOidcTokenArgs struct {
	Audience            pulumi.StringPtrInput `pulumi:"audience"`
	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
}

type SubscriptionPushConfigOidcTokenOutput

type SubscriptionPushConfigOidcTokenOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigOidcTokenOutput) Audience

func (SubscriptionPushConfigOidcTokenOutput) ElementType

func (SubscriptionPushConfigOidcTokenOutput) ServiceAccountEmail

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
}

type SubscriptionPushConfigOidcTokenPtrOutput

type SubscriptionPushConfigOidcTokenPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigOidcTokenPtrOutput) Audience

func (SubscriptionPushConfigOidcTokenPtrOutput) Elem

func (SubscriptionPushConfigOidcTokenPtrOutput) ElementType

func (SubscriptionPushConfigOidcTokenPtrOutput) ServiceAccountEmail

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

func (SubscriptionPushConfigOutput) ElementType

func (SubscriptionPushConfigOutput) OidcToken

func (SubscriptionPushConfigOutput) PushEndpoint

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
}

type SubscriptionPushConfigPtrOutput

type SubscriptionPushConfigPtrOutput struct{ *pulumi.OutputState }

func (SubscriptionPushConfigPtrOutput) Attributes

func (SubscriptionPushConfigPtrOutput) Elem

func (SubscriptionPushConfigPtrOutput) ElementType

func (SubscriptionPushConfigPtrOutput) OidcToken

func (SubscriptionPushConfigPtrOutput) PushEndpoint

func (SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutput

func (o SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutput() SubscriptionPushConfigPtrOutput

func (SubscriptionPushConfigPtrOutput) ToSubscriptionPushConfigPtrOutputWithContext

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

type SubscriptionState

type SubscriptionState struct {
	// This value is the maximum time after a subscriber receives a message before the subscriber should acknowledge the
	// message. After message delivery but before the ack deadline expires and before the message is acknowledged, it is an
	// outstanding message and will not be delivered again during that time (on a best-effort basis). For pull subscriptions,
	// this value is used as the initial value for the ack deadline. To override this value for a given message, call
	// subscriptions.modifyAckDeadline with the corresponding ackId if using pull. The minimum custom deadline you can specify
	// is 10 seconds. The maximum custom deadline you can specify is 600 seconds (10 minutes). If this parameter is 0, a
	// default value of 10 seconds is used. For push delivery, this value is also used to set the request timeout for the call
	// to the push endpoint. If the subscriber never acknowledges the message, the Pub/Sub system will eventually redeliver the
	// message.
	AckDeadlineSeconds pulumi.IntPtrInput
	// A policy that specifies the conditions for dead lettering messages in this subscription. If dead_letter_policy is not
	// set, dead lettering is disabled. The Cloud Pub/Sub service account associated with this subscriptions's parent project
	// (i.e., service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have permission to Acknowledge() messages on
	// this subscription.
	DeadLetterPolicy SubscriptionDeadLetterPolicyPtrInput
	// 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.
	ExpirationPolicy SubscriptionExpirationPolicyPtrInput
	// A set of key/value label pairs to assign to this Subscription.
	Labels pulumi.StringMapInput
	// How long to retain unacknowledged messages in the subscription's backlog, from the moment a message is published. If
	// retainAckedMessages is true, then this also configures the retention of acknowledged messages, and thus configures how
	// far back in time a subscriptions.seek can be done. Defaults to 7 days. Cannot be more than 7 days ('"604800s"') or less
	// than 10 minutes ('"600s"'). A duration in seconds with up to nine fractional digits, terminated by 's'. Example:
	// '"600.5s"'.
	MessageRetentionDuration pulumi.StringPtrInput
	// Name of the subscription.
	Name pulumi.StringPtrInput
	Path 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.
	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 reference to a Topic resource.
	Topic pulumi.StringPtrInput
}

func (SubscriptionState) ElementType

func (SubscriptionState) ElementType() reflect.Type

type Topic

type Topic struct {
	pulumi.CustomResourceState

	// The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. Your
	// project's PubSub service account ('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have
	// 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature. The expected format is
	// 'projects/*/locations/*/keyRings/*/cryptoKeys/*'
	KmsKeyName pulumi.StringPtrOutput `pulumi:"kmsKeyName"`
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not
	// present, then no constraints are in effect.
	MessageStoragePolicy TopicMessageStoragePolicyOutput `pulumi:"messageStoragePolicy"`
	// Name of the topic.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
}

A named resource to which messages are sent by publishers.

To get more information about Topic, see:

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_topic.html.markdown.

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.

type TopicArgs

type TopicArgs struct {
	// The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. Your
	// project's PubSub service account ('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have
	// 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature. The expected format is
	// 'projects/*/locations/*/keyRings/*/cryptoKeys/*'
	KmsKeyName pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapInput
	// Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not
	// present, then no constraints are in effect.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a Topic resource.

func (TopicArgs) ElementType

func (TopicArgs) ElementType() reflect.Type

type TopicIAMBinding

type TopicIAMBinding struct {
	pulumi.CustomResourceState

	Condition TopicIAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

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

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_topic_iam.html.markdown.

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.

type TopicIAMBindingArgs

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

The set of arguments for constructing a TopicIAMBinding resource.

func (TopicIAMBindingArgs) ElementType

func (TopicIAMBindingArgs) ElementType() reflect.Type

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

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
}

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 TopicIAMBindingState

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

func (TopicIAMBindingState) ElementType

func (TopicIAMBindingState) ElementType() reflect.Type

type TopicIAMMember

type TopicIAMMember struct {
	pulumi.CustomResourceState

	Condition TopicIAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `pubsub.TopicIAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringOutput `pulumi:"role"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

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

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_topic_iam.html.markdown.

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.

type TopicIAMMemberArgs

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

The set of arguments for constructing a TopicIAMMember resource.

func (TopicIAMMemberArgs) ElementType

func (TopicIAMMemberArgs) ElementType() reflect.Type

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

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
}

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 TopicIAMMemberState

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

func (TopicIAMMemberState) ElementType

func (TopicIAMMemberState) ElementType() reflect.Type

type TopicIAMPolicy

type TopicIAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Used to find the parent resource to bind the IAM policy to
	Topic pulumi.StringOutput `pulumi:"topic"`
}

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

* `pubsub.TopicIAMPolicy`: Authoritative. Sets the IAM policy for the topic and replaces any existing policy already attached. * `pubsub.TopicIAMBinding`: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the topic are preserved. * `pubsub.TopicIAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the topic are preserved.

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

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

> This content is derived from https://github.com/terraform-providers/terraform-provider-google/blob/master/website/docs/r/pubsub_topic_iam.html.markdown.

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.

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

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

type TopicMessageStoragePolicyArgs

type TopicMessageStoragePolicyArgs struct {
	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
}

type TopicMessageStoragePolicyOutput

type TopicMessageStoragePolicyOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

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
}

type TopicMessageStoragePolicyPtrOutput

type TopicMessageStoragePolicyPtrOutput struct{ *pulumi.OutputState }

func (TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions

func (o TopicMessageStoragePolicyPtrOutput) AllowedPersistenceRegions() pulumi.StringArrayOutput

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 TopicState

type TopicState struct {
	// The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. Your
	// project's PubSub service account ('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have
	// 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature. The expected format is
	// 'projects/*/locations/*/keyRings/*/cryptoKeys/*'
	KmsKeyName pulumi.StringPtrInput
	// A set of key/value label pairs to assign to this Topic.
	Labels pulumi.StringMapInput
	// Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not
	// present, then no constraints are in effect.
	MessageStoragePolicy TopicMessageStoragePolicyPtrInput
	// Name of the topic.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

func (TopicState) ElementType

func (TopicState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL