cloudfunctions

package
v4.19.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Function

type Function struct {
	pulumi.CustomResourceState

	// Memory (in MB), available to the function. Default value is 256MB. Allowed values are: 128MB, 256MB, 512MB, 1024MB, 2048MB and 4096MB.
	AvailableMemoryMb pulumi.IntPtrOutput `pulumi:"availableMemoryMb"`
	// A set of key/value environment variable pairs available during build time.
	BuildEnvironmentVariables pulumi.MapOutput `pulumi:"buildEnvironmentVariables"`
	// Description of the function.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// Name of the function that will be executed when the Google Cloud Function is triggered.
	EntryPoint pulumi.StringPtrOutput `pulumi:"entryPoint"`
	// A set of key/value environment variable pairs to assign to the function.
	EnvironmentVariables pulumi.MapOutput `pulumi:"environmentVariables"`
	// A source that fires events in response to a condition in another service. Structure is documented below. Cannot be used with `triggerHttp`.
	EventTrigger FunctionEventTriggerOutput `pulumi:"eventTrigger"`
	// URL which triggers function execution. Returned only if `triggerHttp` is used.
	HttpsTriggerUrl pulumi.StringOutput `pulumi:"httpsTriggerUrl"`
	// String value that controls what traffic can reach the function. Allowed values are `ALLOW_ALL`, `ALLOW_INTERNAL_AND_GCLB` and `ALLOW_INTERNAL_ONLY`. Changes to this field will recreate the cloud function.
	IngressSettings pulumi.StringPtrOutput `pulumi:"ingressSettings"`
	// A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.MapOutput `pulumi:"labels"`
	// The limit on the maximum number of function instances that may coexist at a given time.
	MaxInstances pulumi.IntPtrOutput `pulumi:"maxInstances"`
	// A user-defined name of the function. Function names must be unique globally.
	Name pulumi.StringOutput `pulumi:"name"`
	// Project of the function. If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used.
	Region pulumi.StringOutput `pulumi:"region"`
	// The runtime in which the function is going to run.
	// Eg. `"nodejs8"`, `"nodejs10"`, `"nodejs12"`, `"python37"`, `"python38"`,`"go111"`, `"go113"`.
	Runtime pulumi.StringOutput `pulumi:"runtime"`
	// If provided, the self-provided service account to run the function with.
	ServiceAccountEmail pulumi.StringOutput `pulumi:"serviceAccountEmail"`
	// The GCS bucket containing the zip archive which contains the function.
	SourceArchiveBucket pulumi.StringPtrOutput `pulumi:"sourceArchiveBucket"`
	// The source archive object (file) in archive bucket.
	SourceArchiveObject pulumi.StringPtrOutput `pulumi:"sourceArchiveObject"`
	// Represents parameters related to source repository where a function is hosted.
	// Cannot be set alongside `sourceArchiveBucket` or `sourceArchiveObject`. Structure is documented below.
	SourceRepository FunctionSourceRepositoryPtrOutput `pulumi:"sourceRepository"`
	// Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.
	Timeout pulumi.IntPtrOutput `pulumi:"timeout"`
	// Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as `httpsTriggerUrl`. Cannot be used with `triggerBucket` and `triggerTopic`.
	TriggerHttp pulumi.BoolPtrOutput `pulumi:"triggerHttp"`
	// The VPC Network Connector that this cloud function can connect to. It should be set up as fully-qualified URI. The format of this field is `projects/*/locations/*/connectors/*`.
	VpcConnector pulumi.StringPtrOutput `pulumi:"vpcConnector"`
	// The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are `ALL_TRAFFIC` and `PRIVATE_RANGES_ONLY`. Defaults to `PRIVATE_RANGES_ONLY`. If unset, this field preserves the previously set value.
	VpcConnectorEgressSettings pulumi.StringOutput `pulumi:"vpcConnectorEgressSettings"`
}

Creates a new Cloud Function. For more information see:

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

> **Warning:** As of November 1, 2019, newly created Functions are private-by-default and will require [appropriate IAM permissions](https://cloud.google.com/functions/docs/reference/iam/roles) to be invoked. See below examples for how to set up the appropriate permissions, or view the [Cloud Functions IAM resources](https://www.terraform.io/docs/providers/google/r/cloudfunctions_cloud_function_iam.html) for Cloud Functions.

## Example Usage ### Public Function

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		archive, err := storage.NewBucketObject(ctx, "archive", &storage.BucketObjectArgs{
			Bucket: bucket.Name,
			Source: pulumi.NewFileAsset("./path/to/zip/file/which/contains/code"),
		})
		if err != nil {
			return err
		}
		function, err := cloudfunctions.NewFunction(ctx, "function", &cloudfunctions.FunctionArgs{
			Description:         pulumi.String("My function"),
			Runtime:             pulumi.String("nodejs12"),
			AvailableMemoryMb:   pulumi.Int(128),
			SourceArchiveBucket: bucket.Name,
			SourceArchiveObject: archive.Name,
			TriggerHttp:         pulumi.Bool(true),
			EntryPoint:          pulumi.String("helloGET"),
		})
		if err != nil {
			return err
		}
		_, err = cloudfunctions.NewFunctionIamMember(ctx, "invoker", &cloudfunctions.FunctionIamMemberArgs{
			Project:       function.Project,
			Region:        function.Region,
			CloudFunction: function.Name,
			Role:          pulumi.String("roles/cloudfunctions.invoker"),
			Member:        pulumi.String("allUsers"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Single User

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		bucket, err := storage.NewBucket(ctx, "bucket", nil)
		if err != nil {
			return err
		}
		archive, err := storage.NewBucketObject(ctx, "archive", &storage.BucketObjectArgs{
			Bucket: bucket.Name,
			Source: pulumi.NewFileAsset("./path/to/zip/file/which/contains/code"),
		})
		if err != nil {
			return err
		}
		function, err := cloudfunctions.NewFunction(ctx, "function", &cloudfunctions.FunctionArgs{
			Description:         pulumi.String("My function"),
			Runtime:             pulumi.String("nodejs12"),
			AvailableMemoryMb:   pulumi.Int(128),
			SourceArchiveBucket: bucket.Name,
			SourceArchiveObject: archive.Name,
			TriggerHttp:         pulumi.Bool(true),
			Timeout:             pulumi.Int(60),
			EntryPoint:          pulumi.String("helloGET"),
			Labels: pulumi.StringMap{
				"my-label": pulumi.String("my-label-value"),
			},
			EnvironmentVariables: pulumi.StringMap{
				"MY_ENV_VAR": pulumi.String("my-env-var-value"),
			},
		})
		if err != nil {
			return err
		}
		_, err = cloudfunctions.NewFunctionIamMember(ctx, "invoker", &cloudfunctions.FunctionIamMemberArgs{
			Project:       function.Project,
			Region:        function.Region,
			CloudFunction: function.Name,
			Role:          pulumi.String("roles/cloudfunctions.invoker"),
			Member:        pulumi.String("user:myFunctionInvoker@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Functions can be imported using the `name` or `{{project}}/{{region}}/name`, e.g.

```sh

$ pulumi import gcp:cloudfunctions/function:Function default function-test

```

```sh

$ pulumi import gcp:cloudfunctions/function:Function default {{project}}/{{region}}/function-test

```

func GetFunction

func GetFunction(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FunctionState, opts ...pulumi.ResourceOption) (*Function, error)

GetFunction gets an existing Function 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 NewFunction

func NewFunction(ctx *pulumi.Context,
	name string, args *FunctionArgs, opts ...pulumi.ResourceOption) (*Function, error)

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

func (*Function) ElementType added in v4.4.0

func (*Function) ElementType() reflect.Type

func (*Function) ToFunctionOutput added in v4.4.0

func (i *Function) ToFunctionOutput() FunctionOutput

func (*Function) ToFunctionOutputWithContext added in v4.4.0

func (i *Function) ToFunctionOutputWithContext(ctx context.Context) FunctionOutput

func (*Function) ToFunctionPtrOutput added in v4.11.1

func (i *Function) ToFunctionPtrOutput() FunctionPtrOutput

func (*Function) ToFunctionPtrOutputWithContext added in v4.11.1

func (i *Function) ToFunctionPtrOutputWithContext(ctx context.Context) FunctionPtrOutput

type FunctionArgs

type FunctionArgs struct {
	// Memory (in MB), available to the function. Default value is 256MB. Allowed values are: 128MB, 256MB, 512MB, 1024MB, 2048MB and 4096MB.
	AvailableMemoryMb pulumi.IntPtrInput
	// A set of key/value environment variable pairs available during build time.
	BuildEnvironmentVariables pulumi.MapInput
	// Description of the function.
	Description pulumi.StringPtrInput
	// Name of the function that will be executed when the Google Cloud Function is triggered.
	EntryPoint pulumi.StringPtrInput
	// A set of key/value environment variable pairs to assign to the function.
	EnvironmentVariables pulumi.MapInput
	// A source that fires events in response to a condition in another service. Structure is documented below. Cannot be used with `triggerHttp`.
	EventTrigger FunctionEventTriggerPtrInput
	// URL which triggers function execution. Returned only if `triggerHttp` is used.
	HttpsTriggerUrl pulumi.StringPtrInput
	// String value that controls what traffic can reach the function. Allowed values are `ALLOW_ALL`, `ALLOW_INTERNAL_AND_GCLB` and `ALLOW_INTERNAL_ONLY`. Changes to this field will recreate the cloud function.
	IngressSettings pulumi.StringPtrInput
	// A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.MapInput
	// The limit on the maximum number of function instances that may coexist at a given time.
	MaxInstances pulumi.IntPtrInput
	// A user-defined name of the function. Function names must be unique globally.
	Name pulumi.StringPtrInput
	// Project of the function. If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used.
	Region pulumi.StringPtrInput
	// The runtime in which the function is going to run.
	// Eg. `"nodejs8"`, `"nodejs10"`, `"nodejs12"`, `"python37"`, `"python38"`,`"go111"`, `"go113"`.
	Runtime pulumi.StringInput
	// If provided, the self-provided service account to run the function with.
	ServiceAccountEmail pulumi.StringPtrInput
	// The GCS bucket containing the zip archive which contains the function.
	SourceArchiveBucket pulumi.StringPtrInput
	// The source archive object (file) in archive bucket.
	SourceArchiveObject pulumi.StringPtrInput
	// Represents parameters related to source repository where a function is hosted.
	// Cannot be set alongside `sourceArchiveBucket` or `sourceArchiveObject`. Structure is documented below.
	SourceRepository FunctionSourceRepositoryPtrInput
	// Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.
	Timeout pulumi.IntPtrInput
	// Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as `httpsTriggerUrl`. Cannot be used with `triggerBucket` and `triggerTopic`.
	TriggerHttp pulumi.BoolPtrInput
	// The VPC Network Connector that this cloud function can connect to. It should be set up as fully-qualified URI. The format of this field is `projects/*/locations/*/connectors/*`.
	VpcConnector pulumi.StringPtrInput
	// The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are `ALL_TRAFFIC` and `PRIVATE_RANGES_ONLY`. Defaults to `PRIVATE_RANGES_ONLY`. If unset, this field preserves the previously set value.
	VpcConnectorEgressSettings pulumi.StringPtrInput
}

The set of arguments for constructing a Function resource.

func (FunctionArgs) ElementType

func (FunctionArgs) ElementType() reflect.Type

type FunctionArray added in v4.11.1

type FunctionArray []FunctionInput

func (FunctionArray) ElementType added in v4.11.1

func (FunctionArray) ElementType() reflect.Type

func (FunctionArray) ToFunctionArrayOutput added in v4.11.1

func (i FunctionArray) ToFunctionArrayOutput() FunctionArrayOutput

func (FunctionArray) ToFunctionArrayOutputWithContext added in v4.11.1

func (i FunctionArray) ToFunctionArrayOutputWithContext(ctx context.Context) FunctionArrayOutput

type FunctionArrayInput added in v4.11.1

type FunctionArrayInput interface {
	pulumi.Input

	ToFunctionArrayOutput() FunctionArrayOutput
	ToFunctionArrayOutputWithContext(context.Context) FunctionArrayOutput
}

FunctionArrayInput is an input type that accepts FunctionArray and FunctionArrayOutput values. You can construct a concrete instance of `FunctionArrayInput` via:

FunctionArray{ FunctionArgs{...} }

type FunctionArrayOutput added in v4.11.1

type FunctionArrayOutput struct{ *pulumi.OutputState }

func (FunctionArrayOutput) ElementType added in v4.11.1

func (FunctionArrayOutput) ElementType() reflect.Type

func (FunctionArrayOutput) Index added in v4.11.1

func (FunctionArrayOutput) ToFunctionArrayOutput added in v4.11.1

func (o FunctionArrayOutput) ToFunctionArrayOutput() FunctionArrayOutput

func (FunctionArrayOutput) ToFunctionArrayOutputWithContext added in v4.11.1

func (o FunctionArrayOutput) ToFunctionArrayOutputWithContext(ctx context.Context) FunctionArrayOutput

type FunctionEventTrigger

type FunctionEventTrigger struct {
	// The type of event to observe. For example: `"google.storage.object.finalize"`.
	// See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a
	// full reference of accepted triggers.
	EventType string `pulumi:"eventType"`
	// Specifies policy for failed executions. Structure is documented below.
	FailurePolicy *FunctionEventTriggerFailurePolicy `pulumi:"failurePolicy"`
	// Required. The name or partial URI of the resource from
	// which to observe events. For example, `"myBucket"` or `"projects/my-project/topics/my-topic"`
	Resource string `pulumi:"resource"`
}

type FunctionEventTriggerArgs

type FunctionEventTriggerArgs struct {
	// The type of event to observe. For example: `"google.storage.object.finalize"`.
	// See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a
	// full reference of accepted triggers.
	EventType pulumi.StringInput `pulumi:"eventType"`
	// Specifies policy for failed executions. Structure is documented below.
	FailurePolicy FunctionEventTriggerFailurePolicyPtrInput `pulumi:"failurePolicy"`
	// Required. The name or partial URI of the resource from
	// which to observe events. For example, `"myBucket"` or `"projects/my-project/topics/my-topic"`
	Resource pulumi.StringInput `pulumi:"resource"`
}

func (FunctionEventTriggerArgs) ElementType

func (FunctionEventTriggerArgs) ElementType() reflect.Type

func (FunctionEventTriggerArgs) ToFunctionEventTriggerOutput

func (i FunctionEventTriggerArgs) ToFunctionEventTriggerOutput() FunctionEventTriggerOutput

func (FunctionEventTriggerArgs) ToFunctionEventTriggerOutputWithContext

func (i FunctionEventTriggerArgs) ToFunctionEventTriggerOutputWithContext(ctx context.Context) FunctionEventTriggerOutput

func (FunctionEventTriggerArgs) ToFunctionEventTriggerPtrOutput

func (i FunctionEventTriggerArgs) ToFunctionEventTriggerPtrOutput() FunctionEventTriggerPtrOutput

func (FunctionEventTriggerArgs) ToFunctionEventTriggerPtrOutputWithContext

func (i FunctionEventTriggerArgs) ToFunctionEventTriggerPtrOutputWithContext(ctx context.Context) FunctionEventTriggerPtrOutput

type FunctionEventTriggerFailurePolicy

type FunctionEventTriggerFailurePolicy struct {
	// Whether the function should be retried on failure. Defaults to `false`.
	Retry bool `pulumi:"retry"`
}

type FunctionEventTriggerFailurePolicyArgs

type FunctionEventTriggerFailurePolicyArgs struct {
	// Whether the function should be retried on failure. Defaults to `false`.
	Retry pulumi.BoolInput `pulumi:"retry"`
}

func (FunctionEventTriggerFailurePolicyArgs) ElementType

func (FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyOutput

func (i FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyOutput() FunctionEventTriggerFailurePolicyOutput

func (FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyOutputWithContext

func (i FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyOutputWithContext(ctx context.Context) FunctionEventTriggerFailurePolicyOutput

func (FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyPtrOutput

func (i FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyPtrOutput() FunctionEventTriggerFailurePolicyPtrOutput

func (FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext

func (i FunctionEventTriggerFailurePolicyArgs) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext(ctx context.Context) FunctionEventTriggerFailurePolicyPtrOutput

type FunctionEventTriggerFailurePolicyInput

type FunctionEventTriggerFailurePolicyInput interface {
	pulumi.Input

	ToFunctionEventTriggerFailurePolicyOutput() FunctionEventTriggerFailurePolicyOutput
	ToFunctionEventTriggerFailurePolicyOutputWithContext(context.Context) FunctionEventTriggerFailurePolicyOutput
}

FunctionEventTriggerFailurePolicyInput is an input type that accepts FunctionEventTriggerFailurePolicyArgs and FunctionEventTriggerFailurePolicyOutput values. You can construct a concrete instance of `FunctionEventTriggerFailurePolicyInput` via:

FunctionEventTriggerFailurePolicyArgs{...}

type FunctionEventTriggerFailurePolicyOutput

type FunctionEventTriggerFailurePolicyOutput struct{ *pulumi.OutputState }

func (FunctionEventTriggerFailurePolicyOutput) ElementType

func (FunctionEventTriggerFailurePolicyOutput) Retry

Whether the function should be retried on failure. Defaults to `false`.

func (FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyOutput

func (o FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyOutput() FunctionEventTriggerFailurePolicyOutput

func (FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyOutputWithContext

func (o FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyOutputWithContext(ctx context.Context) FunctionEventTriggerFailurePolicyOutput

func (FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyPtrOutput

func (o FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyPtrOutput() FunctionEventTriggerFailurePolicyPtrOutput

func (FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext

func (o FunctionEventTriggerFailurePolicyOutput) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext(ctx context.Context) FunctionEventTriggerFailurePolicyPtrOutput

type FunctionEventTriggerFailurePolicyPtrInput

type FunctionEventTriggerFailurePolicyPtrInput interface {
	pulumi.Input

	ToFunctionEventTriggerFailurePolicyPtrOutput() FunctionEventTriggerFailurePolicyPtrOutput
	ToFunctionEventTriggerFailurePolicyPtrOutputWithContext(context.Context) FunctionEventTriggerFailurePolicyPtrOutput
}

FunctionEventTriggerFailurePolicyPtrInput is an input type that accepts FunctionEventTriggerFailurePolicyArgs, FunctionEventTriggerFailurePolicyPtr and FunctionEventTriggerFailurePolicyPtrOutput values. You can construct a concrete instance of `FunctionEventTriggerFailurePolicyPtrInput` via:

        FunctionEventTriggerFailurePolicyArgs{...}

or:

        nil

type FunctionEventTriggerFailurePolicyPtrOutput

type FunctionEventTriggerFailurePolicyPtrOutput struct{ *pulumi.OutputState }

func (FunctionEventTriggerFailurePolicyPtrOutput) Elem

func (FunctionEventTriggerFailurePolicyPtrOutput) ElementType

func (FunctionEventTriggerFailurePolicyPtrOutput) Retry

Whether the function should be retried on failure. Defaults to `false`.

func (FunctionEventTriggerFailurePolicyPtrOutput) ToFunctionEventTriggerFailurePolicyPtrOutput

func (o FunctionEventTriggerFailurePolicyPtrOutput) ToFunctionEventTriggerFailurePolicyPtrOutput() FunctionEventTriggerFailurePolicyPtrOutput

func (FunctionEventTriggerFailurePolicyPtrOutput) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext

func (o FunctionEventTriggerFailurePolicyPtrOutput) ToFunctionEventTriggerFailurePolicyPtrOutputWithContext(ctx context.Context) FunctionEventTriggerFailurePolicyPtrOutput

type FunctionEventTriggerInput

type FunctionEventTriggerInput interface {
	pulumi.Input

	ToFunctionEventTriggerOutput() FunctionEventTriggerOutput
	ToFunctionEventTriggerOutputWithContext(context.Context) FunctionEventTriggerOutput
}

FunctionEventTriggerInput is an input type that accepts FunctionEventTriggerArgs and FunctionEventTriggerOutput values. You can construct a concrete instance of `FunctionEventTriggerInput` via:

FunctionEventTriggerArgs{...}

type FunctionEventTriggerOutput

type FunctionEventTriggerOutput struct{ *pulumi.OutputState }

func (FunctionEventTriggerOutput) ElementType

func (FunctionEventTriggerOutput) ElementType() reflect.Type

func (FunctionEventTriggerOutput) EventType

The type of event to observe. For example: `"google.storage.object.finalize"`. See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a full reference of accepted triggers.

func (FunctionEventTriggerOutput) FailurePolicy

Specifies policy for failed executions. Structure is documented below.

func (FunctionEventTriggerOutput) Resource

Required. The name or partial URI of the resource from which to observe events. For example, `"myBucket"` or `"projects/my-project/topics/my-topic"`

func (FunctionEventTriggerOutput) ToFunctionEventTriggerOutput

func (o FunctionEventTriggerOutput) ToFunctionEventTriggerOutput() FunctionEventTriggerOutput

func (FunctionEventTriggerOutput) ToFunctionEventTriggerOutputWithContext

func (o FunctionEventTriggerOutput) ToFunctionEventTriggerOutputWithContext(ctx context.Context) FunctionEventTriggerOutput

func (FunctionEventTriggerOutput) ToFunctionEventTriggerPtrOutput

func (o FunctionEventTriggerOutput) ToFunctionEventTriggerPtrOutput() FunctionEventTriggerPtrOutput

func (FunctionEventTriggerOutput) ToFunctionEventTriggerPtrOutputWithContext

func (o FunctionEventTriggerOutput) ToFunctionEventTriggerPtrOutputWithContext(ctx context.Context) FunctionEventTriggerPtrOutput

type FunctionEventTriggerPtrInput

type FunctionEventTriggerPtrInput interface {
	pulumi.Input

	ToFunctionEventTriggerPtrOutput() FunctionEventTriggerPtrOutput
	ToFunctionEventTriggerPtrOutputWithContext(context.Context) FunctionEventTriggerPtrOutput
}

FunctionEventTriggerPtrInput is an input type that accepts FunctionEventTriggerArgs, FunctionEventTriggerPtr and FunctionEventTriggerPtrOutput values. You can construct a concrete instance of `FunctionEventTriggerPtrInput` via:

        FunctionEventTriggerArgs{...}

or:

        nil

type FunctionEventTriggerPtrOutput

type FunctionEventTriggerPtrOutput struct{ *pulumi.OutputState }

func (FunctionEventTriggerPtrOutput) Elem

func (FunctionEventTriggerPtrOutput) ElementType

func (FunctionEventTriggerPtrOutput) EventType

The type of event to observe. For example: `"google.storage.object.finalize"`. See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a full reference of accepted triggers.

func (FunctionEventTriggerPtrOutput) FailurePolicy

Specifies policy for failed executions. Structure is documented below.

func (FunctionEventTriggerPtrOutput) Resource

Required. The name or partial URI of the resource from which to observe events. For example, `"myBucket"` or `"projects/my-project/topics/my-topic"`

func (FunctionEventTriggerPtrOutput) ToFunctionEventTriggerPtrOutput

func (o FunctionEventTriggerPtrOutput) ToFunctionEventTriggerPtrOutput() FunctionEventTriggerPtrOutput

func (FunctionEventTriggerPtrOutput) ToFunctionEventTriggerPtrOutputWithContext

func (o FunctionEventTriggerPtrOutput) ToFunctionEventTriggerPtrOutputWithContext(ctx context.Context) FunctionEventTriggerPtrOutput

type FunctionIamBinding

type FunctionIamBinding struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringOutput                  `pulumi:"cloudFunction"`
	Condition     FunctionIamBindingConditionPtrOutput `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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Cloud Functions CloudFunction. Each of these resources serves a different use case:

* `cloudfunctions.FunctionIamPolicy`: Authoritative. Sets the IAM policy for the cloudfunction and replaces any existing policy already attached. * `cloudfunctions.FunctionIamBinding`: 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 cloudfunction are preserved. * `cloudfunctions.FunctionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the cloudfunction are preserved.

> **Note:** `cloudfunctions.FunctionIamPolicy` **cannot** be used in conjunction with `cloudfunctions.FunctionIamBinding` and `cloudfunctions.FunctionIamMember` or they will fight over what your policy should be.

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

## google\_cloudfunctions\_function\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

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

```

## google\_cloudfunctions\_function\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamBinding(ctx, "binding", &cloudfunctions.FunctionIamBindingArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.Name),
			Role:          pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_cloudfunctions\_function\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamMember(ctx, "member", &cloudfunctions.FunctionIamMemberArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.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}}/locations/{{region}}/functions/{{cloud_function}} * {{project}}/{{region}}/{{cloud_function}} * {{region}}/{{cloud_function}} * {{cloud_function}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Functions cloudfunction IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:cloudfunctions/functionIamBinding:FunctionIamBinding editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamBinding:FunctionIamBinding editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamBinding:FunctionIamBinding editor projects/{{project}}/locations/{{region}}/functions/{{cloud_function}}

```

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

func GetFunctionIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FunctionIamBindingState, opts ...pulumi.ResourceOption) (*FunctionIamBinding, error)

GetFunctionIamBinding gets an existing FunctionIamBinding 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 NewFunctionIamBinding

func NewFunctionIamBinding(ctx *pulumi.Context,
	name string, args *FunctionIamBindingArgs, opts ...pulumi.ResourceOption) (*FunctionIamBinding, error)

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

func (*FunctionIamBinding) ElementType added in v4.4.0

func (*FunctionIamBinding) ElementType() reflect.Type

func (*FunctionIamBinding) ToFunctionIamBindingOutput added in v4.4.0

func (i *FunctionIamBinding) ToFunctionIamBindingOutput() FunctionIamBindingOutput

func (*FunctionIamBinding) ToFunctionIamBindingOutputWithContext added in v4.4.0

func (i *FunctionIamBinding) ToFunctionIamBindingOutputWithContext(ctx context.Context) FunctionIamBindingOutput

func (*FunctionIamBinding) ToFunctionIamBindingPtrOutput added in v4.11.1

func (i *FunctionIamBinding) ToFunctionIamBindingPtrOutput() FunctionIamBindingPtrOutput

func (*FunctionIamBinding) ToFunctionIamBindingPtrOutputWithContext added in v4.11.1

func (i *FunctionIamBinding) ToFunctionIamBindingPtrOutputWithContext(ctx context.Context) FunctionIamBindingPtrOutput

type FunctionIamBindingArgs

type FunctionIamBindingArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringInput
	Condition     FunctionIamBindingConditionPtrInput
	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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` 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 set of arguments for constructing a FunctionIamBinding resource.

func (FunctionIamBindingArgs) ElementType

func (FunctionIamBindingArgs) ElementType() reflect.Type

type FunctionIamBindingArray added in v4.11.1

type FunctionIamBindingArray []FunctionIamBindingInput

func (FunctionIamBindingArray) ElementType added in v4.11.1

func (FunctionIamBindingArray) ElementType() reflect.Type

func (FunctionIamBindingArray) ToFunctionIamBindingArrayOutput added in v4.11.1

func (i FunctionIamBindingArray) ToFunctionIamBindingArrayOutput() FunctionIamBindingArrayOutput

func (FunctionIamBindingArray) ToFunctionIamBindingArrayOutputWithContext added in v4.11.1

func (i FunctionIamBindingArray) ToFunctionIamBindingArrayOutputWithContext(ctx context.Context) FunctionIamBindingArrayOutput

type FunctionIamBindingArrayInput added in v4.11.1

type FunctionIamBindingArrayInput interface {
	pulumi.Input

	ToFunctionIamBindingArrayOutput() FunctionIamBindingArrayOutput
	ToFunctionIamBindingArrayOutputWithContext(context.Context) FunctionIamBindingArrayOutput
}

FunctionIamBindingArrayInput is an input type that accepts FunctionIamBindingArray and FunctionIamBindingArrayOutput values. You can construct a concrete instance of `FunctionIamBindingArrayInput` via:

FunctionIamBindingArray{ FunctionIamBindingArgs{...} }

type FunctionIamBindingArrayOutput added in v4.11.1

type FunctionIamBindingArrayOutput struct{ *pulumi.OutputState }

func (FunctionIamBindingArrayOutput) ElementType added in v4.11.1

func (FunctionIamBindingArrayOutput) Index added in v4.11.1

func (FunctionIamBindingArrayOutput) ToFunctionIamBindingArrayOutput added in v4.11.1

func (o FunctionIamBindingArrayOutput) ToFunctionIamBindingArrayOutput() FunctionIamBindingArrayOutput

func (FunctionIamBindingArrayOutput) ToFunctionIamBindingArrayOutputWithContext added in v4.11.1

func (o FunctionIamBindingArrayOutput) ToFunctionIamBindingArrayOutputWithContext(ctx context.Context) FunctionIamBindingArrayOutput

type FunctionIamBindingCondition

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

type FunctionIamBindingConditionArgs

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

func (FunctionIamBindingConditionArgs) ElementType

func (FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionOutput

func (i FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionOutput() FunctionIamBindingConditionOutput

func (FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionOutputWithContext

func (i FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionOutputWithContext(ctx context.Context) FunctionIamBindingConditionOutput

func (FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionPtrOutput

func (i FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionPtrOutput() FunctionIamBindingConditionPtrOutput

func (FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionPtrOutputWithContext

func (i FunctionIamBindingConditionArgs) ToFunctionIamBindingConditionPtrOutputWithContext(ctx context.Context) FunctionIamBindingConditionPtrOutput

type FunctionIamBindingConditionInput

type FunctionIamBindingConditionInput interface {
	pulumi.Input

	ToFunctionIamBindingConditionOutput() FunctionIamBindingConditionOutput
	ToFunctionIamBindingConditionOutputWithContext(context.Context) FunctionIamBindingConditionOutput
}

FunctionIamBindingConditionInput is an input type that accepts FunctionIamBindingConditionArgs and FunctionIamBindingConditionOutput values. You can construct a concrete instance of `FunctionIamBindingConditionInput` via:

FunctionIamBindingConditionArgs{...}

type FunctionIamBindingConditionOutput

type FunctionIamBindingConditionOutput struct{ *pulumi.OutputState }

func (FunctionIamBindingConditionOutput) Description

func (FunctionIamBindingConditionOutput) ElementType

func (FunctionIamBindingConditionOutput) Expression

func (FunctionIamBindingConditionOutput) Title

func (FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionOutput

func (o FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionOutput() FunctionIamBindingConditionOutput

func (FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionOutputWithContext

func (o FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionOutputWithContext(ctx context.Context) FunctionIamBindingConditionOutput

func (FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionPtrOutput

func (o FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionPtrOutput() FunctionIamBindingConditionPtrOutput

func (FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionPtrOutputWithContext

func (o FunctionIamBindingConditionOutput) ToFunctionIamBindingConditionPtrOutputWithContext(ctx context.Context) FunctionIamBindingConditionPtrOutput

type FunctionIamBindingConditionPtrInput

type FunctionIamBindingConditionPtrInput interface {
	pulumi.Input

	ToFunctionIamBindingConditionPtrOutput() FunctionIamBindingConditionPtrOutput
	ToFunctionIamBindingConditionPtrOutputWithContext(context.Context) FunctionIamBindingConditionPtrOutput
}

FunctionIamBindingConditionPtrInput is an input type that accepts FunctionIamBindingConditionArgs, FunctionIamBindingConditionPtr and FunctionIamBindingConditionPtrOutput values. You can construct a concrete instance of `FunctionIamBindingConditionPtrInput` via:

        FunctionIamBindingConditionArgs{...}

or:

        nil

type FunctionIamBindingConditionPtrOutput

type FunctionIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (FunctionIamBindingConditionPtrOutput) Description

func (FunctionIamBindingConditionPtrOutput) Elem

func (FunctionIamBindingConditionPtrOutput) ElementType

func (FunctionIamBindingConditionPtrOutput) Expression

func (FunctionIamBindingConditionPtrOutput) Title

func (FunctionIamBindingConditionPtrOutput) ToFunctionIamBindingConditionPtrOutput

func (o FunctionIamBindingConditionPtrOutput) ToFunctionIamBindingConditionPtrOutput() FunctionIamBindingConditionPtrOutput

func (FunctionIamBindingConditionPtrOutput) ToFunctionIamBindingConditionPtrOutputWithContext

func (o FunctionIamBindingConditionPtrOutput) ToFunctionIamBindingConditionPtrOutputWithContext(ctx context.Context) FunctionIamBindingConditionPtrOutput

type FunctionIamBindingInput added in v4.4.0

type FunctionIamBindingInput interface {
	pulumi.Input

	ToFunctionIamBindingOutput() FunctionIamBindingOutput
	ToFunctionIamBindingOutputWithContext(ctx context.Context) FunctionIamBindingOutput
}

type FunctionIamBindingMap added in v4.11.1

type FunctionIamBindingMap map[string]FunctionIamBindingInput

func (FunctionIamBindingMap) ElementType added in v4.11.1

func (FunctionIamBindingMap) ElementType() reflect.Type

func (FunctionIamBindingMap) ToFunctionIamBindingMapOutput added in v4.11.1

func (i FunctionIamBindingMap) ToFunctionIamBindingMapOutput() FunctionIamBindingMapOutput

func (FunctionIamBindingMap) ToFunctionIamBindingMapOutputWithContext added in v4.11.1

func (i FunctionIamBindingMap) ToFunctionIamBindingMapOutputWithContext(ctx context.Context) FunctionIamBindingMapOutput

type FunctionIamBindingMapInput added in v4.11.1

type FunctionIamBindingMapInput interface {
	pulumi.Input

	ToFunctionIamBindingMapOutput() FunctionIamBindingMapOutput
	ToFunctionIamBindingMapOutputWithContext(context.Context) FunctionIamBindingMapOutput
}

FunctionIamBindingMapInput is an input type that accepts FunctionIamBindingMap and FunctionIamBindingMapOutput values. You can construct a concrete instance of `FunctionIamBindingMapInput` via:

FunctionIamBindingMap{ "key": FunctionIamBindingArgs{...} }

type FunctionIamBindingMapOutput added in v4.11.1

type FunctionIamBindingMapOutput struct{ *pulumi.OutputState }

func (FunctionIamBindingMapOutput) ElementType added in v4.11.1

func (FunctionIamBindingMapOutput) MapIndex added in v4.11.1

func (FunctionIamBindingMapOutput) ToFunctionIamBindingMapOutput added in v4.11.1

func (o FunctionIamBindingMapOutput) ToFunctionIamBindingMapOutput() FunctionIamBindingMapOutput

func (FunctionIamBindingMapOutput) ToFunctionIamBindingMapOutputWithContext added in v4.11.1

func (o FunctionIamBindingMapOutput) ToFunctionIamBindingMapOutputWithContext(ctx context.Context) FunctionIamBindingMapOutput

type FunctionIamBindingOutput added in v4.4.0

type FunctionIamBindingOutput struct {
	*pulumi.OutputState
}

func (FunctionIamBindingOutput) ElementType added in v4.4.0

func (FunctionIamBindingOutput) ElementType() reflect.Type

func (FunctionIamBindingOutput) ToFunctionIamBindingOutput added in v4.4.0

func (o FunctionIamBindingOutput) ToFunctionIamBindingOutput() FunctionIamBindingOutput

func (FunctionIamBindingOutput) ToFunctionIamBindingOutputWithContext added in v4.4.0

func (o FunctionIamBindingOutput) ToFunctionIamBindingOutputWithContext(ctx context.Context) FunctionIamBindingOutput

func (FunctionIamBindingOutput) ToFunctionIamBindingPtrOutput added in v4.11.1

func (o FunctionIamBindingOutput) ToFunctionIamBindingPtrOutput() FunctionIamBindingPtrOutput

func (FunctionIamBindingOutput) ToFunctionIamBindingPtrOutputWithContext added in v4.11.1

func (o FunctionIamBindingOutput) ToFunctionIamBindingPtrOutputWithContext(ctx context.Context) FunctionIamBindingPtrOutput

type FunctionIamBindingPtrInput added in v4.11.1

type FunctionIamBindingPtrInput interface {
	pulumi.Input

	ToFunctionIamBindingPtrOutput() FunctionIamBindingPtrOutput
	ToFunctionIamBindingPtrOutputWithContext(ctx context.Context) FunctionIamBindingPtrOutput
}

type FunctionIamBindingPtrOutput added in v4.11.1

type FunctionIamBindingPtrOutput struct {
	*pulumi.OutputState
}

func (FunctionIamBindingPtrOutput) ElementType added in v4.11.1

func (FunctionIamBindingPtrOutput) ToFunctionIamBindingPtrOutput added in v4.11.1

func (o FunctionIamBindingPtrOutput) ToFunctionIamBindingPtrOutput() FunctionIamBindingPtrOutput

func (FunctionIamBindingPtrOutput) ToFunctionIamBindingPtrOutputWithContext added in v4.11.1

func (o FunctionIamBindingPtrOutput) ToFunctionIamBindingPtrOutputWithContext(ctx context.Context) FunctionIamBindingPtrOutput

type FunctionIamBindingState

type FunctionIamBindingState struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringPtrInput
	Condition     FunctionIamBindingConditionPtrInput
	// (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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (FunctionIamBindingState) ElementType

func (FunctionIamBindingState) ElementType() reflect.Type

type FunctionIamMember

type FunctionIamMember struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringOutput                 `pulumi:"cloudFunction"`
	Condition     FunctionIamMemberConditionPtrOutput `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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` 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"`
}

Three different resources help you manage your IAM policy for Cloud Functions CloudFunction. Each of these resources serves a different use case:

* `cloudfunctions.FunctionIamPolicy`: Authoritative. Sets the IAM policy for the cloudfunction and replaces any existing policy already attached. * `cloudfunctions.FunctionIamBinding`: 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 cloudfunction are preserved. * `cloudfunctions.FunctionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the cloudfunction are preserved.

> **Note:** `cloudfunctions.FunctionIamPolicy` **cannot** be used in conjunction with `cloudfunctions.FunctionIamBinding` and `cloudfunctions.FunctionIamMember` or they will fight over what your policy should be.

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

## google\_cloudfunctions\_function\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

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

```

## google\_cloudfunctions\_function\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamBinding(ctx, "binding", &cloudfunctions.FunctionIamBindingArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.Name),
			Role:          pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_cloudfunctions\_function\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamMember(ctx, "member", &cloudfunctions.FunctionIamMemberArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.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}}/locations/{{region}}/functions/{{cloud_function}} * {{project}}/{{region}}/{{cloud_function}} * {{region}}/{{cloud_function}} * {{cloud_function}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Functions cloudfunction IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:cloudfunctions/functionIamMember:FunctionIamMember editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamMember:FunctionIamMember editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamMember:FunctionIamMember editor projects/{{project}}/locations/{{region}}/functions/{{cloud_function}}

```

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

func GetFunctionIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FunctionIamMemberState, opts ...pulumi.ResourceOption) (*FunctionIamMember, error)

GetFunctionIamMember gets an existing FunctionIamMember 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 NewFunctionIamMember

func NewFunctionIamMember(ctx *pulumi.Context,
	name string, args *FunctionIamMemberArgs, opts ...pulumi.ResourceOption) (*FunctionIamMember, error)

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

func (*FunctionIamMember) ElementType added in v4.4.0

func (*FunctionIamMember) ElementType() reflect.Type

func (*FunctionIamMember) ToFunctionIamMemberOutput added in v4.4.0

func (i *FunctionIamMember) ToFunctionIamMemberOutput() FunctionIamMemberOutput

func (*FunctionIamMember) ToFunctionIamMemberOutputWithContext added in v4.4.0

func (i *FunctionIamMember) ToFunctionIamMemberOutputWithContext(ctx context.Context) FunctionIamMemberOutput

func (*FunctionIamMember) ToFunctionIamMemberPtrOutput added in v4.11.1

func (i *FunctionIamMember) ToFunctionIamMemberPtrOutput() FunctionIamMemberPtrOutput

func (*FunctionIamMember) ToFunctionIamMemberPtrOutputWithContext added in v4.11.1

func (i *FunctionIamMember) ToFunctionIamMemberPtrOutputWithContext(ctx context.Context) FunctionIamMemberPtrOutput

type FunctionIamMemberArgs

type FunctionIamMemberArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringInput
	Condition     FunctionIamMemberConditionPtrInput
	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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` 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 set of arguments for constructing a FunctionIamMember resource.

func (FunctionIamMemberArgs) ElementType

func (FunctionIamMemberArgs) ElementType() reflect.Type

type FunctionIamMemberArray added in v4.11.1

type FunctionIamMemberArray []FunctionIamMemberInput

func (FunctionIamMemberArray) ElementType added in v4.11.1

func (FunctionIamMemberArray) ElementType() reflect.Type

func (FunctionIamMemberArray) ToFunctionIamMemberArrayOutput added in v4.11.1

func (i FunctionIamMemberArray) ToFunctionIamMemberArrayOutput() FunctionIamMemberArrayOutput

func (FunctionIamMemberArray) ToFunctionIamMemberArrayOutputWithContext added in v4.11.1

func (i FunctionIamMemberArray) ToFunctionIamMemberArrayOutputWithContext(ctx context.Context) FunctionIamMemberArrayOutput

type FunctionIamMemberArrayInput added in v4.11.1

type FunctionIamMemberArrayInput interface {
	pulumi.Input

	ToFunctionIamMemberArrayOutput() FunctionIamMemberArrayOutput
	ToFunctionIamMemberArrayOutputWithContext(context.Context) FunctionIamMemberArrayOutput
}

FunctionIamMemberArrayInput is an input type that accepts FunctionIamMemberArray and FunctionIamMemberArrayOutput values. You can construct a concrete instance of `FunctionIamMemberArrayInput` via:

FunctionIamMemberArray{ FunctionIamMemberArgs{...} }

type FunctionIamMemberArrayOutput added in v4.11.1

type FunctionIamMemberArrayOutput struct{ *pulumi.OutputState }

func (FunctionIamMemberArrayOutput) ElementType added in v4.11.1

func (FunctionIamMemberArrayOutput) Index added in v4.11.1

func (FunctionIamMemberArrayOutput) ToFunctionIamMemberArrayOutput added in v4.11.1

func (o FunctionIamMemberArrayOutput) ToFunctionIamMemberArrayOutput() FunctionIamMemberArrayOutput

func (FunctionIamMemberArrayOutput) ToFunctionIamMemberArrayOutputWithContext added in v4.11.1

func (o FunctionIamMemberArrayOutput) ToFunctionIamMemberArrayOutputWithContext(ctx context.Context) FunctionIamMemberArrayOutput

type FunctionIamMemberCondition

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

type FunctionIamMemberConditionArgs

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

func (FunctionIamMemberConditionArgs) ElementType

func (FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionOutput

func (i FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionOutput() FunctionIamMemberConditionOutput

func (FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionOutputWithContext

func (i FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionOutputWithContext(ctx context.Context) FunctionIamMemberConditionOutput

func (FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionPtrOutput

func (i FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionPtrOutput() FunctionIamMemberConditionPtrOutput

func (FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionPtrOutputWithContext

func (i FunctionIamMemberConditionArgs) ToFunctionIamMemberConditionPtrOutputWithContext(ctx context.Context) FunctionIamMemberConditionPtrOutput

type FunctionIamMemberConditionInput

type FunctionIamMemberConditionInput interface {
	pulumi.Input

	ToFunctionIamMemberConditionOutput() FunctionIamMemberConditionOutput
	ToFunctionIamMemberConditionOutputWithContext(context.Context) FunctionIamMemberConditionOutput
}

FunctionIamMemberConditionInput is an input type that accepts FunctionIamMemberConditionArgs and FunctionIamMemberConditionOutput values. You can construct a concrete instance of `FunctionIamMemberConditionInput` via:

FunctionIamMemberConditionArgs{...}

type FunctionIamMemberConditionOutput

type FunctionIamMemberConditionOutput struct{ *pulumi.OutputState }

func (FunctionIamMemberConditionOutput) Description

func (FunctionIamMemberConditionOutput) ElementType

func (FunctionIamMemberConditionOutput) Expression

func (FunctionIamMemberConditionOutput) Title

func (FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionOutput

func (o FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionOutput() FunctionIamMemberConditionOutput

func (FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionOutputWithContext

func (o FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionOutputWithContext(ctx context.Context) FunctionIamMemberConditionOutput

func (FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionPtrOutput

func (o FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionPtrOutput() FunctionIamMemberConditionPtrOutput

func (FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionPtrOutputWithContext

func (o FunctionIamMemberConditionOutput) ToFunctionIamMemberConditionPtrOutputWithContext(ctx context.Context) FunctionIamMemberConditionPtrOutput

type FunctionIamMemberConditionPtrInput

type FunctionIamMemberConditionPtrInput interface {
	pulumi.Input

	ToFunctionIamMemberConditionPtrOutput() FunctionIamMemberConditionPtrOutput
	ToFunctionIamMemberConditionPtrOutputWithContext(context.Context) FunctionIamMemberConditionPtrOutput
}

FunctionIamMemberConditionPtrInput is an input type that accepts FunctionIamMemberConditionArgs, FunctionIamMemberConditionPtr and FunctionIamMemberConditionPtrOutput values. You can construct a concrete instance of `FunctionIamMemberConditionPtrInput` via:

        FunctionIamMemberConditionArgs{...}

or:

        nil

type FunctionIamMemberConditionPtrOutput

type FunctionIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (FunctionIamMemberConditionPtrOutput) Description

func (FunctionIamMemberConditionPtrOutput) Elem

func (FunctionIamMemberConditionPtrOutput) ElementType

func (FunctionIamMemberConditionPtrOutput) Expression

func (FunctionIamMemberConditionPtrOutput) Title

func (FunctionIamMemberConditionPtrOutput) ToFunctionIamMemberConditionPtrOutput

func (o FunctionIamMemberConditionPtrOutput) ToFunctionIamMemberConditionPtrOutput() FunctionIamMemberConditionPtrOutput

func (FunctionIamMemberConditionPtrOutput) ToFunctionIamMemberConditionPtrOutputWithContext

func (o FunctionIamMemberConditionPtrOutput) ToFunctionIamMemberConditionPtrOutputWithContext(ctx context.Context) FunctionIamMemberConditionPtrOutput

type FunctionIamMemberInput added in v4.4.0

type FunctionIamMemberInput interface {
	pulumi.Input

	ToFunctionIamMemberOutput() FunctionIamMemberOutput
	ToFunctionIamMemberOutputWithContext(ctx context.Context) FunctionIamMemberOutput
}

type FunctionIamMemberMap added in v4.11.1

type FunctionIamMemberMap map[string]FunctionIamMemberInput

func (FunctionIamMemberMap) ElementType added in v4.11.1

func (FunctionIamMemberMap) ElementType() reflect.Type

func (FunctionIamMemberMap) ToFunctionIamMemberMapOutput added in v4.11.1

func (i FunctionIamMemberMap) ToFunctionIamMemberMapOutput() FunctionIamMemberMapOutput

func (FunctionIamMemberMap) ToFunctionIamMemberMapOutputWithContext added in v4.11.1

func (i FunctionIamMemberMap) ToFunctionIamMemberMapOutputWithContext(ctx context.Context) FunctionIamMemberMapOutput

type FunctionIamMemberMapInput added in v4.11.1

type FunctionIamMemberMapInput interface {
	pulumi.Input

	ToFunctionIamMemberMapOutput() FunctionIamMemberMapOutput
	ToFunctionIamMemberMapOutputWithContext(context.Context) FunctionIamMemberMapOutput
}

FunctionIamMemberMapInput is an input type that accepts FunctionIamMemberMap and FunctionIamMemberMapOutput values. You can construct a concrete instance of `FunctionIamMemberMapInput` via:

FunctionIamMemberMap{ "key": FunctionIamMemberArgs{...} }

type FunctionIamMemberMapOutput added in v4.11.1

type FunctionIamMemberMapOutput struct{ *pulumi.OutputState }

func (FunctionIamMemberMapOutput) ElementType added in v4.11.1

func (FunctionIamMemberMapOutput) ElementType() reflect.Type

func (FunctionIamMemberMapOutput) MapIndex added in v4.11.1

func (FunctionIamMemberMapOutput) ToFunctionIamMemberMapOutput added in v4.11.1

func (o FunctionIamMemberMapOutput) ToFunctionIamMemberMapOutput() FunctionIamMemberMapOutput

func (FunctionIamMemberMapOutput) ToFunctionIamMemberMapOutputWithContext added in v4.11.1

func (o FunctionIamMemberMapOutput) ToFunctionIamMemberMapOutputWithContext(ctx context.Context) FunctionIamMemberMapOutput

type FunctionIamMemberOutput added in v4.4.0

type FunctionIamMemberOutput struct {
	*pulumi.OutputState
}

func (FunctionIamMemberOutput) ElementType added in v4.4.0

func (FunctionIamMemberOutput) ElementType() reflect.Type

func (FunctionIamMemberOutput) ToFunctionIamMemberOutput added in v4.4.0

func (o FunctionIamMemberOutput) ToFunctionIamMemberOutput() FunctionIamMemberOutput

func (FunctionIamMemberOutput) ToFunctionIamMemberOutputWithContext added in v4.4.0

func (o FunctionIamMemberOutput) ToFunctionIamMemberOutputWithContext(ctx context.Context) FunctionIamMemberOutput

func (FunctionIamMemberOutput) ToFunctionIamMemberPtrOutput added in v4.11.1

func (o FunctionIamMemberOutput) ToFunctionIamMemberPtrOutput() FunctionIamMemberPtrOutput

func (FunctionIamMemberOutput) ToFunctionIamMemberPtrOutputWithContext added in v4.11.1

func (o FunctionIamMemberOutput) ToFunctionIamMemberPtrOutputWithContext(ctx context.Context) FunctionIamMemberPtrOutput

type FunctionIamMemberPtrInput added in v4.11.1

type FunctionIamMemberPtrInput interface {
	pulumi.Input

	ToFunctionIamMemberPtrOutput() FunctionIamMemberPtrOutput
	ToFunctionIamMemberPtrOutputWithContext(ctx context.Context) FunctionIamMemberPtrOutput
}

type FunctionIamMemberPtrOutput added in v4.11.1

type FunctionIamMemberPtrOutput struct {
	*pulumi.OutputState
}

func (FunctionIamMemberPtrOutput) ElementType added in v4.11.1

func (FunctionIamMemberPtrOutput) ElementType() reflect.Type

func (FunctionIamMemberPtrOutput) ToFunctionIamMemberPtrOutput added in v4.11.1

func (o FunctionIamMemberPtrOutput) ToFunctionIamMemberPtrOutput() FunctionIamMemberPtrOutput

func (FunctionIamMemberPtrOutput) ToFunctionIamMemberPtrOutputWithContext added in v4.11.1

func (o FunctionIamMemberPtrOutput) ToFunctionIamMemberPtrOutputWithContext(ctx context.Context) FunctionIamMemberPtrOutput

type FunctionIamMemberState

type FunctionIamMemberState struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringPtrInput
	Condition     FunctionIamMemberConditionPtrInput
	// (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 location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `cloudfunctions.FunctionIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (FunctionIamMemberState) ElementType

func (FunctionIamMemberState) ElementType() reflect.Type

type FunctionIamPolicy

type FunctionIamPolicy struct {
	pulumi.CustomResourceState

	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringOutput `pulumi:"cloudFunction"`
	// (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"`
	// The location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringOutput `pulumi:"region"`
}

Three different resources help you manage your IAM policy for Cloud Functions CloudFunction. Each of these resources serves a different use case:

* `cloudfunctions.FunctionIamPolicy`: Authoritative. Sets the IAM policy for the cloudfunction and replaces any existing policy already attached. * `cloudfunctions.FunctionIamBinding`: 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 cloudfunction are preserved. * `cloudfunctions.FunctionIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the cloudfunction are preserved.

> **Note:** `cloudfunctions.FunctionIamPolicy` **cannot** be used in conjunction with `cloudfunctions.FunctionIamBinding` and `cloudfunctions.FunctionIamMember` or they will fight over what your policy should be.

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

## google\_cloudfunctions\_function\_iam\_policy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

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

```

## google\_cloudfunctions\_function\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamBinding(ctx, "binding", &cloudfunctions.FunctionIamBindingArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.Name),
			Role:          pulumi.String("roles/viewer"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_cloudfunctions\_function\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.NewFunctionIamMember(ctx, "member", &cloudfunctions.FunctionIamMemberArgs{
			Project:       pulumi.Any(google_cloudfunctions_function.Function.Project),
			Region:        pulumi.Any(google_cloudfunctions_function.Function.Region),
			CloudFunction: pulumi.Any(google_cloudfunctions_function.Function.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}}/locations/{{region}}/functions/{{cloud_function}} * {{project}}/{{region}}/{{cloud_function}} * {{region}}/{{cloud_function}} * {{cloud_function}} Any variables not passed in the import command will be taken from the provider configuration. Cloud Functions cloudfunction IAM resources can be imported using the resource identifiers, role, and member. IAM member imports use space-delimited identifiersthe resource in question, the role, and the member identity, e.g.

```sh

$ pulumi import gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer user:jane@example.com"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy editor "projects/{{project}}/locations/{{region}}/functions/{{cloud_function}} roles/viewer"

```

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

```sh

$ pulumi import gcp:cloudfunctions/functionIamPolicy:FunctionIamPolicy editor projects/{{project}}/locations/{{region}}/functions/{{cloud_function}}

```

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

func GetFunctionIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *FunctionIamPolicyState, opts ...pulumi.ResourceOption) (*FunctionIamPolicy, error)

GetFunctionIamPolicy gets an existing FunctionIamPolicy 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 NewFunctionIamPolicy

func NewFunctionIamPolicy(ctx *pulumi.Context,
	name string, args *FunctionIamPolicyArgs, opts ...pulumi.ResourceOption) (*FunctionIamPolicy, error)

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

func (*FunctionIamPolicy) ElementType added in v4.4.0

func (*FunctionIamPolicy) ElementType() reflect.Type

func (*FunctionIamPolicy) ToFunctionIamPolicyOutput added in v4.4.0

func (i *FunctionIamPolicy) ToFunctionIamPolicyOutput() FunctionIamPolicyOutput

func (*FunctionIamPolicy) ToFunctionIamPolicyOutputWithContext added in v4.4.0

func (i *FunctionIamPolicy) ToFunctionIamPolicyOutputWithContext(ctx context.Context) FunctionIamPolicyOutput

func (*FunctionIamPolicy) ToFunctionIamPolicyPtrOutput added in v4.11.1

func (i *FunctionIamPolicy) ToFunctionIamPolicyPtrOutput() FunctionIamPolicyPtrOutput

func (*FunctionIamPolicy) ToFunctionIamPolicyPtrOutputWithContext added in v4.11.1

func (i *FunctionIamPolicy) ToFunctionIamPolicyPtrOutputWithContext(ctx context.Context) FunctionIamPolicyPtrOutput

type FunctionIamPolicyArgs

type FunctionIamPolicyArgs struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringInput
	// 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
	// The location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a FunctionIamPolicy resource.

func (FunctionIamPolicyArgs) ElementType

func (FunctionIamPolicyArgs) ElementType() reflect.Type

type FunctionIamPolicyArray added in v4.11.1

type FunctionIamPolicyArray []FunctionIamPolicyInput

func (FunctionIamPolicyArray) ElementType added in v4.11.1

func (FunctionIamPolicyArray) ElementType() reflect.Type

func (FunctionIamPolicyArray) ToFunctionIamPolicyArrayOutput added in v4.11.1

func (i FunctionIamPolicyArray) ToFunctionIamPolicyArrayOutput() FunctionIamPolicyArrayOutput

func (FunctionIamPolicyArray) ToFunctionIamPolicyArrayOutputWithContext added in v4.11.1

func (i FunctionIamPolicyArray) ToFunctionIamPolicyArrayOutputWithContext(ctx context.Context) FunctionIamPolicyArrayOutput

type FunctionIamPolicyArrayInput added in v4.11.1

type FunctionIamPolicyArrayInput interface {
	pulumi.Input

	ToFunctionIamPolicyArrayOutput() FunctionIamPolicyArrayOutput
	ToFunctionIamPolicyArrayOutputWithContext(context.Context) FunctionIamPolicyArrayOutput
}

FunctionIamPolicyArrayInput is an input type that accepts FunctionIamPolicyArray and FunctionIamPolicyArrayOutput values. You can construct a concrete instance of `FunctionIamPolicyArrayInput` via:

FunctionIamPolicyArray{ FunctionIamPolicyArgs{...} }

type FunctionIamPolicyArrayOutput added in v4.11.1

type FunctionIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (FunctionIamPolicyArrayOutput) ElementType added in v4.11.1

func (FunctionIamPolicyArrayOutput) Index added in v4.11.1

func (FunctionIamPolicyArrayOutput) ToFunctionIamPolicyArrayOutput added in v4.11.1

func (o FunctionIamPolicyArrayOutput) ToFunctionIamPolicyArrayOutput() FunctionIamPolicyArrayOutput

func (FunctionIamPolicyArrayOutput) ToFunctionIamPolicyArrayOutputWithContext added in v4.11.1

func (o FunctionIamPolicyArrayOutput) ToFunctionIamPolicyArrayOutputWithContext(ctx context.Context) FunctionIamPolicyArrayOutput

type FunctionIamPolicyInput added in v4.4.0

type FunctionIamPolicyInput interface {
	pulumi.Input

	ToFunctionIamPolicyOutput() FunctionIamPolicyOutput
	ToFunctionIamPolicyOutputWithContext(ctx context.Context) FunctionIamPolicyOutput
}

type FunctionIamPolicyMap added in v4.11.1

type FunctionIamPolicyMap map[string]FunctionIamPolicyInput

func (FunctionIamPolicyMap) ElementType added in v4.11.1

func (FunctionIamPolicyMap) ElementType() reflect.Type

func (FunctionIamPolicyMap) ToFunctionIamPolicyMapOutput added in v4.11.1

func (i FunctionIamPolicyMap) ToFunctionIamPolicyMapOutput() FunctionIamPolicyMapOutput

func (FunctionIamPolicyMap) ToFunctionIamPolicyMapOutputWithContext added in v4.11.1

func (i FunctionIamPolicyMap) ToFunctionIamPolicyMapOutputWithContext(ctx context.Context) FunctionIamPolicyMapOutput

type FunctionIamPolicyMapInput added in v4.11.1

type FunctionIamPolicyMapInput interface {
	pulumi.Input

	ToFunctionIamPolicyMapOutput() FunctionIamPolicyMapOutput
	ToFunctionIamPolicyMapOutputWithContext(context.Context) FunctionIamPolicyMapOutput
}

FunctionIamPolicyMapInput is an input type that accepts FunctionIamPolicyMap and FunctionIamPolicyMapOutput values. You can construct a concrete instance of `FunctionIamPolicyMapInput` via:

FunctionIamPolicyMap{ "key": FunctionIamPolicyArgs{...} }

type FunctionIamPolicyMapOutput added in v4.11.1

type FunctionIamPolicyMapOutput struct{ *pulumi.OutputState }

func (FunctionIamPolicyMapOutput) ElementType added in v4.11.1

func (FunctionIamPolicyMapOutput) ElementType() reflect.Type

func (FunctionIamPolicyMapOutput) MapIndex added in v4.11.1

func (FunctionIamPolicyMapOutput) ToFunctionIamPolicyMapOutput added in v4.11.1

func (o FunctionIamPolicyMapOutput) ToFunctionIamPolicyMapOutput() FunctionIamPolicyMapOutput

func (FunctionIamPolicyMapOutput) ToFunctionIamPolicyMapOutputWithContext added in v4.11.1

func (o FunctionIamPolicyMapOutput) ToFunctionIamPolicyMapOutputWithContext(ctx context.Context) FunctionIamPolicyMapOutput

type FunctionIamPolicyOutput added in v4.4.0

type FunctionIamPolicyOutput struct {
	*pulumi.OutputState
}

func (FunctionIamPolicyOutput) ElementType added in v4.4.0

func (FunctionIamPolicyOutput) ElementType() reflect.Type

func (FunctionIamPolicyOutput) ToFunctionIamPolicyOutput added in v4.4.0

func (o FunctionIamPolicyOutput) ToFunctionIamPolicyOutput() FunctionIamPolicyOutput

func (FunctionIamPolicyOutput) ToFunctionIamPolicyOutputWithContext added in v4.4.0

func (o FunctionIamPolicyOutput) ToFunctionIamPolicyOutputWithContext(ctx context.Context) FunctionIamPolicyOutput

func (FunctionIamPolicyOutput) ToFunctionIamPolicyPtrOutput added in v4.11.1

func (o FunctionIamPolicyOutput) ToFunctionIamPolicyPtrOutput() FunctionIamPolicyPtrOutput

func (FunctionIamPolicyOutput) ToFunctionIamPolicyPtrOutputWithContext added in v4.11.1

func (o FunctionIamPolicyOutput) ToFunctionIamPolicyPtrOutputWithContext(ctx context.Context) FunctionIamPolicyPtrOutput

type FunctionIamPolicyPtrInput added in v4.11.1

type FunctionIamPolicyPtrInput interface {
	pulumi.Input

	ToFunctionIamPolicyPtrOutput() FunctionIamPolicyPtrOutput
	ToFunctionIamPolicyPtrOutputWithContext(ctx context.Context) FunctionIamPolicyPtrOutput
}

type FunctionIamPolicyPtrOutput added in v4.11.1

type FunctionIamPolicyPtrOutput struct {
	*pulumi.OutputState
}

func (FunctionIamPolicyPtrOutput) ElementType added in v4.11.1

func (FunctionIamPolicyPtrOutput) ElementType() reflect.Type

func (FunctionIamPolicyPtrOutput) ToFunctionIamPolicyPtrOutput added in v4.11.1

func (o FunctionIamPolicyPtrOutput) ToFunctionIamPolicyPtrOutput() FunctionIamPolicyPtrOutput

func (FunctionIamPolicyPtrOutput) ToFunctionIamPolicyPtrOutputWithContext added in v4.11.1

func (o FunctionIamPolicyPtrOutput) ToFunctionIamPolicyPtrOutputWithContext(ctx context.Context) FunctionIamPolicyPtrOutput

type FunctionIamPolicyState

type FunctionIamPolicyState struct {
	// Used to find the parent resource to bind the IAM policy to
	CloudFunction pulumi.StringPtrInput
	// (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
	// The location of this cloud function. Used to find the parent resource to bind the IAM policy to. If not specified,
	// the value will be parsed from the identifier of the parent resource. If no region is provided in the parent identifier and no
	// region is specified, it is taken from the provider configuration.
	Region pulumi.StringPtrInput
}

func (FunctionIamPolicyState) ElementType

func (FunctionIamPolicyState) ElementType() reflect.Type

type FunctionInput added in v4.4.0

type FunctionInput interface {
	pulumi.Input

	ToFunctionOutput() FunctionOutput
	ToFunctionOutputWithContext(ctx context.Context) FunctionOutput
}

type FunctionMap added in v4.11.1

type FunctionMap map[string]FunctionInput

func (FunctionMap) ElementType added in v4.11.1

func (FunctionMap) ElementType() reflect.Type

func (FunctionMap) ToFunctionMapOutput added in v4.11.1

func (i FunctionMap) ToFunctionMapOutput() FunctionMapOutput

func (FunctionMap) ToFunctionMapOutputWithContext added in v4.11.1

func (i FunctionMap) ToFunctionMapOutputWithContext(ctx context.Context) FunctionMapOutput

type FunctionMapInput added in v4.11.1

type FunctionMapInput interface {
	pulumi.Input

	ToFunctionMapOutput() FunctionMapOutput
	ToFunctionMapOutputWithContext(context.Context) FunctionMapOutput
}

FunctionMapInput is an input type that accepts FunctionMap and FunctionMapOutput values. You can construct a concrete instance of `FunctionMapInput` via:

FunctionMap{ "key": FunctionArgs{...} }

type FunctionMapOutput added in v4.11.1

type FunctionMapOutput struct{ *pulumi.OutputState }

func (FunctionMapOutput) ElementType added in v4.11.1

func (FunctionMapOutput) ElementType() reflect.Type

func (FunctionMapOutput) MapIndex added in v4.11.1

func (FunctionMapOutput) ToFunctionMapOutput added in v4.11.1

func (o FunctionMapOutput) ToFunctionMapOutput() FunctionMapOutput

func (FunctionMapOutput) ToFunctionMapOutputWithContext added in v4.11.1

func (o FunctionMapOutput) ToFunctionMapOutputWithContext(ctx context.Context) FunctionMapOutput

type FunctionOutput added in v4.4.0

type FunctionOutput struct {
	*pulumi.OutputState
}

func (FunctionOutput) ElementType added in v4.4.0

func (FunctionOutput) ElementType() reflect.Type

func (FunctionOutput) ToFunctionOutput added in v4.4.0

func (o FunctionOutput) ToFunctionOutput() FunctionOutput

func (FunctionOutput) ToFunctionOutputWithContext added in v4.4.0

func (o FunctionOutput) ToFunctionOutputWithContext(ctx context.Context) FunctionOutput

func (FunctionOutput) ToFunctionPtrOutput added in v4.11.1

func (o FunctionOutput) ToFunctionPtrOutput() FunctionPtrOutput

func (FunctionOutput) ToFunctionPtrOutputWithContext added in v4.11.1

func (o FunctionOutput) ToFunctionPtrOutputWithContext(ctx context.Context) FunctionPtrOutput

type FunctionPtrInput added in v4.11.1

type FunctionPtrInput interface {
	pulumi.Input

	ToFunctionPtrOutput() FunctionPtrOutput
	ToFunctionPtrOutputWithContext(ctx context.Context) FunctionPtrOutput
}

type FunctionPtrOutput added in v4.11.1

type FunctionPtrOutput struct {
	*pulumi.OutputState
}

func (FunctionPtrOutput) ElementType added in v4.11.1

func (FunctionPtrOutput) ElementType() reflect.Type

func (FunctionPtrOutput) ToFunctionPtrOutput added in v4.11.1

func (o FunctionPtrOutput) ToFunctionPtrOutput() FunctionPtrOutput

func (FunctionPtrOutput) ToFunctionPtrOutputWithContext added in v4.11.1

func (o FunctionPtrOutput) ToFunctionPtrOutputWithContext(ctx context.Context) FunctionPtrOutput

type FunctionSourceRepository

type FunctionSourceRepository struct {
	DeployedUrl *string `pulumi:"deployedUrl"`
	// The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats:
	Url string `pulumi:"url"`
}

type FunctionSourceRepositoryArgs

type FunctionSourceRepositoryArgs struct {
	DeployedUrl pulumi.StringPtrInput `pulumi:"deployedUrl"`
	// The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats:
	Url pulumi.StringInput `pulumi:"url"`
}

func (FunctionSourceRepositoryArgs) ElementType

func (FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryOutput

func (i FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryOutput() FunctionSourceRepositoryOutput

func (FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryOutputWithContext

func (i FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryOutputWithContext(ctx context.Context) FunctionSourceRepositoryOutput

func (FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryPtrOutput

func (i FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryPtrOutput() FunctionSourceRepositoryPtrOutput

func (FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryPtrOutputWithContext

func (i FunctionSourceRepositoryArgs) ToFunctionSourceRepositoryPtrOutputWithContext(ctx context.Context) FunctionSourceRepositoryPtrOutput

type FunctionSourceRepositoryInput

type FunctionSourceRepositoryInput interface {
	pulumi.Input

	ToFunctionSourceRepositoryOutput() FunctionSourceRepositoryOutput
	ToFunctionSourceRepositoryOutputWithContext(context.Context) FunctionSourceRepositoryOutput
}

FunctionSourceRepositoryInput is an input type that accepts FunctionSourceRepositoryArgs and FunctionSourceRepositoryOutput values. You can construct a concrete instance of `FunctionSourceRepositoryInput` via:

FunctionSourceRepositoryArgs{...}

type FunctionSourceRepositoryOutput

type FunctionSourceRepositoryOutput struct{ *pulumi.OutputState }

func (FunctionSourceRepositoryOutput) DeployedUrl

func (FunctionSourceRepositoryOutput) ElementType

func (FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryOutput

func (o FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryOutput() FunctionSourceRepositoryOutput

func (FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryOutputWithContext

func (o FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryOutputWithContext(ctx context.Context) FunctionSourceRepositoryOutput

func (FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryPtrOutput

func (o FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryPtrOutput() FunctionSourceRepositoryPtrOutput

func (FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryPtrOutputWithContext

func (o FunctionSourceRepositoryOutput) ToFunctionSourceRepositoryPtrOutputWithContext(ctx context.Context) FunctionSourceRepositoryPtrOutput

func (FunctionSourceRepositoryOutput) Url

The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats:

type FunctionSourceRepositoryPtrInput

type FunctionSourceRepositoryPtrInput interface {
	pulumi.Input

	ToFunctionSourceRepositoryPtrOutput() FunctionSourceRepositoryPtrOutput
	ToFunctionSourceRepositoryPtrOutputWithContext(context.Context) FunctionSourceRepositoryPtrOutput
}

FunctionSourceRepositoryPtrInput is an input type that accepts FunctionSourceRepositoryArgs, FunctionSourceRepositoryPtr and FunctionSourceRepositoryPtrOutput values. You can construct a concrete instance of `FunctionSourceRepositoryPtrInput` via:

        FunctionSourceRepositoryArgs{...}

or:

        nil

type FunctionSourceRepositoryPtrOutput

type FunctionSourceRepositoryPtrOutput struct{ *pulumi.OutputState }

func (FunctionSourceRepositoryPtrOutput) DeployedUrl

func (FunctionSourceRepositoryPtrOutput) Elem

func (FunctionSourceRepositoryPtrOutput) ElementType

func (FunctionSourceRepositoryPtrOutput) ToFunctionSourceRepositoryPtrOutput

func (o FunctionSourceRepositoryPtrOutput) ToFunctionSourceRepositoryPtrOutput() FunctionSourceRepositoryPtrOutput

func (FunctionSourceRepositoryPtrOutput) ToFunctionSourceRepositoryPtrOutputWithContext

func (o FunctionSourceRepositoryPtrOutput) ToFunctionSourceRepositoryPtrOutputWithContext(ctx context.Context) FunctionSourceRepositoryPtrOutput

func (FunctionSourceRepositoryPtrOutput) Url

The URL pointing to the hosted repository where the function is defined. There are supported Cloud Source Repository URLs in the following formats:

type FunctionState

type FunctionState struct {
	// Memory (in MB), available to the function. Default value is 256MB. Allowed values are: 128MB, 256MB, 512MB, 1024MB, 2048MB and 4096MB.
	AvailableMemoryMb pulumi.IntPtrInput
	// A set of key/value environment variable pairs available during build time.
	BuildEnvironmentVariables pulumi.MapInput
	// Description of the function.
	Description pulumi.StringPtrInput
	// Name of the function that will be executed when the Google Cloud Function is triggered.
	EntryPoint pulumi.StringPtrInput
	// A set of key/value environment variable pairs to assign to the function.
	EnvironmentVariables pulumi.MapInput
	// A source that fires events in response to a condition in another service. Structure is documented below. Cannot be used with `triggerHttp`.
	EventTrigger FunctionEventTriggerPtrInput
	// URL which triggers function execution. Returned only if `triggerHttp` is used.
	HttpsTriggerUrl pulumi.StringPtrInput
	// String value that controls what traffic can reach the function. Allowed values are `ALLOW_ALL`, `ALLOW_INTERNAL_AND_GCLB` and `ALLOW_INTERNAL_ONLY`. Changes to this field will recreate the cloud function.
	IngressSettings pulumi.StringPtrInput
	// A set of key/value label pairs to assign to the function. Label keys must follow the requirements at https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements.
	Labels pulumi.MapInput
	// The limit on the maximum number of function instances that may coexist at a given time.
	MaxInstances pulumi.IntPtrInput
	// A user-defined name of the function. Function names must be unique globally.
	Name pulumi.StringPtrInput
	// Project of the function. If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Region of function. Currently can be only "us-central1". If it is not provided, the provider region is used.
	Region pulumi.StringPtrInput
	// The runtime in which the function is going to run.
	// Eg. `"nodejs8"`, `"nodejs10"`, `"nodejs12"`, `"python37"`, `"python38"`,`"go111"`, `"go113"`.
	Runtime pulumi.StringPtrInput
	// If provided, the self-provided service account to run the function with.
	ServiceAccountEmail pulumi.StringPtrInput
	// The GCS bucket containing the zip archive which contains the function.
	SourceArchiveBucket pulumi.StringPtrInput
	// The source archive object (file) in archive bucket.
	SourceArchiveObject pulumi.StringPtrInput
	// Represents parameters related to source repository where a function is hosted.
	// Cannot be set alongside `sourceArchiveBucket` or `sourceArchiveObject`. Structure is documented below.
	SourceRepository FunctionSourceRepositoryPtrInput
	// Timeout (in seconds) for the function. Default value is 60 seconds. Cannot be more than 540 seconds.
	Timeout pulumi.IntPtrInput
	// Boolean variable. Any HTTP request (of a supported type) to the endpoint will trigger function execution. Supported HTTP request types are: POST, PUT, GET, DELETE, and OPTIONS. Endpoint is returned as `httpsTriggerUrl`. Cannot be used with `triggerBucket` and `triggerTopic`.
	TriggerHttp pulumi.BoolPtrInput
	// The VPC Network Connector that this cloud function can connect to. It should be set up as fully-qualified URI. The format of this field is `projects/*/locations/*/connectors/*`.
	VpcConnector pulumi.StringPtrInput
	// The egress settings for the connector, controlling what traffic is diverted through it. Allowed values are `ALL_TRAFFIC` and `PRIVATE_RANGES_ONLY`. Defaults to `PRIVATE_RANGES_ONLY`. If unset, this field preserves the previously set value.
	VpcConnectorEgressSettings pulumi.StringPtrInput
}

func (FunctionState) ElementType

func (FunctionState) ElementType() reflect.Type

type GetFunctionEventTrigger

type GetFunctionEventTrigger struct {
	// The type of event to observe. For example: `"google.storage.object.finalize"`.
	// See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/)
	// for a full reference of accepted triggers.
	EventType string `pulumi:"eventType"`
	// Policy for failed executions. Structure is documented below.
	FailurePolicies []GetFunctionEventTriggerFailurePolicy `pulumi:"failurePolicies"`
	// The name of the resource whose events are being observed, for example, `"myBucket"`
	Resource string `pulumi:"resource"`
}

type GetFunctionEventTriggerArgs

type GetFunctionEventTriggerArgs struct {
	// The type of event to observe. For example: `"google.storage.object.finalize"`.
	// See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/)
	// for a full reference of accepted triggers.
	EventType pulumi.StringInput `pulumi:"eventType"`
	// Policy for failed executions. Structure is documented below.
	FailurePolicies GetFunctionEventTriggerFailurePolicyArrayInput `pulumi:"failurePolicies"`
	// The name of the resource whose events are being observed, for example, `"myBucket"`
	Resource pulumi.StringInput `pulumi:"resource"`
}

func (GetFunctionEventTriggerArgs) ElementType

func (GetFunctionEventTriggerArgs) ToGetFunctionEventTriggerOutput

func (i GetFunctionEventTriggerArgs) ToGetFunctionEventTriggerOutput() GetFunctionEventTriggerOutput

func (GetFunctionEventTriggerArgs) ToGetFunctionEventTriggerOutputWithContext

func (i GetFunctionEventTriggerArgs) ToGetFunctionEventTriggerOutputWithContext(ctx context.Context) GetFunctionEventTriggerOutput

type GetFunctionEventTriggerArray

type GetFunctionEventTriggerArray []GetFunctionEventTriggerInput

func (GetFunctionEventTriggerArray) ElementType

func (GetFunctionEventTriggerArray) ToGetFunctionEventTriggerArrayOutput

func (i GetFunctionEventTriggerArray) ToGetFunctionEventTriggerArrayOutput() GetFunctionEventTriggerArrayOutput

func (GetFunctionEventTriggerArray) ToGetFunctionEventTriggerArrayOutputWithContext

func (i GetFunctionEventTriggerArray) ToGetFunctionEventTriggerArrayOutputWithContext(ctx context.Context) GetFunctionEventTriggerArrayOutput

type GetFunctionEventTriggerArrayInput

type GetFunctionEventTriggerArrayInput interface {
	pulumi.Input

	ToGetFunctionEventTriggerArrayOutput() GetFunctionEventTriggerArrayOutput
	ToGetFunctionEventTriggerArrayOutputWithContext(context.Context) GetFunctionEventTriggerArrayOutput
}

GetFunctionEventTriggerArrayInput is an input type that accepts GetFunctionEventTriggerArray and GetFunctionEventTriggerArrayOutput values. You can construct a concrete instance of `GetFunctionEventTriggerArrayInput` via:

GetFunctionEventTriggerArray{ GetFunctionEventTriggerArgs{...} }

type GetFunctionEventTriggerArrayOutput

type GetFunctionEventTriggerArrayOutput struct{ *pulumi.OutputState }

func (GetFunctionEventTriggerArrayOutput) ElementType

func (GetFunctionEventTriggerArrayOutput) Index

func (GetFunctionEventTriggerArrayOutput) ToGetFunctionEventTriggerArrayOutput

func (o GetFunctionEventTriggerArrayOutput) ToGetFunctionEventTriggerArrayOutput() GetFunctionEventTriggerArrayOutput

func (GetFunctionEventTriggerArrayOutput) ToGetFunctionEventTriggerArrayOutputWithContext

func (o GetFunctionEventTriggerArrayOutput) ToGetFunctionEventTriggerArrayOutputWithContext(ctx context.Context) GetFunctionEventTriggerArrayOutput

type GetFunctionEventTriggerFailurePolicy

type GetFunctionEventTriggerFailurePolicy struct {
	// Whether the function should be retried on failure.
	Retry bool `pulumi:"retry"`
}

type GetFunctionEventTriggerFailurePolicyArgs

type GetFunctionEventTriggerFailurePolicyArgs struct {
	// Whether the function should be retried on failure.
	Retry pulumi.BoolInput `pulumi:"retry"`
}

func (GetFunctionEventTriggerFailurePolicyArgs) ElementType

func (GetFunctionEventTriggerFailurePolicyArgs) ToGetFunctionEventTriggerFailurePolicyOutput

func (i GetFunctionEventTriggerFailurePolicyArgs) ToGetFunctionEventTriggerFailurePolicyOutput() GetFunctionEventTriggerFailurePolicyOutput

func (GetFunctionEventTriggerFailurePolicyArgs) ToGetFunctionEventTriggerFailurePolicyOutputWithContext

func (i GetFunctionEventTriggerFailurePolicyArgs) ToGetFunctionEventTriggerFailurePolicyOutputWithContext(ctx context.Context) GetFunctionEventTriggerFailurePolicyOutput

type GetFunctionEventTriggerFailurePolicyArray

type GetFunctionEventTriggerFailurePolicyArray []GetFunctionEventTriggerFailurePolicyInput

func (GetFunctionEventTriggerFailurePolicyArray) ElementType

func (GetFunctionEventTriggerFailurePolicyArray) ToGetFunctionEventTriggerFailurePolicyArrayOutput

func (i GetFunctionEventTriggerFailurePolicyArray) ToGetFunctionEventTriggerFailurePolicyArrayOutput() GetFunctionEventTriggerFailurePolicyArrayOutput

func (GetFunctionEventTriggerFailurePolicyArray) ToGetFunctionEventTriggerFailurePolicyArrayOutputWithContext

func (i GetFunctionEventTriggerFailurePolicyArray) ToGetFunctionEventTriggerFailurePolicyArrayOutputWithContext(ctx context.Context) GetFunctionEventTriggerFailurePolicyArrayOutput

type GetFunctionEventTriggerFailurePolicyArrayInput

type GetFunctionEventTriggerFailurePolicyArrayInput interface {
	pulumi.Input

	ToGetFunctionEventTriggerFailurePolicyArrayOutput() GetFunctionEventTriggerFailurePolicyArrayOutput
	ToGetFunctionEventTriggerFailurePolicyArrayOutputWithContext(context.Context) GetFunctionEventTriggerFailurePolicyArrayOutput
}

GetFunctionEventTriggerFailurePolicyArrayInput is an input type that accepts GetFunctionEventTriggerFailurePolicyArray and GetFunctionEventTriggerFailurePolicyArrayOutput values. You can construct a concrete instance of `GetFunctionEventTriggerFailurePolicyArrayInput` via:

GetFunctionEventTriggerFailurePolicyArray{ GetFunctionEventTriggerFailurePolicyArgs{...} }

type GetFunctionEventTriggerFailurePolicyArrayOutput

type GetFunctionEventTriggerFailurePolicyArrayOutput struct{ *pulumi.OutputState }

func (GetFunctionEventTriggerFailurePolicyArrayOutput) ElementType

func (GetFunctionEventTriggerFailurePolicyArrayOutput) Index

func (GetFunctionEventTriggerFailurePolicyArrayOutput) ToGetFunctionEventTriggerFailurePolicyArrayOutput

func (o GetFunctionEventTriggerFailurePolicyArrayOutput) ToGetFunctionEventTriggerFailurePolicyArrayOutput() GetFunctionEventTriggerFailurePolicyArrayOutput

func (GetFunctionEventTriggerFailurePolicyArrayOutput) ToGetFunctionEventTriggerFailurePolicyArrayOutputWithContext

func (o GetFunctionEventTriggerFailurePolicyArrayOutput) ToGetFunctionEventTriggerFailurePolicyArrayOutputWithContext(ctx context.Context) GetFunctionEventTriggerFailurePolicyArrayOutput

type GetFunctionEventTriggerFailurePolicyInput

type GetFunctionEventTriggerFailurePolicyInput interface {
	pulumi.Input

	ToGetFunctionEventTriggerFailurePolicyOutput() GetFunctionEventTriggerFailurePolicyOutput
	ToGetFunctionEventTriggerFailurePolicyOutputWithContext(context.Context) GetFunctionEventTriggerFailurePolicyOutput
}

GetFunctionEventTriggerFailurePolicyInput is an input type that accepts GetFunctionEventTriggerFailurePolicyArgs and GetFunctionEventTriggerFailurePolicyOutput values. You can construct a concrete instance of `GetFunctionEventTriggerFailurePolicyInput` via:

GetFunctionEventTriggerFailurePolicyArgs{...}

type GetFunctionEventTriggerFailurePolicyOutput

type GetFunctionEventTriggerFailurePolicyOutput struct{ *pulumi.OutputState }

func (GetFunctionEventTriggerFailurePolicyOutput) ElementType

func (GetFunctionEventTriggerFailurePolicyOutput) Retry

Whether the function should be retried on failure.

func (GetFunctionEventTriggerFailurePolicyOutput) ToGetFunctionEventTriggerFailurePolicyOutput

func (o GetFunctionEventTriggerFailurePolicyOutput) ToGetFunctionEventTriggerFailurePolicyOutput() GetFunctionEventTriggerFailurePolicyOutput

func (GetFunctionEventTriggerFailurePolicyOutput) ToGetFunctionEventTriggerFailurePolicyOutputWithContext

func (o GetFunctionEventTriggerFailurePolicyOutput) ToGetFunctionEventTriggerFailurePolicyOutputWithContext(ctx context.Context) GetFunctionEventTriggerFailurePolicyOutput

type GetFunctionEventTriggerInput

type GetFunctionEventTriggerInput interface {
	pulumi.Input

	ToGetFunctionEventTriggerOutput() GetFunctionEventTriggerOutput
	ToGetFunctionEventTriggerOutputWithContext(context.Context) GetFunctionEventTriggerOutput
}

GetFunctionEventTriggerInput is an input type that accepts GetFunctionEventTriggerArgs and GetFunctionEventTriggerOutput values. You can construct a concrete instance of `GetFunctionEventTriggerInput` via:

GetFunctionEventTriggerArgs{...}

type GetFunctionEventTriggerOutput

type GetFunctionEventTriggerOutput struct{ *pulumi.OutputState }

func (GetFunctionEventTriggerOutput) ElementType

func (GetFunctionEventTriggerOutput) EventType

The type of event to observe. For example: `"google.storage.object.finalize"`. See the documentation on [calling Cloud Functions](https://cloud.google.com/functions/docs/calling/) for a full reference of accepted triggers.

func (GetFunctionEventTriggerOutput) FailurePolicies

Policy for failed executions. Structure is documented below.

func (GetFunctionEventTriggerOutput) Resource

The name of the resource whose events are being observed, for example, `"myBucket"`

func (GetFunctionEventTriggerOutput) ToGetFunctionEventTriggerOutput

func (o GetFunctionEventTriggerOutput) ToGetFunctionEventTriggerOutput() GetFunctionEventTriggerOutput

func (GetFunctionEventTriggerOutput) ToGetFunctionEventTriggerOutputWithContext

func (o GetFunctionEventTriggerOutput) ToGetFunctionEventTriggerOutputWithContext(ctx context.Context) GetFunctionEventTriggerOutput

type GetFunctionSourceRepository

type GetFunctionSourceRepository struct {
	DeployedUrl string `pulumi:"deployedUrl"`
	// The URL pointing to the hosted repository where the function is defined.
	Url string `pulumi:"url"`
}

type GetFunctionSourceRepositoryArgs

type GetFunctionSourceRepositoryArgs struct {
	DeployedUrl pulumi.StringInput `pulumi:"deployedUrl"`
	// The URL pointing to the hosted repository where the function is defined.
	Url pulumi.StringInput `pulumi:"url"`
}

func (GetFunctionSourceRepositoryArgs) ElementType

func (GetFunctionSourceRepositoryArgs) ToGetFunctionSourceRepositoryOutput

func (i GetFunctionSourceRepositoryArgs) ToGetFunctionSourceRepositoryOutput() GetFunctionSourceRepositoryOutput

func (GetFunctionSourceRepositoryArgs) ToGetFunctionSourceRepositoryOutputWithContext

func (i GetFunctionSourceRepositoryArgs) ToGetFunctionSourceRepositoryOutputWithContext(ctx context.Context) GetFunctionSourceRepositoryOutput

type GetFunctionSourceRepositoryArray

type GetFunctionSourceRepositoryArray []GetFunctionSourceRepositoryInput

func (GetFunctionSourceRepositoryArray) ElementType

func (GetFunctionSourceRepositoryArray) ToGetFunctionSourceRepositoryArrayOutput

func (i GetFunctionSourceRepositoryArray) ToGetFunctionSourceRepositoryArrayOutput() GetFunctionSourceRepositoryArrayOutput

func (GetFunctionSourceRepositoryArray) ToGetFunctionSourceRepositoryArrayOutputWithContext

func (i GetFunctionSourceRepositoryArray) ToGetFunctionSourceRepositoryArrayOutputWithContext(ctx context.Context) GetFunctionSourceRepositoryArrayOutput

type GetFunctionSourceRepositoryArrayInput

type GetFunctionSourceRepositoryArrayInput interface {
	pulumi.Input

	ToGetFunctionSourceRepositoryArrayOutput() GetFunctionSourceRepositoryArrayOutput
	ToGetFunctionSourceRepositoryArrayOutputWithContext(context.Context) GetFunctionSourceRepositoryArrayOutput
}

GetFunctionSourceRepositoryArrayInput is an input type that accepts GetFunctionSourceRepositoryArray and GetFunctionSourceRepositoryArrayOutput values. You can construct a concrete instance of `GetFunctionSourceRepositoryArrayInput` via:

GetFunctionSourceRepositoryArray{ GetFunctionSourceRepositoryArgs{...} }

type GetFunctionSourceRepositoryArrayOutput

type GetFunctionSourceRepositoryArrayOutput struct{ *pulumi.OutputState }

func (GetFunctionSourceRepositoryArrayOutput) ElementType

func (GetFunctionSourceRepositoryArrayOutput) Index

func (GetFunctionSourceRepositoryArrayOutput) ToGetFunctionSourceRepositoryArrayOutput

func (o GetFunctionSourceRepositoryArrayOutput) ToGetFunctionSourceRepositoryArrayOutput() GetFunctionSourceRepositoryArrayOutput

func (GetFunctionSourceRepositoryArrayOutput) ToGetFunctionSourceRepositoryArrayOutputWithContext

func (o GetFunctionSourceRepositoryArrayOutput) ToGetFunctionSourceRepositoryArrayOutputWithContext(ctx context.Context) GetFunctionSourceRepositoryArrayOutput

type GetFunctionSourceRepositoryInput

type GetFunctionSourceRepositoryInput interface {
	pulumi.Input

	ToGetFunctionSourceRepositoryOutput() GetFunctionSourceRepositoryOutput
	ToGetFunctionSourceRepositoryOutputWithContext(context.Context) GetFunctionSourceRepositoryOutput
}

GetFunctionSourceRepositoryInput is an input type that accepts GetFunctionSourceRepositoryArgs and GetFunctionSourceRepositoryOutput values. You can construct a concrete instance of `GetFunctionSourceRepositoryInput` via:

GetFunctionSourceRepositoryArgs{...}

type GetFunctionSourceRepositoryOutput

type GetFunctionSourceRepositoryOutput struct{ *pulumi.OutputState }

func (GetFunctionSourceRepositoryOutput) DeployedUrl

func (GetFunctionSourceRepositoryOutput) ElementType

func (GetFunctionSourceRepositoryOutput) ToGetFunctionSourceRepositoryOutput

func (o GetFunctionSourceRepositoryOutput) ToGetFunctionSourceRepositoryOutput() GetFunctionSourceRepositoryOutput

func (GetFunctionSourceRepositoryOutput) ToGetFunctionSourceRepositoryOutputWithContext

func (o GetFunctionSourceRepositoryOutput) ToGetFunctionSourceRepositoryOutputWithContext(ctx context.Context) GetFunctionSourceRepositoryOutput

func (GetFunctionSourceRepositoryOutput) Url

The URL pointing to the hosted repository where the function is defined.

type LookupFunctionArgs

type LookupFunctionArgs struct {
	// The name of a Cloud Function.
	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"`
	// The region in which the resource belongs. If it
	// is not provided, the provider region is used.
	Region *string `pulumi:"region"`
}

A collection of arguments for invoking getFunction.

type LookupFunctionResult

type LookupFunctionResult struct {
	// Available memory (in MB) to the function.
	AvailableMemoryMb         int                    `pulumi:"availableMemoryMb"`
	BuildEnvironmentVariables map[string]interface{} `pulumi:"buildEnvironmentVariables"`
	// Description of the function.
	Description string `pulumi:"description"`
	// Name of a JavaScript function that will be executed when the Google Cloud Function is triggered.
	EntryPoint           string                 `pulumi:"entryPoint"`
	EnvironmentVariables map[string]interface{} `pulumi:"environmentVariables"`
	// A source that fires events in response to a condition in another service. Structure is documented below.
	EventTriggers []GetFunctionEventTrigger `pulumi:"eventTriggers"`
	// If function is triggered by HTTP, trigger URL is set here.
	HttpsTriggerUrl string `pulumi:"httpsTriggerUrl"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// Controls what traffic can reach the function.
	IngressSettings string `pulumi:"ingressSettings"`
	// A map of labels applied to this function.
	Labels map[string]interface{} `pulumi:"labels"`
	// The limit on the maximum number of function instances that may coexist at a given time.
	MaxInstances int `pulumi:"maxInstances"`
	// The name of the Cloud Function.
	Name    string  `pulumi:"name"`
	Project *string `pulumi:"project"`
	Region  *string `pulumi:"region"`
	// The runtime in which the function is running.
	Runtime string `pulumi:"runtime"`
	// The service account email to be assumed by the cloud function.
	ServiceAccountEmail string `pulumi:"serviceAccountEmail"`
	// The GCS bucket containing the zip archive which contains the function.
	SourceArchiveBucket string `pulumi:"sourceArchiveBucket"`
	// The source archive object (file) in archive bucket.
	SourceArchiveObject string `pulumi:"sourceArchiveObject"`
	// The URL of the Cloud Source Repository that the function is deployed from. Structure is documented below.
	SourceRepositories []GetFunctionSourceRepository `pulumi:"sourceRepositories"`
	// Function execution timeout (in seconds).
	Timeout int `pulumi:"timeout"`
	// If function is triggered by HTTP, this boolean is set.
	TriggerHttp bool `pulumi:"triggerHttp"`
	// The VPC Network Connector that this cloud function can connect to.
	VpcConnector string `pulumi:"vpcConnector"`
	// The egress settings for the connector, controlling what traffic is diverted through it.
	VpcConnectorEgressSettings string `pulumi:"vpcConnectorEgressSettings"`
}

A collection of values returned by getFunction.

func LookupFunction

func LookupFunction(ctx *pulumi.Context, args *LookupFunctionArgs, opts ...pulumi.InvokeOption) (*LookupFunctionResult, error)

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

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v4/go/gcp/cloudfunctions"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := cloudfunctions.LookupFunction(ctx, &cloudfunctions.LookupFunctionArgs{
			Name: "function",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

Jump to

Keyboard shortcuts

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