beyondcorp

package
v8.21.0 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2025 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 AppConnection

type AppConnection struct {
	pulumi.CustomResourceState

	// Address of the remote application endpoint for the BeyondCorp AppConnection.
	// Structure is documented below.
	ApplicationEndpoint AppConnectionApplicationEndpointOutput `pulumi:"applicationEndpoint"`
	// List of AppConnectors that are authorised to be associated with this AppConnection
	Connectors pulumi.StringArrayOutput `pulumi:"connectors"`
	// An arbitrary user-provided name for the AppConnection.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Gateway used by the AppConnection.
	Gateway AppConnectionGatewayOutput `pulumi:"gateway"`
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// ID of the AppConnection.
	Name    pulumi.StringOutput `pulumi:"name"`
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The region of the AppConnection.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// The type of network connectivity used by the AppConnection. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#type for a list of possible
	// values.
	Type pulumi.StringPtrOutput `pulumi:"type"`
}

A BeyondCorp AppConnection resource represents a BeyondCorp protected AppConnection to a remote application. It creates all the necessary GCP components needed for creating a BeyondCorp protected AppConnection. Multiple connectors can be authorised for a single AppConnection.

To get more information about AppConnection, see:

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

## Example Usage

### Beyondcorp App Connection Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		serviceAccount, err := serviceaccount.NewAccount(ctx, "service_account", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-account"),
			DisplayName: pulumi.String("Test Service Account"),
		})
		if err != nil {
			return err
		}
		appConnector, err := beyondcorp.NewAppConnector(ctx, "app_connector", &beyondcorp.AppConnectorArgs{
			Name: pulumi.String("my-app-connector"),
			PrincipalInfo: &beyondcorp.AppConnectorPrincipalInfoArgs{
				ServiceAccount: &beyondcorp.AppConnectorPrincipalInfoServiceAccountArgs{
					Email: serviceAccount.Email,
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewAppConnection(ctx, "app_connection", &beyondcorp.AppConnectionArgs{
			Name: pulumi.String("my-app-connection"),
			Type: pulumi.String("TCP_PROXY"),
			ApplicationEndpoint: &beyondcorp.AppConnectionApplicationEndpointArgs{
				Host: pulumi.String("foo-host"),
				Port: pulumi.Int(8080),
			},
			Connectors: pulumi.StringArray{
				appConnector.ID(),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Beyondcorp App Connection Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		serviceAccount, err := serviceaccount.NewAccount(ctx, "service_account", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-account"),
			DisplayName: pulumi.String("Test Service Account"),
		})
		if err != nil {
			return err
		}
		appGateway, err := beyondcorp.NewAppGateway(ctx, "app_gateway", &beyondcorp.AppGatewayArgs{
			Name:     pulumi.String("my-app-gateway"),
			Type:     pulumi.String("TCP_PROXY"),
			HostType: pulumi.String("GCP_REGIONAL_MIG"),
		})
		if err != nil {
			return err
		}
		appConnector, err := beyondcorp.NewAppConnector(ctx, "app_connector", &beyondcorp.AppConnectorArgs{
			Name: pulumi.String("my-app-connector"),
			PrincipalInfo: &beyondcorp.AppConnectorPrincipalInfoArgs{
				ServiceAccount: &beyondcorp.AppConnectorPrincipalInfoServiceAccountArgs{
					Email: serviceAccount.Email,
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewAppConnection(ctx, "app_connection", &beyondcorp.AppConnectionArgs{
			Name:        pulumi.String("my-app-connection"),
			Type:        pulumi.String("TCP_PROXY"),
			DisplayName: pulumi.String("some display name"),
			ApplicationEndpoint: &beyondcorp.AppConnectionApplicationEndpointArgs{
				Host: pulumi.String("foo-host"),
				Port: pulumi.Int(8080),
			},
			Connectors: pulumi.StringArray{
				appConnector.ID(),
			},
			Gateway: &beyondcorp.AppConnectionGatewayArgs{
				AppGateway: appGateway.ID(),
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
				"bar": pulumi.String("baz"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AppConnection can be imported using any of these accepted formats:

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

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

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

* `{{name}}`

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

```sh $ pulumi import gcp:beyondcorp/appConnection:AppConnection default projects/{{project}}/locations/{{region}}/appConnections/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnection:AppConnection default {{project}}/{{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnection:AppConnection default {{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnection:AppConnection default {{name}} ```

func GetAppConnection

func GetAppConnection(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AppConnectionState, opts ...pulumi.ResourceOption) (*AppConnection, error)

GetAppConnection gets an existing AppConnection 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 NewAppConnection

func NewAppConnection(ctx *pulumi.Context,
	name string, args *AppConnectionArgs, opts ...pulumi.ResourceOption) (*AppConnection, error)

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

func (*AppConnection) ElementType

func (*AppConnection) ElementType() reflect.Type

func (*AppConnection) ToAppConnectionOutput

func (i *AppConnection) ToAppConnectionOutput() AppConnectionOutput

func (*AppConnection) ToAppConnectionOutputWithContext

func (i *AppConnection) ToAppConnectionOutputWithContext(ctx context.Context) AppConnectionOutput

type AppConnectionApplicationEndpoint

type AppConnectionApplicationEndpoint struct {
	// Hostname or IP address of the remote application endpoint.
	Host string `pulumi:"host"`
	// Port of the remote application endpoint.
	//
	// ***
	Port int `pulumi:"port"`
}

type AppConnectionApplicationEndpointArgs

type AppConnectionApplicationEndpointArgs struct {
	// Hostname or IP address of the remote application endpoint.
	Host pulumi.StringInput `pulumi:"host"`
	// Port of the remote application endpoint.
	//
	// ***
	Port pulumi.IntInput `pulumi:"port"`
}

func (AppConnectionApplicationEndpointArgs) ElementType

func (AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointOutput

func (i AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointOutput() AppConnectionApplicationEndpointOutput

func (AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointOutputWithContext

func (i AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointOutputWithContext(ctx context.Context) AppConnectionApplicationEndpointOutput

func (AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointPtrOutput

func (i AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointPtrOutput() AppConnectionApplicationEndpointPtrOutput

func (AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointPtrOutputWithContext

func (i AppConnectionApplicationEndpointArgs) ToAppConnectionApplicationEndpointPtrOutputWithContext(ctx context.Context) AppConnectionApplicationEndpointPtrOutput

type AppConnectionApplicationEndpointInput

type AppConnectionApplicationEndpointInput interface {
	pulumi.Input

	ToAppConnectionApplicationEndpointOutput() AppConnectionApplicationEndpointOutput
	ToAppConnectionApplicationEndpointOutputWithContext(context.Context) AppConnectionApplicationEndpointOutput
}

AppConnectionApplicationEndpointInput is an input type that accepts AppConnectionApplicationEndpointArgs and AppConnectionApplicationEndpointOutput values. You can construct a concrete instance of `AppConnectionApplicationEndpointInput` via:

AppConnectionApplicationEndpointArgs{...}

type AppConnectionApplicationEndpointOutput

type AppConnectionApplicationEndpointOutput struct{ *pulumi.OutputState }

func (AppConnectionApplicationEndpointOutput) ElementType

func (AppConnectionApplicationEndpointOutput) Host

Hostname or IP address of the remote application endpoint.

func (AppConnectionApplicationEndpointOutput) Port

Port of the remote application endpoint.

***

func (AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointOutput

func (o AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointOutput() AppConnectionApplicationEndpointOutput

func (AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointOutputWithContext

func (o AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointOutputWithContext(ctx context.Context) AppConnectionApplicationEndpointOutput

func (AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointPtrOutput

func (o AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointPtrOutput() AppConnectionApplicationEndpointPtrOutput

func (AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointPtrOutputWithContext

func (o AppConnectionApplicationEndpointOutput) ToAppConnectionApplicationEndpointPtrOutputWithContext(ctx context.Context) AppConnectionApplicationEndpointPtrOutput

type AppConnectionApplicationEndpointPtrInput

type AppConnectionApplicationEndpointPtrInput interface {
	pulumi.Input

	ToAppConnectionApplicationEndpointPtrOutput() AppConnectionApplicationEndpointPtrOutput
	ToAppConnectionApplicationEndpointPtrOutputWithContext(context.Context) AppConnectionApplicationEndpointPtrOutput
}

AppConnectionApplicationEndpointPtrInput is an input type that accepts AppConnectionApplicationEndpointArgs, AppConnectionApplicationEndpointPtr and AppConnectionApplicationEndpointPtrOutput values. You can construct a concrete instance of `AppConnectionApplicationEndpointPtrInput` via:

        AppConnectionApplicationEndpointArgs{...}

or:

        nil

type AppConnectionApplicationEndpointPtrOutput

type AppConnectionApplicationEndpointPtrOutput struct{ *pulumi.OutputState }

func (AppConnectionApplicationEndpointPtrOutput) Elem

func (AppConnectionApplicationEndpointPtrOutput) ElementType

func (AppConnectionApplicationEndpointPtrOutput) Host

Hostname or IP address of the remote application endpoint.

func (AppConnectionApplicationEndpointPtrOutput) Port

Port of the remote application endpoint.

***

func (AppConnectionApplicationEndpointPtrOutput) ToAppConnectionApplicationEndpointPtrOutput

func (o AppConnectionApplicationEndpointPtrOutput) ToAppConnectionApplicationEndpointPtrOutput() AppConnectionApplicationEndpointPtrOutput

func (AppConnectionApplicationEndpointPtrOutput) ToAppConnectionApplicationEndpointPtrOutputWithContext

func (o AppConnectionApplicationEndpointPtrOutput) ToAppConnectionApplicationEndpointPtrOutputWithContext(ctx context.Context) AppConnectionApplicationEndpointPtrOutput

type AppConnectionArgs

type AppConnectionArgs struct {
	// Address of the remote application endpoint for the BeyondCorp AppConnection.
	// Structure is documented below.
	ApplicationEndpoint AppConnectionApplicationEndpointInput
	// List of AppConnectors that are authorised to be associated with this AppConnection
	Connectors pulumi.StringArrayInput
	// An arbitrary user-provided name for the AppConnection.
	DisplayName pulumi.StringPtrInput
	// Gateway used by the AppConnection.
	Gateway AppConnectionGatewayPtrInput
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapInput
	// ID of the AppConnection.
	Name    pulumi.StringPtrInput
	Project pulumi.StringPtrInput
	// The region of the AppConnection.
	Region pulumi.StringPtrInput
	// The type of network connectivity used by the AppConnection. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#type for a list of possible
	// values.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a AppConnection resource.

func (AppConnectionArgs) ElementType

func (AppConnectionArgs) ElementType() reflect.Type

type AppConnectionArray

type AppConnectionArray []AppConnectionInput

func (AppConnectionArray) ElementType

func (AppConnectionArray) ElementType() reflect.Type

func (AppConnectionArray) ToAppConnectionArrayOutput

func (i AppConnectionArray) ToAppConnectionArrayOutput() AppConnectionArrayOutput

func (AppConnectionArray) ToAppConnectionArrayOutputWithContext

func (i AppConnectionArray) ToAppConnectionArrayOutputWithContext(ctx context.Context) AppConnectionArrayOutput

type AppConnectionArrayInput

type AppConnectionArrayInput interface {
	pulumi.Input

	ToAppConnectionArrayOutput() AppConnectionArrayOutput
	ToAppConnectionArrayOutputWithContext(context.Context) AppConnectionArrayOutput
}

AppConnectionArrayInput is an input type that accepts AppConnectionArray and AppConnectionArrayOutput values. You can construct a concrete instance of `AppConnectionArrayInput` via:

AppConnectionArray{ AppConnectionArgs{...} }

type AppConnectionArrayOutput

type AppConnectionArrayOutput struct{ *pulumi.OutputState }

func (AppConnectionArrayOutput) ElementType

func (AppConnectionArrayOutput) ElementType() reflect.Type

func (AppConnectionArrayOutput) Index

func (AppConnectionArrayOutput) ToAppConnectionArrayOutput

func (o AppConnectionArrayOutput) ToAppConnectionArrayOutput() AppConnectionArrayOutput

func (AppConnectionArrayOutput) ToAppConnectionArrayOutputWithContext

func (o AppConnectionArrayOutput) ToAppConnectionArrayOutputWithContext(ctx context.Context) AppConnectionArrayOutput

type AppConnectionGateway

type AppConnectionGateway struct {
	// AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.
	AppGateway string `pulumi:"appGateway"`
	// (Output)
	// Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.
	IngressPort *int `pulumi:"ingressPort"`
	// The type of hosting used by the gateway. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1
	// for a list of possible values.
	Type *string `pulumi:"type"`
	// (Output)
	// Server-defined URI for this resource.
	Uri *string `pulumi:"uri"`
}

type AppConnectionGatewayArgs

type AppConnectionGatewayArgs struct {
	// AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.
	AppGateway pulumi.StringInput `pulumi:"appGateway"`
	// (Output)
	// Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.
	IngressPort pulumi.IntPtrInput `pulumi:"ingressPort"`
	// The type of hosting used by the gateway. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1
	// for a list of possible values.
	Type pulumi.StringPtrInput `pulumi:"type"`
	// (Output)
	// Server-defined URI for this resource.
	Uri pulumi.StringPtrInput `pulumi:"uri"`
}

func (AppConnectionGatewayArgs) ElementType

func (AppConnectionGatewayArgs) ElementType() reflect.Type

func (AppConnectionGatewayArgs) ToAppConnectionGatewayOutput

func (i AppConnectionGatewayArgs) ToAppConnectionGatewayOutput() AppConnectionGatewayOutput

func (AppConnectionGatewayArgs) ToAppConnectionGatewayOutputWithContext

func (i AppConnectionGatewayArgs) ToAppConnectionGatewayOutputWithContext(ctx context.Context) AppConnectionGatewayOutput

func (AppConnectionGatewayArgs) ToAppConnectionGatewayPtrOutput

func (i AppConnectionGatewayArgs) ToAppConnectionGatewayPtrOutput() AppConnectionGatewayPtrOutput

func (AppConnectionGatewayArgs) ToAppConnectionGatewayPtrOutputWithContext

func (i AppConnectionGatewayArgs) ToAppConnectionGatewayPtrOutputWithContext(ctx context.Context) AppConnectionGatewayPtrOutput

type AppConnectionGatewayInput

type AppConnectionGatewayInput interface {
	pulumi.Input

	ToAppConnectionGatewayOutput() AppConnectionGatewayOutput
	ToAppConnectionGatewayOutputWithContext(context.Context) AppConnectionGatewayOutput
}

AppConnectionGatewayInput is an input type that accepts AppConnectionGatewayArgs and AppConnectionGatewayOutput values. You can construct a concrete instance of `AppConnectionGatewayInput` via:

AppConnectionGatewayArgs{...}

type AppConnectionGatewayOutput

type AppConnectionGatewayOutput struct{ *pulumi.OutputState }

func (AppConnectionGatewayOutput) AppGateway

AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.

func (AppConnectionGatewayOutput) ElementType

func (AppConnectionGatewayOutput) ElementType() reflect.Type

func (AppConnectionGatewayOutput) IngressPort

(Output) Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.

func (AppConnectionGatewayOutput) ToAppConnectionGatewayOutput

func (o AppConnectionGatewayOutput) ToAppConnectionGatewayOutput() AppConnectionGatewayOutput

func (AppConnectionGatewayOutput) ToAppConnectionGatewayOutputWithContext

func (o AppConnectionGatewayOutput) ToAppConnectionGatewayOutputWithContext(ctx context.Context) AppConnectionGatewayOutput

func (AppConnectionGatewayOutput) ToAppConnectionGatewayPtrOutput

func (o AppConnectionGatewayOutput) ToAppConnectionGatewayPtrOutput() AppConnectionGatewayPtrOutput

func (AppConnectionGatewayOutput) ToAppConnectionGatewayPtrOutputWithContext

func (o AppConnectionGatewayOutput) ToAppConnectionGatewayPtrOutputWithContext(ctx context.Context) AppConnectionGatewayPtrOutput

func (AppConnectionGatewayOutput) Type

The type of hosting used by the gateway. Refer to https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1 for a list of possible values.

func (AppConnectionGatewayOutput) Uri

(Output) Server-defined URI for this resource.

type AppConnectionGatewayPtrInput

type AppConnectionGatewayPtrInput interface {
	pulumi.Input

	ToAppConnectionGatewayPtrOutput() AppConnectionGatewayPtrOutput
	ToAppConnectionGatewayPtrOutputWithContext(context.Context) AppConnectionGatewayPtrOutput
}

AppConnectionGatewayPtrInput is an input type that accepts AppConnectionGatewayArgs, AppConnectionGatewayPtr and AppConnectionGatewayPtrOutput values. You can construct a concrete instance of `AppConnectionGatewayPtrInput` via:

        AppConnectionGatewayArgs{...}

or:

        nil

type AppConnectionGatewayPtrOutput

type AppConnectionGatewayPtrOutput struct{ *pulumi.OutputState }

func (AppConnectionGatewayPtrOutput) AppGateway

AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.

func (AppConnectionGatewayPtrOutput) Elem

func (AppConnectionGatewayPtrOutput) ElementType

func (AppConnectionGatewayPtrOutput) IngressPort

(Output) Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.

func (AppConnectionGatewayPtrOutput) ToAppConnectionGatewayPtrOutput

func (o AppConnectionGatewayPtrOutput) ToAppConnectionGatewayPtrOutput() AppConnectionGatewayPtrOutput

func (AppConnectionGatewayPtrOutput) ToAppConnectionGatewayPtrOutputWithContext

func (o AppConnectionGatewayPtrOutput) ToAppConnectionGatewayPtrOutputWithContext(ctx context.Context) AppConnectionGatewayPtrOutput

func (AppConnectionGatewayPtrOutput) Type

The type of hosting used by the gateway. Refer to https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1 for a list of possible values.

func (AppConnectionGatewayPtrOutput) Uri

(Output) Server-defined URI for this resource.

type AppConnectionInput

type AppConnectionInput interface {
	pulumi.Input

	ToAppConnectionOutput() AppConnectionOutput
	ToAppConnectionOutputWithContext(ctx context.Context) AppConnectionOutput
}

type AppConnectionMap

type AppConnectionMap map[string]AppConnectionInput

func (AppConnectionMap) ElementType

func (AppConnectionMap) ElementType() reflect.Type

func (AppConnectionMap) ToAppConnectionMapOutput

func (i AppConnectionMap) ToAppConnectionMapOutput() AppConnectionMapOutput

func (AppConnectionMap) ToAppConnectionMapOutputWithContext

func (i AppConnectionMap) ToAppConnectionMapOutputWithContext(ctx context.Context) AppConnectionMapOutput

type AppConnectionMapInput

type AppConnectionMapInput interface {
	pulumi.Input

	ToAppConnectionMapOutput() AppConnectionMapOutput
	ToAppConnectionMapOutputWithContext(context.Context) AppConnectionMapOutput
}

AppConnectionMapInput is an input type that accepts AppConnectionMap and AppConnectionMapOutput values. You can construct a concrete instance of `AppConnectionMapInput` via:

AppConnectionMap{ "key": AppConnectionArgs{...} }

type AppConnectionMapOutput

type AppConnectionMapOutput struct{ *pulumi.OutputState }

func (AppConnectionMapOutput) ElementType

func (AppConnectionMapOutput) ElementType() reflect.Type

func (AppConnectionMapOutput) MapIndex

func (AppConnectionMapOutput) ToAppConnectionMapOutput

func (o AppConnectionMapOutput) ToAppConnectionMapOutput() AppConnectionMapOutput

func (AppConnectionMapOutput) ToAppConnectionMapOutputWithContext

func (o AppConnectionMapOutput) ToAppConnectionMapOutputWithContext(ctx context.Context) AppConnectionMapOutput

type AppConnectionOutput

type AppConnectionOutput struct{ *pulumi.OutputState }

func (AppConnectionOutput) ApplicationEndpoint

Address of the remote application endpoint for the BeyondCorp AppConnection. Structure is documented below.

func (AppConnectionOutput) Connectors

List of AppConnectors that are authorised to be associated with this AppConnection

func (AppConnectionOutput) DisplayName

func (o AppConnectionOutput) DisplayName() pulumi.StringPtrOutput

An arbitrary user-provided name for the AppConnection.

func (AppConnectionOutput) EffectiveLabels

func (o AppConnectionOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (AppConnectionOutput) ElementType

func (AppConnectionOutput) ElementType() reflect.Type

func (AppConnectionOutput) Gateway

Gateway used by the AppConnection.

func (AppConnectionOutput) Labels

Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

func (AppConnectionOutput) Name

ID of the AppConnection.

func (AppConnectionOutput) Project

func (AppConnectionOutput) PulumiLabels

func (o AppConnectionOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (AppConnectionOutput) Region

The region of the AppConnection.

func (AppConnectionOutput) ToAppConnectionOutput

func (o AppConnectionOutput) ToAppConnectionOutput() AppConnectionOutput

func (AppConnectionOutput) ToAppConnectionOutputWithContext

func (o AppConnectionOutput) ToAppConnectionOutputWithContext(ctx context.Context) AppConnectionOutput

func (AppConnectionOutput) Type

The type of network connectivity used by the AppConnection. Refer to https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#type for a list of possible values.

type AppConnectionState

type AppConnectionState struct {
	// Address of the remote application endpoint for the BeyondCorp AppConnection.
	// Structure is documented below.
	ApplicationEndpoint AppConnectionApplicationEndpointPtrInput
	// List of AppConnectors that are authorised to be associated with this AppConnection
	Connectors pulumi.StringArrayInput
	// An arbitrary user-provided name for the AppConnection.
	DisplayName pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Gateway used by the AppConnection.
	Gateway AppConnectionGatewayPtrInput
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapInput
	// ID of the AppConnection.
	Name    pulumi.StringPtrInput
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The region of the AppConnection.
	Region pulumi.StringPtrInput
	// The type of network connectivity used by the AppConnection. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#type for a list of possible
	// values.
	Type pulumi.StringPtrInput
}

func (AppConnectionState) ElementType

func (AppConnectionState) ElementType() reflect.Type

type AppConnector

type AppConnector struct {
	pulumi.CustomResourceState

	// An arbitrary user-provided name for the AppConnector.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// ID of the AppConnector.
	Name pulumi.StringOutput `pulumi:"name"`
	// Principal information about the Identity of the AppConnector.
	// Structure is documented below.
	PrincipalInfo AppConnectorPrincipalInfoOutput `pulumi:"principalInfo"`
	Project       pulumi.StringOutput             `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The region of the AppConnector.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// Represents the different states of a AppConnector.
	State pulumi.StringOutput `pulumi:"state"`
}

A BeyondCorp AppConnector resource represents an application facing component deployed proximal to and with direct access to the application instances. It is used to establish connectivity between the remote enterprise environment and GCP. It initiates connections to the applications and can proxy the data from users over the connection.

To get more information about AppConnector, see:

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

## Example Usage

### Beyondcorp App Connector Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		serviceAccount, err := serviceaccount.NewAccount(ctx, "service_account", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-account"),
			DisplayName: pulumi.String("Test Service Account"),
		})
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewAppConnector(ctx, "app_connector", &beyondcorp.AppConnectorArgs{
			Name: pulumi.String("my-app-connector"),
			PrincipalInfo: &beyondcorp.AppConnectorPrincipalInfoArgs{
				ServiceAccount: &beyondcorp.AppConnectorPrincipalInfoServiceAccountArgs{
					Email: serviceAccount.Email,
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Beyondcorp App Connector Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/serviceaccount"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		serviceAccount, err := serviceaccount.NewAccount(ctx, "service_account", &serviceaccount.AccountArgs{
			AccountId:   pulumi.String("my-account"),
			DisplayName: pulumi.String("Test Service Account"),
		})
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewAppConnector(ctx, "app_connector", &beyondcorp.AppConnectorArgs{
			Name:        pulumi.String("my-app-connector"),
			Region:      pulumi.String("us-central1"),
			DisplayName: pulumi.String("some display name"),
			PrincipalInfo: &beyondcorp.AppConnectorPrincipalInfoArgs{
				ServiceAccount: &beyondcorp.AppConnectorPrincipalInfoServiceAccountArgs{
					Email: serviceAccount.Email,
				},
			},
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
				"bar": pulumi.String("baz"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AppConnector can be imported using any of these accepted formats:

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

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

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

* `{{name}}`

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

```sh $ pulumi import gcp:beyondcorp/appConnector:AppConnector default projects/{{project}}/locations/{{region}}/appConnectors/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnector:AppConnector default {{project}}/{{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnector:AppConnector default {{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appConnector:AppConnector default {{name}} ```

func GetAppConnector

func GetAppConnector(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AppConnectorState, opts ...pulumi.ResourceOption) (*AppConnector, error)

GetAppConnector gets an existing AppConnector 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 NewAppConnector

func NewAppConnector(ctx *pulumi.Context,
	name string, args *AppConnectorArgs, opts ...pulumi.ResourceOption) (*AppConnector, error)

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

func (*AppConnector) ElementType

func (*AppConnector) ElementType() reflect.Type

func (*AppConnector) ToAppConnectorOutput

func (i *AppConnector) ToAppConnectorOutput() AppConnectorOutput

func (*AppConnector) ToAppConnectorOutputWithContext

func (i *AppConnector) ToAppConnectorOutputWithContext(ctx context.Context) AppConnectorOutput

type AppConnectorArgs

type AppConnectorArgs struct {
	// An arbitrary user-provided name for the AppConnector.
	DisplayName pulumi.StringPtrInput
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapInput
	// ID of the AppConnector.
	Name pulumi.StringPtrInput
	// Principal information about the Identity of the AppConnector.
	// Structure is documented below.
	PrincipalInfo AppConnectorPrincipalInfoInput
	Project       pulumi.StringPtrInput
	// The region of the AppConnector.
	Region pulumi.StringPtrInput
}

The set of arguments for constructing a AppConnector resource.

func (AppConnectorArgs) ElementType

func (AppConnectorArgs) ElementType() reflect.Type

type AppConnectorArray

type AppConnectorArray []AppConnectorInput

func (AppConnectorArray) ElementType

func (AppConnectorArray) ElementType() reflect.Type

func (AppConnectorArray) ToAppConnectorArrayOutput

func (i AppConnectorArray) ToAppConnectorArrayOutput() AppConnectorArrayOutput

func (AppConnectorArray) ToAppConnectorArrayOutputWithContext

func (i AppConnectorArray) ToAppConnectorArrayOutputWithContext(ctx context.Context) AppConnectorArrayOutput

type AppConnectorArrayInput

type AppConnectorArrayInput interface {
	pulumi.Input

	ToAppConnectorArrayOutput() AppConnectorArrayOutput
	ToAppConnectorArrayOutputWithContext(context.Context) AppConnectorArrayOutput
}

AppConnectorArrayInput is an input type that accepts AppConnectorArray and AppConnectorArrayOutput values. You can construct a concrete instance of `AppConnectorArrayInput` via:

AppConnectorArray{ AppConnectorArgs{...} }

type AppConnectorArrayOutput

type AppConnectorArrayOutput struct{ *pulumi.OutputState }

func (AppConnectorArrayOutput) ElementType

func (AppConnectorArrayOutput) ElementType() reflect.Type

func (AppConnectorArrayOutput) Index

func (AppConnectorArrayOutput) ToAppConnectorArrayOutput

func (o AppConnectorArrayOutput) ToAppConnectorArrayOutput() AppConnectorArrayOutput

func (AppConnectorArrayOutput) ToAppConnectorArrayOutputWithContext

func (o AppConnectorArrayOutput) ToAppConnectorArrayOutputWithContext(ctx context.Context) AppConnectorArrayOutput

type AppConnectorInput

type AppConnectorInput interface {
	pulumi.Input

	ToAppConnectorOutput() AppConnectorOutput
	ToAppConnectorOutputWithContext(ctx context.Context) AppConnectorOutput
}

type AppConnectorMap

type AppConnectorMap map[string]AppConnectorInput

func (AppConnectorMap) ElementType

func (AppConnectorMap) ElementType() reflect.Type

func (AppConnectorMap) ToAppConnectorMapOutput

func (i AppConnectorMap) ToAppConnectorMapOutput() AppConnectorMapOutput

func (AppConnectorMap) ToAppConnectorMapOutputWithContext

func (i AppConnectorMap) ToAppConnectorMapOutputWithContext(ctx context.Context) AppConnectorMapOutput

type AppConnectorMapInput

type AppConnectorMapInput interface {
	pulumi.Input

	ToAppConnectorMapOutput() AppConnectorMapOutput
	ToAppConnectorMapOutputWithContext(context.Context) AppConnectorMapOutput
}

AppConnectorMapInput is an input type that accepts AppConnectorMap and AppConnectorMapOutput values. You can construct a concrete instance of `AppConnectorMapInput` via:

AppConnectorMap{ "key": AppConnectorArgs{...} }

type AppConnectorMapOutput

type AppConnectorMapOutput struct{ *pulumi.OutputState }

func (AppConnectorMapOutput) ElementType

func (AppConnectorMapOutput) ElementType() reflect.Type

func (AppConnectorMapOutput) MapIndex

func (AppConnectorMapOutput) ToAppConnectorMapOutput

func (o AppConnectorMapOutput) ToAppConnectorMapOutput() AppConnectorMapOutput

func (AppConnectorMapOutput) ToAppConnectorMapOutputWithContext

func (o AppConnectorMapOutput) ToAppConnectorMapOutputWithContext(ctx context.Context) AppConnectorMapOutput

type AppConnectorOutput

type AppConnectorOutput struct{ *pulumi.OutputState }

func (AppConnectorOutput) DisplayName

func (o AppConnectorOutput) DisplayName() pulumi.StringPtrOutput

An arbitrary user-provided name for the AppConnector.

func (AppConnectorOutput) EffectiveLabels

func (o AppConnectorOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (AppConnectorOutput) ElementType

func (AppConnectorOutput) ElementType() reflect.Type

func (AppConnectorOutput) Labels

Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource.

func (AppConnectorOutput) Name

ID of the AppConnector.

func (AppConnectorOutput) PrincipalInfo

Principal information about the Identity of the AppConnector. Structure is documented below.

func (AppConnectorOutput) Project

func (AppConnectorOutput) PulumiLabels

func (o AppConnectorOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (AppConnectorOutput) Region

The region of the AppConnector.

func (AppConnectorOutput) State

Represents the different states of a AppConnector.

func (AppConnectorOutput) ToAppConnectorOutput

func (o AppConnectorOutput) ToAppConnectorOutput() AppConnectorOutput

func (AppConnectorOutput) ToAppConnectorOutputWithContext

func (o AppConnectorOutput) ToAppConnectorOutputWithContext(ctx context.Context) AppConnectorOutput

type AppConnectorPrincipalInfo

type AppConnectorPrincipalInfo struct {
	// ServiceAccount represents a GCP service account.
	// Structure is documented below.
	ServiceAccount AppConnectorPrincipalInfoServiceAccount `pulumi:"serviceAccount"`
}

type AppConnectorPrincipalInfoArgs

type AppConnectorPrincipalInfoArgs struct {
	// ServiceAccount represents a GCP service account.
	// Structure is documented below.
	ServiceAccount AppConnectorPrincipalInfoServiceAccountInput `pulumi:"serviceAccount"`
}

func (AppConnectorPrincipalInfoArgs) ElementType

func (AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoOutput

func (i AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoOutput() AppConnectorPrincipalInfoOutput

func (AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoOutputWithContext

func (i AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoOutput

func (AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoPtrOutput

func (i AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoPtrOutput() AppConnectorPrincipalInfoPtrOutput

func (AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoPtrOutputWithContext

func (i AppConnectorPrincipalInfoArgs) ToAppConnectorPrincipalInfoPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoPtrOutput

type AppConnectorPrincipalInfoInput

type AppConnectorPrincipalInfoInput interface {
	pulumi.Input

	ToAppConnectorPrincipalInfoOutput() AppConnectorPrincipalInfoOutput
	ToAppConnectorPrincipalInfoOutputWithContext(context.Context) AppConnectorPrincipalInfoOutput
}

AppConnectorPrincipalInfoInput is an input type that accepts AppConnectorPrincipalInfoArgs and AppConnectorPrincipalInfoOutput values. You can construct a concrete instance of `AppConnectorPrincipalInfoInput` via:

AppConnectorPrincipalInfoArgs{...}

type AppConnectorPrincipalInfoOutput

type AppConnectorPrincipalInfoOutput struct{ *pulumi.OutputState }

func (AppConnectorPrincipalInfoOutput) ElementType

func (AppConnectorPrincipalInfoOutput) ServiceAccount

ServiceAccount represents a GCP service account. Structure is documented below.

func (AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoOutput

func (o AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoOutput() AppConnectorPrincipalInfoOutput

func (AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoOutputWithContext

func (o AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoOutput

func (AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoPtrOutput

func (o AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoPtrOutput() AppConnectorPrincipalInfoPtrOutput

func (AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoPtrOutputWithContext

func (o AppConnectorPrincipalInfoOutput) ToAppConnectorPrincipalInfoPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoPtrOutput

type AppConnectorPrincipalInfoPtrInput

type AppConnectorPrincipalInfoPtrInput interface {
	pulumi.Input

	ToAppConnectorPrincipalInfoPtrOutput() AppConnectorPrincipalInfoPtrOutput
	ToAppConnectorPrincipalInfoPtrOutputWithContext(context.Context) AppConnectorPrincipalInfoPtrOutput
}

AppConnectorPrincipalInfoPtrInput is an input type that accepts AppConnectorPrincipalInfoArgs, AppConnectorPrincipalInfoPtr and AppConnectorPrincipalInfoPtrOutput values. You can construct a concrete instance of `AppConnectorPrincipalInfoPtrInput` via:

        AppConnectorPrincipalInfoArgs{...}

or:

        nil

type AppConnectorPrincipalInfoPtrOutput

type AppConnectorPrincipalInfoPtrOutput struct{ *pulumi.OutputState }

func (AppConnectorPrincipalInfoPtrOutput) Elem

func (AppConnectorPrincipalInfoPtrOutput) ElementType

func (AppConnectorPrincipalInfoPtrOutput) ServiceAccount

ServiceAccount represents a GCP service account. Structure is documented below.

func (AppConnectorPrincipalInfoPtrOutput) ToAppConnectorPrincipalInfoPtrOutput

func (o AppConnectorPrincipalInfoPtrOutput) ToAppConnectorPrincipalInfoPtrOutput() AppConnectorPrincipalInfoPtrOutput

func (AppConnectorPrincipalInfoPtrOutput) ToAppConnectorPrincipalInfoPtrOutputWithContext

func (o AppConnectorPrincipalInfoPtrOutput) ToAppConnectorPrincipalInfoPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoPtrOutput

type AppConnectorPrincipalInfoServiceAccount

type AppConnectorPrincipalInfoServiceAccount struct {
	// Email address of the service account.
	//
	// ***
	Email string `pulumi:"email"`
}

type AppConnectorPrincipalInfoServiceAccountArgs

type AppConnectorPrincipalInfoServiceAccountArgs struct {
	// Email address of the service account.
	//
	// ***
	Email pulumi.StringInput `pulumi:"email"`
}

func (AppConnectorPrincipalInfoServiceAccountArgs) ElementType

func (AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountOutput

func (i AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountOutput() AppConnectorPrincipalInfoServiceAccountOutput

func (AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountOutputWithContext

func (i AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoServiceAccountOutput

func (AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountPtrOutput

func (i AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountPtrOutput() AppConnectorPrincipalInfoServiceAccountPtrOutput

func (AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext

func (i AppConnectorPrincipalInfoServiceAccountArgs) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoServiceAccountPtrOutput

type AppConnectorPrincipalInfoServiceAccountInput

type AppConnectorPrincipalInfoServiceAccountInput interface {
	pulumi.Input

	ToAppConnectorPrincipalInfoServiceAccountOutput() AppConnectorPrincipalInfoServiceAccountOutput
	ToAppConnectorPrincipalInfoServiceAccountOutputWithContext(context.Context) AppConnectorPrincipalInfoServiceAccountOutput
}

AppConnectorPrincipalInfoServiceAccountInput is an input type that accepts AppConnectorPrincipalInfoServiceAccountArgs and AppConnectorPrincipalInfoServiceAccountOutput values. You can construct a concrete instance of `AppConnectorPrincipalInfoServiceAccountInput` via:

AppConnectorPrincipalInfoServiceAccountArgs{...}

type AppConnectorPrincipalInfoServiceAccountOutput

type AppConnectorPrincipalInfoServiceAccountOutput struct{ *pulumi.OutputState }

func (AppConnectorPrincipalInfoServiceAccountOutput) ElementType

func (AppConnectorPrincipalInfoServiceAccountOutput) Email

Email address of the service account.

***

func (AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountOutput

func (o AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountOutput() AppConnectorPrincipalInfoServiceAccountOutput

func (AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountOutputWithContext

func (o AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoServiceAccountOutput

func (AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutput

func (o AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutput() AppConnectorPrincipalInfoServiceAccountPtrOutput

func (AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext

func (o AppConnectorPrincipalInfoServiceAccountOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoServiceAccountPtrOutput

type AppConnectorPrincipalInfoServiceAccountPtrInput

type AppConnectorPrincipalInfoServiceAccountPtrInput interface {
	pulumi.Input

	ToAppConnectorPrincipalInfoServiceAccountPtrOutput() AppConnectorPrincipalInfoServiceAccountPtrOutput
	ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext(context.Context) AppConnectorPrincipalInfoServiceAccountPtrOutput
}

AppConnectorPrincipalInfoServiceAccountPtrInput is an input type that accepts AppConnectorPrincipalInfoServiceAccountArgs, AppConnectorPrincipalInfoServiceAccountPtr and AppConnectorPrincipalInfoServiceAccountPtrOutput values. You can construct a concrete instance of `AppConnectorPrincipalInfoServiceAccountPtrInput` via:

        AppConnectorPrincipalInfoServiceAccountArgs{...}

or:

        nil

type AppConnectorPrincipalInfoServiceAccountPtrOutput

type AppConnectorPrincipalInfoServiceAccountPtrOutput struct{ *pulumi.OutputState }

func (AppConnectorPrincipalInfoServiceAccountPtrOutput) Elem

func (AppConnectorPrincipalInfoServiceAccountPtrOutput) ElementType

func (AppConnectorPrincipalInfoServiceAccountPtrOutput) Email

Email address of the service account.

***

func (AppConnectorPrincipalInfoServiceAccountPtrOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutput

func (o AppConnectorPrincipalInfoServiceAccountPtrOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutput() AppConnectorPrincipalInfoServiceAccountPtrOutput

func (AppConnectorPrincipalInfoServiceAccountPtrOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext

func (o AppConnectorPrincipalInfoServiceAccountPtrOutput) ToAppConnectorPrincipalInfoServiceAccountPtrOutputWithContext(ctx context.Context) AppConnectorPrincipalInfoServiceAccountPtrOutput

type AppConnectorState

type AppConnectorState struct {
	// An arbitrary user-provided name for the AppConnector.
	DisplayName pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// Resource labels to represent user provided metadata. **Note**: This field is non-authoritative, and will only manage the
	// labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the
	// resource.
	Labels pulumi.StringMapInput
	// ID of the AppConnector.
	Name pulumi.StringPtrInput
	// Principal information about the Identity of the AppConnector.
	// Structure is documented below.
	PrincipalInfo AppConnectorPrincipalInfoPtrInput
	Project       pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The region of the AppConnector.
	Region pulumi.StringPtrInput
	// Represents the different states of a AppConnector.
	State pulumi.StringPtrInput
}

func (AppConnectorState) ElementType

func (AppConnectorState) ElementType() reflect.Type

type AppGateway

type AppGateway struct {
	pulumi.CustomResourceState

	// A list of connections allocated for the Gateway.
	// Structure is documented below.
	AllocatedConnections AppGatewayAllocatedConnectionArrayOutput `pulumi:"allocatedConnections"`
	// An arbitrary user-provided name for the AppGateway.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapOutput `pulumi:"effectiveLabels"`
	// The type of hosting used by the AppGateway.
	// Default value is `HOST_TYPE_UNSPECIFIED`.
	// Possible values are: `HOST_TYPE_UNSPECIFIED`, `GCP_REGIONAL_MIG`.
	HostType pulumi.StringPtrOutput `pulumi:"hostType"`
	// Resource labels to represent user provided metadata.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapOutput `pulumi:"labels"`
	// ID of the AppGateway.
	//
	// ***
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapOutput `pulumi:"pulumiLabels"`
	// The region of the AppGateway.
	Region pulumi.StringPtrOutput `pulumi:"region"`
	// Represents the different states of a AppGateway.
	State pulumi.StringOutput `pulumi:"state"`
	// The type of network connectivity used by the AppGateway.
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `TCP_PROXY`.
	Type pulumi.StringPtrOutput `pulumi:"type"`
	// Server-defined URI for this resource.
	Uri pulumi.StringOutput `pulumi:"uri"`
}

A BeyondCorp AppGateway resource represents a BeyondCorp protected AppGateway to a remote application. It creates all the necessary GCP components needed for creating a BeyondCorp protected AppGateway. Multiple connectors can be authorised for a single AppGateway.

To get more information about AppGateway, see:

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

## Example Usage

### Beyondcorp App Gateway Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewAppGateway(ctx, "app_gateway", &beyondcorp.AppGatewayArgs{
			Name:     pulumi.String("my-app-gateway"),
			Type:     pulumi.String("TCP_PROXY"),
			Region:   pulumi.String("us-central1"),
			HostType: pulumi.String("GCP_REGIONAL_MIG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Beyondcorp App Gateway Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewAppGateway(ctx, "app_gateway", &beyondcorp.AppGatewayArgs{
			Name:        pulumi.String("my-app-gateway"),
			Type:        pulumi.String("TCP_PROXY"),
			Region:      pulumi.String("us-central1"),
			DisplayName: pulumi.String("some display name"),
			Labels: pulumi.StringMap{
				"foo": pulumi.String("bar"),
				"bar": pulumi.String("baz"),
			},
			HostType: pulumi.String("GCP_REGIONAL_MIG"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

AppGateway can be imported using any of these accepted formats:

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

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

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

* `{{name}}`

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

```sh $ pulumi import gcp:beyondcorp/appGateway:AppGateway default projects/{{project}}/locations/{{region}}/appGateways/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appGateway:AppGateway default {{project}}/{{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appGateway:AppGateway default {{region}}/{{name}} ```

```sh $ pulumi import gcp:beyondcorp/appGateway:AppGateway default {{name}} ```

func GetAppGateway

func GetAppGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AppGatewayState, opts ...pulumi.ResourceOption) (*AppGateway, error)

GetAppGateway gets an existing AppGateway 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 NewAppGateway

func NewAppGateway(ctx *pulumi.Context,
	name string, args *AppGatewayArgs, opts ...pulumi.ResourceOption) (*AppGateway, error)

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

func (*AppGateway) ElementType

func (*AppGateway) ElementType() reflect.Type

func (*AppGateway) ToAppGatewayOutput

func (i *AppGateway) ToAppGatewayOutput() AppGatewayOutput

func (*AppGateway) ToAppGatewayOutputWithContext

func (i *AppGateway) ToAppGatewayOutputWithContext(ctx context.Context) AppGatewayOutput

type AppGatewayAllocatedConnection

type AppGatewayAllocatedConnection struct {
	// The ingress port of an allocated connection.
	IngressPort *int `pulumi:"ingressPort"`
	// The PSC uri of an allocated connection.
	PscUri *string `pulumi:"pscUri"`
}

type AppGatewayAllocatedConnectionArgs

type AppGatewayAllocatedConnectionArgs struct {
	// The ingress port of an allocated connection.
	IngressPort pulumi.IntPtrInput `pulumi:"ingressPort"`
	// The PSC uri of an allocated connection.
	PscUri pulumi.StringPtrInput `pulumi:"pscUri"`
}

func (AppGatewayAllocatedConnectionArgs) ElementType

func (AppGatewayAllocatedConnectionArgs) ToAppGatewayAllocatedConnectionOutput

func (i AppGatewayAllocatedConnectionArgs) ToAppGatewayAllocatedConnectionOutput() AppGatewayAllocatedConnectionOutput

func (AppGatewayAllocatedConnectionArgs) ToAppGatewayAllocatedConnectionOutputWithContext

func (i AppGatewayAllocatedConnectionArgs) ToAppGatewayAllocatedConnectionOutputWithContext(ctx context.Context) AppGatewayAllocatedConnectionOutput

type AppGatewayAllocatedConnectionArray

type AppGatewayAllocatedConnectionArray []AppGatewayAllocatedConnectionInput

func (AppGatewayAllocatedConnectionArray) ElementType

func (AppGatewayAllocatedConnectionArray) ToAppGatewayAllocatedConnectionArrayOutput

func (i AppGatewayAllocatedConnectionArray) ToAppGatewayAllocatedConnectionArrayOutput() AppGatewayAllocatedConnectionArrayOutput

func (AppGatewayAllocatedConnectionArray) ToAppGatewayAllocatedConnectionArrayOutputWithContext

func (i AppGatewayAllocatedConnectionArray) ToAppGatewayAllocatedConnectionArrayOutputWithContext(ctx context.Context) AppGatewayAllocatedConnectionArrayOutput

type AppGatewayAllocatedConnectionArrayInput

type AppGatewayAllocatedConnectionArrayInput interface {
	pulumi.Input

	ToAppGatewayAllocatedConnectionArrayOutput() AppGatewayAllocatedConnectionArrayOutput
	ToAppGatewayAllocatedConnectionArrayOutputWithContext(context.Context) AppGatewayAllocatedConnectionArrayOutput
}

AppGatewayAllocatedConnectionArrayInput is an input type that accepts AppGatewayAllocatedConnectionArray and AppGatewayAllocatedConnectionArrayOutput values. You can construct a concrete instance of `AppGatewayAllocatedConnectionArrayInput` via:

AppGatewayAllocatedConnectionArray{ AppGatewayAllocatedConnectionArgs{...} }

type AppGatewayAllocatedConnectionArrayOutput

type AppGatewayAllocatedConnectionArrayOutput struct{ *pulumi.OutputState }

func (AppGatewayAllocatedConnectionArrayOutput) ElementType

func (AppGatewayAllocatedConnectionArrayOutput) Index

func (AppGatewayAllocatedConnectionArrayOutput) ToAppGatewayAllocatedConnectionArrayOutput

func (o AppGatewayAllocatedConnectionArrayOutput) ToAppGatewayAllocatedConnectionArrayOutput() AppGatewayAllocatedConnectionArrayOutput

func (AppGatewayAllocatedConnectionArrayOutput) ToAppGatewayAllocatedConnectionArrayOutputWithContext

func (o AppGatewayAllocatedConnectionArrayOutput) ToAppGatewayAllocatedConnectionArrayOutputWithContext(ctx context.Context) AppGatewayAllocatedConnectionArrayOutput

type AppGatewayAllocatedConnectionInput

type AppGatewayAllocatedConnectionInput interface {
	pulumi.Input

	ToAppGatewayAllocatedConnectionOutput() AppGatewayAllocatedConnectionOutput
	ToAppGatewayAllocatedConnectionOutputWithContext(context.Context) AppGatewayAllocatedConnectionOutput
}

AppGatewayAllocatedConnectionInput is an input type that accepts AppGatewayAllocatedConnectionArgs and AppGatewayAllocatedConnectionOutput values. You can construct a concrete instance of `AppGatewayAllocatedConnectionInput` via:

AppGatewayAllocatedConnectionArgs{...}

type AppGatewayAllocatedConnectionOutput

type AppGatewayAllocatedConnectionOutput struct{ *pulumi.OutputState }

func (AppGatewayAllocatedConnectionOutput) ElementType

func (AppGatewayAllocatedConnectionOutput) IngressPort

The ingress port of an allocated connection.

func (AppGatewayAllocatedConnectionOutput) PscUri

The PSC uri of an allocated connection.

func (AppGatewayAllocatedConnectionOutput) ToAppGatewayAllocatedConnectionOutput

func (o AppGatewayAllocatedConnectionOutput) ToAppGatewayAllocatedConnectionOutput() AppGatewayAllocatedConnectionOutput

func (AppGatewayAllocatedConnectionOutput) ToAppGatewayAllocatedConnectionOutputWithContext

func (o AppGatewayAllocatedConnectionOutput) ToAppGatewayAllocatedConnectionOutputWithContext(ctx context.Context) AppGatewayAllocatedConnectionOutput

type AppGatewayArgs

type AppGatewayArgs struct {
	// An arbitrary user-provided name for the AppGateway.
	DisplayName pulumi.StringPtrInput
	// The type of hosting used by the AppGateway.
	// Default value is `HOST_TYPE_UNSPECIFIED`.
	// Possible values are: `HOST_TYPE_UNSPECIFIED`, `GCP_REGIONAL_MIG`.
	HostType pulumi.StringPtrInput
	// Resource labels to represent user provided metadata.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// ID of the AppGateway.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The region of the AppGateway.
	Region pulumi.StringPtrInput
	// The type of network connectivity used by the AppGateway.
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `TCP_PROXY`.
	Type pulumi.StringPtrInput
}

The set of arguments for constructing a AppGateway resource.

func (AppGatewayArgs) ElementType

func (AppGatewayArgs) ElementType() reflect.Type

type AppGatewayArray

type AppGatewayArray []AppGatewayInput

func (AppGatewayArray) ElementType

func (AppGatewayArray) ElementType() reflect.Type

func (AppGatewayArray) ToAppGatewayArrayOutput

func (i AppGatewayArray) ToAppGatewayArrayOutput() AppGatewayArrayOutput

func (AppGatewayArray) ToAppGatewayArrayOutputWithContext

func (i AppGatewayArray) ToAppGatewayArrayOutputWithContext(ctx context.Context) AppGatewayArrayOutput

type AppGatewayArrayInput

type AppGatewayArrayInput interface {
	pulumi.Input

	ToAppGatewayArrayOutput() AppGatewayArrayOutput
	ToAppGatewayArrayOutputWithContext(context.Context) AppGatewayArrayOutput
}

AppGatewayArrayInput is an input type that accepts AppGatewayArray and AppGatewayArrayOutput values. You can construct a concrete instance of `AppGatewayArrayInput` via:

AppGatewayArray{ AppGatewayArgs{...} }

type AppGatewayArrayOutput

type AppGatewayArrayOutput struct{ *pulumi.OutputState }

func (AppGatewayArrayOutput) ElementType

func (AppGatewayArrayOutput) ElementType() reflect.Type

func (AppGatewayArrayOutput) Index

func (AppGatewayArrayOutput) ToAppGatewayArrayOutput

func (o AppGatewayArrayOutput) ToAppGatewayArrayOutput() AppGatewayArrayOutput

func (AppGatewayArrayOutput) ToAppGatewayArrayOutputWithContext

func (o AppGatewayArrayOutput) ToAppGatewayArrayOutputWithContext(ctx context.Context) AppGatewayArrayOutput

type AppGatewayInput

type AppGatewayInput interface {
	pulumi.Input

	ToAppGatewayOutput() AppGatewayOutput
	ToAppGatewayOutputWithContext(ctx context.Context) AppGatewayOutput
}

type AppGatewayMap

type AppGatewayMap map[string]AppGatewayInput

func (AppGatewayMap) ElementType

func (AppGatewayMap) ElementType() reflect.Type

func (AppGatewayMap) ToAppGatewayMapOutput

func (i AppGatewayMap) ToAppGatewayMapOutput() AppGatewayMapOutput

func (AppGatewayMap) ToAppGatewayMapOutputWithContext

func (i AppGatewayMap) ToAppGatewayMapOutputWithContext(ctx context.Context) AppGatewayMapOutput

type AppGatewayMapInput

type AppGatewayMapInput interface {
	pulumi.Input

	ToAppGatewayMapOutput() AppGatewayMapOutput
	ToAppGatewayMapOutputWithContext(context.Context) AppGatewayMapOutput
}

AppGatewayMapInput is an input type that accepts AppGatewayMap and AppGatewayMapOutput values. You can construct a concrete instance of `AppGatewayMapInput` via:

AppGatewayMap{ "key": AppGatewayArgs{...} }

type AppGatewayMapOutput

type AppGatewayMapOutput struct{ *pulumi.OutputState }

func (AppGatewayMapOutput) ElementType

func (AppGatewayMapOutput) ElementType() reflect.Type

func (AppGatewayMapOutput) MapIndex

func (AppGatewayMapOutput) ToAppGatewayMapOutput

func (o AppGatewayMapOutput) ToAppGatewayMapOutput() AppGatewayMapOutput

func (AppGatewayMapOutput) ToAppGatewayMapOutputWithContext

func (o AppGatewayMapOutput) ToAppGatewayMapOutputWithContext(ctx context.Context) AppGatewayMapOutput

type AppGatewayOutput

type AppGatewayOutput struct{ *pulumi.OutputState }

func (AppGatewayOutput) AllocatedConnections

A list of connections allocated for the Gateway. Structure is documented below.

func (AppGatewayOutput) DisplayName

func (o AppGatewayOutput) DisplayName() pulumi.StringPtrOutput

An arbitrary user-provided name for the AppGateway.

func (AppGatewayOutput) EffectiveLabels

func (o AppGatewayOutput) EffectiveLabels() pulumi.StringMapOutput

All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.

func (AppGatewayOutput) ElementType

func (AppGatewayOutput) ElementType() reflect.Type

func (AppGatewayOutput) HostType

The type of hosting used by the AppGateway. Default value is `HOST_TYPE_UNSPECIFIED`. Possible values are: `HOST_TYPE_UNSPECIFIED`, `GCP_REGIONAL_MIG`.

func (AppGatewayOutput) Labels

Resource labels to represent user provided metadata.

**Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field `effectiveLabels` for all of the labels present on the resource.

func (AppGatewayOutput) Name

ID of the AppGateway.

***

func (AppGatewayOutput) Project

func (o AppGatewayOutput) Project() pulumi.StringOutput

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

func (AppGatewayOutput) PulumiLabels

func (o AppGatewayOutput) PulumiLabels() pulumi.StringMapOutput

The combination of labels configured directly on the resource and default labels configured on the provider.

func (AppGatewayOutput) Region

The region of the AppGateway.

func (AppGatewayOutput) State

Represents the different states of a AppGateway.

func (AppGatewayOutput) ToAppGatewayOutput

func (o AppGatewayOutput) ToAppGatewayOutput() AppGatewayOutput

func (AppGatewayOutput) ToAppGatewayOutputWithContext

func (o AppGatewayOutput) ToAppGatewayOutputWithContext(ctx context.Context) AppGatewayOutput

func (AppGatewayOutput) Type

The type of network connectivity used by the AppGateway. Default value is `TYPE_UNSPECIFIED`. Possible values are: `TYPE_UNSPECIFIED`, `TCP_PROXY`.

func (AppGatewayOutput) Uri

Server-defined URI for this resource.

type AppGatewayState

type AppGatewayState struct {
	// A list of connections allocated for the Gateway.
	// Structure is documented below.
	AllocatedConnections AppGatewayAllocatedConnectionArrayInput
	// An arbitrary user-provided name for the AppGateway.
	DisplayName pulumi.StringPtrInput
	// All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
	EffectiveLabels pulumi.StringMapInput
	// The type of hosting used by the AppGateway.
	// Default value is `HOST_TYPE_UNSPECIFIED`.
	// Possible values are: `HOST_TYPE_UNSPECIFIED`, `GCP_REGIONAL_MIG`.
	HostType pulumi.StringPtrInput
	// Resource labels to represent user provided metadata.
	//
	// **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
	// Please refer to the field `effectiveLabels` for all of the labels present on the resource.
	Labels pulumi.StringMapInput
	// ID of the AppGateway.
	//
	// ***
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The combination of labels configured directly on the resource
	// and default labels configured on the provider.
	PulumiLabels pulumi.StringMapInput
	// The region of the AppGateway.
	Region pulumi.StringPtrInput
	// Represents the different states of a AppGateway.
	State pulumi.StringPtrInput
	// The type of network connectivity used by the AppGateway.
	// Default value is `TYPE_UNSPECIFIED`.
	// Possible values are: `TYPE_UNSPECIFIED`, `TCP_PROXY`.
	Type pulumi.StringPtrInput
	// Server-defined URI for this resource.
	Uri pulumi.StringPtrInput
}

func (AppGatewayState) ElementType

func (AppGatewayState) ElementType() reflect.Type

type Application added in v8.19.0

type Application struct {
	pulumi.CustomResourceState

	// Optional. User-settable Application resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
	// Output only. Timestamp when the resource was created.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Optional. An arbitrary user-provided name for the Application resource. Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// Required. Endpoint matchers associated with an application.
	// A combination of hostname and ports as endpoint matcher is used to match
	// the application.
	// Match conditions for OR logic.
	// An array of match conditions to allow for multiple matching criteria.
	// The rule is considered a match if one the conditions are met.
	// The conditions can be one of the following combination
	// (Hostname), (Hostname & Ports)
	// EXAMPLES:
	// Hostname - ("*.abc.com"), ("xyz.abc.com")
	// Hostname and Ports - ("abc.com" and "22"), ("abc.com" and "22,33") etc
	// Structure is documented below.
	EndpointMatchers ApplicationEndpointMatcherArrayOutput `pulumi:"endpointMatchers"`
	// Identifier. Name of the resource.
	Name    pulumi.StringOutput `pulumi:"name"`
	Project pulumi.StringOutput `pulumi:"project"`
	// Part of `parent`. See documentation of `projectsId`.
	SecurityGatewaysId pulumi.StringOutput `pulumi:"securityGatewaysId"`
	// Output only. Timestamp when the resource was last modified.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
}

Specifies application endpoint(s) to protect behind a Security Gateway.

## Example Usage

### Beyondcorp Security Gateway Application Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_default, err := beyondcorp.NewSecurityGateway(ctx, "default", &beyondcorp.SecurityGatewayArgs{
			SecurityGatewayId: pulumi.String("default"),
			DisplayName:       pulumi.String("My Security Gateway resource"),
			Hubs: beyondcorp.SecurityGatewayHubArray{
				&beyondcorp.SecurityGatewayHubArgs{
					Region: pulumi.String("us-central1"),
				},
			},
		})
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplication(ctx, "example", &beyondcorp.ApplicationArgs{
			SecurityGatewaysId: _default.SecurityGatewayId,
			ApplicationId:      pulumi.String("google"),
			EndpointMatchers: beyondcorp.ApplicationEndpointMatcherArray{
				&beyondcorp.ApplicationEndpointMatcherArgs{
					Hostname: pulumi.String("google.com"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Application can be imported using any of these accepted formats:

* `projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}}`

* `{{project}}/{{security_gateways_id}}/{{application_id}}`

* `{{security_gateways_id}}/{{application_id}}`

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

```sh $ pulumi import gcp:beyondcorp/application:Application default projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} ```

```sh $ pulumi import gcp:beyondcorp/application:Application default {{project}}/{{security_gateways_id}}/{{application_id}} ```

```sh $ pulumi import gcp:beyondcorp/application:Application default {{security_gateways_id}}/{{application_id}} ```

func GetApplication added in v8.19.0

func GetApplication(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApplicationState, opts ...pulumi.ResourceOption) (*Application, error)

GetApplication gets an existing Application 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 NewApplication added in v8.19.0

func NewApplication(ctx *pulumi.Context,
	name string, args *ApplicationArgs, opts ...pulumi.ResourceOption) (*Application, error)

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

func (*Application) ElementType added in v8.19.0

func (*Application) ElementType() reflect.Type

func (*Application) ToApplicationOutput added in v8.19.0

func (i *Application) ToApplicationOutput() ApplicationOutput

func (*Application) ToApplicationOutputWithContext added in v8.19.0

func (i *Application) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput

type ApplicationArgs added in v8.19.0

type ApplicationArgs struct {
	// Optional. User-settable Application resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	ApplicationId pulumi.StringInput
	// Optional. An arbitrary user-provided name for the Application resource. Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrInput
	// Required. Endpoint matchers associated with an application.
	// A combination of hostname and ports as endpoint matcher is used to match
	// the application.
	// Match conditions for OR logic.
	// An array of match conditions to allow for multiple matching criteria.
	// The rule is considered a match if one the conditions are met.
	// The conditions can be one of the following combination
	// (Hostname), (Hostname & Ports)
	// EXAMPLES:
	// Hostname - ("*.abc.com"), ("xyz.abc.com")
	// Hostname and Ports - ("abc.com" and "22"), ("abc.com" and "22,33") etc
	// Structure is documented below.
	EndpointMatchers ApplicationEndpointMatcherArrayInput
	Project          pulumi.StringPtrInput
	// Part of `parent`. See documentation of `projectsId`.
	SecurityGatewaysId pulumi.StringInput
}

The set of arguments for constructing a Application resource.

func (ApplicationArgs) ElementType added in v8.19.0

func (ApplicationArgs) ElementType() reflect.Type

type ApplicationArray added in v8.19.0

type ApplicationArray []ApplicationInput

func (ApplicationArray) ElementType added in v8.19.0

func (ApplicationArray) ElementType() reflect.Type

func (ApplicationArray) ToApplicationArrayOutput added in v8.19.0

func (i ApplicationArray) ToApplicationArrayOutput() ApplicationArrayOutput

func (ApplicationArray) ToApplicationArrayOutputWithContext added in v8.19.0

func (i ApplicationArray) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput

type ApplicationArrayInput added in v8.19.0

type ApplicationArrayInput interface {
	pulumi.Input

	ToApplicationArrayOutput() ApplicationArrayOutput
	ToApplicationArrayOutputWithContext(context.Context) ApplicationArrayOutput
}

ApplicationArrayInput is an input type that accepts ApplicationArray and ApplicationArrayOutput values. You can construct a concrete instance of `ApplicationArrayInput` via:

ApplicationArray{ ApplicationArgs{...} }

type ApplicationArrayOutput added in v8.19.0

type ApplicationArrayOutput struct{ *pulumi.OutputState }

func (ApplicationArrayOutput) ElementType added in v8.19.0

func (ApplicationArrayOutput) ElementType() reflect.Type

func (ApplicationArrayOutput) Index added in v8.19.0

func (ApplicationArrayOutput) ToApplicationArrayOutput added in v8.19.0

func (o ApplicationArrayOutput) ToApplicationArrayOutput() ApplicationArrayOutput

func (ApplicationArrayOutput) ToApplicationArrayOutputWithContext added in v8.19.0

func (o ApplicationArrayOutput) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput

type ApplicationEndpointMatcher added in v8.19.0

type ApplicationEndpointMatcher struct {
	// Required. Hostname of the application.
	Hostname string `pulumi:"hostname"`
	// Optional. Ports of the application.
	//
	// ***
	Ports []int `pulumi:"ports"`
}

type ApplicationEndpointMatcherArgs added in v8.19.0

type ApplicationEndpointMatcherArgs struct {
	// Required. Hostname of the application.
	Hostname pulumi.StringInput `pulumi:"hostname"`
	// Optional. Ports of the application.
	//
	// ***
	Ports pulumi.IntArrayInput `pulumi:"ports"`
}

func (ApplicationEndpointMatcherArgs) ElementType added in v8.19.0

func (ApplicationEndpointMatcherArgs) ToApplicationEndpointMatcherOutput added in v8.19.0

func (i ApplicationEndpointMatcherArgs) ToApplicationEndpointMatcherOutput() ApplicationEndpointMatcherOutput

func (ApplicationEndpointMatcherArgs) ToApplicationEndpointMatcherOutputWithContext added in v8.19.0

func (i ApplicationEndpointMatcherArgs) ToApplicationEndpointMatcherOutputWithContext(ctx context.Context) ApplicationEndpointMatcherOutput

type ApplicationEndpointMatcherArray added in v8.19.0

type ApplicationEndpointMatcherArray []ApplicationEndpointMatcherInput

func (ApplicationEndpointMatcherArray) ElementType added in v8.19.0

func (ApplicationEndpointMatcherArray) ToApplicationEndpointMatcherArrayOutput added in v8.19.0

func (i ApplicationEndpointMatcherArray) ToApplicationEndpointMatcherArrayOutput() ApplicationEndpointMatcherArrayOutput

func (ApplicationEndpointMatcherArray) ToApplicationEndpointMatcherArrayOutputWithContext added in v8.19.0

func (i ApplicationEndpointMatcherArray) ToApplicationEndpointMatcherArrayOutputWithContext(ctx context.Context) ApplicationEndpointMatcherArrayOutput

type ApplicationEndpointMatcherArrayInput added in v8.19.0

type ApplicationEndpointMatcherArrayInput interface {
	pulumi.Input

	ToApplicationEndpointMatcherArrayOutput() ApplicationEndpointMatcherArrayOutput
	ToApplicationEndpointMatcherArrayOutputWithContext(context.Context) ApplicationEndpointMatcherArrayOutput
}

ApplicationEndpointMatcherArrayInput is an input type that accepts ApplicationEndpointMatcherArray and ApplicationEndpointMatcherArrayOutput values. You can construct a concrete instance of `ApplicationEndpointMatcherArrayInput` via:

ApplicationEndpointMatcherArray{ ApplicationEndpointMatcherArgs{...} }

type ApplicationEndpointMatcherArrayOutput added in v8.19.0

type ApplicationEndpointMatcherArrayOutput struct{ *pulumi.OutputState }

func (ApplicationEndpointMatcherArrayOutput) ElementType added in v8.19.0

func (ApplicationEndpointMatcherArrayOutput) Index added in v8.19.0

func (ApplicationEndpointMatcherArrayOutput) ToApplicationEndpointMatcherArrayOutput added in v8.19.0

func (o ApplicationEndpointMatcherArrayOutput) ToApplicationEndpointMatcherArrayOutput() ApplicationEndpointMatcherArrayOutput

func (ApplicationEndpointMatcherArrayOutput) ToApplicationEndpointMatcherArrayOutputWithContext added in v8.19.0

func (o ApplicationEndpointMatcherArrayOutput) ToApplicationEndpointMatcherArrayOutputWithContext(ctx context.Context) ApplicationEndpointMatcherArrayOutput

type ApplicationEndpointMatcherInput added in v8.19.0

type ApplicationEndpointMatcherInput interface {
	pulumi.Input

	ToApplicationEndpointMatcherOutput() ApplicationEndpointMatcherOutput
	ToApplicationEndpointMatcherOutputWithContext(context.Context) ApplicationEndpointMatcherOutput
}

ApplicationEndpointMatcherInput is an input type that accepts ApplicationEndpointMatcherArgs and ApplicationEndpointMatcherOutput values. You can construct a concrete instance of `ApplicationEndpointMatcherInput` via:

ApplicationEndpointMatcherArgs{...}

type ApplicationEndpointMatcherOutput added in v8.19.0

type ApplicationEndpointMatcherOutput struct{ *pulumi.OutputState }

func (ApplicationEndpointMatcherOutput) ElementType added in v8.19.0

func (ApplicationEndpointMatcherOutput) Hostname added in v8.19.0

Required. Hostname of the application.

func (ApplicationEndpointMatcherOutput) Ports added in v8.19.0

Optional. Ports of the application.

***

func (ApplicationEndpointMatcherOutput) ToApplicationEndpointMatcherOutput added in v8.19.0

func (o ApplicationEndpointMatcherOutput) ToApplicationEndpointMatcherOutput() ApplicationEndpointMatcherOutput

func (ApplicationEndpointMatcherOutput) ToApplicationEndpointMatcherOutputWithContext added in v8.19.0

func (o ApplicationEndpointMatcherOutput) ToApplicationEndpointMatcherOutputWithContext(ctx context.Context) ApplicationEndpointMatcherOutput

type ApplicationIamBinding added in v8.19.0

type ApplicationIamBinding struct {
	pulumi.CustomResourceState

	ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` 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"`
	SecurityGatewaysId pulumi.StringOutput `pulumi:"securityGatewaysId"`
}

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

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp Application Three different resources help you manage your IAM policy for BeyondCorp Application. Each of these resources serves a different use case:

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}}

* {{project}}/{{security_gateways_id}}/{{application_id}}

* {{security_gateways_id}}/{{application_id}}

* {{application_id}}

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

BeyondCorp application IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/applicationIamBinding:ApplicationIamBinding editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamBinding:ApplicationIamBinding editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamBinding:ApplicationIamBinding editor projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} ```

-> **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 GetApplicationIamBinding added in v8.19.0

func GetApplicationIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApplicationIamBindingState, opts ...pulumi.ResourceOption) (*ApplicationIamBinding, error)

GetApplicationIamBinding gets an existing ApplicationIamBinding 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 NewApplicationIamBinding added in v8.19.0

func NewApplicationIamBinding(ctx *pulumi.Context,
	name string, args *ApplicationIamBindingArgs, opts ...pulumi.ResourceOption) (*ApplicationIamBinding, error)

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

func (*ApplicationIamBinding) ElementType added in v8.19.0

func (*ApplicationIamBinding) ElementType() reflect.Type

func (*ApplicationIamBinding) ToApplicationIamBindingOutput added in v8.19.0

func (i *ApplicationIamBinding) ToApplicationIamBindingOutput() ApplicationIamBindingOutput

func (*ApplicationIamBinding) ToApplicationIamBindingOutputWithContext added in v8.19.0

func (i *ApplicationIamBinding) ToApplicationIamBindingOutputWithContext(ctx context.Context) ApplicationIamBindingOutput

type ApplicationIamBindingArgs added in v8.19.0

type ApplicationIamBindingArgs struct {
	ApplicationId pulumi.StringInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamBindingConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role               pulumi.StringInput
	SecurityGatewaysId pulumi.StringInput
}

The set of arguments for constructing a ApplicationIamBinding resource.

func (ApplicationIamBindingArgs) ElementType added in v8.19.0

func (ApplicationIamBindingArgs) ElementType() reflect.Type

type ApplicationIamBindingArray added in v8.19.0

type ApplicationIamBindingArray []ApplicationIamBindingInput

func (ApplicationIamBindingArray) ElementType added in v8.19.0

func (ApplicationIamBindingArray) ElementType() reflect.Type

func (ApplicationIamBindingArray) ToApplicationIamBindingArrayOutput added in v8.19.0

func (i ApplicationIamBindingArray) ToApplicationIamBindingArrayOutput() ApplicationIamBindingArrayOutput

func (ApplicationIamBindingArray) ToApplicationIamBindingArrayOutputWithContext added in v8.19.0

func (i ApplicationIamBindingArray) ToApplicationIamBindingArrayOutputWithContext(ctx context.Context) ApplicationIamBindingArrayOutput

type ApplicationIamBindingArrayInput added in v8.19.0

type ApplicationIamBindingArrayInput interface {
	pulumi.Input

	ToApplicationIamBindingArrayOutput() ApplicationIamBindingArrayOutput
	ToApplicationIamBindingArrayOutputWithContext(context.Context) ApplicationIamBindingArrayOutput
}

ApplicationIamBindingArrayInput is an input type that accepts ApplicationIamBindingArray and ApplicationIamBindingArrayOutput values. You can construct a concrete instance of `ApplicationIamBindingArrayInput` via:

ApplicationIamBindingArray{ ApplicationIamBindingArgs{...} }

type ApplicationIamBindingArrayOutput added in v8.19.0

type ApplicationIamBindingArrayOutput struct{ *pulumi.OutputState }

func (ApplicationIamBindingArrayOutput) ElementType added in v8.19.0

func (ApplicationIamBindingArrayOutput) Index added in v8.19.0

func (ApplicationIamBindingArrayOutput) ToApplicationIamBindingArrayOutput added in v8.19.0

func (o ApplicationIamBindingArrayOutput) ToApplicationIamBindingArrayOutput() ApplicationIamBindingArrayOutput

func (ApplicationIamBindingArrayOutput) ToApplicationIamBindingArrayOutputWithContext added in v8.19.0

func (o ApplicationIamBindingArrayOutput) ToApplicationIamBindingArrayOutputWithContext(ctx context.Context) ApplicationIamBindingArrayOutput

type ApplicationIamBindingCondition added in v8.19.0

type ApplicationIamBindingCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type ApplicationIamBindingConditionArgs added in v8.19.0

type ApplicationIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (ApplicationIamBindingConditionArgs) ElementType added in v8.19.0

func (ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionOutput added in v8.19.0

func (i ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionOutput() ApplicationIamBindingConditionOutput

func (ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionOutputWithContext added in v8.19.0

func (i ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionOutputWithContext(ctx context.Context) ApplicationIamBindingConditionOutput

func (ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionPtrOutput added in v8.19.0

func (i ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionPtrOutput() ApplicationIamBindingConditionPtrOutput

func (ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionPtrOutputWithContext added in v8.19.0

func (i ApplicationIamBindingConditionArgs) ToApplicationIamBindingConditionPtrOutputWithContext(ctx context.Context) ApplicationIamBindingConditionPtrOutput

type ApplicationIamBindingConditionInput added in v8.19.0

type ApplicationIamBindingConditionInput interface {
	pulumi.Input

	ToApplicationIamBindingConditionOutput() ApplicationIamBindingConditionOutput
	ToApplicationIamBindingConditionOutputWithContext(context.Context) ApplicationIamBindingConditionOutput
}

ApplicationIamBindingConditionInput is an input type that accepts ApplicationIamBindingConditionArgs and ApplicationIamBindingConditionOutput values. You can construct a concrete instance of `ApplicationIamBindingConditionInput` via:

ApplicationIamBindingConditionArgs{...}

type ApplicationIamBindingConditionOutput added in v8.19.0

type ApplicationIamBindingConditionOutput struct{ *pulumi.OutputState }

func (ApplicationIamBindingConditionOutput) Description added in v8.19.0

func (ApplicationIamBindingConditionOutput) ElementType added in v8.19.0

func (ApplicationIamBindingConditionOutput) Expression added in v8.19.0

Textual representation of an expression in Common Expression Language syntax.

func (ApplicationIamBindingConditionOutput) Title added in v8.19.0

A title for the expression, i.e. a short string describing its purpose.

func (ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionOutput added in v8.19.0

func (o ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionOutput() ApplicationIamBindingConditionOutput

func (ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionOutputWithContext added in v8.19.0

func (o ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionOutputWithContext(ctx context.Context) ApplicationIamBindingConditionOutput

func (ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionPtrOutput added in v8.19.0

func (o ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionPtrOutput() ApplicationIamBindingConditionPtrOutput

func (ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionPtrOutputWithContext added in v8.19.0

func (o ApplicationIamBindingConditionOutput) ToApplicationIamBindingConditionPtrOutputWithContext(ctx context.Context) ApplicationIamBindingConditionPtrOutput

type ApplicationIamBindingConditionPtrInput added in v8.19.0

type ApplicationIamBindingConditionPtrInput interface {
	pulumi.Input

	ToApplicationIamBindingConditionPtrOutput() ApplicationIamBindingConditionPtrOutput
	ToApplicationIamBindingConditionPtrOutputWithContext(context.Context) ApplicationIamBindingConditionPtrOutput
}

ApplicationIamBindingConditionPtrInput is an input type that accepts ApplicationIamBindingConditionArgs, ApplicationIamBindingConditionPtr and ApplicationIamBindingConditionPtrOutput values. You can construct a concrete instance of `ApplicationIamBindingConditionPtrInput` via:

        ApplicationIamBindingConditionArgs{...}

or:

        nil

type ApplicationIamBindingConditionPtrOutput added in v8.19.0

type ApplicationIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (ApplicationIamBindingConditionPtrOutput) Description added in v8.19.0

func (ApplicationIamBindingConditionPtrOutput) Elem added in v8.19.0

func (ApplicationIamBindingConditionPtrOutput) ElementType added in v8.19.0

func (ApplicationIamBindingConditionPtrOutput) Expression added in v8.19.0

Textual representation of an expression in Common Expression Language syntax.

func (ApplicationIamBindingConditionPtrOutput) Title added in v8.19.0

A title for the expression, i.e. a short string describing its purpose.

func (ApplicationIamBindingConditionPtrOutput) ToApplicationIamBindingConditionPtrOutput added in v8.19.0

func (o ApplicationIamBindingConditionPtrOutput) ToApplicationIamBindingConditionPtrOutput() ApplicationIamBindingConditionPtrOutput

func (ApplicationIamBindingConditionPtrOutput) ToApplicationIamBindingConditionPtrOutputWithContext added in v8.19.0

func (o ApplicationIamBindingConditionPtrOutput) ToApplicationIamBindingConditionPtrOutputWithContext(ctx context.Context) ApplicationIamBindingConditionPtrOutput

type ApplicationIamBindingInput added in v8.19.0

type ApplicationIamBindingInput interface {
	pulumi.Input

	ToApplicationIamBindingOutput() ApplicationIamBindingOutput
	ToApplicationIamBindingOutputWithContext(ctx context.Context) ApplicationIamBindingOutput
}

type ApplicationIamBindingMap added in v8.19.0

type ApplicationIamBindingMap map[string]ApplicationIamBindingInput

func (ApplicationIamBindingMap) ElementType added in v8.19.0

func (ApplicationIamBindingMap) ElementType() reflect.Type

func (ApplicationIamBindingMap) ToApplicationIamBindingMapOutput added in v8.19.0

func (i ApplicationIamBindingMap) ToApplicationIamBindingMapOutput() ApplicationIamBindingMapOutput

func (ApplicationIamBindingMap) ToApplicationIamBindingMapOutputWithContext added in v8.19.0

func (i ApplicationIamBindingMap) ToApplicationIamBindingMapOutputWithContext(ctx context.Context) ApplicationIamBindingMapOutput

type ApplicationIamBindingMapInput added in v8.19.0

type ApplicationIamBindingMapInput interface {
	pulumi.Input

	ToApplicationIamBindingMapOutput() ApplicationIamBindingMapOutput
	ToApplicationIamBindingMapOutputWithContext(context.Context) ApplicationIamBindingMapOutput
}

ApplicationIamBindingMapInput is an input type that accepts ApplicationIamBindingMap and ApplicationIamBindingMapOutput values. You can construct a concrete instance of `ApplicationIamBindingMapInput` via:

ApplicationIamBindingMap{ "key": ApplicationIamBindingArgs{...} }

type ApplicationIamBindingMapOutput added in v8.19.0

type ApplicationIamBindingMapOutput struct{ *pulumi.OutputState }

func (ApplicationIamBindingMapOutput) ElementType added in v8.19.0

func (ApplicationIamBindingMapOutput) MapIndex added in v8.19.0

func (ApplicationIamBindingMapOutput) ToApplicationIamBindingMapOutput added in v8.19.0

func (o ApplicationIamBindingMapOutput) ToApplicationIamBindingMapOutput() ApplicationIamBindingMapOutput

func (ApplicationIamBindingMapOutput) ToApplicationIamBindingMapOutputWithContext added in v8.19.0

func (o ApplicationIamBindingMapOutput) ToApplicationIamBindingMapOutputWithContext(ctx context.Context) ApplicationIamBindingMapOutput

type ApplicationIamBindingOutput added in v8.19.0

type ApplicationIamBindingOutput struct{ *pulumi.OutputState }

func (ApplicationIamBindingOutput) ApplicationId added in v8.19.0

func (ApplicationIamBindingOutput) Condition added in v8.19.0

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (ApplicationIamBindingOutput) ElementType added in v8.19.0

func (ApplicationIamBindingOutput) Etag added in v8.19.0

(Computed) The etag of the IAM policy.

func (ApplicationIamBindingOutput) Members added in v8.19.0

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

func (ApplicationIamBindingOutput) Project added in v8.19.0

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

func (ApplicationIamBindingOutput) Role added in v8.19.0

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

func (ApplicationIamBindingOutput) SecurityGatewaysId added in v8.19.0

func (o ApplicationIamBindingOutput) SecurityGatewaysId() pulumi.StringOutput

func (ApplicationIamBindingOutput) ToApplicationIamBindingOutput added in v8.19.0

func (o ApplicationIamBindingOutput) ToApplicationIamBindingOutput() ApplicationIamBindingOutput

func (ApplicationIamBindingOutput) ToApplicationIamBindingOutputWithContext added in v8.19.0

func (o ApplicationIamBindingOutput) ToApplicationIamBindingOutputWithContext(ctx context.Context) ApplicationIamBindingOutput

type ApplicationIamBindingState added in v8.19.0

type ApplicationIamBindingState struct {
	ApplicationId pulumi.StringPtrInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role               pulumi.StringPtrInput
	SecurityGatewaysId pulumi.StringPtrInput
}

func (ApplicationIamBindingState) ElementType added in v8.19.0

func (ApplicationIamBindingState) ElementType() reflect.Type

type ApplicationIamMember added in v8.19.0

type ApplicationIamMember struct {
	pulumi.CustomResourceState

	ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` 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"`
	SecurityGatewaysId pulumi.StringOutput `pulumi:"securityGatewaysId"`
}

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

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp Application Three different resources help you manage your IAM policy for BeyondCorp Application. Each of these resources serves a different use case:

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}}

* {{project}}/{{security_gateways_id}}/{{application_id}}

* {{security_gateways_id}}/{{application_id}}

* {{application_id}}

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

BeyondCorp application IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/applicationIamMember:ApplicationIamMember editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamMember:ApplicationIamMember editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamMember:ApplicationIamMember editor projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} ```

-> **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 GetApplicationIamMember added in v8.19.0

func GetApplicationIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApplicationIamMemberState, opts ...pulumi.ResourceOption) (*ApplicationIamMember, error)

GetApplicationIamMember gets an existing ApplicationIamMember 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 NewApplicationIamMember added in v8.19.0

func NewApplicationIamMember(ctx *pulumi.Context,
	name string, args *ApplicationIamMemberArgs, opts ...pulumi.ResourceOption) (*ApplicationIamMember, error)

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

func (*ApplicationIamMember) ElementType added in v8.19.0

func (*ApplicationIamMember) ElementType() reflect.Type

func (*ApplicationIamMember) ToApplicationIamMemberOutput added in v8.19.0

func (i *ApplicationIamMember) ToApplicationIamMemberOutput() ApplicationIamMemberOutput

func (*ApplicationIamMember) ToApplicationIamMemberOutputWithContext added in v8.19.0

func (i *ApplicationIamMember) ToApplicationIamMemberOutputWithContext(ctx context.Context) ApplicationIamMemberOutput

type ApplicationIamMemberArgs added in v8.19.0

type ApplicationIamMemberArgs struct {
	ApplicationId pulumi.StringInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamMemberConditionPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role               pulumi.StringInput
	SecurityGatewaysId pulumi.StringInput
}

The set of arguments for constructing a ApplicationIamMember resource.

func (ApplicationIamMemberArgs) ElementType added in v8.19.0

func (ApplicationIamMemberArgs) ElementType() reflect.Type

type ApplicationIamMemberArray added in v8.19.0

type ApplicationIamMemberArray []ApplicationIamMemberInput

func (ApplicationIamMemberArray) ElementType added in v8.19.0

func (ApplicationIamMemberArray) ElementType() reflect.Type

func (ApplicationIamMemberArray) ToApplicationIamMemberArrayOutput added in v8.19.0

func (i ApplicationIamMemberArray) ToApplicationIamMemberArrayOutput() ApplicationIamMemberArrayOutput

func (ApplicationIamMemberArray) ToApplicationIamMemberArrayOutputWithContext added in v8.19.0

func (i ApplicationIamMemberArray) ToApplicationIamMemberArrayOutputWithContext(ctx context.Context) ApplicationIamMemberArrayOutput

type ApplicationIamMemberArrayInput added in v8.19.0

type ApplicationIamMemberArrayInput interface {
	pulumi.Input

	ToApplicationIamMemberArrayOutput() ApplicationIamMemberArrayOutput
	ToApplicationIamMemberArrayOutputWithContext(context.Context) ApplicationIamMemberArrayOutput
}

ApplicationIamMemberArrayInput is an input type that accepts ApplicationIamMemberArray and ApplicationIamMemberArrayOutput values. You can construct a concrete instance of `ApplicationIamMemberArrayInput` via:

ApplicationIamMemberArray{ ApplicationIamMemberArgs{...} }

type ApplicationIamMemberArrayOutput added in v8.19.0

type ApplicationIamMemberArrayOutput struct{ *pulumi.OutputState }

func (ApplicationIamMemberArrayOutput) ElementType added in v8.19.0

func (ApplicationIamMemberArrayOutput) Index added in v8.19.0

func (ApplicationIamMemberArrayOutput) ToApplicationIamMemberArrayOutput added in v8.19.0

func (o ApplicationIamMemberArrayOutput) ToApplicationIamMemberArrayOutput() ApplicationIamMemberArrayOutput

func (ApplicationIamMemberArrayOutput) ToApplicationIamMemberArrayOutputWithContext added in v8.19.0

func (o ApplicationIamMemberArrayOutput) ToApplicationIamMemberArrayOutputWithContext(ctx context.Context) ApplicationIamMemberArrayOutput

type ApplicationIamMemberCondition added in v8.19.0

type ApplicationIamMemberCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type ApplicationIamMemberConditionArgs added in v8.19.0

type ApplicationIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (ApplicationIamMemberConditionArgs) ElementType added in v8.19.0

func (ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionOutput added in v8.19.0

func (i ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionOutput() ApplicationIamMemberConditionOutput

func (ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionOutputWithContext added in v8.19.0

func (i ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionOutputWithContext(ctx context.Context) ApplicationIamMemberConditionOutput

func (ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionPtrOutput added in v8.19.0

func (i ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionPtrOutput() ApplicationIamMemberConditionPtrOutput

func (ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionPtrOutputWithContext added in v8.19.0

func (i ApplicationIamMemberConditionArgs) ToApplicationIamMemberConditionPtrOutputWithContext(ctx context.Context) ApplicationIamMemberConditionPtrOutput

type ApplicationIamMemberConditionInput added in v8.19.0

type ApplicationIamMemberConditionInput interface {
	pulumi.Input

	ToApplicationIamMemberConditionOutput() ApplicationIamMemberConditionOutput
	ToApplicationIamMemberConditionOutputWithContext(context.Context) ApplicationIamMemberConditionOutput
}

ApplicationIamMemberConditionInput is an input type that accepts ApplicationIamMemberConditionArgs and ApplicationIamMemberConditionOutput values. You can construct a concrete instance of `ApplicationIamMemberConditionInput` via:

ApplicationIamMemberConditionArgs{...}

type ApplicationIamMemberConditionOutput added in v8.19.0

type ApplicationIamMemberConditionOutput struct{ *pulumi.OutputState }

func (ApplicationIamMemberConditionOutput) Description added in v8.19.0

func (ApplicationIamMemberConditionOutput) ElementType added in v8.19.0

func (ApplicationIamMemberConditionOutput) Expression added in v8.19.0

Textual representation of an expression in Common Expression Language syntax.

func (ApplicationIamMemberConditionOutput) Title added in v8.19.0

A title for the expression, i.e. a short string describing its purpose.

func (ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionOutput added in v8.19.0

func (o ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionOutput() ApplicationIamMemberConditionOutput

func (ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionOutputWithContext added in v8.19.0

func (o ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionOutputWithContext(ctx context.Context) ApplicationIamMemberConditionOutput

func (ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionPtrOutput added in v8.19.0

func (o ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionPtrOutput() ApplicationIamMemberConditionPtrOutput

func (ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionPtrOutputWithContext added in v8.19.0

func (o ApplicationIamMemberConditionOutput) ToApplicationIamMemberConditionPtrOutputWithContext(ctx context.Context) ApplicationIamMemberConditionPtrOutput

type ApplicationIamMemberConditionPtrInput added in v8.19.0

type ApplicationIamMemberConditionPtrInput interface {
	pulumi.Input

	ToApplicationIamMemberConditionPtrOutput() ApplicationIamMemberConditionPtrOutput
	ToApplicationIamMemberConditionPtrOutputWithContext(context.Context) ApplicationIamMemberConditionPtrOutput
}

ApplicationIamMemberConditionPtrInput is an input type that accepts ApplicationIamMemberConditionArgs, ApplicationIamMemberConditionPtr and ApplicationIamMemberConditionPtrOutput values. You can construct a concrete instance of `ApplicationIamMemberConditionPtrInput` via:

        ApplicationIamMemberConditionArgs{...}

or:

        nil

type ApplicationIamMemberConditionPtrOutput added in v8.19.0

type ApplicationIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (ApplicationIamMemberConditionPtrOutput) Description added in v8.19.0

func (ApplicationIamMemberConditionPtrOutput) Elem added in v8.19.0

func (ApplicationIamMemberConditionPtrOutput) ElementType added in v8.19.0

func (ApplicationIamMemberConditionPtrOutput) Expression added in v8.19.0

Textual representation of an expression in Common Expression Language syntax.

func (ApplicationIamMemberConditionPtrOutput) Title added in v8.19.0

A title for the expression, i.e. a short string describing its purpose.

func (ApplicationIamMemberConditionPtrOutput) ToApplicationIamMemberConditionPtrOutput added in v8.19.0

func (o ApplicationIamMemberConditionPtrOutput) ToApplicationIamMemberConditionPtrOutput() ApplicationIamMemberConditionPtrOutput

func (ApplicationIamMemberConditionPtrOutput) ToApplicationIamMemberConditionPtrOutputWithContext added in v8.19.0

func (o ApplicationIamMemberConditionPtrOutput) ToApplicationIamMemberConditionPtrOutputWithContext(ctx context.Context) ApplicationIamMemberConditionPtrOutput

type ApplicationIamMemberInput added in v8.19.0

type ApplicationIamMemberInput interface {
	pulumi.Input

	ToApplicationIamMemberOutput() ApplicationIamMemberOutput
	ToApplicationIamMemberOutputWithContext(ctx context.Context) ApplicationIamMemberOutput
}

type ApplicationIamMemberMap added in v8.19.0

type ApplicationIamMemberMap map[string]ApplicationIamMemberInput

func (ApplicationIamMemberMap) ElementType added in v8.19.0

func (ApplicationIamMemberMap) ElementType() reflect.Type

func (ApplicationIamMemberMap) ToApplicationIamMemberMapOutput added in v8.19.0

func (i ApplicationIamMemberMap) ToApplicationIamMemberMapOutput() ApplicationIamMemberMapOutput

func (ApplicationIamMemberMap) ToApplicationIamMemberMapOutputWithContext added in v8.19.0

func (i ApplicationIamMemberMap) ToApplicationIamMemberMapOutputWithContext(ctx context.Context) ApplicationIamMemberMapOutput

type ApplicationIamMemberMapInput added in v8.19.0

type ApplicationIamMemberMapInput interface {
	pulumi.Input

	ToApplicationIamMemberMapOutput() ApplicationIamMemberMapOutput
	ToApplicationIamMemberMapOutputWithContext(context.Context) ApplicationIamMemberMapOutput
}

ApplicationIamMemberMapInput is an input type that accepts ApplicationIamMemberMap and ApplicationIamMemberMapOutput values. You can construct a concrete instance of `ApplicationIamMemberMapInput` via:

ApplicationIamMemberMap{ "key": ApplicationIamMemberArgs{...} }

type ApplicationIamMemberMapOutput added in v8.19.0

type ApplicationIamMemberMapOutput struct{ *pulumi.OutputState }

func (ApplicationIamMemberMapOutput) ElementType added in v8.19.0

func (ApplicationIamMemberMapOutput) MapIndex added in v8.19.0

func (ApplicationIamMemberMapOutput) ToApplicationIamMemberMapOutput added in v8.19.0

func (o ApplicationIamMemberMapOutput) ToApplicationIamMemberMapOutput() ApplicationIamMemberMapOutput

func (ApplicationIamMemberMapOutput) ToApplicationIamMemberMapOutputWithContext added in v8.19.0

func (o ApplicationIamMemberMapOutput) ToApplicationIamMemberMapOutputWithContext(ctx context.Context) ApplicationIamMemberMapOutput

type ApplicationIamMemberOutput added in v8.19.0

type ApplicationIamMemberOutput struct{ *pulumi.OutputState }

func (ApplicationIamMemberOutput) ApplicationId added in v8.19.0

func (ApplicationIamMemberOutput) Condition added in v8.19.0

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (ApplicationIamMemberOutput) ElementType added in v8.19.0

func (ApplicationIamMemberOutput) ElementType() reflect.Type

func (ApplicationIamMemberOutput) Etag added in v8.19.0

(Computed) The etag of the IAM policy.

func (ApplicationIamMemberOutput) Member added in v8.19.0

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

func (ApplicationIamMemberOutput) Project added in v8.19.0

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

func (ApplicationIamMemberOutput) Role added in v8.19.0

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

func (ApplicationIamMemberOutput) SecurityGatewaysId added in v8.19.0

func (o ApplicationIamMemberOutput) SecurityGatewaysId() pulumi.StringOutput

func (ApplicationIamMemberOutput) ToApplicationIamMemberOutput added in v8.19.0

func (o ApplicationIamMemberOutput) ToApplicationIamMemberOutput() ApplicationIamMemberOutput

func (ApplicationIamMemberOutput) ToApplicationIamMemberOutputWithContext added in v8.19.0

func (o ApplicationIamMemberOutput) ToApplicationIamMemberOutputWithContext(ctx context.Context) ApplicationIamMemberOutput

type ApplicationIamMemberState added in v8.19.0

type ApplicationIamMemberState struct {
	ApplicationId pulumi.StringPtrInput
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition ApplicationIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.ApplicationIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role               pulumi.StringPtrInput
	SecurityGatewaysId pulumi.StringPtrInput
}

func (ApplicationIamMemberState) ElementType added in v8.19.0

func (ApplicationIamMemberState) ElementType() reflect.Type

type ApplicationIamPolicy added in v8.19.0

type ApplicationIamPolicy struct {
	pulumi.CustomResourceState

	ApplicationId pulumi.StringOutput `pulumi:"applicationId"`
	// (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"`
	SecurityGatewaysId pulumi.StringOutput `pulumi:"securityGatewaysId"`
}

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

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp Application Three different resources help you manage your IAM policy for BeyondCorp Application. Each of these resources serves a different use case:

* `beyondcorp.ApplicationIamPolicy`: Authoritative. Sets the IAM policy for the application and replaces any existing policy already attached. * `beyondcorp.ApplicationIamBinding`: 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 application are preserved. * `beyondcorp.ApplicationIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the application are preserved.

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

* `beyondcorp.ApplicationIamPolicy`: Retrieves the IAM policy for the application

> **Note:** `beyondcorp.ApplicationIamPolicy` **cannot** be used in conjunction with `beyondcorp.ApplicationIamBinding` and `beyondcorp.ApplicationIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.ApplicationIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewApplicationIamPolicy(ctx, "policy", &beyondcorp.ApplicationIamPolicyArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			PolicyData:         pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamBinding(ctx, "binding", &beyondcorp.ApplicationIamBindingArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.ApplicationIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.ApplicationIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewApplicationIamMember(ctx, "member", &beyondcorp.ApplicationIamMemberArgs{
			Project:            pulumi.Any(example.Project),
			SecurityGatewaysId: pulumi.Any(example.SecurityGatewaysId),
			ApplicationId:      pulumi.Any(example.ApplicationId),
			Role:               pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:             pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.ApplicationIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}}

* {{project}}/{{security_gateways_id}}/{{application_id}}

* {{security_gateways_id}}/{{application_id}}

* {{application_id}}

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

BeyondCorp application IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/applicationIamPolicy:ApplicationIamPolicy editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamPolicy:ApplicationIamPolicy editor "projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/applicationIamPolicy:ApplicationIamPolicy editor projects/{{project}}/locations/global/securityGateways/{{security_gateways_id}}/applications/{{application_id}} ```

-> **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 GetApplicationIamPolicy added in v8.19.0

func GetApplicationIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ApplicationIamPolicyState, opts ...pulumi.ResourceOption) (*ApplicationIamPolicy, error)

GetApplicationIamPolicy gets an existing ApplicationIamPolicy 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 NewApplicationIamPolicy added in v8.19.0

func NewApplicationIamPolicy(ctx *pulumi.Context,
	name string, args *ApplicationIamPolicyArgs, opts ...pulumi.ResourceOption) (*ApplicationIamPolicy, error)

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

func (*ApplicationIamPolicy) ElementType added in v8.19.0

func (*ApplicationIamPolicy) ElementType() reflect.Type

func (*ApplicationIamPolicy) ToApplicationIamPolicyOutput added in v8.19.0

func (i *ApplicationIamPolicy) ToApplicationIamPolicyOutput() ApplicationIamPolicyOutput

func (*ApplicationIamPolicy) ToApplicationIamPolicyOutputWithContext added in v8.19.0

func (i *ApplicationIamPolicy) ToApplicationIamPolicyOutputWithContext(ctx context.Context) ApplicationIamPolicyOutput

type ApplicationIamPolicyArgs added in v8.19.0

type ApplicationIamPolicyArgs struct {
	ApplicationId 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
	SecurityGatewaysId pulumi.StringInput
}

The set of arguments for constructing a ApplicationIamPolicy resource.

func (ApplicationIamPolicyArgs) ElementType added in v8.19.0

func (ApplicationIamPolicyArgs) ElementType() reflect.Type

type ApplicationIamPolicyArray added in v8.19.0

type ApplicationIamPolicyArray []ApplicationIamPolicyInput

func (ApplicationIamPolicyArray) ElementType added in v8.19.0

func (ApplicationIamPolicyArray) ElementType() reflect.Type

func (ApplicationIamPolicyArray) ToApplicationIamPolicyArrayOutput added in v8.19.0

func (i ApplicationIamPolicyArray) ToApplicationIamPolicyArrayOutput() ApplicationIamPolicyArrayOutput

func (ApplicationIamPolicyArray) ToApplicationIamPolicyArrayOutputWithContext added in v8.19.0

func (i ApplicationIamPolicyArray) ToApplicationIamPolicyArrayOutputWithContext(ctx context.Context) ApplicationIamPolicyArrayOutput

type ApplicationIamPolicyArrayInput added in v8.19.0

type ApplicationIamPolicyArrayInput interface {
	pulumi.Input

	ToApplicationIamPolicyArrayOutput() ApplicationIamPolicyArrayOutput
	ToApplicationIamPolicyArrayOutputWithContext(context.Context) ApplicationIamPolicyArrayOutput
}

ApplicationIamPolicyArrayInput is an input type that accepts ApplicationIamPolicyArray and ApplicationIamPolicyArrayOutput values. You can construct a concrete instance of `ApplicationIamPolicyArrayInput` via:

ApplicationIamPolicyArray{ ApplicationIamPolicyArgs{...} }

type ApplicationIamPolicyArrayOutput added in v8.19.0

type ApplicationIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (ApplicationIamPolicyArrayOutput) ElementType added in v8.19.0

func (ApplicationIamPolicyArrayOutput) Index added in v8.19.0

func (ApplicationIamPolicyArrayOutput) ToApplicationIamPolicyArrayOutput added in v8.19.0

func (o ApplicationIamPolicyArrayOutput) ToApplicationIamPolicyArrayOutput() ApplicationIamPolicyArrayOutput

func (ApplicationIamPolicyArrayOutput) ToApplicationIamPolicyArrayOutputWithContext added in v8.19.0

func (o ApplicationIamPolicyArrayOutput) ToApplicationIamPolicyArrayOutputWithContext(ctx context.Context) ApplicationIamPolicyArrayOutput

type ApplicationIamPolicyInput added in v8.19.0

type ApplicationIamPolicyInput interface {
	pulumi.Input

	ToApplicationIamPolicyOutput() ApplicationIamPolicyOutput
	ToApplicationIamPolicyOutputWithContext(ctx context.Context) ApplicationIamPolicyOutput
}

type ApplicationIamPolicyMap added in v8.19.0

type ApplicationIamPolicyMap map[string]ApplicationIamPolicyInput

func (ApplicationIamPolicyMap) ElementType added in v8.19.0

func (ApplicationIamPolicyMap) ElementType() reflect.Type

func (ApplicationIamPolicyMap) ToApplicationIamPolicyMapOutput added in v8.19.0

func (i ApplicationIamPolicyMap) ToApplicationIamPolicyMapOutput() ApplicationIamPolicyMapOutput

func (ApplicationIamPolicyMap) ToApplicationIamPolicyMapOutputWithContext added in v8.19.0

func (i ApplicationIamPolicyMap) ToApplicationIamPolicyMapOutputWithContext(ctx context.Context) ApplicationIamPolicyMapOutput

type ApplicationIamPolicyMapInput added in v8.19.0

type ApplicationIamPolicyMapInput interface {
	pulumi.Input

	ToApplicationIamPolicyMapOutput() ApplicationIamPolicyMapOutput
	ToApplicationIamPolicyMapOutputWithContext(context.Context) ApplicationIamPolicyMapOutput
}

ApplicationIamPolicyMapInput is an input type that accepts ApplicationIamPolicyMap and ApplicationIamPolicyMapOutput values. You can construct a concrete instance of `ApplicationIamPolicyMapInput` via:

ApplicationIamPolicyMap{ "key": ApplicationIamPolicyArgs{...} }

type ApplicationIamPolicyMapOutput added in v8.19.0

type ApplicationIamPolicyMapOutput struct{ *pulumi.OutputState }

func (ApplicationIamPolicyMapOutput) ElementType added in v8.19.0

func (ApplicationIamPolicyMapOutput) MapIndex added in v8.19.0

func (ApplicationIamPolicyMapOutput) ToApplicationIamPolicyMapOutput added in v8.19.0

func (o ApplicationIamPolicyMapOutput) ToApplicationIamPolicyMapOutput() ApplicationIamPolicyMapOutput

func (ApplicationIamPolicyMapOutput) ToApplicationIamPolicyMapOutputWithContext added in v8.19.0

func (o ApplicationIamPolicyMapOutput) ToApplicationIamPolicyMapOutputWithContext(ctx context.Context) ApplicationIamPolicyMapOutput

type ApplicationIamPolicyOutput added in v8.19.0

type ApplicationIamPolicyOutput struct{ *pulumi.OutputState }

func (ApplicationIamPolicyOutput) ApplicationId added in v8.19.0

func (ApplicationIamPolicyOutput) ElementType added in v8.19.0

func (ApplicationIamPolicyOutput) ElementType() reflect.Type

func (ApplicationIamPolicyOutput) Etag added in v8.19.0

(Computed) The etag of the IAM policy.

func (ApplicationIamPolicyOutput) PolicyData added in v8.19.0

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

func (ApplicationIamPolicyOutput) Project added in v8.19.0

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

func (ApplicationIamPolicyOutput) SecurityGatewaysId added in v8.19.0

func (o ApplicationIamPolicyOutput) SecurityGatewaysId() pulumi.StringOutput

func (ApplicationIamPolicyOutput) ToApplicationIamPolicyOutput added in v8.19.0

func (o ApplicationIamPolicyOutput) ToApplicationIamPolicyOutput() ApplicationIamPolicyOutput

func (ApplicationIamPolicyOutput) ToApplicationIamPolicyOutputWithContext added in v8.19.0

func (o ApplicationIamPolicyOutput) ToApplicationIamPolicyOutputWithContext(ctx context.Context) ApplicationIamPolicyOutput

type ApplicationIamPolicyState added in v8.19.0

type ApplicationIamPolicyState struct {
	ApplicationId 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
	SecurityGatewaysId pulumi.StringPtrInput
}

func (ApplicationIamPolicyState) ElementType added in v8.19.0

func (ApplicationIamPolicyState) ElementType() reflect.Type

type ApplicationInput added in v8.19.0

type ApplicationInput interface {
	pulumi.Input

	ToApplicationOutput() ApplicationOutput
	ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput
}

type ApplicationMap added in v8.19.0

type ApplicationMap map[string]ApplicationInput

func (ApplicationMap) ElementType added in v8.19.0

func (ApplicationMap) ElementType() reflect.Type

func (ApplicationMap) ToApplicationMapOutput added in v8.19.0

func (i ApplicationMap) ToApplicationMapOutput() ApplicationMapOutput

func (ApplicationMap) ToApplicationMapOutputWithContext added in v8.19.0

func (i ApplicationMap) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput

type ApplicationMapInput added in v8.19.0

type ApplicationMapInput interface {
	pulumi.Input

	ToApplicationMapOutput() ApplicationMapOutput
	ToApplicationMapOutputWithContext(context.Context) ApplicationMapOutput
}

ApplicationMapInput is an input type that accepts ApplicationMap and ApplicationMapOutput values. You can construct a concrete instance of `ApplicationMapInput` via:

ApplicationMap{ "key": ApplicationArgs{...} }

type ApplicationMapOutput added in v8.19.0

type ApplicationMapOutput struct{ *pulumi.OutputState }

func (ApplicationMapOutput) ElementType added in v8.19.0

func (ApplicationMapOutput) ElementType() reflect.Type

func (ApplicationMapOutput) MapIndex added in v8.19.0

func (ApplicationMapOutput) ToApplicationMapOutput added in v8.19.0

func (o ApplicationMapOutput) ToApplicationMapOutput() ApplicationMapOutput

func (ApplicationMapOutput) ToApplicationMapOutputWithContext added in v8.19.0

func (o ApplicationMapOutput) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput

type ApplicationOutput added in v8.19.0

type ApplicationOutput struct{ *pulumi.OutputState }

func (ApplicationOutput) ApplicationId added in v8.19.0

func (o ApplicationOutput) ApplicationId() pulumi.StringOutput

Optional. User-settable Application resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or letter.

func (ApplicationOutput) CreateTime added in v8.19.0

func (o ApplicationOutput) CreateTime() pulumi.StringOutput

Output only. Timestamp when the resource was created.

func (ApplicationOutput) DisplayName added in v8.19.0

func (o ApplicationOutput) DisplayName() pulumi.StringPtrOutput

Optional. An arbitrary user-provided name for the Application resource. Cannot exceed 64 characters.

func (ApplicationOutput) ElementType added in v8.19.0

func (ApplicationOutput) ElementType() reflect.Type

func (ApplicationOutput) EndpointMatchers added in v8.19.0

Required. Endpoint matchers associated with an application. A combination of hostname and ports as endpoint matcher is used to match the application. Match conditions for OR logic. An array of match conditions to allow for multiple matching criteria. The rule is considered a match if one the conditions are met. The conditions can be one of the following combination (Hostname), (Hostname & Ports) EXAMPLES: Hostname - ("*.abc.com"), ("xyz.abc.com") Hostname and Ports - ("abc.com" and "22"), ("abc.com" and "22,33") etc Structure is documented below.

func (ApplicationOutput) Name added in v8.19.0

Identifier. Name of the resource.

func (ApplicationOutput) Project added in v8.19.0

func (ApplicationOutput) SecurityGatewaysId added in v8.19.0

func (o ApplicationOutput) SecurityGatewaysId() pulumi.StringOutput

Part of `parent`. See documentation of `projectsId`.

func (ApplicationOutput) ToApplicationOutput added in v8.19.0

func (o ApplicationOutput) ToApplicationOutput() ApplicationOutput

func (ApplicationOutput) ToApplicationOutputWithContext added in v8.19.0

func (o ApplicationOutput) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput

func (ApplicationOutput) UpdateTime added in v8.19.0

func (o ApplicationOutput) UpdateTime() pulumi.StringOutput

Output only. Timestamp when the resource was last modified.

type ApplicationState added in v8.19.0

type ApplicationState struct {
	// Optional. User-settable Application resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	ApplicationId pulumi.StringPtrInput
	// Output only. Timestamp when the resource was created.
	CreateTime pulumi.StringPtrInput
	// Optional. An arbitrary user-provided name for the Application resource. Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrInput
	// Required. Endpoint matchers associated with an application.
	// A combination of hostname and ports as endpoint matcher is used to match
	// the application.
	// Match conditions for OR logic.
	// An array of match conditions to allow for multiple matching criteria.
	// The rule is considered a match if one the conditions are met.
	// The conditions can be one of the following combination
	// (Hostname), (Hostname & Ports)
	// EXAMPLES:
	// Hostname - ("*.abc.com"), ("xyz.abc.com")
	// Hostname and Ports - ("abc.com" and "22"), ("abc.com" and "22,33") etc
	// Structure is documented below.
	EndpointMatchers ApplicationEndpointMatcherArrayInput
	// Identifier. Name of the resource.
	Name    pulumi.StringPtrInput
	Project pulumi.StringPtrInput
	// Part of `parent`. See documentation of `projectsId`.
	SecurityGatewaysId pulumi.StringPtrInput
	// Output only. Timestamp when the resource was last modified.
	UpdateTime pulumi.StringPtrInput
}

func (ApplicationState) ElementType added in v8.19.0

func (ApplicationState) ElementType() reflect.Type

type GetAppConnectionApplicationEndpoint

type GetAppConnectionApplicationEndpoint struct {
	// Hostname or IP address of the remote application endpoint.
	Host string `pulumi:"host"`
	// Port of the remote application endpoint.
	Port int `pulumi:"port"`
}

type GetAppConnectionApplicationEndpointArgs

type GetAppConnectionApplicationEndpointArgs struct {
	// Hostname or IP address of the remote application endpoint.
	Host pulumi.StringInput `pulumi:"host"`
	// Port of the remote application endpoint.
	Port pulumi.IntInput `pulumi:"port"`
}

func (GetAppConnectionApplicationEndpointArgs) ElementType

func (GetAppConnectionApplicationEndpointArgs) ToGetAppConnectionApplicationEndpointOutput

func (i GetAppConnectionApplicationEndpointArgs) ToGetAppConnectionApplicationEndpointOutput() GetAppConnectionApplicationEndpointOutput

func (GetAppConnectionApplicationEndpointArgs) ToGetAppConnectionApplicationEndpointOutputWithContext

func (i GetAppConnectionApplicationEndpointArgs) ToGetAppConnectionApplicationEndpointOutputWithContext(ctx context.Context) GetAppConnectionApplicationEndpointOutput

type GetAppConnectionApplicationEndpointArray

type GetAppConnectionApplicationEndpointArray []GetAppConnectionApplicationEndpointInput

func (GetAppConnectionApplicationEndpointArray) ElementType

func (GetAppConnectionApplicationEndpointArray) ToGetAppConnectionApplicationEndpointArrayOutput

func (i GetAppConnectionApplicationEndpointArray) ToGetAppConnectionApplicationEndpointArrayOutput() GetAppConnectionApplicationEndpointArrayOutput

func (GetAppConnectionApplicationEndpointArray) ToGetAppConnectionApplicationEndpointArrayOutputWithContext

func (i GetAppConnectionApplicationEndpointArray) ToGetAppConnectionApplicationEndpointArrayOutputWithContext(ctx context.Context) GetAppConnectionApplicationEndpointArrayOutput

type GetAppConnectionApplicationEndpointArrayInput

type GetAppConnectionApplicationEndpointArrayInput interface {
	pulumi.Input

	ToGetAppConnectionApplicationEndpointArrayOutput() GetAppConnectionApplicationEndpointArrayOutput
	ToGetAppConnectionApplicationEndpointArrayOutputWithContext(context.Context) GetAppConnectionApplicationEndpointArrayOutput
}

GetAppConnectionApplicationEndpointArrayInput is an input type that accepts GetAppConnectionApplicationEndpointArray and GetAppConnectionApplicationEndpointArrayOutput values. You can construct a concrete instance of `GetAppConnectionApplicationEndpointArrayInput` via:

GetAppConnectionApplicationEndpointArray{ GetAppConnectionApplicationEndpointArgs{...} }

type GetAppConnectionApplicationEndpointArrayOutput

type GetAppConnectionApplicationEndpointArrayOutput struct{ *pulumi.OutputState }

func (GetAppConnectionApplicationEndpointArrayOutput) ElementType

func (GetAppConnectionApplicationEndpointArrayOutput) Index

func (GetAppConnectionApplicationEndpointArrayOutput) ToGetAppConnectionApplicationEndpointArrayOutput

func (o GetAppConnectionApplicationEndpointArrayOutput) ToGetAppConnectionApplicationEndpointArrayOutput() GetAppConnectionApplicationEndpointArrayOutput

func (GetAppConnectionApplicationEndpointArrayOutput) ToGetAppConnectionApplicationEndpointArrayOutputWithContext

func (o GetAppConnectionApplicationEndpointArrayOutput) ToGetAppConnectionApplicationEndpointArrayOutputWithContext(ctx context.Context) GetAppConnectionApplicationEndpointArrayOutput

type GetAppConnectionApplicationEndpointInput

type GetAppConnectionApplicationEndpointInput interface {
	pulumi.Input

	ToGetAppConnectionApplicationEndpointOutput() GetAppConnectionApplicationEndpointOutput
	ToGetAppConnectionApplicationEndpointOutputWithContext(context.Context) GetAppConnectionApplicationEndpointOutput
}

GetAppConnectionApplicationEndpointInput is an input type that accepts GetAppConnectionApplicationEndpointArgs and GetAppConnectionApplicationEndpointOutput values. You can construct a concrete instance of `GetAppConnectionApplicationEndpointInput` via:

GetAppConnectionApplicationEndpointArgs{...}

type GetAppConnectionApplicationEndpointOutput

type GetAppConnectionApplicationEndpointOutput struct{ *pulumi.OutputState }

func (GetAppConnectionApplicationEndpointOutput) ElementType

func (GetAppConnectionApplicationEndpointOutput) Host

Hostname or IP address of the remote application endpoint.

func (GetAppConnectionApplicationEndpointOutput) Port

Port of the remote application endpoint.

func (GetAppConnectionApplicationEndpointOutput) ToGetAppConnectionApplicationEndpointOutput

func (o GetAppConnectionApplicationEndpointOutput) ToGetAppConnectionApplicationEndpointOutput() GetAppConnectionApplicationEndpointOutput

func (GetAppConnectionApplicationEndpointOutput) ToGetAppConnectionApplicationEndpointOutputWithContext

func (o GetAppConnectionApplicationEndpointOutput) ToGetAppConnectionApplicationEndpointOutputWithContext(ctx context.Context) GetAppConnectionApplicationEndpointOutput

type GetAppConnectionGateway

type GetAppConnectionGateway struct {
	// AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.
	AppGateway string `pulumi:"appGateway"`
	// Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.
	IngressPort int `pulumi:"ingressPort"`
	// The type of hosting used by the gateway. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1
	// for a list of possible values.
	Type string `pulumi:"type"`
	// Server-defined URI for this resource.
	Uri string `pulumi:"uri"`
}

type GetAppConnectionGatewayArgs

type GetAppConnectionGatewayArgs struct {
	// AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.
	AppGateway pulumi.StringInput `pulumi:"appGateway"`
	// Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.
	IngressPort pulumi.IntInput `pulumi:"ingressPort"`
	// The type of hosting used by the gateway. Refer to
	// https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1
	// for a list of possible values.
	Type pulumi.StringInput `pulumi:"type"`
	// Server-defined URI for this resource.
	Uri pulumi.StringInput `pulumi:"uri"`
}

func (GetAppConnectionGatewayArgs) ElementType

func (GetAppConnectionGatewayArgs) ToGetAppConnectionGatewayOutput

func (i GetAppConnectionGatewayArgs) ToGetAppConnectionGatewayOutput() GetAppConnectionGatewayOutput

func (GetAppConnectionGatewayArgs) ToGetAppConnectionGatewayOutputWithContext

func (i GetAppConnectionGatewayArgs) ToGetAppConnectionGatewayOutputWithContext(ctx context.Context) GetAppConnectionGatewayOutput

type GetAppConnectionGatewayArray

type GetAppConnectionGatewayArray []GetAppConnectionGatewayInput

func (GetAppConnectionGatewayArray) ElementType

func (GetAppConnectionGatewayArray) ToGetAppConnectionGatewayArrayOutput

func (i GetAppConnectionGatewayArray) ToGetAppConnectionGatewayArrayOutput() GetAppConnectionGatewayArrayOutput

func (GetAppConnectionGatewayArray) ToGetAppConnectionGatewayArrayOutputWithContext

func (i GetAppConnectionGatewayArray) ToGetAppConnectionGatewayArrayOutputWithContext(ctx context.Context) GetAppConnectionGatewayArrayOutput

type GetAppConnectionGatewayArrayInput

type GetAppConnectionGatewayArrayInput interface {
	pulumi.Input

	ToGetAppConnectionGatewayArrayOutput() GetAppConnectionGatewayArrayOutput
	ToGetAppConnectionGatewayArrayOutputWithContext(context.Context) GetAppConnectionGatewayArrayOutput
}

GetAppConnectionGatewayArrayInput is an input type that accepts GetAppConnectionGatewayArray and GetAppConnectionGatewayArrayOutput values. You can construct a concrete instance of `GetAppConnectionGatewayArrayInput` via:

GetAppConnectionGatewayArray{ GetAppConnectionGatewayArgs{...} }

type GetAppConnectionGatewayArrayOutput

type GetAppConnectionGatewayArrayOutput struct{ *pulumi.OutputState }

func (GetAppConnectionGatewayArrayOutput) ElementType

func (GetAppConnectionGatewayArrayOutput) Index

func (GetAppConnectionGatewayArrayOutput) ToGetAppConnectionGatewayArrayOutput

func (o GetAppConnectionGatewayArrayOutput) ToGetAppConnectionGatewayArrayOutput() GetAppConnectionGatewayArrayOutput

func (GetAppConnectionGatewayArrayOutput) ToGetAppConnectionGatewayArrayOutputWithContext

func (o GetAppConnectionGatewayArrayOutput) ToGetAppConnectionGatewayArrayOutputWithContext(ctx context.Context) GetAppConnectionGatewayArrayOutput

type GetAppConnectionGatewayInput

type GetAppConnectionGatewayInput interface {
	pulumi.Input

	ToGetAppConnectionGatewayOutput() GetAppConnectionGatewayOutput
	ToGetAppConnectionGatewayOutputWithContext(context.Context) GetAppConnectionGatewayOutput
}

GetAppConnectionGatewayInput is an input type that accepts GetAppConnectionGatewayArgs and GetAppConnectionGatewayOutput values. You can construct a concrete instance of `GetAppConnectionGatewayInput` via:

GetAppConnectionGatewayArgs{...}

type GetAppConnectionGatewayOutput

type GetAppConnectionGatewayOutput struct{ *pulumi.OutputState }

func (GetAppConnectionGatewayOutput) AppGateway

AppGateway name in following format: projects/{project_id}/locations/{locationId}/appgateways/{gateway_id}.

func (GetAppConnectionGatewayOutput) ElementType

func (GetAppConnectionGatewayOutput) IngressPort

Ingress port reserved on the gateways for this AppConnection, if not specified or zero, the default port is 19443.

func (GetAppConnectionGatewayOutput) ToGetAppConnectionGatewayOutput

func (o GetAppConnectionGatewayOutput) ToGetAppConnectionGatewayOutput() GetAppConnectionGatewayOutput

func (GetAppConnectionGatewayOutput) ToGetAppConnectionGatewayOutputWithContext

func (o GetAppConnectionGatewayOutput) ToGetAppConnectionGatewayOutputWithContext(ctx context.Context) GetAppConnectionGatewayOutput

func (GetAppConnectionGatewayOutput) Type

The type of hosting used by the gateway. Refer to https://cloud.google.com/beyondcorp/docs/reference/rest/v1/projects.locations.appConnections#Type_1 for a list of possible values.

func (GetAppConnectionGatewayOutput) Uri

Server-defined URI for this resource.

type GetAppConnectorPrincipalInfo

type GetAppConnectorPrincipalInfo struct {
	// ServiceAccount represents a GCP service account.
	ServiceAccounts []GetAppConnectorPrincipalInfoServiceAccount `pulumi:"serviceAccounts"`
}

type GetAppConnectorPrincipalInfoArgs

type GetAppConnectorPrincipalInfoArgs struct {
	// ServiceAccount represents a GCP service account.
	ServiceAccounts GetAppConnectorPrincipalInfoServiceAccountArrayInput `pulumi:"serviceAccounts"`
}

func (GetAppConnectorPrincipalInfoArgs) ElementType

func (GetAppConnectorPrincipalInfoArgs) ToGetAppConnectorPrincipalInfoOutput

func (i GetAppConnectorPrincipalInfoArgs) ToGetAppConnectorPrincipalInfoOutput() GetAppConnectorPrincipalInfoOutput

func (GetAppConnectorPrincipalInfoArgs) ToGetAppConnectorPrincipalInfoOutputWithContext

func (i GetAppConnectorPrincipalInfoArgs) ToGetAppConnectorPrincipalInfoOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoOutput

type GetAppConnectorPrincipalInfoArray

type GetAppConnectorPrincipalInfoArray []GetAppConnectorPrincipalInfoInput

func (GetAppConnectorPrincipalInfoArray) ElementType

func (GetAppConnectorPrincipalInfoArray) ToGetAppConnectorPrincipalInfoArrayOutput

func (i GetAppConnectorPrincipalInfoArray) ToGetAppConnectorPrincipalInfoArrayOutput() GetAppConnectorPrincipalInfoArrayOutput

func (GetAppConnectorPrincipalInfoArray) ToGetAppConnectorPrincipalInfoArrayOutputWithContext

func (i GetAppConnectorPrincipalInfoArray) ToGetAppConnectorPrincipalInfoArrayOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoArrayOutput

type GetAppConnectorPrincipalInfoArrayInput

type GetAppConnectorPrincipalInfoArrayInput interface {
	pulumi.Input

	ToGetAppConnectorPrincipalInfoArrayOutput() GetAppConnectorPrincipalInfoArrayOutput
	ToGetAppConnectorPrincipalInfoArrayOutputWithContext(context.Context) GetAppConnectorPrincipalInfoArrayOutput
}

GetAppConnectorPrincipalInfoArrayInput is an input type that accepts GetAppConnectorPrincipalInfoArray and GetAppConnectorPrincipalInfoArrayOutput values. You can construct a concrete instance of `GetAppConnectorPrincipalInfoArrayInput` via:

GetAppConnectorPrincipalInfoArray{ GetAppConnectorPrincipalInfoArgs{...} }

type GetAppConnectorPrincipalInfoArrayOutput

type GetAppConnectorPrincipalInfoArrayOutput struct{ *pulumi.OutputState }

func (GetAppConnectorPrincipalInfoArrayOutput) ElementType

func (GetAppConnectorPrincipalInfoArrayOutput) Index

func (GetAppConnectorPrincipalInfoArrayOutput) ToGetAppConnectorPrincipalInfoArrayOutput

func (o GetAppConnectorPrincipalInfoArrayOutput) ToGetAppConnectorPrincipalInfoArrayOutput() GetAppConnectorPrincipalInfoArrayOutput

func (GetAppConnectorPrincipalInfoArrayOutput) ToGetAppConnectorPrincipalInfoArrayOutputWithContext

func (o GetAppConnectorPrincipalInfoArrayOutput) ToGetAppConnectorPrincipalInfoArrayOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoArrayOutput

type GetAppConnectorPrincipalInfoInput

type GetAppConnectorPrincipalInfoInput interface {
	pulumi.Input

	ToGetAppConnectorPrincipalInfoOutput() GetAppConnectorPrincipalInfoOutput
	ToGetAppConnectorPrincipalInfoOutputWithContext(context.Context) GetAppConnectorPrincipalInfoOutput
}

GetAppConnectorPrincipalInfoInput is an input type that accepts GetAppConnectorPrincipalInfoArgs and GetAppConnectorPrincipalInfoOutput values. You can construct a concrete instance of `GetAppConnectorPrincipalInfoInput` via:

GetAppConnectorPrincipalInfoArgs{...}

type GetAppConnectorPrincipalInfoOutput

type GetAppConnectorPrincipalInfoOutput struct{ *pulumi.OutputState }

func (GetAppConnectorPrincipalInfoOutput) ElementType

func (GetAppConnectorPrincipalInfoOutput) ServiceAccounts

ServiceAccount represents a GCP service account.

func (GetAppConnectorPrincipalInfoOutput) ToGetAppConnectorPrincipalInfoOutput

func (o GetAppConnectorPrincipalInfoOutput) ToGetAppConnectorPrincipalInfoOutput() GetAppConnectorPrincipalInfoOutput

func (GetAppConnectorPrincipalInfoOutput) ToGetAppConnectorPrincipalInfoOutputWithContext

func (o GetAppConnectorPrincipalInfoOutput) ToGetAppConnectorPrincipalInfoOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoOutput

type GetAppConnectorPrincipalInfoServiceAccount

type GetAppConnectorPrincipalInfoServiceAccount struct {
	// Email address of the service account.
	Email string `pulumi:"email"`
}

type GetAppConnectorPrincipalInfoServiceAccountArgs

type GetAppConnectorPrincipalInfoServiceAccountArgs struct {
	// Email address of the service account.
	Email pulumi.StringInput `pulumi:"email"`
}

func (GetAppConnectorPrincipalInfoServiceAccountArgs) ElementType

func (GetAppConnectorPrincipalInfoServiceAccountArgs) ToGetAppConnectorPrincipalInfoServiceAccountOutput

func (i GetAppConnectorPrincipalInfoServiceAccountArgs) ToGetAppConnectorPrincipalInfoServiceAccountOutput() GetAppConnectorPrincipalInfoServiceAccountOutput

func (GetAppConnectorPrincipalInfoServiceAccountArgs) ToGetAppConnectorPrincipalInfoServiceAccountOutputWithContext

func (i GetAppConnectorPrincipalInfoServiceAccountArgs) ToGetAppConnectorPrincipalInfoServiceAccountOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoServiceAccountOutput

type GetAppConnectorPrincipalInfoServiceAccountArray

type GetAppConnectorPrincipalInfoServiceAccountArray []GetAppConnectorPrincipalInfoServiceAccountInput

func (GetAppConnectorPrincipalInfoServiceAccountArray) ElementType

func (GetAppConnectorPrincipalInfoServiceAccountArray) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutput

func (i GetAppConnectorPrincipalInfoServiceAccountArray) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutput() GetAppConnectorPrincipalInfoServiceAccountArrayOutput

func (GetAppConnectorPrincipalInfoServiceAccountArray) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutputWithContext

func (i GetAppConnectorPrincipalInfoServiceAccountArray) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoServiceAccountArrayOutput

type GetAppConnectorPrincipalInfoServiceAccountArrayInput

type GetAppConnectorPrincipalInfoServiceAccountArrayInput interface {
	pulumi.Input

	ToGetAppConnectorPrincipalInfoServiceAccountArrayOutput() GetAppConnectorPrincipalInfoServiceAccountArrayOutput
	ToGetAppConnectorPrincipalInfoServiceAccountArrayOutputWithContext(context.Context) GetAppConnectorPrincipalInfoServiceAccountArrayOutput
}

GetAppConnectorPrincipalInfoServiceAccountArrayInput is an input type that accepts GetAppConnectorPrincipalInfoServiceAccountArray and GetAppConnectorPrincipalInfoServiceAccountArrayOutput values. You can construct a concrete instance of `GetAppConnectorPrincipalInfoServiceAccountArrayInput` via:

GetAppConnectorPrincipalInfoServiceAccountArray{ GetAppConnectorPrincipalInfoServiceAccountArgs{...} }

type GetAppConnectorPrincipalInfoServiceAccountArrayOutput

type GetAppConnectorPrincipalInfoServiceAccountArrayOutput struct{ *pulumi.OutputState }

func (GetAppConnectorPrincipalInfoServiceAccountArrayOutput) ElementType

func (GetAppConnectorPrincipalInfoServiceAccountArrayOutput) Index

func (GetAppConnectorPrincipalInfoServiceAccountArrayOutput) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutput

func (GetAppConnectorPrincipalInfoServiceAccountArrayOutput) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutputWithContext

func (o GetAppConnectorPrincipalInfoServiceAccountArrayOutput) ToGetAppConnectorPrincipalInfoServiceAccountArrayOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoServiceAccountArrayOutput

type GetAppConnectorPrincipalInfoServiceAccountInput

type GetAppConnectorPrincipalInfoServiceAccountInput interface {
	pulumi.Input

	ToGetAppConnectorPrincipalInfoServiceAccountOutput() GetAppConnectorPrincipalInfoServiceAccountOutput
	ToGetAppConnectorPrincipalInfoServiceAccountOutputWithContext(context.Context) GetAppConnectorPrincipalInfoServiceAccountOutput
}

GetAppConnectorPrincipalInfoServiceAccountInput is an input type that accepts GetAppConnectorPrincipalInfoServiceAccountArgs and GetAppConnectorPrincipalInfoServiceAccountOutput values. You can construct a concrete instance of `GetAppConnectorPrincipalInfoServiceAccountInput` via:

GetAppConnectorPrincipalInfoServiceAccountArgs{...}

type GetAppConnectorPrincipalInfoServiceAccountOutput

type GetAppConnectorPrincipalInfoServiceAccountOutput struct{ *pulumi.OutputState }

func (GetAppConnectorPrincipalInfoServiceAccountOutput) ElementType

func (GetAppConnectorPrincipalInfoServiceAccountOutput) Email

Email address of the service account.

func (GetAppConnectorPrincipalInfoServiceAccountOutput) ToGetAppConnectorPrincipalInfoServiceAccountOutput

func (o GetAppConnectorPrincipalInfoServiceAccountOutput) ToGetAppConnectorPrincipalInfoServiceAccountOutput() GetAppConnectorPrincipalInfoServiceAccountOutput

func (GetAppConnectorPrincipalInfoServiceAccountOutput) ToGetAppConnectorPrincipalInfoServiceAccountOutputWithContext

func (o GetAppConnectorPrincipalInfoServiceAccountOutput) ToGetAppConnectorPrincipalInfoServiceAccountOutputWithContext(ctx context.Context) GetAppConnectorPrincipalInfoServiceAccountOutput

type GetAppGatewayAllocatedConnection

type GetAppGatewayAllocatedConnection struct {
	// The ingress port of an allocated connection.
	IngressPort int `pulumi:"ingressPort"`
	// The PSC uri of an allocated connection.
	PscUri string `pulumi:"pscUri"`
}

type GetAppGatewayAllocatedConnectionArgs

type GetAppGatewayAllocatedConnectionArgs struct {
	// The ingress port of an allocated connection.
	IngressPort pulumi.IntInput `pulumi:"ingressPort"`
	// The PSC uri of an allocated connection.
	PscUri pulumi.StringInput `pulumi:"pscUri"`
}

func (GetAppGatewayAllocatedConnectionArgs) ElementType

func (GetAppGatewayAllocatedConnectionArgs) ToGetAppGatewayAllocatedConnectionOutput

func (i GetAppGatewayAllocatedConnectionArgs) ToGetAppGatewayAllocatedConnectionOutput() GetAppGatewayAllocatedConnectionOutput

func (GetAppGatewayAllocatedConnectionArgs) ToGetAppGatewayAllocatedConnectionOutputWithContext

func (i GetAppGatewayAllocatedConnectionArgs) ToGetAppGatewayAllocatedConnectionOutputWithContext(ctx context.Context) GetAppGatewayAllocatedConnectionOutput

type GetAppGatewayAllocatedConnectionArray

type GetAppGatewayAllocatedConnectionArray []GetAppGatewayAllocatedConnectionInput

func (GetAppGatewayAllocatedConnectionArray) ElementType

func (GetAppGatewayAllocatedConnectionArray) ToGetAppGatewayAllocatedConnectionArrayOutput

func (i GetAppGatewayAllocatedConnectionArray) ToGetAppGatewayAllocatedConnectionArrayOutput() GetAppGatewayAllocatedConnectionArrayOutput

func (GetAppGatewayAllocatedConnectionArray) ToGetAppGatewayAllocatedConnectionArrayOutputWithContext

func (i GetAppGatewayAllocatedConnectionArray) ToGetAppGatewayAllocatedConnectionArrayOutputWithContext(ctx context.Context) GetAppGatewayAllocatedConnectionArrayOutput

type GetAppGatewayAllocatedConnectionArrayInput

type GetAppGatewayAllocatedConnectionArrayInput interface {
	pulumi.Input

	ToGetAppGatewayAllocatedConnectionArrayOutput() GetAppGatewayAllocatedConnectionArrayOutput
	ToGetAppGatewayAllocatedConnectionArrayOutputWithContext(context.Context) GetAppGatewayAllocatedConnectionArrayOutput
}

GetAppGatewayAllocatedConnectionArrayInput is an input type that accepts GetAppGatewayAllocatedConnectionArray and GetAppGatewayAllocatedConnectionArrayOutput values. You can construct a concrete instance of `GetAppGatewayAllocatedConnectionArrayInput` via:

GetAppGatewayAllocatedConnectionArray{ GetAppGatewayAllocatedConnectionArgs{...} }

type GetAppGatewayAllocatedConnectionArrayOutput

type GetAppGatewayAllocatedConnectionArrayOutput struct{ *pulumi.OutputState }

func (GetAppGatewayAllocatedConnectionArrayOutput) ElementType

func (GetAppGatewayAllocatedConnectionArrayOutput) Index

func (GetAppGatewayAllocatedConnectionArrayOutput) ToGetAppGatewayAllocatedConnectionArrayOutput

func (o GetAppGatewayAllocatedConnectionArrayOutput) ToGetAppGatewayAllocatedConnectionArrayOutput() GetAppGatewayAllocatedConnectionArrayOutput

func (GetAppGatewayAllocatedConnectionArrayOutput) ToGetAppGatewayAllocatedConnectionArrayOutputWithContext

func (o GetAppGatewayAllocatedConnectionArrayOutput) ToGetAppGatewayAllocatedConnectionArrayOutputWithContext(ctx context.Context) GetAppGatewayAllocatedConnectionArrayOutput

type GetAppGatewayAllocatedConnectionInput

type GetAppGatewayAllocatedConnectionInput interface {
	pulumi.Input

	ToGetAppGatewayAllocatedConnectionOutput() GetAppGatewayAllocatedConnectionOutput
	ToGetAppGatewayAllocatedConnectionOutputWithContext(context.Context) GetAppGatewayAllocatedConnectionOutput
}

GetAppGatewayAllocatedConnectionInput is an input type that accepts GetAppGatewayAllocatedConnectionArgs and GetAppGatewayAllocatedConnectionOutput values. You can construct a concrete instance of `GetAppGatewayAllocatedConnectionInput` via:

GetAppGatewayAllocatedConnectionArgs{...}

type GetAppGatewayAllocatedConnectionOutput

type GetAppGatewayAllocatedConnectionOutput struct{ *pulumi.OutputState }

func (GetAppGatewayAllocatedConnectionOutput) ElementType

func (GetAppGatewayAllocatedConnectionOutput) IngressPort

The ingress port of an allocated connection.

func (GetAppGatewayAllocatedConnectionOutput) PscUri

The PSC uri of an allocated connection.

func (GetAppGatewayAllocatedConnectionOutput) ToGetAppGatewayAllocatedConnectionOutput

func (o GetAppGatewayAllocatedConnectionOutput) ToGetAppGatewayAllocatedConnectionOutput() GetAppGatewayAllocatedConnectionOutput

func (GetAppGatewayAllocatedConnectionOutput) ToGetAppGatewayAllocatedConnectionOutputWithContext

func (o GetAppGatewayAllocatedConnectionOutput) ToGetAppGatewayAllocatedConnectionOutputWithContext(ctx context.Context) GetAppGatewayAllocatedConnectionOutput

type LookupAppConnectionArgs

type LookupAppConnectionArgs struct {
	// The name of the App Connection.
	//
	// ***
	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 getAppConnection.

type LookupAppConnectionOutputArgs

type LookupAppConnectionOutputArgs struct {
	// The name of the App Connection.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The region in which the resource belongs. If it
	// is not provided, the provider region is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getAppConnection.

func (LookupAppConnectionOutputArgs) ElementType

type LookupAppConnectionResult

type LookupAppConnectionResult struct {
	ApplicationEndpoints []GetAppConnectionApplicationEndpoint `pulumi:"applicationEndpoints"`
	Connectors           []string                              `pulumi:"connectors"`
	DisplayName          string                                `pulumi:"displayName"`
	EffectiveLabels      map[string]string                     `pulumi:"effectiveLabels"`
	Gateways             []GetAppConnectionGateway             `pulumi:"gateways"`
	// The provider-assigned unique ID for this managed resource.
	Id           string            `pulumi:"id"`
	Labels       map[string]string `pulumi:"labels"`
	Name         string            `pulumi:"name"`
	Project      *string           `pulumi:"project"`
	PulumiLabels map[string]string `pulumi:"pulumiLabels"`
	Region       *string           `pulumi:"region"`
	Type         string            `pulumi:"type"`
}

A collection of values returned by getAppConnection.

func LookupAppConnection

func LookupAppConnection(ctx *pulumi.Context, args *LookupAppConnectionArgs, opts ...pulumi.InvokeOption) (*LookupAppConnectionResult, error)

Get information about a Google BeyondCorp App Connection.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.LookupAppConnection(ctx, &beyondcorp.LookupAppConnectionArgs{
			Name: "my-beyondcorp-app-connection",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupAppConnectionResultOutput

type LookupAppConnectionResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAppConnection.

func (LookupAppConnectionResultOutput) ApplicationEndpoints

func (LookupAppConnectionResultOutput) Connectors

func (LookupAppConnectionResultOutput) DisplayName

func (LookupAppConnectionResultOutput) EffectiveLabels

func (LookupAppConnectionResultOutput) ElementType

func (LookupAppConnectionResultOutput) Gateways

func (LookupAppConnectionResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupAppConnectionResultOutput) Labels

func (LookupAppConnectionResultOutput) Name

func (LookupAppConnectionResultOutput) Project

func (LookupAppConnectionResultOutput) PulumiLabels

func (LookupAppConnectionResultOutput) Region

func (LookupAppConnectionResultOutput) ToLookupAppConnectionResultOutput

func (o LookupAppConnectionResultOutput) ToLookupAppConnectionResultOutput() LookupAppConnectionResultOutput

func (LookupAppConnectionResultOutput) ToLookupAppConnectionResultOutputWithContext

func (o LookupAppConnectionResultOutput) ToLookupAppConnectionResultOutputWithContext(ctx context.Context) LookupAppConnectionResultOutput

func (LookupAppConnectionResultOutput) Type

type LookupAppConnectorArgs

type LookupAppConnectorArgs struct {
	// The name of the App Connector.
	//
	// ***
	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 getAppConnector.

type LookupAppConnectorOutputArgs

type LookupAppConnectorOutputArgs struct {
	// The name of the App Connector.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The region in which the resource belongs. If it
	// is not provided, the provider region is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getAppConnector.

func (LookupAppConnectorOutputArgs) ElementType

type LookupAppConnectorResult

type LookupAppConnectorResult struct {
	DisplayName     string            `pulumi:"displayName"`
	EffectiveLabels map[string]string `pulumi:"effectiveLabels"`
	// The provider-assigned unique ID for this managed resource.
	Id             string                         `pulumi:"id"`
	Labels         map[string]string              `pulumi:"labels"`
	Name           string                         `pulumi:"name"`
	PrincipalInfos []GetAppConnectorPrincipalInfo `pulumi:"principalInfos"`
	Project        *string                        `pulumi:"project"`
	PulumiLabels   map[string]string              `pulumi:"pulumiLabels"`
	Region         *string                        `pulumi:"region"`
	State          string                         `pulumi:"state"`
}

A collection of values returned by getAppConnector.

func LookupAppConnector

func LookupAppConnector(ctx *pulumi.Context, args *LookupAppConnectorArgs, opts ...pulumi.InvokeOption) (*LookupAppConnectorResult, error)

Get information about a Google BeyondCorp App Connector.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.LookupAppConnector(ctx, &beyondcorp.LookupAppConnectorArgs{
			Name: "my-beyondcorp-app-connector",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupAppConnectorResultOutput

type LookupAppConnectorResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAppConnector.

func (LookupAppConnectorResultOutput) DisplayName

func (LookupAppConnectorResultOutput) EffectiveLabels

func (LookupAppConnectorResultOutput) ElementType

func (LookupAppConnectorResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupAppConnectorResultOutput) Labels

func (LookupAppConnectorResultOutput) Name

func (LookupAppConnectorResultOutput) PrincipalInfos

func (LookupAppConnectorResultOutput) Project

func (LookupAppConnectorResultOutput) PulumiLabels

func (LookupAppConnectorResultOutput) Region

func (LookupAppConnectorResultOutput) State

func (LookupAppConnectorResultOutput) ToLookupAppConnectorResultOutput

func (o LookupAppConnectorResultOutput) ToLookupAppConnectorResultOutput() LookupAppConnectorResultOutput

func (LookupAppConnectorResultOutput) ToLookupAppConnectorResultOutputWithContext

func (o LookupAppConnectorResultOutput) ToLookupAppConnectorResultOutputWithContext(ctx context.Context) LookupAppConnectorResultOutput

type LookupAppGatewayArgs

type LookupAppGatewayArgs struct {
	// The name of the App Gateway.
	//
	// ***
	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 getAppGateway.

type LookupAppGatewayOutputArgs

type LookupAppGatewayOutputArgs struct {
	// The name of the App Gateway.
	//
	// ***
	Name pulumi.StringInput `pulumi:"name"`
	// The project in which the resource belongs. If it
	// is not provided, the provider project is used.
	Project pulumi.StringPtrInput `pulumi:"project"`
	// The region in which the resource belongs. If it
	// is not provided, the provider region is used.
	Region pulumi.StringPtrInput `pulumi:"region"`
}

A collection of arguments for invoking getAppGateway.

func (LookupAppGatewayOutputArgs) ElementType

func (LookupAppGatewayOutputArgs) ElementType() reflect.Type

type LookupAppGatewayResult

type LookupAppGatewayResult struct {
	AllocatedConnections []GetAppGatewayAllocatedConnection `pulumi:"allocatedConnections"`
	DisplayName          string                             `pulumi:"displayName"`
	EffectiveLabels      map[string]string                  `pulumi:"effectiveLabels"`
	HostType             string                             `pulumi:"hostType"`
	// The provider-assigned unique ID for this managed resource.
	Id           string            `pulumi:"id"`
	Labels       map[string]string `pulumi:"labels"`
	Name         string            `pulumi:"name"`
	Project      *string           `pulumi:"project"`
	PulumiLabels map[string]string `pulumi:"pulumiLabels"`
	Region       *string           `pulumi:"region"`
	State        string            `pulumi:"state"`
	Type         string            `pulumi:"type"`
	Uri          string            `pulumi:"uri"`
}

A collection of values returned by getAppGateway.

func LookupAppGateway

func LookupAppGateway(ctx *pulumi.Context, args *LookupAppGatewayArgs, opts ...pulumi.InvokeOption) (*LookupAppGatewayResult, error)

Get information about a Google BeyondCorp App Gateway.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.LookupAppGateway(ctx, &beyondcorp.LookupAppGatewayArgs{
			Name: "my-beyondcorp-app-gateway",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupAppGatewayResultOutput

type LookupAppGatewayResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getAppGateway.

func (LookupAppGatewayResultOutput) AllocatedConnections

func (LookupAppGatewayResultOutput) DisplayName

func (LookupAppGatewayResultOutput) EffectiveLabels

func (LookupAppGatewayResultOutput) ElementType

func (LookupAppGatewayResultOutput) HostType

func (LookupAppGatewayResultOutput) Id

The provider-assigned unique ID for this managed resource.

func (LookupAppGatewayResultOutput) Labels

func (LookupAppGatewayResultOutput) Name

func (LookupAppGatewayResultOutput) Project

func (LookupAppGatewayResultOutput) PulumiLabels

func (LookupAppGatewayResultOutput) Region

func (LookupAppGatewayResultOutput) State

func (LookupAppGatewayResultOutput) ToLookupAppGatewayResultOutput

func (o LookupAppGatewayResultOutput) ToLookupAppGatewayResultOutput() LookupAppGatewayResultOutput

func (LookupAppGatewayResultOutput) ToLookupAppGatewayResultOutputWithContext

func (o LookupAppGatewayResultOutput) ToLookupAppGatewayResultOutputWithContext(ctx context.Context) LookupAppGatewayResultOutput

func (LookupAppGatewayResultOutput) Type

func (LookupAppGatewayResultOutput) Uri

type LookupApplicationIamPolicyArgs added in v8.19.0

type LookupApplicationIamPolicyArgs struct {
	ApplicationId string `pulumi:"applicationId"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project            *string `pulumi:"project"`
	SecurityGatewaysId string  `pulumi:"securityGatewaysId"`
}

A collection of arguments for invoking getApplicationIamPolicy.

type LookupApplicationIamPolicyOutputArgs added in v8.19.0

type LookupApplicationIamPolicyOutputArgs struct {
	ApplicationId pulumi.StringInput `pulumi:"applicationId"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project            pulumi.StringPtrInput `pulumi:"project"`
	SecurityGatewaysId pulumi.StringInput    `pulumi:"securityGatewaysId"`
}

A collection of arguments for invoking getApplicationIamPolicy.

func (LookupApplicationIamPolicyOutputArgs) ElementType added in v8.19.0

type LookupApplicationIamPolicyResult added in v8.19.0

type LookupApplicationIamPolicyResult struct {
	ApplicationId string `pulumi:"applicationId"`
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// (Required only by `beyondcorp.ApplicationIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData         string `pulumi:"policyData"`
	Project            string `pulumi:"project"`
	SecurityGatewaysId string `pulumi:"securityGatewaysId"`
}

A collection of values returned by getApplicationIamPolicy.

func LookupApplicationIamPolicy added in v8.19.0

func LookupApplicationIamPolicy(ctx *pulumi.Context, args *LookupApplicationIamPolicyArgs, opts ...pulumi.InvokeOption) (*LookupApplicationIamPolicyResult, error)

Retrieves the current IAM policy data for application

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.LookupApplicationIamPolicy(ctx, &beyondcorp.LookupApplicationIamPolicyArgs{
			Project:            pulumi.StringRef(example.Project),
			SecurityGatewaysId: example.SecurityGatewaysId,
			ApplicationId:      example.ApplicationId,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupApplicationIamPolicyResultOutput added in v8.19.0

type LookupApplicationIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getApplicationIamPolicy.

func (LookupApplicationIamPolicyResultOutput) ApplicationId added in v8.19.0

func (LookupApplicationIamPolicyResultOutput) ElementType added in v8.19.0

func (LookupApplicationIamPolicyResultOutput) Etag added in v8.19.0

(Computed) The etag of the IAM policy.

func (LookupApplicationIamPolicyResultOutput) Id added in v8.19.0

The provider-assigned unique ID for this managed resource.

func (LookupApplicationIamPolicyResultOutput) PolicyData added in v8.19.0

(Required only by `beyondcorp.ApplicationIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupApplicationIamPolicyResultOutput) Project added in v8.19.0

func (LookupApplicationIamPolicyResultOutput) SecurityGatewaysId added in v8.19.0

func (LookupApplicationIamPolicyResultOutput) ToLookupApplicationIamPolicyResultOutput added in v8.19.0

func (o LookupApplicationIamPolicyResultOutput) ToLookupApplicationIamPolicyResultOutput() LookupApplicationIamPolicyResultOutput

func (LookupApplicationIamPolicyResultOutput) ToLookupApplicationIamPolicyResultOutputWithContext added in v8.19.0

func (o LookupApplicationIamPolicyResultOutput) ToLookupApplicationIamPolicyResultOutputWithContext(ctx context.Context) LookupApplicationIamPolicyResultOutput

type LookupSecurityGatewayIamPolicyArgs added in v8.18.0

type LookupSecurityGatewayIamPolicyArgs struct {
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location *string `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project           *string `pulumi:"project"`
	SecurityGatewayId string  `pulumi:"securityGatewayId"`
}

A collection of arguments for invoking getSecurityGatewayIamPolicy.

type LookupSecurityGatewayIamPolicyOutputArgs added in v8.18.0

type LookupSecurityGatewayIamPolicyOutputArgs struct {
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput `pulumi:"location"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project           pulumi.StringPtrInput `pulumi:"project"`
	SecurityGatewayId pulumi.StringInput    `pulumi:"securityGatewayId"`
}

A collection of arguments for invoking getSecurityGatewayIamPolicy.

func (LookupSecurityGatewayIamPolicyOutputArgs) ElementType added in v8.18.0

type LookupSecurityGatewayIamPolicyResult added in v8.18.0

type LookupSecurityGatewayIamPolicyResult struct {
	// (Computed) The etag of the IAM policy.
	Etag string `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id       string `pulumi:"id"`
	Location string `pulumi:"location"`
	// (Required only by `beyondcorp.SecurityGatewayIamPolicy`) The policy data generated by
	// a `organizations.getIAMPolicy` data source.
	PolicyData        string `pulumi:"policyData"`
	Project           string `pulumi:"project"`
	SecurityGatewayId string `pulumi:"securityGatewayId"`
}

A collection of values returned by getSecurityGatewayIamPolicy.

func LookupSecurityGatewayIamPolicy added in v8.18.0

Retrieves the current IAM policy data for securitygateway

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.LookupSecurityGatewayIamPolicy(ctx, &beyondcorp.LookupSecurityGatewayIamPolicyArgs{
			Project:           pulumi.StringRef(example.Project),
			Location:          pulumi.StringRef(example.Location),
			SecurityGatewayId: example.SecurityGatewayId,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupSecurityGatewayIamPolicyResultOutput added in v8.18.0

type LookupSecurityGatewayIamPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getSecurityGatewayIamPolicy.

func (LookupSecurityGatewayIamPolicyResultOutput) ElementType added in v8.18.0

func (LookupSecurityGatewayIamPolicyResultOutput) Etag added in v8.18.0

(Computed) The etag of the IAM policy.

func (LookupSecurityGatewayIamPolicyResultOutput) Id added in v8.18.0

The provider-assigned unique ID for this managed resource.

func (LookupSecurityGatewayIamPolicyResultOutput) Location added in v8.18.0

func (LookupSecurityGatewayIamPolicyResultOutput) PolicyData added in v8.18.0

(Required only by `beyondcorp.SecurityGatewayIamPolicy`) The policy data generated by a `organizations.getIAMPolicy` data source.

func (LookupSecurityGatewayIamPolicyResultOutput) Project added in v8.18.0

func (LookupSecurityGatewayIamPolicyResultOutput) SecurityGatewayId added in v8.18.0

func (LookupSecurityGatewayIamPolicyResultOutput) ToLookupSecurityGatewayIamPolicyResultOutput added in v8.18.0

func (o LookupSecurityGatewayIamPolicyResultOutput) ToLookupSecurityGatewayIamPolicyResultOutput() LookupSecurityGatewayIamPolicyResultOutput

func (LookupSecurityGatewayIamPolicyResultOutput) ToLookupSecurityGatewayIamPolicyResultOutputWithContext added in v8.18.0

func (o LookupSecurityGatewayIamPolicyResultOutput) ToLookupSecurityGatewayIamPolicyResultOutputWithContext(ctx context.Context) LookupSecurityGatewayIamPolicyResultOutput

type SecurityGateway added in v8.14.0

type SecurityGateway struct {
	pulumi.CustomResourceState

	// Output only. Timestamp when the resource was created.
	CreateTime pulumi.StringOutput `pulumi:"createTime"`
	// Optional. An arbitrary user-provided name for the SecurityGateway.
	// Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrOutput `pulumi:"displayName"`
	// Output only. IP addresses that will be used for establishing
	// connection to the endpoints.
	ExternalIps pulumi.StringArrayOutput `pulumi:"externalIps"`
	// Optional. Map of Hubs that represents regional data path deployment with GCP region
	// as a key.
	// Structure is documented below.
	Hubs SecurityGatewayHubArrayOutput `pulumi:"hubs"`
	// (Optional, Deprecated)
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`.
	//
	// > **Warning:** `location` is deprecated and will be removed in a future major release.
	//
	// Deprecated: `location` is deprecated and will be removed in a future major release.
	Location pulumi.StringPtrOutput `pulumi:"location"`
	// Identifier. Name of the resource.
	Name pulumi.StringOutput `pulumi:"name"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// Optional. User-settable SecurityGateway resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	//
	// ***
	SecurityGatewayId pulumi.StringOutput `pulumi:"securityGatewayId"`
	// Output only. The operational state of the SecurityGateway.
	// Possible values:
	// STATE_UNSPECIFIED
	// CREATING
	// UPDATING
	// DELETING
	// RUNNING
	// DOWN
	// ERROR
	State pulumi.StringOutput `pulumi:"state"`
	// Output only. Timestamp when the resource was last modified.
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
}

Deployment of Security Gateway.

## Example Usage

### Beyondcorp Security Gateway Basic

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGateway(ctx, "example", &beyondcorp.SecurityGatewayArgs{
			SecurityGatewayId: pulumi.String("default"),
			DisplayName:       pulumi.String("My Security Gateway resource"),
			Hubs: beyondcorp.SecurityGatewayHubArray{
				&beyondcorp.SecurityGatewayHubArgs{
					Region: pulumi.String("us-central1"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

SecurityGateway can be imported using any of these accepted formats:

* `projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}}`

* `{{project}}/{{location}}/{{security_gateway_id}}`

* `{{location}}/{{security_gateway_id}}`

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

```sh $ pulumi import gcp:beyondcorp/securityGateway:SecurityGateway default projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} ```

```sh $ pulumi import gcp:beyondcorp/securityGateway:SecurityGateway default {{project}}/{{location}}/{{security_gateway_id}} ```

```sh $ pulumi import gcp:beyondcorp/securityGateway:SecurityGateway default {{location}}/{{security_gateway_id}} ```

func GetSecurityGateway added in v8.14.0

func GetSecurityGateway(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityGatewayState, opts ...pulumi.ResourceOption) (*SecurityGateway, error)

GetSecurityGateway gets an existing SecurityGateway 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 NewSecurityGateway added in v8.14.0

func NewSecurityGateway(ctx *pulumi.Context,
	name string, args *SecurityGatewayArgs, opts ...pulumi.ResourceOption) (*SecurityGateway, error)

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

func (*SecurityGateway) ElementType added in v8.14.0

func (*SecurityGateway) ElementType() reflect.Type

func (*SecurityGateway) ToSecurityGatewayOutput added in v8.14.0

func (i *SecurityGateway) ToSecurityGatewayOutput() SecurityGatewayOutput

func (*SecurityGateway) ToSecurityGatewayOutputWithContext added in v8.14.0

func (i *SecurityGateway) ToSecurityGatewayOutputWithContext(ctx context.Context) SecurityGatewayOutput

type SecurityGatewayArgs added in v8.14.0

type SecurityGatewayArgs struct {
	// Optional. An arbitrary user-provided name for the SecurityGateway.
	// Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrInput
	// Optional. Map of Hubs that represents regional data path deployment with GCP region
	// as a key.
	// Structure is documented below.
	Hubs SecurityGatewayHubArrayInput
	// (Optional, Deprecated)
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`.
	//
	// > **Warning:** `location` is deprecated and will be removed in a future major release.
	//
	// Deprecated: `location` is deprecated and will be removed in a future major release.
	Location pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Optional. User-settable SecurityGateway resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	//
	// ***
	SecurityGatewayId pulumi.StringInput
}

The set of arguments for constructing a SecurityGateway resource.

func (SecurityGatewayArgs) ElementType added in v8.14.0

func (SecurityGatewayArgs) ElementType() reflect.Type

type SecurityGatewayArray added in v8.14.0

type SecurityGatewayArray []SecurityGatewayInput

func (SecurityGatewayArray) ElementType added in v8.14.0

func (SecurityGatewayArray) ElementType() reflect.Type

func (SecurityGatewayArray) ToSecurityGatewayArrayOutput added in v8.14.0

func (i SecurityGatewayArray) ToSecurityGatewayArrayOutput() SecurityGatewayArrayOutput

func (SecurityGatewayArray) ToSecurityGatewayArrayOutputWithContext added in v8.14.0

func (i SecurityGatewayArray) ToSecurityGatewayArrayOutputWithContext(ctx context.Context) SecurityGatewayArrayOutput

type SecurityGatewayArrayInput added in v8.14.0

type SecurityGatewayArrayInput interface {
	pulumi.Input

	ToSecurityGatewayArrayOutput() SecurityGatewayArrayOutput
	ToSecurityGatewayArrayOutputWithContext(context.Context) SecurityGatewayArrayOutput
}

SecurityGatewayArrayInput is an input type that accepts SecurityGatewayArray and SecurityGatewayArrayOutput values. You can construct a concrete instance of `SecurityGatewayArrayInput` via:

SecurityGatewayArray{ SecurityGatewayArgs{...} }

type SecurityGatewayArrayOutput added in v8.14.0

type SecurityGatewayArrayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayArrayOutput) ElementType added in v8.14.0

func (SecurityGatewayArrayOutput) ElementType() reflect.Type

func (SecurityGatewayArrayOutput) Index added in v8.14.0

func (SecurityGatewayArrayOutput) ToSecurityGatewayArrayOutput added in v8.14.0

func (o SecurityGatewayArrayOutput) ToSecurityGatewayArrayOutput() SecurityGatewayArrayOutput

func (SecurityGatewayArrayOutput) ToSecurityGatewayArrayOutputWithContext added in v8.14.0

func (o SecurityGatewayArrayOutput) ToSecurityGatewayArrayOutputWithContext(ctx context.Context) SecurityGatewayArrayOutput

type SecurityGatewayHub added in v8.14.0

type SecurityGatewayHub struct {
	// Internet Gateway configuration.
	// Structure is documented below.
	InternetGateway *SecurityGatewayHubInternetGateway `pulumi:"internetGateway"`
	// The identifier for this object. Format specified above.
	Region string `pulumi:"region"`
}

type SecurityGatewayHubArgs added in v8.14.0

type SecurityGatewayHubArgs struct {
	// Internet Gateway configuration.
	// Structure is documented below.
	InternetGateway SecurityGatewayHubInternetGatewayPtrInput `pulumi:"internetGateway"`
	// The identifier for this object. Format specified above.
	Region pulumi.StringInput `pulumi:"region"`
}

func (SecurityGatewayHubArgs) ElementType added in v8.14.0

func (SecurityGatewayHubArgs) ElementType() reflect.Type

func (SecurityGatewayHubArgs) ToSecurityGatewayHubOutput added in v8.14.0

func (i SecurityGatewayHubArgs) ToSecurityGatewayHubOutput() SecurityGatewayHubOutput

func (SecurityGatewayHubArgs) ToSecurityGatewayHubOutputWithContext added in v8.14.0

func (i SecurityGatewayHubArgs) ToSecurityGatewayHubOutputWithContext(ctx context.Context) SecurityGatewayHubOutput

type SecurityGatewayHubArray added in v8.14.0

type SecurityGatewayHubArray []SecurityGatewayHubInput

func (SecurityGatewayHubArray) ElementType added in v8.14.0

func (SecurityGatewayHubArray) ElementType() reflect.Type

func (SecurityGatewayHubArray) ToSecurityGatewayHubArrayOutput added in v8.14.0

func (i SecurityGatewayHubArray) ToSecurityGatewayHubArrayOutput() SecurityGatewayHubArrayOutput

func (SecurityGatewayHubArray) ToSecurityGatewayHubArrayOutputWithContext added in v8.14.0

func (i SecurityGatewayHubArray) ToSecurityGatewayHubArrayOutputWithContext(ctx context.Context) SecurityGatewayHubArrayOutput

type SecurityGatewayHubArrayInput added in v8.14.0

type SecurityGatewayHubArrayInput interface {
	pulumi.Input

	ToSecurityGatewayHubArrayOutput() SecurityGatewayHubArrayOutput
	ToSecurityGatewayHubArrayOutputWithContext(context.Context) SecurityGatewayHubArrayOutput
}

SecurityGatewayHubArrayInput is an input type that accepts SecurityGatewayHubArray and SecurityGatewayHubArrayOutput values. You can construct a concrete instance of `SecurityGatewayHubArrayInput` via:

SecurityGatewayHubArray{ SecurityGatewayHubArgs{...} }

type SecurityGatewayHubArrayOutput added in v8.14.0

type SecurityGatewayHubArrayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayHubArrayOutput) ElementType added in v8.14.0

func (SecurityGatewayHubArrayOutput) Index added in v8.14.0

func (SecurityGatewayHubArrayOutput) ToSecurityGatewayHubArrayOutput added in v8.14.0

func (o SecurityGatewayHubArrayOutput) ToSecurityGatewayHubArrayOutput() SecurityGatewayHubArrayOutput

func (SecurityGatewayHubArrayOutput) ToSecurityGatewayHubArrayOutputWithContext added in v8.14.0

func (o SecurityGatewayHubArrayOutput) ToSecurityGatewayHubArrayOutputWithContext(ctx context.Context) SecurityGatewayHubArrayOutput

type SecurityGatewayHubInput added in v8.14.0

type SecurityGatewayHubInput interface {
	pulumi.Input

	ToSecurityGatewayHubOutput() SecurityGatewayHubOutput
	ToSecurityGatewayHubOutputWithContext(context.Context) SecurityGatewayHubOutput
}

SecurityGatewayHubInput is an input type that accepts SecurityGatewayHubArgs and SecurityGatewayHubOutput values. You can construct a concrete instance of `SecurityGatewayHubInput` via:

SecurityGatewayHubArgs{...}

type SecurityGatewayHubInternetGateway added in v8.14.0

type SecurityGatewayHubInternetGateway struct {
	// (Output)
	// Output only. List of IP addresses assigned to the Cloud NAT.
	AssignedIps []string `pulumi:"assignedIps"`
}

type SecurityGatewayHubInternetGatewayArgs added in v8.14.0

type SecurityGatewayHubInternetGatewayArgs struct {
	// (Output)
	// Output only. List of IP addresses assigned to the Cloud NAT.
	AssignedIps pulumi.StringArrayInput `pulumi:"assignedIps"`
}

func (SecurityGatewayHubInternetGatewayArgs) ElementType added in v8.14.0

func (SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayOutput added in v8.14.0

func (i SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayOutput() SecurityGatewayHubInternetGatewayOutput

func (SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayOutputWithContext added in v8.14.0

func (i SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayOutputWithContext(ctx context.Context) SecurityGatewayHubInternetGatewayOutput

func (SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayPtrOutput added in v8.14.0

func (i SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayPtrOutput() SecurityGatewayHubInternetGatewayPtrOutput

func (SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext added in v8.14.0

func (i SecurityGatewayHubInternetGatewayArgs) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext(ctx context.Context) SecurityGatewayHubInternetGatewayPtrOutput

type SecurityGatewayHubInternetGatewayInput added in v8.14.0

type SecurityGatewayHubInternetGatewayInput interface {
	pulumi.Input

	ToSecurityGatewayHubInternetGatewayOutput() SecurityGatewayHubInternetGatewayOutput
	ToSecurityGatewayHubInternetGatewayOutputWithContext(context.Context) SecurityGatewayHubInternetGatewayOutput
}

SecurityGatewayHubInternetGatewayInput is an input type that accepts SecurityGatewayHubInternetGatewayArgs and SecurityGatewayHubInternetGatewayOutput values. You can construct a concrete instance of `SecurityGatewayHubInternetGatewayInput` via:

SecurityGatewayHubInternetGatewayArgs{...}

type SecurityGatewayHubInternetGatewayOutput added in v8.14.0

type SecurityGatewayHubInternetGatewayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayHubInternetGatewayOutput) AssignedIps added in v8.14.0

(Output) Output only. List of IP addresses assigned to the Cloud NAT.

func (SecurityGatewayHubInternetGatewayOutput) ElementType added in v8.14.0

func (SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayOutput added in v8.14.0

func (o SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayOutput() SecurityGatewayHubInternetGatewayOutput

func (SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayOutputWithContext added in v8.14.0

func (o SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayOutputWithContext(ctx context.Context) SecurityGatewayHubInternetGatewayOutput

func (SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayPtrOutput added in v8.14.0

func (o SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayPtrOutput() SecurityGatewayHubInternetGatewayPtrOutput

func (SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext added in v8.14.0

func (o SecurityGatewayHubInternetGatewayOutput) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext(ctx context.Context) SecurityGatewayHubInternetGatewayPtrOutput

type SecurityGatewayHubInternetGatewayPtrInput added in v8.14.0

type SecurityGatewayHubInternetGatewayPtrInput interface {
	pulumi.Input

	ToSecurityGatewayHubInternetGatewayPtrOutput() SecurityGatewayHubInternetGatewayPtrOutput
	ToSecurityGatewayHubInternetGatewayPtrOutputWithContext(context.Context) SecurityGatewayHubInternetGatewayPtrOutput
}

SecurityGatewayHubInternetGatewayPtrInput is an input type that accepts SecurityGatewayHubInternetGatewayArgs, SecurityGatewayHubInternetGatewayPtr and SecurityGatewayHubInternetGatewayPtrOutput values. You can construct a concrete instance of `SecurityGatewayHubInternetGatewayPtrInput` via:

        SecurityGatewayHubInternetGatewayArgs{...}

or:

        nil

type SecurityGatewayHubInternetGatewayPtrOutput added in v8.14.0

type SecurityGatewayHubInternetGatewayPtrOutput struct{ *pulumi.OutputState }

func (SecurityGatewayHubInternetGatewayPtrOutput) AssignedIps added in v8.14.0

(Output) Output only. List of IP addresses assigned to the Cloud NAT.

func (SecurityGatewayHubInternetGatewayPtrOutput) Elem added in v8.14.0

func (SecurityGatewayHubInternetGatewayPtrOutput) ElementType added in v8.14.0

func (SecurityGatewayHubInternetGatewayPtrOutput) ToSecurityGatewayHubInternetGatewayPtrOutput added in v8.14.0

func (o SecurityGatewayHubInternetGatewayPtrOutput) ToSecurityGatewayHubInternetGatewayPtrOutput() SecurityGatewayHubInternetGatewayPtrOutput

func (SecurityGatewayHubInternetGatewayPtrOutput) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext added in v8.14.0

func (o SecurityGatewayHubInternetGatewayPtrOutput) ToSecurityGatewayHubInternetGatewayPtrOutputWithContext(ctx context.Context) SecurityGatewayHubInternetGatewayPtrOutput

type SecurityGatewayHubOutput added in v8.14.0

type SecurityGatewayHubOutput struct{ *pulumi.OutputState }

func (SecurityGatewayHubOutput) ElementType added in v8.14.0

func (SecurityGatewayHubOutput) ElementType() reflect.Type

func (SecurityGatewayHubOutput) InternetGateway added in v8.14.0

Internet Gateway configuration. Structure is documented below.

func (SecurityGatewayHubOutput) Region added in v8.14.0

The identifier for this object. Format specified above.

func (SecurityGatewayHubOutput) ToSecurityGatewayHubOutput added in v8.14.0

func (o SecurityGatewayHubOutput) ToSecurityGatewayHubOutput() SecurityGatewayHubOutput

func (SecurityGatewayHubOutput) ToSecurityGatewayHubOutputWithContext added in v8.14.0

func (o SecurityGatewayHubOutput) ToSecurityGatewayHubOutputWithContext(ctx context.Context) SecurityGatewayHubOutput

type SecurityGatewayIamBinding added in v8.18.0

type SecurityGatewayIamBinding struct {
	pulumi.CustomResourceState

	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` 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"`
	SecurityGatewayId pulumi.StringOutput `pulumi:"securityGatewayId"`
}

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

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp SecurityGateway Three different resources help you manage your IAM policy for BeyondCorp SecurityGateway. Each of these resources serves a different use case:

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/{{location}}/securityGateways/{{security_gateway_id}}

* {{project}}/{{location}}/{{security_gateway_id}}

* {{location}}/{{security_gateway_id}}

* {{security_gateway_id}}

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

BeyondCorp securitygateway IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamBinding:SecurityGatewayIamBinding editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamBinding:SecurityGatewayIamBinding editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamBinding:SecurityGatewayIamBinding editor projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} ```

-> **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 GetSecurityGatewayIamBinding added in v8.18.0

func GetSecurityGatewayIamBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityGatewayIamBindingState, opts ...pulumi.ResourceOption) (*SecurityGatewayIamBinding, error)

GetSecurityGatewayIamBinding gets an existing SecurityGatewayIamBinding 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 NewSecurityGatewayIamBinding added in v8.18.0

func NewSecurityGatewayIamBinding(ctx *pulumi.Context,
	name string, args *SecurityGatewayIamBindingArgs, opts ...pulumi.ResourceOption) (*SecurityGatewayIamBinding, error)

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

func (*SecurityGatewayIamBinding) ElementType added in v8.18.0

func (*SecurityGatewayIamBinding) ElementType() reflect.Type

func (*SecurityGatewayIamBinding) ToSecurityGatewayIamBindingOutput added in v8.18.0

func (i *SecurityGatewayIamBinding) ToSecurityGatewayIamBindingOutput() SecurityGatewayIamBindingOutput

func (*SecurityGatewayIamBinding) ToSecurityGatewayIamBindingOutputWithContext added in v8.18.0

func (i *SecurityGatewayIamBinding) ToSecurityGatewayIamBindingOutputWithContext(ctx context.Context) SecurityGatewayIamBindingOutput

type SecurityGatewayIamBindingArgs added in v8.18.0

type SecurityGatewayIamBindingArgs struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamBindingConditionPtrInput
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role              pulumi.StringInput
	SecurityGatewayId pulumi.StringInput
}

The set of arguments for constructing a SecurityGatewayIamBinding resource.

func (SecurityGatewayIamBindingArgs) ElementType added in v8.18.0

type SecurityGatewayIamBindingArray added in v8.18.0

type SecurityGatewayIamBindingArray []SecurityGatewayIamBindingInput

func (SecurityGatewayIamBindingArray) ElementType added in v8.18.0

func (SecurityGatewayIamBindingArray) ToSecurityGatewayIamBindingArrayOutput added in v8.18.0

func (i SecurityGatewayIamBindingArray) ToSecurityGatewayIamBindingArrayOutput() SecurityGatewayIamBindingArrayOutput

func (SecurityGatewayIamBindingArray) ToSecurityGatewayIamBindingArrayOutputWithContext added in v8.18.0

func (i SecurityGatewayIamBindingArray) ToSecurityGatewayIamBindingArrayOutputWithContext(ctx context.Context) SecurityGatewayIamBindingArrayOutput

type SecurityGatewayIamBindingArrayInput added in v8.18.0

type SecurityGatewayIamBindingArrayInput interface {
	pulumi.Input

	ToSecurityGatewayIamBindingArrayOutput() SecurityGatewayIamBindingArrayOutput
	ToSecurityGatewayIamBindingArrayOutputWithContext(context.Context) SecurityGatewayIamBindingArrayOutput
}

SecurityGatewayIamBindingArrayInput is an input type that accepts SecurityGatewayIamBindingArray and SecurityGatewayIamBindingArrayOutput values. You can construct a concrete instance of `SecurityGatewayIamBindingArrayInput` via:

SecurityGatewayIamBindingArray{ SecurityGatewayIamBindingArgs{...} }

type SecurityGatewayIamBindingArrayOutput added in v8.18.0

type SecurityGatewayIamBindingArrayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamBindingArrayOutput) ElementType added in v8.18.0

func (SecurityGatewayIamBindingArrayOutput) Index added in v8.18.0

func (SecurityGatewayIamBindingArrayOutput) ToSecurityGatewayIamBindingArrayOutput added in v8.18.0

func (o SecurityGatewayIamBindingArrayOutput) ToSecurityGatewayIamBindingArrayOutput() SecurityGatewayIamBindingArrayOutput

func (SecurityGatewayIamBindingArrayOutput) ToSecurityGatewayIamBindingArrayOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingArrayOutput) ToSecurityGatewayIamBindingArrayOutputWithContext(ctx context.Context) SecurityGatewayIamBindingArrayOutput

type SecurityGatewayIamBindingCondition added in v8.18.0

type SecurityGatewayIamBindingCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type SecurityGatewayIamBindingConditionArgs added in v8.18.0

type SecurityGatewayIamBindingConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (SecurityGatewayIamBindingConditionArgs) ElementType added in v8.18.0

func (SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionOutput added in v8.18.0

func (i SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionOutput() SecurityGatewayIamBindingConditionOutput

func (SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionOutputWithContext added in v8.18.0

func (i SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionOutputWithContext(ctx context.Context) SecurityGatewayIamBindingConditionOutput

func (SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionPtrOutput added in v8.18.0

func (i SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionPtrOutput() SecurityGatewayIamBindingConditionPtrOutput

func (SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionPtrOutputWithContext added in v8.18.0

func (i SecurityGatewayIamBindingConditionArgs) ToSecurityGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamBindingConditionPtrOutput

type SecurityGatewayIamBindingConditionInput added in v8.18.0

type SecurityGatewayIamBindingConditionInput interface {
	pulumi.Input

	ToSecurityGatewayIamBindingConditionOutput() SecurityGatewayIamBindingConditionOutput
	ToSecurityGatewayIamBindingConditionOutputWithContext(context.Context) SecurityGatewayIamBindingConditionOutput
}

SecurityGatewayIamBindingConditionInput is an input type that accepts SecurityGatewayIamBindingConditionArgs and SecurityGatewayIamBindingConditionOutput values. You can construct a concrete instance of `SecurityGatewayIamBindingConditionInput` via:

SecurityGatewayIamBindingConditionArgs{...}

type SecurityGatewayIamBindingConditionOutput added in v8.18.0

type SecurityGatewayIamBindingConditionOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamBindingConditionOutput) Description added in v8.18.0

func (SecurityGatewayIamBindingConditionOutput) ElementType added in v8.18.0

func (SecurityGatewayIamBindingConditionOutput) Expression added in v8.18.0

Textual representation of an expression in Common Expression Language syntax.

func (SecurityGatewayIamBindingConditionOutput) Title added in v8.18.0

A title for the expression, i.e. a short string describing its purpose.

func (SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionOutput added in v8.18.0

func (o SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionOutput() SecurityGatewayIamBindingConditionOutput

func (SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionOutputWithContext(ctx context.Context) SecurityGatewayIamBindingConditionOutput

func (SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionPtrOutput added in v8.18.0

func (o SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionPtrOutput() SecurityGatewayIamBindingConditionPtrOutput

func (SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionPtrOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingConditionOutput) ToSecurityGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamBindingConditionPtrOutput

type SecurityGatewayIamBindingConditionPtrInput added in v8.18.0

type SecurityGatewayIamBindingConditionPtrInput interface {
	pulumi.Input

	ToSecurityGatewayIamBindingConditionPtrOutput() SecurityGatewayIamBindingConditionPtrOutput
	ToSecurityGatewayIamBindingConditionPtrOutputWithContext(context.Context) SecurityGatewayIamBindingConditionPtrOutput
}

SecurityGatewayIamBindingConditionPtrInput is an input type that accepts SecurityGatewayIamBindingConditionArgs, SecurityGatewayIamBindingConditionPtr and SecurityGatewayIamBindingConditionPtrOutput values. You can construct a concrete instance of `SecurityGatewayIamBindingConditionPtrInput` via:

        SecurityGatewayIamBindingConditionArgs{...}

or:

        nil

type SecurityGatewayIamBindingConditionPtrOutput added in v8.18.0

type SecurityGatewayIamBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamBindingConditionPtrOutput) Description added in v8.18.0

func (SecurityGatewayIamBindingConditionPtrOutput) Elem added in v8.18.0

func (SecurityGatewayIamBindingConditionPtrOutput) ElementType added in v8.18.0

func (SecurityGatewayIamBindingConditionPtrOutput) Expression added in v8.18.0

Textual representation of an expression in Common Expression Language syntax.

func (SecurityGatewayIamBindingConditionPtrOutput) Title added in v8.18.0

A title for the expression, i.e. a short string describing its purpose.

func (SecurityGatewayIamBindingConditionPtrOutput) ToSecurityGatewayIamBindingConditionPtrOutput added in v8.18.0

func (o SecurityGatewayIamBindingConditionPtrOutput) ToSecurityGatewayIamBindingConditionPtrOutput() SecurityGatewayIamBindingConditionPtrOutput

func (SecurityGatewayIamBindingConditionPtrOutput) ToSecurityGatewayIamBindingConditionPtrOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingConditionPtrOutput) ToSecurityGatewayIamBindingConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamBindingConditionPtrOutput

type SecurityGatewayIamBindingInput added in v8.18.0

type SecurityGatewayIamBindingInput interface {
	pulumi.Input

	ToSecurityGatewayIamBindingOutput() SecurityGatewayIamBindingOutput
	ToSecurityGatewayIamBindingOutputWithContext(ctx context.Context) SecurityGatewayIamBindingOutput
}

type SecurityGatewayIamBindingMap added in v8.18.0

type SecurityGatewayIamBindingMap map[string]SecurityGatewayIamBindingInput

func (SecurityGatewayIamBindingMap) ElementType added in v8.18.0

func (SecurityGatewayIamBindingMap) ToSecurityGatewayIamBindingMapOutput added in v8.18.0

func (i SecurityGatewayIamBindingMap) ToSecurityGatewayIamBindingMapOutput() SecurityGatewayIamBindingMapOutput

func (SecurityGatewayIamBindingMap) ToSecurityGatewayIamBindingMapOutputWithContext added in v8.18.0

func (i SecurityGatewayIamBindingMap) ToSecurityGatewayIamBindingMapOutputWithContext(ctx context.Context) SecurityGatewayIamBindingMapOutput

type SecurityGatewayIamBindingMapInput added in v8.18.0

type SecurityGatewayIamBindingMapInput interface {
	pulumi.Input

	ToSecurityGatewayIamBindingMapOutput() SecurityGatewayIamBindingMapOutput
	ToSecurityGatewayIamBindingMapOutputWithContext(context.Context) SecurityGatewayIamBindingMapOutput
}

SecurityGatewayIamBindingMapInput is an input type that accepts SecurityGatewayIamBindingMap and SecurityGatewayIamBindingMapOutput values. You can construct a concrete instance of `SecurityGatewayIamBindingMapInput` via:

SecurityGatewayIamBindingMap{ "key": SecurityGatewayIamBindingArgs{...} }

type SecurityGatewayIamBindingMapOutput added in v8.18.0

type SecurityGatewayIamBindingMapOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamBindingMapOutput) ElementType added in v8.18.0

func (SecurityGatewayIamBindingMapOutput) MapIndex added in v8.18.0

func (SecurityGatewayIamBindingMapOutput) ToSecurityGatewayIamBindingMapOutput added in v8.18.0

func (o SecurityGatewayIamBindingMapOutput) ToSecurityGatewayIamBindingMapOutput() SecurityGatewayIamBindingMapOutput

func (SecurityGatewayIamBindingMapOutput) ToSecurityGatewayIamBindingMapOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingMapOutput) ToSecurityGatewayIamBindingMapOutputWithContext(ctx context.Context) SecurityGatewayIamBindingMapOutput

type SecurityGatewayIamBindingOutput added in v8.18.0

type SecurityGatewayIamBindingOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamBindingOutput) Condition added in v8.18.0

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (SecurityGatewayIamBindingOutput) ElementType added in v8.18.0

func (SecurityGatewayIamBindingOutput) Etag added in v8.18.0

(Computed) The etag of the IAM policy.

func (SecurityGatewayIamBindingOutput) Location added in v8.18.0

Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (SecurityGatewayIamBindingOutput) Members added in v8.18.0

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

func (SecurityGatewayIamBindingOutput) Project added in v8.18.0

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

func (SecurityGatewayIamBindingOutput) Role added in v8.18.0

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

func (SecurityGatewayIamBindingOutput) SecurityGatewayId added in v8.18.0

func (o SecurityGatewayIamBindingOutput) SecurityGatewayId() pulumi.StringOutput

func (SecurityGatewayIamBindingOutput) ToSecurityGatewayIamBindingOutput added in v8.18.0

func (o SecurityGatewayIamBindingOutput) ToSecurityGatewayIamBindingOutput() SecurityGatewayIamBindingOutput

func (SecurityGatewayIamBindingOutput) ToSecurityGatewayIamBindingOutputWithContext added in v8.18.0

func (o SecurityGatewayIamBindingOutput) ToSecurityGatewayIamBindingOutputWithContext(ctx context.Context) SecurityGatewayIamBindingOutput

type SecurityGatewayIamBindingState added in v8.18.0

type SecurityGatewayIamBindingState struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamBindingConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Members pulumi.StringArrayInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role              pulumi.StringPtrInput
	SecurityGatewayId pulumi.StringPtrInput
}

func (SecurityGatewayIamBindingState) ElementType added in v8.18.0

type SecurityGatewayIamMember added in v8.18.0

type SecurityGatewayIamMember struct {
	pulumi.CustomResourceState

	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringOutput `pulumi:"member"`
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` 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"`
	SecurityGatewayId pulumi.StringOutput `pulumi:"securityGatewayId"`
}

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

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp SecurityGateway Three different resources help you manage your IAM policy for BeyondCorp SecurityGateway. Each of these resources serves a different use case:

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/{{location}}/securityGateways/{{security_gateway_id}}

* {{project}}/{{location}}/{{security_gateway_id}}

* {{location}}/{{security_gateway_id}}

* {{security_gateway_id}}

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

BeyondCorp securitygateway IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamMember:SecurityGatewayIamMember editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamMember:SecurityGatewayIamMember editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamMember:SecurityGatewayIamMember editor projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} ```

-> **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 GetSecurityGatewayIamMember added in v8.18.0

func GetSecurityGatewayIamMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityGatewayIamMemberState, opts ...pulumi.ResourceOption) (*SecurityGatewayIamMember, error)

GetSecurityGatewayIamMember gets an existing SecurityGatewayIamMember 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 NewSecurityGatewayIamMember added in v8.18.0

func NewSecurityGatewayIamMember(ctx *pulumi.Context,
	name string, args *SecurityGatewayIamMemberArgs, opts ...pulumi.ResourceOption) (*SecurityGatewayIamMember, error)

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

func (*SecurityGatewayIamMember) ElementType added in v8.18.0

func (*SecurityGatewayIamMember) ElementType() reflect.Type

func (*SecurityGatewayIamMember) ToSecurityGatewayIamMemberOutput added in v8.18.0

func (i *SecurityGatewayIamMember) ToSecurityGatewayIamMemberOutput() SecurityGatewayIamMemberOutput

func (*SecurityGatewayIamMember) ToSecurityGatewayIamMemberOutputWithContext added in v8.18.0

func (i *SecurityGatewayIamMember) ToSecurityGatewayIamMemberOutputWithContext(ctx context.Context) SecurityGatewayIamMemberOutput

type SecurityGatewayIamMemberArgs added in v8.18.0

type SecurityGatewayIamMemberArgs struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamMemberConditionPtrInput
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role              pulumi.StringInput
	SecurityGatewayId pulumi.StringInput
}

The set of arguments for constructing a SecurityGatewayIamMember resource.

func (SecurityGatewayIamMemberArgs) ElementType added in v8.18.0

type SecurityGatewayIamMemberArray added in v8.18.0

type SecurityGatewayIamMemberArray []SecurityGatewayIamMemberInput

func (SecurityGatewayIamMemberArray) ElementType added in v8.18.0

func (SecurityGatewayIamMemberArray) ToSecurityGatewayIamMemberArrayOutput added in v8.18.0

func (i SecurityGatewayIamMemberArray) ToSecurityGatewayIamMemberArrayOutput() SecurityGatewayIamMemberArrayOutput

func (SecurityGatewayIamMemberArray) ToSecurityGatewayIamMemberArrayOutputWithContext added in v8.18.0

func (i SecurityGatewayIamMemberArray) ToSecurityGatewayIamMemberArrayOutputWithContext(ctx context.Context) SecurityGatewayIamMemberArrayOutput

type SecurityGatewayIamMemberArrayInput added in v8.18.0

type SecurityGatewayIamMemberArrayInput interface {
	pulumi.Input

	ToSecurityGatewayIamMemberArrayOutput() SecurityGatewayIamMemberArrayOutput
	ToSecurityGatewayIamMemberArrayOutputWithContext(context.Context) SecurityGatewayIamMemberArrayOutput
}

SecurityGatewayIamMemberArrayInput is an input type that accepts SecurityGatewayIamMemberArray and SecurityGatewayIamMemberArrayOutput values. You can construct a concrete instance of `SecurityGatewayIamMemberArrayInput` via:

SecurityGatewayIamMemberArray{ SecurityGatewayIamMemberArgs{...} }

type SecurityGatewayIamMemberArrayOutput added in v8.18.0

type SecurityGatewayIamMemberArrayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamMemberArrayOutput) ElementType added in v8.18.0

func (SecurityGatewayIamMemberArrayOutput) Index added in v8.18.0

func (SecurityGatewayIamMemberArrayOutput) ToSecurityGatewayIamMemberArrayOutput added in v8.18.0

func (o SecurityGatewayIamMemberArrayOutput) ToSecurityGatewayIamMemberArrayOutput() SecurityGatewayIamMemberArrayOutput

func (SecurityGatewayIamMemberArrayOutput) ToSecurityGatewayIamMemberArrayOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberArrayOutput) ToSecurityGatewayIamMemberArrayOutputWithContext(ctx context.Context) SecurityGatewayIamMemberArrayOutput

type SecurityGatewayIamMemberCondition added in v8.18.0

type SecurityGatewayIamMemberCondition struct {
	Description *string `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression string `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title string `pulumi:"title"`
}

type SecurityGatewayIamMemberConditionArgs added in v8.18.0

type SecurityGatewayIamMemberConditionArgs struct {
	Description pulumi.StringPtrInput `pulumi:"description"`
	// Textual representation of an expression in Common Expression Language syntax.
	Expression pulumi.StringInput `pulumi:"expression"`
	// A title for the expression, i.e. a short string describing its purpose.
	Title pulumi.StringInput `pulumi:"title"`
}

func (SecurityGatewayIamMemberConditionArgs) ElementType added in v8.18.0

func (SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionOutput added in v8.18.0

func (i SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionOutput() SecurityGatewayIamMemberConditionOutput

func (SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionOutputWithContext added in v8.18.0

func (i SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionOutputWithContext(ctx context.Context) SecurityGatewayIamMemberConditionOutput

func (SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionPtrOutput added in v8.18.0

func (i SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionPtrOutput() SecurityGatewayIamMemberConditionPtrOutput

func (SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionPtrOutputWithContext added in v8.18.0

func (i SecurityGatewayIamMemberConditionArgs) ToSecurityGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamMemberConditionPtrOutput

type SecurityGatewayIamMemberConditionInput added in v8.18.0

type SecurityGatewayIamMemberConditionInput interface {
	pulumi.Input

	ToSecurityGatewayIamMemberConditionOutput() SecurityGatewayIamMemberConditionOutput
	ToSecurityGatewayIamMemberConditionOutputWithContext(context.Context) SecurityGatewayIamMemberConditionOutput
}

SecurityGatewayIamMemberConditionInput is an input type that accepts SecurityGatewayIamMemberConditionArgs and SecurityGatewayIamMemberConditionOutput values. You can construct a concrete instance of `SecurityGatewayIamMemberConditionInput` via:

SecurityGatewayIamMemberConditionArgs{...}

type SecurityGatewayIamMemberConditionOutput added in v8.18.0

type SecurityGatewayIamMemberConditionOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamMemberConditionOutput) Description added in v8.18.0

func (SecurityGatewayIamMemberConditionOutput) ElementType added in v8.18.0

func (SecurityGatewayIamMemberConditionOutput) Expression added in v8.18.0

Textual representation of an expression in Common Expression Language syntax.

func (SecurityGatewayIamMemberConditionOutput) Title added in v8.18.0

A title for the expression, i.e. a short string describing its purpose.

func (SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionOutput added in v8.18.0

func (o SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionOutput() SecurityGatewayIamMemberConditionOutput

func (SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionOutputWithContext(ctx context.Context) SecurityGatewayIamMemberConditionOutput

func (SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionPtrOutput added in v8.18.0

func (o SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionPtrOutput() SecurityGatewayIamMemberConditionPtrOutput

func (SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionPtrOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberConditionOutput) ToSecurityGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamMemberConditionPtrOutput

type SecurityGatewayIamMemberConditionPtrInput added in v8.18.0

type SecurityGatewayIamMemberConditionPtrInput interface {
	pulumi.Input

	ToSecurityGatewayIamMemberConditionPtrOutput() SecurityGatewayIamMemberConditionPtrOutput
	ToSecurityGatewayIamMemberConditionPtrOutputWithContext(context.Context) SecurityGatewayIamMemberConditionPtrOutput
}

SecurityGatewayIamMemberConditionPtrInput is an input type that accepts SecurityGatewayIamMemberConditionArgs, SecurityGatewayIamMemberConditionPtr and SecurityGatewayIamMemberConditionPtrOutput values. You can construct a concrete instance of `SecurityGatewayIamMemberConditionPtrInput` via:

        SecurityGatewayIamMemberConditionArgs{...}

or:

        nil

type SecurityGatewayIamMemberConditionPtrOutput added in v8.18.0

type SecurityGatewayIamMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamMemberConditionPtrOutput) Description added in v8.18.0

func (SecurityGatewayIamMemberConditionPtrOutput) Elem added in v8.18.0

func (SecurityGatewayIamMemberConditionPtrOutput) ElementType added in v8.18.0

func (SecurityGatewayIamMemberConditionPtrOutput) Expression added in v8.18.0

Textual representation of an expression in Common Expression Language syntax.

func (SecurityGatewayIamMemberConditionPtrOutput) Title added in v8.18.0

A title for the expression, i.e. a short string describing its purpose.

func (SecurityGatewayIamMemberConditionPtrOutput) ToSecurityGatewayIamMemberConditionPtrOutput added in v8.18.0

func (o SecurityGatewayIamMemberConditionPtrOutput) ToSecurityGatewayIamMemberConditionPtrOutput() SecurityGatewayIamMemberConditionPtrOutput

func (SecurityGatewayIamMemberConditionPtrOutput) ToSecurityGatewayIamMemberConditionPtrOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberConditionPtrOutput) ToSecurityGatewayIamMemberConditionPtrOutputWithContext(ctx context.Context) SecurityGatewayIamMemberConditionPtrOutput

type SecurityGatewayIamMemberInput added in v8.18.0

type SecurityGatewayIamMemberInput interface {
	pulumi.Input

	ToSecurityGatewayIamMemberOutput() SecurityGatewayIamMemberOutput
	ToSecurityGatewayIamMemberOutputWithContext(ctx context.Context) SecurityGatewayIamMemberOutput
}

type SecurityGatewayIamMemberMap added in v8.18.0

type SecurityGatewayIamMemberMap map[string]SecurityGatewayIamMemberInput

func (SecurityGatewayIamMemberMap) ElementType added in v8.18.0

func (SecurityGatewayIamMemberMap) ToSecurityGatewayIamMemberMapOutput added in v8.18.0

func (i SecurityGatewayIamMemberMap) ToSecurityGatewayIamMemberMapOutput() SecurityGatewayIamMemberMapOutput

func (SecurityGatewayIamMemberMap) ToSecurityGatewayIamMemberMapOutputWithContext added in v8.18.0

func (i SecurityGatewayIamMemberMap) ToSecurityGatewayIamMemberMapOutputWithContext(ctx context.Context) SecurityGatewayIamMemberMapOutput

type SecurityGatewayIamMemberMapInput added in v8.18.0

type SecurityGatewayIamMemberMapInput interface {
	pulumi.Input

	ToSecurityGatewayIamMemberMapOutput() SecurityGatewayIamMemberMapOutput
	ToSecurityGatewayIamMemberMapOutputWithContext(context.Context) SecurityGatewayIamMemberMapOutput
}

SecurityGatewayIamMemberMapInput is an input type that accepts SecurityGatewayIamMemberMap and SecurityGatewayIamMemberMapOutput values. You can construct a concrete instance of `SecurityGatewayIamMemberMapInput` via:

SecurityGatewayIamMemberMap{ "key": SecurityGatewayIamMemberArgs{...} }

type SecurityGatewayIamMemberMapOutput added in v8.18.0

type SecurityGatewayIamMemberMapOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamMemberMapOutput) ElementType added in v8.18.0

func (SecurityGatewayIamMemberMapOutput) MapIndex added in v8.18.0

func (SecurityGatewayIamMemberMapOutput) ToSecurityGatewayIamMemberMapOutput added in v8.18.0

func (o SecurityGatewayIamMemberMapOutput) ToSecurityGatewayIamMemberMapOutput() SecurityGatewayIamMemberMapOutput

func (SecurityGatewayIamMemberMapOutput) ToSecurityGatewayIamMemberMapOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberMapOutput) ToSecurityGatewayIamMemberMapOutputWithContext(ctx context.Context) SecurityGatewayIamMemberMapOutput

type SecurityGatewayIamMemberOutput added in v8.18.0

type SecurityGatewayIamMemberOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamMemberOutput) Condition added in v8.18.0

An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding. Structure is documented below.

func (SecurityGatewayIamMemberOutput) ElementType added in v8.18.0

func (SecurityGatewayIamMemberOutput) Etag added in v8.18.0

(Computed) The etag of the IAM policy.

func (SecurityGatewayIamMemberOutput) Location added in v8.18.0

Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (SecurityGatewayIamMemberOutput) Member added in v8.18.0

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

func (SecurityGatewayIamMemberOutput) Project added in v8.18.0

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

func (SecurityGatewayIamMemberOutput) Role added in v8.18.0

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

func (SecurityGatewayIamMemberOutput) SecurityGatewayId added in v8.18.0

func (o SecurityGatewayIamMemberOutput) SecurityGatewayId() pulumi.StringOutput

func (SecurityGatewayIamMemberOutput) ToSecurityGatewayIamMemberOutput added in v8.18.0

func (o SecurityGatewayIamMemberOutput) ToSecurityGatewayIamMemberOutput() SecurityGatewayIamMemberOutput

func (SecurityGatewayIamMemberOutput) ToSecurityGatewayIamMemberOutputWithContext added in v8.18.0

func (o SecurityGatewayIamMemberOutput) ToSecurityGatewayIamMemberOutputWithContext(ctx context.Context) SecurityGatewayIamMemberOutput

type SecurityGatewayIamMemberState added in v8.18.0

type SecurityGatewayIamMemberState struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition SecurityGatewayIamMemberConditionPtrInput
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// Identities that will be granted the privilege in `role`.
	// Each entry can have one of the following values:
	// * **allUsers**: A special identifier that represents anyone who is on the internet; with or without a Google account.
	// * **allAuthenticatedUsers**: A special identifier that represents anyone who is authenticated with a Google account or a service account.
	// * **user:{emailid}**: An email address that represents a specific Google account. For example, alice@gmail.com or joe@example.com.
	// * **serviceAccount:{emailid}**: An email address that represents a service account. For example, my-other-app@appspot.gserviceaccount.com.
	// * **group:{emailid}**: An email address that represents a Google group. For example, admins@example.com.
	// * **domain:{domain}**: A G Suite domain (primary, instead of alias) name that represents all the users of that domain. For example, google.com or example.com.
	// * **projectOwner:projectid**: Owners of the given project. For example, "projectOwner:my-example-project"
	// * **projectEditor:projectid**: Editors of the given project. For example, "projectEditor:my-example-project"
	// * **projectViewer:projectid**: Viewers of the given project. For example, "projectViewer:my-example-project"
	Member pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the project will be parsed from the identifier of the parent resource. If no project is provided in the parent identifier and no project is specified, the provider project is used.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `beyondcorp.SecurityGatewayIamBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role              pulumi.StringPtrInput
	SecurityGatewayId pulumi.StringPtrInput
}

func (SecurityGatewayIamMemberState) ElementType added in v8.18.0

type SecurityGatewayIamPolicy added in v8.18.0

type SecurityGatewayIamPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringOutput `pulumi:"location"`
	// 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"`
	SecurityGatewayId pulumi.StringOutput `pulumi:"securityGatewayId"`
}

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

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## This resource supports User Project Overrides.

-

# IAM policy for BeyondCorp SecurityGateway Three different resources help you manage your IAM policy for BeyondCorp SecurityGateway. Each of these resources serves a different use case:

* `beyondcorp.SecurityGatewayIamPolicy`: Authoritative. Sets the IAM policy for the securitygateway and replaces any existing policy already attached. * `beyondcorp.SecurityGatewayIamBinding`: 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 securitygateway are preserved. * `beyondcorp.SecurityGatewayIamMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the securitygateway are preserved.

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

* `beyondcorp.SecurityGatewayIamPolicy`: Retrieves the IAM policy for the securitygateway

> **Note:** `beyondcorp.SecurityGatewayIamPolicy` **cannot** be used in conjunction with `beyondcorp.SecurityGatewayIamBinding` and `beyondcorp.SecurityGatewayIamMember` or they will fight over what your policy should be.

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

> **Note:** This resource supports IAM Conditions but they have some known limitations which can be found [here](https://cloud.google.com/iam/docs/conditions-overview#limitations). Please review this article if you are having issues with IAM Conditions.

## beyondcorp.SecurityGatewayIamPolicy

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/organizations"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		admin, err := organizations.LookupIAMPolicy(ctx, &organizations.LookupIAMPolicyArgs{
			Bindings: []organizations.GetIAMPolicyBinding{
				{
					Role: "roles/beyondcorp.securityGatewayUser",
					Members: []string{
						"user:jane@example.com",
					},
					Condition: {
						Title:       "expires_after_2019_12_31",
						Description: pulumi.StringRef("Expiring at midnight of 2019-12-31"),
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = beyondcorp.NewSecurityGatewayIamPolicy(ctx, "policy", &beyondcorp.SecurityGatewayIamPolicyArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			PolicyData:        pulumi.String(admin.PolicyData),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamBinding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamBinding(ctx, "binding", &beyondcorp.SecurityGatewayIamBindingArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Condition: &beyondcorp.SecurityGatewayIamBindingConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ## beyondcorp.SecurityGatewayIamMember

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/beyondcorp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := beyondcorp.NewSecurityGatewayIamMember(ctx, "member", &beyondcorp.SecurityGatewayIamMemberArgs{
			Project:           pulumi.Any(example.Project),
			Location:          pulumi.Any(example.Location),
			SecurityGatewayId: pulumi.Any(example.SecurityGatewayId),
			Role:              pulumi.String("roles/beyondcorp.securityGatewayUser"),
			Member:            pulumi.String("user:jane@example.com"),
			Condition: &beyondcorp.SecurityGatewayIamMemberConditionArgs{
				Title:       pulumi.String("expires_after_2019_12_31"),
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
			},
		})
		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/{{location}}/securityGateways/{{security_gateway_id}}

* {{project}}/{{location}}/{{security_gateway_id}}

* {{location}}/{{security_gateway_id}}

* {{security_gateway_id}}

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

BeyondCorp securitygateway IAM resources can be imported using the resource identifiers, role, and member.

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamPolicy:SecurityGatewayIamPolicy editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser user:jane@example.com" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamPolicy:SecurityGatewayIamPolicy editor "projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} roles/beyondcorp.securityGatewayUser" ```

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

```sh $ pulumi import gcp:beyondcorp/securityGatewayIamPolicy:SecurityGatewayIamPolicy editor projects/{{project}}/locations/{{location}}/securityGateways/{{security_gateway_id}} ```

-> **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 GetSecurityGatewayIamPolicy added in v8.18.0

func GetSecurityGatewayIamPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SecurityGatewayIamPolicyState, opts ...pulumi.ResourceOption) (*SecurityGatewayIamPolicy, error)

GetSecurityGatewayIamPolicy gets an existing SecurityGatewayIamPolicy 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 NewSecurityGatewayIamPolicy added in v8.18.0

func NewSecurityGatewayIamPolicy(ctx *pulumi.Context,
	name string, args *SecurityGatewayIamPolicyArgs, opts ...pulumi.ResourceOption) (*SecurityGatewayIamPolicy, error)

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

func (*SecurityGatewayIamPolicy) ElementType added in v8.18.0

func (*SecurityGatewayIamPolicy) ElementType() reflect.Type

func (*SecurityGatewayIamPolicy) ToSecurityGatewayIamPolicyOutput added in v8.18.0

func (i *SecurityGatewayIamPolicy) ToSecurityGatewayIamPolicyOutput() SecurityGatewayIamPolicyOutput

func (*SecurityGatewayIamPolicy) ToSecurityGatewayIamPolicyOutputWithContext added in v8.18.0

func (i *SecurityGatewayIamPolicy) ToSecurityGatewayIamPolicyOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyOutput

type SecurityGatewayIamPolicyArgs added in v8.18.0

type SecurityGatewayIamPolicyArgs struct {
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location pulumi.StringPtrInput
	// 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
	SecurityGatewayId pulumi.StringInput
}

The set of arguments for constructing a SecurityGatewayIamPolicy resource.

func (SecurityGatewayIamPolicyArgs) ElementType added in v8.18.0

type SecurityGatewayIamPolicyArray added in v8.18.0

type SecurityGatewayIamPolicyArray []SecurityGatewayIamPolicyInput

func (SecurityGatewayIamPolicyArray) ElementType added in v8.18.0

func (SecurityGatewayIamPolicyArray) ToSecurityGatewayIamPolicyArrayOutput added in v8.18.0

func (i SecurityGatewayIamPolicyArray) ToSecurityGatewayIamPolicyArrayOutput() SecurityGatewayIamPolicyArrayOutput

func (SecurityGatewayIamPolicyArray) ToSecurityGatewayIamPolicyArrayOutputWithContext added in v8.18.0

func (i SecurityGatewayIamPolicyArray) ToSecurityGatewayIamPolicyArrayOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyArrayOutput

type SecurityGatewayIamPolicyArrayInput added in v8.18.0

type SecurityGatewayIamPolicyArrayInput interface {
	pulumi.Input

	ToSecurityGatewayIamPolicyArrayOutput() SecurityGatewayIamPolicyArrayOutput
	ToSecurityGatewayIamPolicyArrayOutputWithContext(context.Context) SecurityGatewayIamPolicyArrayOutput
}

SecurityGatewayIamPolicyArrayInput is an input type that accepts SecurityGatewayIamPolicyArray and SecurityGatewayIamPolicyArrayOutput values. You can construct a concrete instance of `SecurityGatewayIamPolicyArrayInput` via:

SecurityGatewayIamPolicyArray{ SecurityGatewayIamPolicyArgs{...} }

type SecurityGatewayIamPolicyArrayOutput added in v8.18.0

type SecurityGatewayIamPolicyArrayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamPolicyArrayOutput) ElementType added in v8.18.0

func (SecurityGatewayIamPolicyArrayOutput) Index added in v8.18.0

func (SecurityGatewayIamPolicyArrayOutput) ToSecurityGatewayIamPolicyArrayOutput added in v8.18.0

func (o SecurityGatewayIamPolicyArrayOutput) ToSecurityGatewayIamPolicyArrayOutput() SecurityGatewayIamPolicyArrayOutput

func (SecurityGatewayIamPolicyArrayOutput) ToSecurityGatewayIamPolicyArrayOutputWithContext added in v8.18.0

func (o SecurityGatewayIamPolicyArrayOutput) ToSecurityGatewayIamPolicyArrayOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyArrayOutput

type SecurityGatewayIamPolicyInput added in v8.18.0

type SecurityGatewayIamPolicyInput interface {
	pulumi.Input

	ToSecurityGatewayIamPolicyOutput() SecurityGatewayIamPolicyOutput
	ToSecurityGatewayIamPolicyOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyOutput
}

type SecurityGatewayIamPolicyMap added in v8.18.0

type SecurityGatewayIamPolicyMap map[string]SecurityGatewayIamPolicyInput

func (SecurityGatewayIamPolicyMap) ElementType added in v8.18.0

func (SecurityGatewayIamPolicyMap) ToSecurityGatewayIamPolicyMapOutput added in v8.18.0

func (i SecurityGatewayIamPolicyMap) ToSecurityGatewayIamPolicyMapOutput() SecurityGatewayIamPolicyMapOutput

func (SecurityGatewayIamPolicyMap) ToSecurityGatewayIamPolicyMapOutputWithContext added in v8.18.0

func (i SecurityGatewayIamPolicyMap) ToSecurityGatewayIamPolicyMapOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyMapOutput

type SecurityGatewayIamPolicyMapInput added in v8.18.0

type SecurityGatewayIamPolicyMapInput interface {
	pulumi.Input

	ToSecurityGatewayIamPolicyMapOutput() SecurityGatewayIamPolicyMapOutput
	ToSecurityGatewayIamPolicyMapOutputWithContext(context.Context) SecurityGatewayIamPolicyMapOutput
}

SecurityGatewayIamPolicyMapInput is an input type that accepts SecurityGatewayIamPolicyMap and SecurityGatewayIamPolicyMapOutput values. You can construct a concrete instance of `SecurityGatewayIamPolicyMapInput` via:

SecurityGatewayIamPolicyMap{ "key": SecurityGatewayIamPolicyArgs{...} }

type SecurityGatewayIamPolicyMapOutput added in v8.18.0

type SecurityGatewayIamPolicyMapOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamPolicyMapOutput) ElementType added in v8.18.0

func (SecurityGatewayIamPolicyMapOutput) MapIndex added in v8.18.0

func (SecurityGatewayIamPolicyMapOutput) ToSecurityGatewayIamPolicyMapOutput added in v8.18.0

func (o SecurityGatewayIamPolicyMapOutput) ToSecurityGatewayIamPolicyMapOutput() SecurityGatewayIamPolicyMapOutput

func (SecurityGatewayIamPolicyMapOutput) ToSecurityGatewayIamPolicyMapOutputWithContext added in v8.18.0

func (o SecurityGatewayIamPolicyMapOutput) ToSecurityGatewayIamPolicyMapOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyMapOutput

type SecurityGatewayIamPolicyOutput added in v8.18.0

type SecurityGatewayIamPolicyOutput struct{ *pulumi.OutputState }

func (SecurityGatewayIamPolicyOutput) ElementType added in v8.18.0

func (SecurityGatewayIamPolicyOutput) Etag added in v8.18.0

(Computed) The etag of the IAM policy.

func (SecurityGatewayIamPolicyOutput) Location added in v8.18.0

Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no location is specified, it is taken from the provider configuration.

func (SecurityGatewayIamPolicyOutput) PolicyData added in v8.18.0

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

func (SecurityGatewayIamPolicyOutput) Project added in v8.18.0

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

func (SecurityGatewayIamPolicyOutput) SecurityGatewayId added in v8.18.0

func (o SecurityGatewayIamPolicyOutput) SecurityGatewayId() pulumi.StringOutput

func (SecurityGatewayIamPolicyOutput) ToSecurityGatewayIamPolicyOutput added in v8.18.0

func (o SecurityGatewayIamPolicyOutput) ToSecurityGatewayIamPolicyOutput() SecurityGatewayIamPolicyOutput

func (SecurityGatewayIamPolicyOutput) ToSecurityGatewayIamPolicyOutputWithContext added in v8.18.0

func (o SecurityGatewayIamPolicyOutput) ToSecurityGatewayIamPolicyOutputWithContext(ctx context.Context) SecurityGatewayIamPolicyOutput

type SecurityGatewayIamPolicyState added in v8.18.0

type SecurityGatewayIamPolicyState struct {
	// (Computed) The etag of the IAM policy.
	Etag pulumi.StringPtrInput
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`. 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 location is provided in the parent identifier and no
	// location is specified, it is taken from the provider configuration.
	Location 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
	SecurityGatewayId pulumi.StringPtrInput
}

func (SecurityGatewayIamPolicyState) ElementType added in v8.18.0

type SecurityGatewayInput added in v8.14.0

type SecurityGatewayInput interface {
	pulumi.Input

	ToSecurityGatewayOutput() SecurityGatewayOutput
	ToSecurityGatewayOutputWithContext(ctx context.Context) SecurityGatewayOutput
}

type SecurityGatewayMap added in v8.14.0

type SecurityGatewayMap map[string]SecurityGatewayInput

func (SecurityGatewayMap) ElementType added in v8.14.0

func (SecurityGatewayMap) ElementType() reflect.Type

func (SecurityGatewayMap) ToSecurityGatewayMapOutput added in v8.14.0

func (i SecurityGatewayMap) ToSecurityGatewayMapOutput() SecurityGatewayMapOutput

func (SecurityGatewayMap) ToSecurityGatewayMapOutputWithContext added in v8.14.0

func (i SecurityGatewayMap) ToSecurityGatewayMapOutputWithContext(ctx context.Context) SecurityGatewayMapOutput

type SecurityGatewayMapInput added in v8.14.0

type SecurityGatewayMapInput interface {
	pulumi.Input

	ToSecurityGatewayMapOutput() SecurityGatewayMapOutput
	ToSecurityGatewayMapOutputWithContext(context.Context) SecurityGatewayMapOutput
}

SecurityGatewayMapInput is an input type that accepts SecurityGatewayMap and SecurityGatewayMapOutput values. You can construct a concrete instance of `SecurityGatewayMapInput` via:

SecurityGatewayMap{ "key": SecurityGatewayArgs{...} }

type SecurityGatewayMapOutput added in v8.14.0

type SecurityGatewayMapOutput struct{ *pulumi.OutputState }

func (SecurityGatewayMapOutput) ElementType added in v8.14.0

func (SecurityGatewayMapOutput) ElementType() reflect.Type

func (SecurityGatewayMapOutput) MapIndex added in v8.14.0

func (SecurityGatewayMapOutput) ToSecurityGatewayMapOutput added in v8.14.0

func (o SecurityGatewayMapOutput) ToSecurityGatewayMapOutput() SecurityGatewayMapOutput

func (SecurityGatewayMapOutput) ToSecurityGatewayMapOutputWithContext added in v8.14.0

func (o SecurityGatewayMapOutput) ToSecurityGatewayMapOutputWithContext(ctx context.Context) SecurityGatewayMapOutput

type SecurityGatewayOutput added in v8.14.0

type SecurityGatewayOutput struct{ *pulumi.OutputState }

func (SecurityGatewayOutput) CreateTime added in v8.14.0

func (o SecurityGatewayOutput) CreateTime() pulumi.StringOutput

Output only. Timestamp when the resource was created.

func (SecurityGatewayOutput) DisplayName added in v8.14.0

Optional. An arbitrary user-provided name for the SecurityGateway. Cannot exceed 64 characters.

func (SecurityGatewayOutput) ElementType added in v8.14.0

func (SecurityGatewayOutput) ElementType() reflect.Type

func (SecurityGatewayOutput) ExternalIps added in v8.14.0

Output only. IP addresses that will be used for establishing connection to the endpoints.

func (SecurityGatewayOutput) Hubs added in v8.14.0

Optional. Map of Hubs that represents regional data path deployment with GCP region as a key. Structure is documented below.

func (SecurityGatewayOutput) Location deprecated added in v8.14.0

(Optional, Deprecated) Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`.

> **Warning:** `location` is deprecated and will be removed in a future major release.

Deprecated: `location` is deprecated and will be removed in a future major release.

func (SecurityGatewayOutput) Name added in v8.14.0

Identifier. Name of the resource.

func (SecurityGatewayOutput) Project added in v8.14.0

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

func (SecurityGatewayOutput) SecurityGatewayId added in v8.14.0

func (o SecurityGatewayOutput) SecurityGatewayId() pulumi.StringOutput

Optional. User-settable SecurityGateway resource ID. * Must start with a letter. * Must contain between 4-63 characters from `/a-z-/`. * Must end with a number or letter.

***

func (SecurityGatewayOutput) State added in v8.14.0

Output only. The operational state of the SecurityGateway. Possible values: STATE_UNSPECIFIED CREATING UPDATING DELETING RUNNING DOWN ERROR

func (SecurityGatewayOutput) ToSecurityGatewayOutput added in v8.14.0

func (o SecurityGatewayOutput) ToSecurityGatewayOutput() SecurityGatewayOutput

func (SecurityGatewayOutput) ToSecurityGatewayOutputWithContext added in v8.14.0

func (o SecurityGatewayOutput) ToSecurityGatewayOutputWithContext(ctx context.Context) SecurityGatewayOutput

func (SecurityGatewayOutput) UpdateTime added in v8.14.0

func (o SecurityGatewayOutput) UpdateTime() pulumi.StringOutput

Output only. Timestamp when the resource was last modified.

type SecurityGatewayState added in v8.14.0

type SecurityGatewayState struct {
	// Output only. Timestamp when the resource was created.
	CreateTime pulumi.StringPtrInput
	// Optional. An arbitrary user-provided name for the SecurityGateway.
	// Cannot exceed 64 characters.
	DisplayName pulumi.StringPtrInput
	// Output only. IP addresses that will be used for establishing
	// connection to the endpoints.
	ExternalIps pulumi.StringArrayInput
	// Optional. Map of Hubs that represents regional data path deployment with GCP region
	// as a key.
	// Structure is documented below.
	Hubs SecurityGatewayHubArrayInput
	// (Optional, Deprecated)
	// Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122. Must be omitted or set to `global`.
	//
	// > **Warning:** `location` is deprecated and will be removed in a future major release.
	//
	// Deprecated: `location` is deprecated and will be removed in a future major release.
	Location pulumi.StringPtrInput
	// Identifier. Name of the resource.
	Name pulumi.StringPtrInput
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// Optional. User-settable SecurityGateway resource ID.
	// * Must start with a letter.
	// * Must contain between 4-63 characters from `/a-z-/`.
	// * Must end with a number or letter.
	//
	// ***
	SecurityGatewayId pulumi.StringPtrInput
	// Output only. The operational state of the SecurityGateway.
	// Possible values:
	// STATE_UNSPECIFIED
	// CREATING
	// UPDATING
	// DELETING
	// RUNNING
	// DOWN
	// ERROR
	State pulumi.StringPtrInput
	// Output only. Timestamp when the resource was last modified.
	UpdateTime pulumi.StringPtrInput
}

func (SecurityGatewayState) ElementType added in v8.14.0

func (SecurityGatewayState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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