projects

package
v5.26.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2021 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessApprovalSettings

type AccessApprovalSettings struct {
	pulumi.CustomResourceState

	// If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors
	// of the Project.
	EnrolledAncestor pulumi.BoolOutput `pulumi:"enrolledAncestor"`
	// A list of Google Cloud Services for which the given resource has Access Approval enrolled.
	// Access requests for the resource given by name against any of these services contained here will be required
	// to have explicit approval. Enrollment can only be done on an all or nothing basis.
	// A maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.
	// Structure is documented below.
	EnrolledServices AccessApprovalSettingsEnrolledServiceArrayOutput `pulumi:"enrolledServices"`
	// The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"
	Name pulumi.StringOutput `pulumi:"name"`
	// A list of email addresses to which notifications relating to approval requests should be sent.
	// Notifications relating to a resource will be sent to all emails in the settings of ancestor
	// resources of that resource. A maximum of 50 email addresses are allowed.
	NotificationEmails pulumi.StringArrayOutput `pulumi:"notificationEmails"`
	// -
	// (Optional, Deprecated)
	// Deprecated in favor of `projectId`
	//
	// Deprecated: Deprecated in favor of `project_id`
	Project pulumi.StringPtrOutput `pulumi:"project"`
	// ID of the project of the access approval settings.
	ProjectId pulumi.StringOutput `pulumi:"projectId"`
}

Access Approval enables you to require your explicit approval whenever Google support and engineering need to access your customer content.

To get more information about ProjectSettings, see:

* [API documentation](https://cloud.google.com/access-approval/docs/reference/rest/v1/projects)

## Example Usage ### Project Access Approval Full

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewAccessApprovalSettings(ctx, "projectAccessApproval", &projects.AccessApprovalSettingsArgs{
			EnrolledServices: projects.AccessApprovalSettingsEnrolledServiceArray{
				&projects.AccessApprovalSettingsEnrolledServiceArgs{
					CloudProduct:    pulumi.String("all"),
					EnrollmentLevel: pulumi.String("BLOCK_ALL"),
				},
			},
			NotificationEmails: pulumi.StringArray{
				pulumi.String("testuser@example.com"),
				pulumi.String("example.user@example.com"),
			},
			ProjectId: pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

ProjectSettings can be imported using any of these accepted formats

```sh

$ pulumi import gcp:projects/accessApprovalSettings:AccessApprovalSettings default projects/{{project_id}}/accessApprovalSettings

```

```sh

$ pulumi import gcp:projects/accessApprovalSettings:AccessApprovalSettings default {{project_id}}

```

func GetAccessApprovalSettings

func GetAccessApprovalSettings(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccessApprovalSettingsState, opts ...pulumi.ResourceOption) (*AccessApprovalSettings, error)

GetAccessApprovalSettings gets an existing AccessApprovalSettings 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 NewAccessApprovalSettings

func NewAccessApprovalSettings(ctx *pulumi.Context,
	name string, args *AccessApprovalSettingsArgs, opts ...pulumi.ResourceOption) (*AccessApprovalSettings, error)

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

func (*AccessApprovalSettings) ElementType

func (*AccessApprovalSettings) ElementType() reflect.Type

func (*AccessApprovalSettings) ToAccessApprovalSettingsOutput

func (i *AccessApprovalSettings) ToAccessApprovalSettingsOutput() AccessApprovalSettingsOutput

func (*AccessApprovalSettings) ToAccessApprovalSettingsOutputWithContext

func (i *AccessApprovalSettings) ToAccessApprovalSettingsOutputWithContext(ctx context.Context) AccessApprovalSettingsOutput

func (*AccessApprovalSettings) ToAccessApprovalSettingsPtrOutput

func (i *AccessApprovalSettings) ToAccessApprovalSettingsPtrOutput() AccessApprovalSettingsPtrOutput

func (*AccessApprovalSettings) ToAccessApprovalSettingsPtrOutputWithContext

func (i *AccessApprovalSettings) ToAccessApprovalSettingsPtrOutputWithContext(ctx context.Context) AccessApprovalSettingsPtrOutput

type AccessApprovalSettingsArgs

type AccessApprovalSettingsArgs struct {
	// A list of Google Cloud Services for which the given resource has Access Approval enrolled.
	// Access requests for the resource given by name against any of these services contained here will be required
	// to have explicit approval. Enrollment can only be done on an all or nothing basis.
	// A maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.
	// Structure is documented below.
	EnrolledServices AccessApprovalSettingsEnrolledServiceArrayInput
	// A list of email addresses to which notifications relating to approval requests should be sent.
	// Notifications relating to a resource will be sent to all emails in the settings of ancestor
	// resources of that resource. A maximum of 50 email addresses are allowed.
	NotificationEmails pulumi.StringArrayInput
	// -
	// (Optional, Deprecated)
	// Deprecated in favor of `projectId`
	//
	// Deprecated: Deprecated in favor of `project_id`
	Project pulumi.StringPtrInput
	// ID of the project of the access approval settings.
	ProjectId pulumi.StringInput
}

The set of arguments for constructing a AccessApprovalSettings resource.

func (AccessApprovalSettingsArgs) ElementType

func (AccessApprovalSettingsArgs) ElementType() reflect.Type

type AccessApprovalSettingsArray

type AccessApprovalSettingsArray []AccessApprovalSettingsInput

func (AccessApprovalSettingsArray) ElementType

func (AccessApprovalSettingsArray) ToAccessApprovalSettingsArrayOutput

func (i AccessApprovalSettingsArray) ToAccessApprovalSettingsArrayOutput() AccessApprovalSettingsArrayOutput

func (AccessApprovalSettingsArray) ToAccessApprovalSettingsArrayOutputWithContext

func (i AccessApprovalSettingsArray) ToAccessApprovalSettingsArrayOutputWithContext(ctx context.Context) AccessApprovalSettingsArrayOutput

type AccessApprovalSettingsArrayInput

type AccessApprovalSettingsArrayInput interface {
	pulumi.Input

	ToAccessApprovalSettingsArrayOutput() AccessApprovalSettingsArrayOutput
	ToAccessApprovalSettingsArrayOutputWithContext(context.Context) AccessApprovalSettingsArrayOutput
}

AccessApprovalSettingsArrayInput is an input type that accepts AccessApprovalSettingsArray and AccessApprovalSettingsArrayOutput values. You can construct a concrete instance of `AccessApprovalSettingsArrayInput` via:

AccessApprovalSettingsArray{ AccessApprovalSettingsArgs{...} }

type AccessApprovalSettingsArrayOutput

type AccessApprovalSettingsArrayOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsArrayOutput) ElementType

func (AccessApprovalSettingsArrayOutput) Index

func (AccessApprovalSettingsArrayOutput) ToAccessApprovalSettingsArrayOutput

func (o AccessApprovalSettingsArrayOutput) ToAccessApprovalSettingsArrayOutput() AccessApprovalSettingsArrayOutput

func (AccessApprovalSettingsArrayOutput) ToAccessApprovalSettingsArrayOutputWithContext

func (o AccessApprovalSettingsArrayOutput) ToAccessApprovalSettingsArrayOutputWithContext(ctx context.Context) AccessApprovalSettingsArrayOutput

type AccessApprovalSettingsEnrolledService

type AccessApprovalSettingsEnrolledService struct {
	// The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):
	// all
	// appengine.googleapis.com
	// bigquery.googleapis.com
	// bigtable.googleapis.com
	// cloudkms.googleapis.com
	// compute.googleapis.com
	// dataflow.googleapis.com
	// iam.googleapis.com
	// pubsub.googleapis.com
	// storage.googleapis.com
	CloudProduct string `pulumi:"cloudProduct"`
	// The enrollment level of the service.
	// Default value is `BLOCK_ALL`.
	// Possible values are `BLOCK_ALL`.
	EnrollmentLevel *string `pulumi:"enrollmentLevel"`
}

type AccessApprovalSettingsEnrolledServiceArgs

type AccessApprovalSettingsEnrolledServiceArgs struct {
	// The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):
	// all
	// appengine.googleapis.com
	// bigquery.googleapis.com
	// bigtable.googleapis.com
	// cloudkms.googleapis.com
	// compute.googleapis.com
	// dataflow.googleapis.com
	// iam.googleapis.com
	// pubsub.googleapis.com
	// storage.googleapis.com
	CloudProduct pulumi.StringInput `pulumi:"cloudProduct"`
	// The enrollment level of the service.
	// Default value is `BLOCK_ALL`.
	// Possible values are `BLOCK_ALL`.
	EnrollmentLevel pulumi.StringPtrInput `pulumi:"enrollmentLevel"`
}

func (AccessApprovalSettingsEnrolledServiceArgs) ElementType

func (AccessApprovalSettingsEnrolledServiceArgs) ToAccessApprovalSettingsEnrolledServiceOutput

func (i AccessApprovalSettingsEnrolledServiceArgs) ToAccessApprovalSettingsEnrolledServiceOutput() AccessApprovalSettingsEnrolledServiceOutput

func (AccessApprovalSettingsEnrolledServiceArgs) ToAccessApprovalSettingsEnrolledServiceOutputWithContext

func (i AccessApprovalSettingsEnrolledServiceArgs) ToAccessApprovalSettingsEnrolledServiceOutputWithContext(ctx context.Context) AccessApprovalSettingsEnrolledServiceOutput

type AccessApprovalSettingsEnrolledServiceArray

type AccessApprovalSettingsEnrolledServiceArray []AccessApprovalSettingsEnrolledServiceInput

func (AccessApprovalSettingsEnrolledServiceArray) ElementType

func (AccessApprovalSettingsEnrolledServiceArray) ToAccessApprovalSettingsEnrolledServiceArrayOutput

func (i AccessApprovalSettingsEnrolledServiceArray) ToAccessApprovalSettingsEnrolledServiceArrayOutput() AccessApprovalSettingsEnrolledServiceArrayOutput

func (AccessApprovalSettingsEnrolledServiceArray) ToAccessApprovalSettingsEnrolledServiceArrayOutputWithContext

func (i AccessApprovalSettingsEnrolledServiceArray) ToAccessApprovalSettingsEnrolledServiceArrayOutputWithContext(ctx context.Context) AccessApprovalSettingsEnrolledServiceArrayOutput

type AccessApprovalSettingsEnrolledServiceArrayInput

type AccessApprovalSettingsEnrolledServiceArrayInput interface {
	pulumi.Input

	ToAccessApprovalSettingsEnrolledServiceArrayOutput() AccessApprovalSettingsEnrolledServiceArrayOutput
	ToAccessApprovalSettingsEnrolledServiceArrayOutputWithContext(context.Context) AccessApprovalSettingsEnrolledServiceArrayOutput
}

AccessApprovalSettingsEnrolledServiceArrayInput is an input type that accepts AccessApprovalSettingsEnrolledServiceArray and AccessApprovalSettingsEnrolledServiceArrayOutput values. You can construct a concrete instance of `AccessApprovalSettingsEnrolledServiceArrayInput` via:

AccessApprovalSettingsEnrolledServiceArray{ AccessApprovalSettingsEnrolledServiceArgs{...} }

type AccessApprovalSettingsEnrolledServiceArrayOutput

type AccessApprovalSettingsEnrolledServiceArrayOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsEnrolledServiceArrayOutput) ElementType

func (AccessApprovalSettingsEnrolledServiceArrayOutput) Index

func (AccessApprovalSettingsEnrolledServiceArrayOutput) ToAccessApprovalSettingsEnrolledServiceArrayOutput

func (o AccessApprovalSettingsEnrolledServiceArrayOutput) ToAccessApprovalSettingsEnrolledServiceArrayOutput() AccessApprovalSettingsEnrolledServiceArrayOutput

func (AccessApprovalSettingsEnrolledServiceArrayOutput) ToAccessApprovalSettingsEnrolledServiceArrayOutputWithContext

func (o AccessApprovalSettingsEnrolledServiceArrayOutput) ToAccessApprovalSettingsEnrolledServiceArrayOutputWithContext(ctx context.Context) AccessApprovalSettingsEnrolledServiceArrayOutput

type AccessApprovalSettingsEnrolledServiceInput

type AccessApprovalSettingsEnrolledServiceInput interface {
	pulumi.Input

	ToAccessApprovalSettingsEnrolledServiceOutput() AccessApprovalSettingsEnrolledServiceOutput
	ToAccessApprovalSettingsEnrolledServiceOutputWithContext(context.Context) AccessApprovalSettingsEnrolledServiceOutput
}

AccessApprovalSettingsEnrolledServiceInput is an input type that accepts AccessApprovalSettingsEnrolledServiceArgs and AccessApprovalSettingsEnrolledServiceOutput values. You can construct a concrete instance of `AccessApprovalSettingsEnrolledServiceInput` via:

AccessApprovalSettingsEnrolledServiceArgs{...}

type AccessApprovalSettingsEnrolledServiceOutput

type AccessApprovalSettingsEnrolledServiceOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsEnrolledServiceOutput) CloudProduct

The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive): all appengine.googleapis.com bigquery.googleapis.com bigtable.googleapis.com cloudkms.googleapis.com compute.googleapis.com dataflow.googleapis.com iam.googleapis.com pubsub.googleapis.com storage.googleapis.com

func (AccessApprovalSettingsEnrolledServiceOutput) ElementType

func (AccessApprovalSettingsEnrolledServiceOutput) EnrollmentLevel

The enrollment level of the service. Default value is `BLOCK_ALL`. Possible values are `BLOCK_ALL`.

func (AccessApprovalSettingsEnrolledServiceOutput) ToAccessApprovalSettingsEnrolledServiceOutput

func (o AccessApprovalSettingsEnrolledServiceOutput) ToAccessApprovalSettingsEnrolledServiceOutput() AccessApprovalSettingsEnrolledServiceOutput

func (AccessApprovalSettingsEnrolledServiceOutput) ToAccessApprovalSettingsEnrolledServiceOutputWithContext

func (o AccessApprovalSettingsEnrolledServiceOutput) ToAccessApprovalSettingsEnrolledServiceOutputWithContext(ctx context.Context) AccessApprovalSettingsEnrolledServiceOutput

type AccessApprovalSettingsInput

type AccessApprovalSettingsInput interface {
	pulumi.Input

	ToAccessApprovalSettingsOutput() AccessApprovalSettingsOutput
	ToAccessApprovalSettingsOutputWithContext(ctx context.Context) AccessApprovalSettingsOutput
}

type AccessApprovalSettingsMap

type AccessApprovalSettingsMap map[string]AccessApprovalSettingsInput

func (AccessApprovalSettingsMap) ElementType

func (AccessApprovalSettingsMap) ElementType() reflect.Type

func (AccessApprovalSettingsMap) ToAccessApprovalSettingsMapOutput

func (i AccessApprovalSettingsMap) ToAccessApprovalSettingsMapOutput() AccessApprovalSettingsMapOutput

func (AccessApprovalSettingsMap) ToAccessApprovalSettingsMapOutputWithContext

func (i AccessApprovalSettingsMap) ToAccessApprovalSettingsMapOutputWithContext(ctx context.Context) AccessApprovalSettingsMapOutput

type AccessApprovalSettingsMapInput

type AccessApprovalSettingsMapInput interface {
	pulumi.Input

	ToAccessApprovalSettingsMapOutput() AccessApprovalSettingsMapOutput
	ToAccessApprovalSettingsMapOutputWithContext(context.Context) AccessApprovalSettingsMapOutput
}

AccessApprovalSettingsMapInput is an input type that accepts AccessApprovalSettingsMap and AccessApprovalSettingsMapOutput values. You can construct a concrete instance of `AccessApprovalSettingsMapInput` via:

AccessApprovalSettingsMap{ "key": AccessApprovalSettingsArgs{...} }

type AccessApprovalSettingsMapOutput

type AccessApprovalSettingsMapOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsMapOutput) ElementType

func (AccessApprovalSettingsMapOutput) MapIndex

func (AccessApprovalSettingsMapOutput) ToAccessApprovalSettingsMapOutput

func (o AccessApprovalSettingsMapOutput) ToAccessApprovalSettingsMapOutput() AccessApprovalSettingsMapOutput

func (AccessApprovalSettingsMapOutput) ToAccessApprovalSettingsMapOutputWithContext

func (o AccessApprovalSettingsMapOutput) ToAccessApprovalSettingsMapOutputWithContext(ctx context.Context) AccessApprovalSettingsMapOutput

type AccessApprovalSettingsOutput

type AccessApprovalSettingsOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsOutput) ElementType

func (AccessApprovalSettingsOutput) ToAccessApprovalSettingsOutput

func (o AccessApprovalSettingsOutput) ToAccessApprovalSettingsOutput() AccessApprovalSettingsOutput

func (AccessApprovalSettingsOutput) ToAccessApprovalSettingsOutputWithContext

func (o AccessApprovalSettingsOutput) ToAccessApprovalSettingsOutputWithContext(ctx context.Context) AccessApprovalSettingsOutput

func (AccessApprovalSettingsOutput) ToAccessApprovalSettingsPtrOutput

func (o AccessApprovalSettingsOutput) ToAccessApprovalSettingsPtrOutput() AccessApprovalSettingsPtrOutput

func (AccessApprovalSettingsOutput) ToAccessApprovalSettingsPtrOutputWithContext

func (o AccessApprovalSettingsOutput) ToAccessApprovalSettingsPtrOutputWithContext(ctx context.Context) AccessApprovalSettingsPtrOutput

type AccessApprovalSettingsPtrInput

type AccessApprovalSettingsPtrInput interface {
	pulumi.Input

	ToAccessApprovalSettingsPtrOutput() AccessApprovalSettingsPtrOutput
	ToAccessApprovalSettingsPtrOutputWithContext(ctx context.Context) AccessApprovalSettingsPtrOutput
}

type AccessApprovalSettingsPtrOutput

type AccessApprovalSettingsPtrOutput struct{ *pulumi.OutputState }

func (AccessApprovalSettingsPtrOutput) Elem added in v5.21.0

func (AccessApprovalSettingsPtrOutput) ElementType

func (AccessApprovalSettingsPtrOutput) ToAccessApprovalSettingsPtrOutput

func (o AccessApprovalSettingsPtrOutput) ToAccessApprovalSettingsPtrOutput() AccessApprovalSettingsPtrOutput

func (AccessApprovalSettingsPtrOutput) ToAccessApprovalSettingsPtrOutputWithContext

func (o AccessApprovalSettingsPtrOutput) ToAccessApprovalSettingsPtrOutputWithContext(ctx context.Context) AccessApprovalSettingsPtrOutput

type AccessApprovalSettingsState

type AccessApprovalSettingsState struct {
	// If the field is true, that indicates that at least one service is enrolled for Access Approval in one or more ancestors
	// of the Project.
	EnrolledAncestor pulumi.BoolPtrInput
	// A list of Google Cloud Services for which the given resource has Access Approval enrolled.
	// Access requests for the resource given by name against any of these services contained here will be required
	// to have explicit approval. Enrollment can only be done on an all or nothing basis.
	// A maximum of 10 enrolled services will be enforced, to be expanded as the set of supported services is expanded.
	// Structure is documented below.
	EnrolledServices AccessApprovalSettingsEnrolledServiceArrayInput
	// The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"
	Name pulumi.StringPtrInput
	// A list of email addresses to which notifications relating to approval requests should be sent.
	// Notifications relating to a resource will be sent to all emails in the settings of ancestor
	// resources of that resource. A maximum of 50 email addresses are allowed.
	NotificationEmails pulumi.StringArrayInput
	// -
	// (Optional, Deprecated)
	// Deprecated in favor of `projectId`
	//
	// Deprecated: Deprecated in favor of `project_id`
	Project pulumi.StringPtrInput
	// ID of the project of the access approval settings.
	ProjectId pulumi.StringPtrInput
}

func (AccessApprovalSettingsState) ElementType

type DefaultServiceAccounts

type DefaultServiceAccounts struct {
	pulumi.CustomResourceState

	// The action to be performed in the default service accounts. Valid values are: `DEPRIVILEGE`, `DELETE`, `DISABLE`. Note that `DEPRIVILEGE` action will ignore the REVERT configuration in the restore_policy
	Action pulumi.StringOutput `pulumi:"action"`
	// The project ID where service accounts are created.
	Project pulumi.StringOutput `pulumi:"project"`
	// The action to be performed in the default service accounts on the resource destroy.
	// Valid values are NONE, REVERT and REVERT_AND_IGNORE_FAILURE. It is applied for any action but in the DEPRIVILEGE.
	// If set to REVERT it attempts to restore all default SAs but the DEPRIVILEGE action.
	// If set to REVERT_AND_IGNORE_FAILURE it is the same behavior as REVERT but ignores errors returned by the API.
	RestorePolicy pulumi.StringPtrOutput `pulumi:"restorePolicy"`
	// The Service Accounts changed by this resource. It is used for `REVERT` the `action` on the destroy.
	ServiceAccounts pulumi.MapOutput `pulumi:"serviceAccounts"`
}

Allows management of Google Cloud Platform project default service accounts.

When certain service APIs are enabled, Google Cloud Platform automatically creates service accounts to help get started, but this is not recommended for production environments as per [Google's documentation](https://cloud.google.com/iam/docs/service-accounts#default). See the [Organization documentation](https://cloud.google.com/resource-manager/docs/quickstarts) for more details.

> **WARNING** Some Google Cloud products do not work if the default service accounts are deleted so it is better to `DEPRIVILEGE` as Google **CAN NOT** recover service accounts that have been deleted for more than 30 days. Also Google recommends using the `constraints/iam.automaticIamGrantsForDefaultServiceAccounts` [constraint](https://www.terraform.io/docs/providers/google/r/google_organization_policy.html) to disable automatic IAM Grants to default service accounts.

> This resource works on a best-effort basis, as no API formally describes the default service accounts and it is for users who are unable to use constraints. If the default service accounts change their name or additional service accounts are added, this resource will need to be updated.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewDefaultServiceAccounts(ctx, "myProject", &projects.DefaultServiceAccountsArgs{
			Action:  pulumi.String("DELETE"),
			Project: pulumi.String("my-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

To enable the default service accounts on the resource destroy:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewDefaultServiceAccounts(ctx, "myProject", &projects.DefaultServiceAccountsArgs{
			Action:        pulumi.String("DISABLE"),
			Project:       pulumi.String("my-project-id"),
			RestorePolicy: pulumi.String("REVERT"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import

func GetDefaultServiceAccounts

func GetDefaultServiceAccounts(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *DefaultServiceAccountsState, opts ...pulumi.ResourceOption) (*DefaultServiceAccounts, error)

GetDefaultServiceAccounts gets an existing DefaultServiceAccounts 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 NewDefaultServiceAccounts

func NewDefaultServiceAccounts(ctx *pulumi.Context,
	name string, args *DefaultServiceAccountsArgs, opts ...pulumi.ResourceOption) (*DefaultServiceAccounts, error)

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

func (*DefaultServiceAccounts) ElementType

func (*DefaultServiceAccounts) ElementType() reflect.Type

func (*DefaultServiceAccounts) ToDefaultServiceAccountsOutput

func (i *DefaultServiceAccounts) ToDefaultServiceAccountsOutput() DefaultServiceAccountsOutput

func (*DefaultServiceAccounts) ToDefaultServiceAccountsOutputWithContext

func (i *DefaultServiceAccounts) ToDefaultServiceAccountsOutputWithContext(ctx context.Context) DefaultServiceAccountsOutput

func (*DefaultServiceAccounts) ToDefaultServiceAccountsPtrOutput

func (i *DefaultServiceAccounts) ToDefaultServiceAccountsPtrOutput() DefaultServiceAccountsPtrOutput

func (*DefaultServiceAccounts) ToDefaultServiceAccountsPtrOutputWithContext

func (i *DefaultServiceAccounts) ToDefaultServiceAccountsPtrOutputWithContext(ctx context.Context) DefaultServiceAccountsPtrOutput

type DefaultServiceAccountsArgs

type DefaultServiceAccountsArgs struct {
	// The action to be performed in the default service accounts. Valid values are: `DEPRIVILEGE`, `DELETE`, `DISABLE`. Note that `DEPRIVILEGE` action will ignore the REVERT configuration in the restore_policy
	Action pulumi.StringInput
	// The project ID where service accounts are created.
	Project pulumi.StringInput
	// The action to be performed in the default service accounts on the resource destroy.
	// Valid values are NONE, REVERT and REVERT_AND_IGNORE_FAILURE. It is applied for any action but in the DEPRIVILEGE.
	// If set to REVERT it attempts to restore all default SAs but the DEPRIVILEGE action.
	// If set to REVERT_AND_IGNORE_FAILURE it is the same behavior as REVERT but ignores errors returned by the API.
	RestorePolicy pulumi.StringPtrInput
}

The set of arguments for constructing a DefaultServiceAccounts resource.

func (DefaultServiceAccountsArgs) ElementType

func (DefaultServiceAccountsArgs) ElementType() reflect.Type

type DefaultServiceAccountsArray

type DefaultServiceAccountsArray []DefaultServiceAccountsInput

func (DefaultServiceAccountsArray) ElementType

func (DefaultServiceAccountsArray) ToDefaultServiceAccountsArrayOutput

func (i DefaultServiceAccountsArray) ToDefaultServiceAccountsArrayOutput() DefaultServiceAccountsArrayOutput

func (DefaultServiceAccountsArray) ToDefaultServiceAccountsArrayOutputWithContext

func (i DefaultServiceAccountsArray) ToDefaultServiceAccountsArrayOutputWithContext(ctx context.Context) DefaultServiceAccountsArrayOutput

type DefaultServiceAccountsArrayInput

type DefaultServiceAccountsArrayInput interface {
	pulumi.Input

	ToDefaultServiceAccountsArrayOutput() DefaultServiceAccountsArrayOutput
	ToDefaultServiceAccountsArrayOutputWithContext(context.Context) DefaultServiceAccountsArrayOutput
}

DefaultServiceAccountsArrayInput is an input type that accepts DefaultServiceAccountsArray and DefaultServiceAccountsArrayOutput values. You can construct a concrete instance of `DefaultServiceAccountsArrayInput` via:

DefaultServiceAccountsArray{ DefaultServiceAccountsArgs{...} }

type DefaultServiceAccountsArrayOutput

type DefaultServiceAccountsArrayOutput struct{ *pulumi.OutputState }

func (DefaultServiceAccountsArrayOutput) ElementType

func (DefaultServiceAccountsArrayOutput) Index

func (DefaultServiceAccountsArrayOutput) ToDefaultServiceAccountsArrayOutput

func (o DefaultServiceAccountsArrayOutput) ToDefaultServiceAccountsArrayOutput() DefaultServiceAccountsArrayOutput

func (DefaultServiceAccountsArrayOutput) ToDefaultServiceAccountsArrayOutputWithContext

func (o DefaultServiceAccountsArrayOutput) ToDefaultServiceAccountsArrayOutputWithContext(ctx context.Context) DefaultServiceAccountsArrayOutput

type DefaultServiceAccountsInput

type DefaultServiceAccountsInput interface {
	pulumi.Input

	ToDefaultServiceAccountsOutput() DefaultServiceAccountsOutput
	ToDefaultServiceAccountsOutputWithContext(ctx context.Context) DefaultServiceAccountsOutput
}

type DefaultServiceAccountsMap

type DefaultServiceAccountsMap map[string]DefaultServiceAccountsInput

func (DefaultServiceAccountsMap) ElementType

func (DefaultServiceAccountsMap) ElementType() reflect.Type

func (DefaultServiceAccountsMap) ToDefaultServiceAccountsMapOutput

func (i DefaultServiceAccountsMap) ToDefaultServiceAccountsMapOutput() DefaultServiceAccountsMapOutput

func (DefaultServiceAccountsMap) ToDefaultServiceAccountsMapOutputWithContext

func (i DefaultServiceAccountsMap) ToDefaultServiceAccountsMapOutputWithContext(ctx context.Context) DefaultServiceAccountsMapOutput

type DefaultServiceAccountsMapInput

type DefaultServiceAccountsMapInput interface {
	pulumi.Input

	ToDefaultServiceAccountsMapOutput() DefaultServiceAccountsMapOutput
	ToDefaultServiceAccountsMapOutputWithContext(context.Context) DefaultServiceAccountsMapOutput
}

DefaultServiceAccountsMapInput is an input type that accepts DefaultServiceAccountsMap and DefaultServiceAccountsMapOutput values. You can construct a concrete instance of `DefaultServiceAccountsMapInput` via:

DefaultServiceAccountsMap{ "key": DefaultServiceAccountsArgs{...} }

type DefaultServiceAccountsMapOutput

type DefaultServiceAccountsMapOutput struct{ *pulumi.OutputState }

func (DefaultServiceAccountsMapOutput) ElementType

func (DefaultServiceAccountsMapOutput) MapIndex

func (DefaultServiceAccountsMapOutput) ToDefaultServiceAccountsMapOutput

func (o DefaultServiceAccountsMapOutput) ToDefaultServiceAccountsMapOutput() DefaultServiceAccountsMapOutput

func (DefaultServiceAccountsMapOutput) ToDefaultServiceAccountsMapOutputWithContext

func (o DefaultServiceAccountsMapOutput) ToDefaultServiceAccountsMapOutputWithContext(ctx context.Context) DefaultServiceAccountsMapOutput

type DefaultServiceAccountsOutput

type DefaultServiceAccountsOutput struct{ *pulumi.OutputState }

func (DefaultServiceAccountsOutput) ElementType

func (DefaultServiceAccountsOutput) ToDefaultServiceAccountsOutput

func (o DefaultServiceAccountsOutput) ToDefaultServiceAccountsOutput() DefaultServiceAccountsOutput

func (DefaultServiceAccountsOutput) ToDefaultServiceAccountsOutputWithContext

func (o DefaultServiceAccountsOutput) ToDefaultServiceAccountsOutputWithContext(ctx context.Context) DefaultServiceAccountsOutput

func (DefaultServiceAccountsOutput) ToDefaultServiceAccountsPtrOutput

func (o DefaultServiceAccountsOutput) ToDefaultServiceAccountsPtrOutput() DefaultServiceAccountsPtrOutput

func (DefaultServiceAccountsOutput) ToDefaultServiceAccountsPtrOutputWithContext

func (o DefaultServiceAccountsOutput) ToDefaultServiceAccountsPtrOutputWithContext(ctx context.Context) DefaultServiceAccountsPtrOutput

type DefaultServiceAccountsPtrInput

type DefaultServiceAccountsPtrInput interface {
	pulumi.Input

	ToDefaultServiceAccountsPtrOutput() DefaultServiceAccountsPtrOutput
	ToDefaultServiceAccountsPtrOutputWithContext(ctx context.Context) DefaultServiceAccountsPtrOutput
}

type DefaultServiceAccountsPtrOutput

type DefaultServiceAccountsPtrOutput struct{ *pulumi.OutputState }

func (DefaultServiceAccountsPtrOutput) Elem added in v5.21.0

func (DefaultServiceAccountsPtrOutput) ElementType

func (DefaultServiceAccountsPtrOutput) ToDefaultServiceAccountsPtrOutput

func (o DefaultServiceAccountsPtrOutput) ToDefaultServiceAccountsPtrOutput() DefaultServiceAccountsPtrOutput

func (DefaultServiceAccountsPtrOutput) ToDefaultServiceAccountsPtrOutputWithContext

func (o DefaultServiceAccountsPtrOutput) ToDefaultServiceAccountsPtrOutputWithContext(ctx context.Context) DefaultServiceAccountsPtrOutput

type DefaultServiceAccountsState

type DefaultServiceAccountsState struct {
	// The action to be performed in the default service accounts. Valid values are: `DEPRIVILEGE`, `DELETE`, `DISABLE`. Note that `DEPRIVILEGE` action will ignore the REVERT configuration in the restore_policy
	Action pulumi.StringPtrInput
	// The project ID where service accounts are created.
	Project pulumi.StringPtrInput
	// The action to be performed in the default service accounts on the resource destroy.
	// Valid values are NONE, REVERT and REVERT_AND_IGNORE_FAILURE. It is applied for any action but in the DEPRIVILEGE.
	// If set to REVERT it attempts to restore all default SAs but the DEPRIVILEGE action.
	// If set to REVERT_AND_IGNORE_FAILURE it is the same behavior as REVERT but ignores errors returned by the API.
	RestorePolicy pulumi.StringPtrInput
	// The Service Accounts changed by this resource. It is used for `REVERT` the `action` on the destroy.
	ServiceAccounts pulumi.MapInput
}

func (DefaultServiceAccountsState) ElementType

type GetOrganizationPolicyBooleanPolicy

type GetOrganizationPolicyBooleanPolicy struct {
	Enforced bool `pulumi:"enforced"`
}

type GetOrganizationPolicyBooleanPolicyArgs

type GetOrganizationPolicyBooleanPolicyArgs struct {
	Enforced pulumi.BoolInput `pulumi:"enforced"`
}

func (GetOrganizationPolicyBooleanPolicyArgs) ElementType

func (GetOrganizationPolicyBooleanPolicyArgs) ToGetOrganizationPolicyBooleanPolicyOutput

func (i GetOrganizationPolicyBooleanPolicyArgs) ToGetOrganizationPolicyBooleanPolicyOutput() GetOrganizationPolicyBooleanPolicyOutput

func (GetOrganizationPolicyBooleanPolicyArgs) ToGetOrganizationPolicyBooleanPolicyOutputWithContext

func (i GetOrganizationPolicyBooleanPolicyArgs) ToGetOrganizationPolicyBooleanPolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyBooleanPolicyOutput

type GetOrganizationPolicyBooleanPolicyArray

type GetOrganizationPolicyBooleanPolicyArray []GetOrganizationPolicyBooleanPolicyInput

func (GetOrganizationPolicyBooleanPolicyArray) ElementType

func (GetOrganizationPolicyBooleanPolicyArray) ToGetOrganizationPolicyBooleanPolicyArrayOutput

func (i GetOrganizationPolicyBooleanPolicyArray) ToGetOrganizationPolicyBooleanPolicyArrayOutput() GetOrganizationPolicyBooleanPolicyArrayOutput

func (GetOrganizationPolicyBooleanPolicyArray) ToGetOrganizationPolicyBooleanPolicyArrayOutputWithContext

func (i GetOrganizationPolicyBooleanPolicyArray) ToGetOrganizationPolicyBooleanPolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyBooleanPolicyArrayOutput

type GetOrganizationPolicyBooleanPolicyArrayInput

type GetOrganizationPolicyBooleanPolicyArrayInput interface {
	pulumi.Input

	ToGetOrganizationPolicyBooleanPolicyArrayOutput() GetOrganizationPolicyBooleanPolicyArrayOutput
	ToGetOrganizationPolicyBooleanPolicyArrayOutputWithContext(context.Context) GetOrganizationPolicyBooleanPolicyArrayOutput
}

GetOrganizationPolicyBooleanPolicyArrayInput is an input type that accepts GetOrganizationPolicyBooleanPolicyArray and GetOrganizationPolicyBooleanPolicyArrayOutput values. You can construct a concrete instance of `GetOrganizationPolicyBooleanPolicyArrayInput` via:

GetOrganizationPolicyBooleanPolicyArray{ GetOrganizationPolicyBooleanPolicyArgs{...} }

type GetOrganizationPolicyBooleanPolicyArrayOutput

type GetOrganizationPolicyBooleanPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyBooleanPolicyArrayOutput) ElementType

func (GetOrganizationPolicyBooleanPolicyArrayOutput) Index

func (GetOrganizationPolicyBooleanPolicyArrayOutput) ToGetOrganizationPolicyBooleanPolicyArrayOutput

func (o GetOrganizationPolicyBooleanPolicyArrayOutput) ToGetOrganizationPolicyBooleanPolicyArrayOutput() GetOrganizationPolicyBooleanPolicyArrayOutput

func (GetOrganizationPolicyBooleanPolicyArrayOutput) ToGetOrganizationPolicyBooleanPolicyArrayOutputWithContext

func (o GetOrganizationPolicyBooleanPolicyArrayOutput) ToGetOrganizationPolicyBooleanPolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyBooleanPolicyArrayOutput

type GetOrganizationPolicyBooleanPolicyInput

type GetOrganizationPolicyBooleanPolicyInput interface {
	pulumi.Input

	ToGetOrganizationPolicyBooleanPolicyOutput() GetOrganizationPolicyBooleanPolicyOutput
	ToGetOrganizationPolicyBooleanPolicyOutputWithContext(context.Context) GetOrganizationPolicyBooleanPolicyOutput
}

GetOrganizationPolicyBooleanPolicyInput is an input type that accepts GetOrganizationPolicyBooleanPolicyArgs and GetOrganizationPolicyBooleanPolicyOutput values. You can construct a concrete instance of `GetOrganizationPolicyBooleanPolicyInput` via:

GetOrganizationPolicyBooleanPolicyArgs{...}

type GetOrganizationPolicyBooleanPolicyOutput

type GetOrganizationPolicyBooleanPolicyOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyBooleanPolicyOutput) ElementType

func (GetOrganizationPolicyBooleanPolicyOutput) Enforced

func (GetOrganizationPolicyBooleanPolicyOutput) ToGetOrganizationPolicyBooleanPolicyOutput

func (o GetOrganizationPolicyBooleanPolicyOutput) ToGetOrganizationPolicyBooleanPolicyOutput() GetOrganizationPolicyBooleanPolicyOutput

func (GetOrganizationPolicyBooleanPolicyOutput) ToGetOrganizationPolicyBooleanPolicyOutputWithContext

func (o GetOrganizationPolicyBooleanPolicyOutput) ToGetOrganizationPolicyBooleanPolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyBooleanPolicyOutput

type GetOrganizationPolicyListPolicy

type GetOrganizationPolicyListPolicy struct {
	Allows            []GetOrganizationPolicyListPolicyAllow `pulumi:"allows"`
	Denies            []GetOrganizationPolicyListPolicyDeny  `pulumi:"denies"`
	InheritFromParent bool                                   `pulumi:"inheritFromParent"`
	SuggestedValue    string                                 `pulumi:"suggestedValue"`
}

type GetOrganizationPolicyListPolicyAllow

type GetOrganizationPolicyListPolicyAllow struct {
	All    bool     `pulumi:"all"`
	Values []string `pulumi:"values"`
}

type GetOrganizationPolicyListPolicyAllowArgs

type GetOrganizationPolicyListPolicyAllowArgs struct {
	All    pulumi.BoolInput        `pulumi:"all"`
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (GetOrganizationPolicyListPolicyAllowArgs) ElementType

func (GetOrganizationPolicyListPolicyAllowArgs) ToGetOrganizationPolicyListPolicyAllowOutput

func (i GetOrganizationPolicyListPolicyAllowArgs) ToGetOrganizationPolicyListPolicyAllowOutput() GetOrganizationPolicyListPolicyAllowOutput

func (GetOrganizationPolicyListPolicyAllowArgs) ToGetOrganizationPolicyListPolicyAllowOutputWithContext

func (i GetOrganizationPolicyListPolicyAllowArgs) ToGetOrganizationPolicyListPolicyAllowOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyAllowOutput

type GetOrganizationPolicyListPolicyAllowArray

type GetOrganizationPolicyListPolicyAllowArray []GetOrganizationPolicyListPolicyAllowInput

func (GetOrganizationPolicyListPolicyAllowArray) ElementType

func (GetOrganizationPolicyListPolicyAllowArray) ToGetOrganizationPolicyListPolicyAllowArrayOutput

func (i GetOrganizationPolicyListPolicyAllowArray) ToGetOrganizationPolicyListPolicyAllowArrayOutput() GetOrganizationPolicyListPolicyAllowArrayOutput

func (GetOrganizationPolicyListPolicyAllowArray) ToGetOrganizationPolicyListPolicyAllowArrayOutputWithContext

func (i GetOrganizationPolicyListPolicyAllowArray) ToGetOrganizationPolicyListPolicyAllowArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyAllowArrayOutput

type GetOrganizationPolicyListPolicyAllowArrayInput

type GetOrganizationPolicyListPolicyAllowArrayInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyAllowArrayOutput() GetOrganizationPolicyListPolicyAllowArrayOutput
	ToGetOrganizationPolicyListPolicyAllowArrayOutputWithContext(context.Context) GetOrganizationPolicyListPolicyAllowArrayOutput
}

GetOrganizationPolicyListPolicyAllowArrayInput is an input type that accepts GetOrganizationPolicyListPolicyAllowArray and GetOrganizationPolicyListPolicyAllowArrayOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyAllowArrayInput` via:

GetOrganizationPolicyListPolicyAllowArray{ GetOrganizationPolicyListPolicyAllowArgs{...} }

type GetOrganizationPolicyListPolicyAllowArrayOutput

type GetOrganizationPolicyListPolicyAllowArrayOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyAllowArrayOutput) ElementType

func (GetOrganizationPolicyListPolicyAllowArrayOutput) Index

func (GetOrganizationPolicyListPolicyAllowArrayOutput) ToGetOrganizationPolicyListPolicyAllowArrayOutput

func (o GetOrganizationPolicyListPolicyAllowArrayOutput) ToGetOrganizationPolicyListPolicyAllowArrayOutput() GetOrganizationPolicyListPolicyAllowArrayOutput

func (GetOrganizationPolicyListPolicyAllowArrayOutput) ToGetOrganizationPolicyListPolicyAllowArrayOutputWithContext

func (o GetOrganizationPolicyListPolicyAllowArrayOutput) ToGetOrganizationPolicyListPolicyAllowArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyAllowArrayOutput

type GetOrganizationPolicyListPolicyAllowInput

type GetOrganizationPolicyListPolicyAllowInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyAllowOutput() GetOrganizationPolicyListPolicyAllowOutput
	ToGetOrganizationPolicyListPolicyAllowOutputWithContext(context.Context) GetOrganizationPolicyListPolicyAllowOutput
}

GetOrganizationPolicyListPolicyAllowInput is an input type that accepts GetOrganizationPolicyListPolicyAllowArgs and GetOrganizationPolicyListPolicyAllowOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyAllowInput` via:

GetOrganizationPolicyListPolicyAllowArgs{...}

type GetOrganizationPolicyListPolicyAllowOutput

type GetOrganizationPolicyListPolicyAllowOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyAllowOutput) All

func (GetOrganizationPolicyListPolicyAllowOutput) ElementType

func (GetOrganizationPolicyListPolicyAllowOutput) ToGetOrganizationPolicyListPolicyAllowOutput

func (o GetOrganizationPolicyListPolicyAllowOutput) ToGetOrganizationPolicyListPolicyAllowOutput() GetOrganizationPolicyListPolicyAllowOutput

func (GetOrganizationPolicyListPolicyAllowOutput) ToGetOrganizationPolicyListPolicyAllowOutputWithContext

func (o GetOrganizationPolicyListPolicyAllowOutput) ToGetOrganizationPolicyListPolicyAllowOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyAllowOutput

func (GetOrganizationPolicyListPolicyAllowOutput) Values

type GetOrganizationPolicyListPolicyArgs

type GetOrganizationPolicyListPolicyArgs struct {
	Allows            GetOrganizationPolicyListPolicyAllowArrayInput `pulumi:"allows"`
	Denies            GetOrganizationPolicyListPolicyDenyArrayInput  `pulumi:"denies"`
	InheritFromParent pulumi.BoolInput                               `pulumi:"inheritFromParent"`
	SuggestedValue    pulumi.StringInput                             `pulumi:"suggestedValue"`
}

func (GetOrganizationPolicyListPolicyArgs) ElementType

func (GetOrganizationPolicyListPolicyArgs) ToGetOrganizationPolicyListPolicyOutput

func (i GetOrganizationPolicyListPolicyArgs) ToGetOrganizationPolicyListPolicyOutput() GetOrganizationPolicyListPolicyOutput

func (GetOrganizationPolicyListPolicyArgs) ToGetOrganizationPolicyListPolicyOutputWithContext

func (i GetOrganizationPolicyListPolicyArgs) ToGetOrganizationPolicyListPolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyOutput

type GetOrganizationPolicyListPolicyArray

type GetOrganizationPolicyListPolicyArray []GetOrganizationPolicyListPolicyInput

func (GetOrganizationPolicyListPolicyArray) ElementType

func (GetOrganizationPolicyListPolicyArray) ToGetOrganizationPolicyListPolicyArrayOutput

func (i GetOrganizationPolicyListPolicyArray) ToGetOrganizationPolicyListPolicyArrayOutput() GetOrganizationPolicyListPolicyArrayOutput

func (GetOrganizationPolicyListPolicyArray) ToGetOrganizationPolicyListPolicyArrayOutputWithContext

func (i GetOrganizationPolicyListPolicyArray) ToGetOrganizationPolicyListPolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyArrayOutput

type GetOrganizationPolicyListPolicyArrayInput

type GetOrganizationPolicyListPolicyArrayInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyArrayOutput() GetOrganizationPolicyListPolicyArrayOutput
	ToGetOrganizationPolicyListPolicyArrayOutputWithContext(context.Context) GetOrganizationPolicyListPolicyArrayOutput
}

GetOrganizationPolicyListPolicyArrayInput is an input type that accepts GetOrganizationPolicyListPolicyArray and GetOrganizationPolicyListPolicyArrayOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyArrayInput` via:

GetOrganizationPolicyListPolicyArray{ GetOrganizationPolicyListPolicyArgs{...} }

type GetOrganizationPolicyListPolicyArrayOutput

type GetOrganizationPolicyListPolicyArrayOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyArrayOutput) ElementType

func (GetOrganizationPolicyListPolicyArrayOutput) Index

func (GetOrganizationPolicyListPolicyArrayOutput) ToGetOrganizationPolicyListPolicyArrayOutput

func (o GetOrganizationPolicyListPolicyArrayOutput) ToGetOrganizationPolicyListPolicyArrayOutput() GetOrganizationPolicyListPolicyArrayOutput

func (GetOrganizationPolicyListPolicyArrayOutput) ToGetOrganizationPolicyListPolicyArrayOutputWithContext

func (o GetOrganizationPolicyListPolicyArrayOutput) ToGetOrganizationPolicyListPolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyArrayOutput

type GetOrganizationPolicyListPolicyDeny

type GetOrganizationPolicyListPolicyDeny struct {
	All    bool     `pulumi:"all"`
	Values []string `pulumi:"values"`
}

type GetOrganizationPolicyListPolicyDenyArgs

type GetOrganizationPolicyListPolicyDenyArgs struct {
	All    pulumi.BoolInput        `pulumi:"all"`
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (GetOrganizationPolicyListPolicyDenyArgs) ElementType

func (GetOrganizationPolicyListPolicyDenyArgs) ToGetOrganizationPolicyListPolicyDenyOutput

func (i GetOrganizationPolicyListPolicyDenyArgs) ToGetOrganizationPolicyListPolicyDenyOutput() GetOrganizationPolicyListPolicyDenyOutput

func (GetOrganizationPolicyListPolicyDenyArgs) ToGetOrganizationPolicyListPolicyDenyOutputWithContext

func (i GetOrganizationPolicyListPolicyDenyArgs) ToGetOrganizationPolicyListPolicyDenyOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyDenyOutput

type GetOrganizationPolicyListPolicyDenyArray

type GetOrganizationPolicyListPolicyDenyArray []GetOrganizationPolicyListPolicyDenyInput

func (GetOrganizationPolicyListPolicyDenyArray) ElementType

func (GetOrganizationPolicyListPolicyDenyArray) ToGetOrganizationPolicyListPolicyDenyArrayOutput

func (i GetOrganizationPolicyListPolicyDenyArray) ToGetOrganizationPolicyListPolicyDenyArrayOutput() GetOrganizationPolicyListPolicyDenyArrayOutput

func (GetOrganizationPolicyListPolicyDenyArray) ToGetOrganizationPolicyListPolicyDenyArrayOutputWithContext

func (i GetOrganizationPolicyListPolicyDenyArray) ToGetOrganizationPolicyListPolicyDenyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyDenyArrayOutput

type GetOrganizationPolicyListPolicyDenyArrayInput

type GetOrganizationPolicyListPolicyDenyArrayInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyDenyArrayOutput() GetOrganizationPolicyListPolicyDenyArrayOutput
	ToGetOrganizationPolicyListPolicyDenyArrayOutputWithContext(context.Context) GetOrganizationPolicyListPolicyDenyArrayOutput
}

GetOrganizationPolicyListPolicyDenyArrayInput is an input type that accepts GetOrganizationPolicyListPolicyDenyArray and GetOrganizationPolicyListPolicyDenyArrayOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyDenyArrayInput` via:

GetOrganizationPolicyListPolicyDenyArray{ GetOrganizationPolicyListPolicyDenyArgs{...} }

type GetOrganizationPolicyListPolicyDenyArrayOutput

type GetOrganizationPolicyListPolicyDenyArrayOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyDenyArrayOutput) ElementType

func (GetOrganizationPolicyListPolicyDenyArrayOutput) Index

func (GetOrganizationPolicyListPolicyDenyArrayOutput) ToGetOrganizationPolicyListPolicyDenyArrayOutput

func (o GetOrganizationPolicyListPolicyDenyArrayOutput) ToGetOrganizationPolicyListPolicyDenyArrayOutput() GetOrganizationPolicyListPolicyDenyArrayOutput

func (GetOrganizationPolicyListPolicyDenyArrayOutput) ToGetOrganizationPolicyListPolicyDenyArrayOutputWithContext

func (o GetOrganizationPolicyListPolicyDenyArrayOutput) ToGetOrganizationPolicyListPolicyDenyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyDenyArrayOutput

type GetOrganizationPolicyListPolicyDenyInput

type GetOrganizationPolicyListPolicyDenyInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyDenyOutput() GetOrganizationPolicyListPolicyDenyOutput
	ToGetOrganizationPolicyListPolicyDenyOutputWithContext(context.Context) GetOrganizationPolicyListPolicyDenyOutput
}

GetOrganizationPolicyListPolicyDenyInput is an input type that accepts GetOrganizationPolicyListPolicyDenyArgs and GetOrganizationPolicyListPolicyDenyOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyDenyInput` via:

GetOrganizationPolicyListPolicyDenyArgs{...}

type GetOrganizationPolicyListPolicyDenyOutput

type GetOrganizationPolicyListPolicyDenyOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyDenyOutput) All

func (GetOrganizationPolicyListPolicyDenyOutput) ElementType

func (GetOrganizationPolicyListPolicyDenyOutput) ToGetOrganizationPolicyListPolicyDenyOutput

func (o GetOrganizationPolicyListPolicyDenyOutput) ToGetOrganizationPolicyListPolicyDenyOutput() GetOrganizationPolicyListPolicyDenyOutput

func (GetOrganizationPolicyListPolicyDenyOutput) ToGetOrganizationPolicyListPolicyDenyOutputWithContext

func (o GetOrganizationPolicyListPolicyDenyOutput) ToGetOrganizationPolicyListPolicyDenyOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyDenyOutput

func (GetOrganizationPolicyListPolicyDenyOutput) Values

type GetOrganizationPolicyListPolicyInput

type GetOrganizationPolicyListPolicyInput interface {
	pulumi.Input

	ToGetOrganizationPolicyListPolicyOutput() GetOrganizationPolicyListPolicyOutput
	ToGetOrganizationPolicyListPolicyOutputWithContext(context.Context) GetOrganizationPolicyListPolicyOutput
}

GetOrganizationPolicyListPolicyInput is an input type that accepts GetOrganizationPolicyListPolicyArgs and GetOrganizationPolicyListPolicyOutput values. You can construct a concrete instance of `GetOrganizationPolicyListPolicyInput` via:

GetOrganizationPolicyListPolicyArgs{...}

type GetOrganizationPolicyListPolicyOutput

type GetOrganizationPolicyListPolicyOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyListPolicyOutput) Allows

func (GetOrganizationPolicyListPolicyOutput) Denies

func (GetOrganizationPolicyListPolicyOutput) ElementType

func (GetOrganizationPolicyListPolicyOutput) InheritFromParent

func (GetOrganizationPolicyListPolicyOutput) SuggestedValue

func (GetOrganizationPolicyListPolicyOutput) ToGetOrganizationPolicyListPolicyOutput

func (o GetOrganizationPolicyListPolicyOutput) ToGetOrganizationPolicyListPolicyOutput() GetOrganizationPolicyListPolicyOutput

func (GetOrganizationPolicyListPolicyOutput) ToGetOrganizationPolicyListPolicyOutputWithContext

func (o GetOrganizationPolicyListPolicyOutput) ToGetOrganizationPolicyListPolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyListPolicyOutput

type GetOrganizationPolicyRestorePolicy

type GetOrganizationPolicyRestorePolicy struct {
	Default bool `pulumi:"default"`
}

type GetOrganizationPolicyRestorePolicyArgs

type GetOrganizationPolicyRestorePolicyArgs struct {
	Default pulumi.BoolInput `pulumi:"default"`
}

func (GetOrganizationPolicyRestorePolicyArgs) ElementType

func (GetOrganizationPolicyRestorePolicyArgs) ToGetOrganizationPolicyRestorePolicyOutput

func (i GetOrganizationPolicyRestorePolicyArgs) ToGetOrganizationPolicyRestorePolicyOutput() GetOrganizationPolicyRestorePolicyOutput

func (GetOrganizationPolicyRestorePolicyArgs) ToGetOrganizationPolicyRestorePolicyOutputWithContext

func (i GetOrganizationPolicyRestorePolicyArgs) ToGetOrganizationPolicyRestorePolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyRestorePolicyOutput

type GetOrganizationPolicyRestorePolicyArray

type GetOrganizationPolicyRestorePolicyArray []GetOrganizationPolicyRestorePolicyInput

func (GetOrganizationPolicyRestorePolicyArray) ElementType

func (GetOrganizationPolicyRestorePolicyArray) ToGetOrganizationPolicyRestorePolicyArrayOutput

func (i GetOrganizationPolicyRestorePolicyArray) ToGetOrganizationPolicyRestorePolicyArrayOutput() GetOrganizationPolicyRestorePolicyArrayOutput

func (GetOrganizationPolicyRestorePolicyArray) ToGetOrganizationPolicyRestorePolicyArrayOutputWithContext

func (i GetOrganizationPolicyRestorePolicyArray) ToGetOrganizationPolicyRestorePolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyRestorePolicyArrayOutput

type GetOrganizationPolicyRestorePolicyArrayInput

type GetOrganizationPolicyRestorePolicyArrayInput interface {
	pulumi.Input

	ToGetOrganizationPolicyRestorePolicyArrayOutput() GetOrganizationPolicyRestorePolicyArrayOutput
	ToGetOrganizationPolicyRestorePolicyArrayOutputWithContext(context.Context) GetOrganizationPolicyRestorePolicyArrayOutput
}

GetOrganizationPolicyRestorePolicyArrayInput is an input type that accepts GetOrganizationPolicyRestorePolicyArray and GetOrganizationPolicyRestorePolicyArrayOutput values. You can construct a concrete instance of `GetOrganizationPolicyRestorePolicyArrayInput` via:

GetOrganizationPolicyRestorePolicyArray{ GetOrganizationPolicyRestorePolicyArgs{...} }

type GetOrganizationPolicyRestorePolicyArrayOutput

type GetOrganizationPolicyRestorePolicyArrayOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyRestorePolicyArrayOutput) ElementType

func (GetOrganizationPolicyRestorePolicyArrayOutput) Index

func (GetOrganizationPolicyRestorePolicyArrayOutput) ToGetOrganizationPolicyRestorePolicyArrayOutput

func (o GetOrganizationPolicyRestorePolicyArrayOutput) ToGetOrganizationPolicyRestorePolicyArrayOutput() GetOrganizationPolicyRestorePolicyArrayOutput

func (GetOrganizationPolicyRestorePolicyArrayOutput) ToGetOrganizationPolicyRestorePolicyArrayOutputWithContext

func (o GetOrganizationPolicyRestorePolicyArrayOutput) ToGetOrganizationPolicyRestorePolicyArrayOutputWithContext(ctx context.Context) GetOrganizationPolicyRestorePolicyArrayOutput

type GetOrganizationPolicyRestorePolicyInput

type GetOrganizationPolicyRestorePolicyInput interface {
	pulumi.Input

	ToGetOrganizationPolicyRestorePolicyOutput() GetOrganizationPolicyRestorePolicyOutput
	ToGetOrganizationPolicyRestorePolicyOutputWithContext(context.Context) GetOrganizationPolicyRestorePolicyOutput
}

GetOrganizationPolicyRestorePolicyInput is an input type that accepts GetOrganizationPolicyRestorePolicyArgs and GetOrganizationPolicyRestorePolicyOutput values. You can construct a concrete instance of `GetOrganizationPolicyRestorePolicyInput` via:

GetOrganizationPolicyRestorePolicyArgs{...}

type GetOrganizationPolicyRestorePolicyOutput

type GetOrganizationPolicyRestorePolicyOutput struct{ *pulumi.OutputState }

func (GetOrganizationPolicyRestorePolicyOutput) Default

func (GetOrganizationPolicyRestorePolicyOutput) ElementType

func (GetOrganizationPolicyRestorePolicyOutput) ToGetOrganizationPolicyRestorePolicyOutput

func (o GetOrganizationPolicyRestorePolicyOutput) ToGetOrganizationPolicyRestorePolicyOutput() GetOrganizationPolicyRestorePolicyOutput

func (GetOrganizationPolicyRestorePolicyOutput) ToGetOrganizationPolicyRestorePolicyOutputWithContext

func (o GetOrganizationPolicyRestorePolicyOutput) ToGetOrganizationPolicyRestorePolicyOutputWithContext(ctx context.Context) GetOrganizationPolicyRestorePolicyOutput

type GetProjectArgs

type GetProjectArgs struct {
	// A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters).
	Filter string `pulumi:"filter"`
}

A collection of arguments for invoking getProject.

type GetProjectOutputArgs added in v5.21.0

type GetProjectOutputArgs struct {
	// A string filter as defined in the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list#query-parameters).
	Filter pulumi.StringInput `pulumi:"filter"`
}

A collection of arguments for invoking getProject.

func (GetProjectOutputArgs) ElementType added in v5.21.0

func (GetProjectOutputArgs) ElementType() reflect.Type

type GetProjectProject

type GetProjectProject struct {
	CreateTime     string            `pulumi:"createTime"`
	Labels         map[string]string `pulumi:"labels"`
	LifecycleState string            `pulumi:"lifecycleState"`
	Name           string            `pulumi:"name"`
	Number         string            `pulumi:"number"`
	Parent         map[string]string `pulumi:"parent"`
	// The project id of the project.
	ProjectId string `pulumi:"projectId"`
}

type GetProjectProjectArgs

type GetProjectProjectArgs struct {
	CreateTime     pulumi.StringInput    `pulumi:"createTime"`
	Labels         pulumi.StringMapInput `pulumi:"labels"`
	LifecycleState pulumi.StringInput    `pulumi:"lifecycleState"`
	Name           pulumi.StringInput    `pulumi:"name"`
	Number         pulumi.StringInput    `pulumi:"number"`
	Parent         pulumi.StringMapInput `pulumi:"parent"`
	// The project id of the project.
	ProjectId pulumi.StringInput `pulumi:"projectId"`
}

func (GetProjectProjectArgs) ElementType

func (GetProjectProjectArgs) ElementType() reflect.Type

func (GetProjectProjectArgs) ToGetProjectProjectOutput

func (i GetProjectProjectArgs) ToGetProjectProjectOutput() GetProjectProjectOutput

func (GetProjectProjectArgs) ToGetProjectProjectOutputWithContext

func (i GetProjectProjectArgs) ToGetProjectProjectOutputWithContext(ctx context.Context) GetProjectProjectOutput

type GetProjectProjectArray

type GetProjectProjectArray []GetProjectProjectInput

func (GetProjectProjectArray) ElementType

func (GetProjectProjectArray) ElementType() reflect.Type

func (GetProjectProjectArray) ToGetProjectProjectArrayOutput

func (i GetProjectProjectArray) ToGetProjectProjectArrayOutput() GetProjectProjectArrayOutput

func (GetProjectProjectArray) ToGetProjectProjectArrayOutputWithContext

func (i GetProjectProjectArray) ToGetProjectProjectArrayOutputWithContext(ctx context.Context) GetProjectProjectArrayOutput

type GetProjectProjectArrayInput

type GetProjectProjectArrayInput interface {
	pulumi.Input

	ToGetProjectProjectArrayOutput() GetProjectProjectArrayOutput
	ToGetProjectProjectArrayOutputWithContext(context.Context) GetProjectProjectArrayOutput
}

GetProjectProjectArrayInput is an input type that accepts GetProjectProjectArray and GetProjectProjectArrayOutput values. You can construct a concrete instance of `GetProjectProjectArrayInput` via:

GetProjectProjectArray{ GetProjectProjectArgs{...} }

type GetProjectProjectArrayOutput

type GetProjectProjectArrayOutput struct{ *pulumi.OutputState }

func (GetProjectProjectArrayOutput) ElementType

func (GetProjectProjectArrayOutput) Index

func (GetProjectProjectArrayOutput) ToGetProjectProjectArrayOutput

func (o GetProjectProjectArrayOutput) ToGetProjectProjectArrayOutput() GetProjectProjectArrayOutput

func (GetProjectProjectArrayOutput) ToGetProjectProjectArrayOutputWithContext

func (o GetProjectProjectArrayOutput) ToGetProjectProjectArrayOutputWithContext(ctx context.Context) GetProjectProjectArrayOutput

type GetProjectProjectInput

type GetProjectProjectInput interface {
	pulumi.Input

	ToGetProjectProjectOutput() GetProjectProjectOutput
	ToGetProjectProjectOutputWithContext(context.Context) GetProjectProjectOutput
}

GetProjectProjectInput is an input type that accepts GetProjectProjectArgs and GetProjectProjectOutput values. You can construct a concrete instance of `GetProjectProjectInput` via:

GetProjectProjectArgs{...}

type GetProjectProjectOutput

type GetProjectProjectOutput struct{ *pulumi.OutputState }

func (GetProjectProjectOutput) CreateTime

func (GetProjectProjectOutput) ElementType

func (GetProjectProjectOutput) ElementType() reflect.Type

func (GetProjectProjectOutput) Labels

func (GetProjectProjectOutput) LifecycleState

func (o GetProjectProjectOutput) LifecycleState() pulumi.StringOutput

func (GetProjectProjectOutput) Name

func (GetProjectProjectOutput) Number

func (GetProjectProjectOutput) Parent

func (GetProjectProjectOutput) ProjectId

The project id of the project.

func (GetProjectProjectOutput) ToGetProjectProjectOutput

func (o GetProjectProjectOutput) ToGetProjectProjectOutput() GetProjectProjectOutput

func (GetProjectProjectOutput) ToGetProjectProjectOutputWithContext

func (o GetProjectProjectOutput) ToGetProjectProjectOutputWithContext(ctx context.Context) GetProjectProjectOutput

type GetProjectResult

type GetProjectResult struct {
	Filter string `pulumi:"filter"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// A list of projects matching the provided filter. Structure is defined below.
	Projects []GetProjectProject `pulumi:"projects"`
}

A collection of values returned by getProject.

func GetProject

func GetProject(ctx *pulumi.Context, args *GetProjectArgs, opts ...pulumi.InvokeOption) (*GetProjectResult, error)

Retrieve information about a set of projects based on a filter. See the [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list) for more details.

## Example Usage ### Searching For Projects About To Be Deleted In An Org

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		my_org_projects, err := projects.GetProject(ctx, &projects.GetProjectArgs{
			Filter: "parent.id:012345678910 lifecycleState:DELETE_REQUESTED",
		}, nil)
		if err != nil {
			return err
		}
		opt0 := my_org_projects.Projects[0].ProjectId
		_, err = organizations.LookupProject(ctx, &organizations.LookupProjectArgs{
			ProjectId: &opt0,
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type GetProjectResultOutput added in v5.21.0

type GetProjectResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getProject.

func GetProjectOutput added in v5.21.0

func GetProjectOutput(ctx *pulumi.Context, args GetProjectOutputArgs, opts ...pulumi.InvokeOption) GetProjectResultOutput

func (GetProjectResultOutput) ElementType added in v5.21.0

func (GetProjectResultOutput) ElementType() reflect.Type

func (GetProjectResultOutput) Filter added in v5.21.0

func (GetProjectResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (GetProjectResultOutput) Projects added in v5.21.0

A list of projects matching the provided filter. Structure is defined below.

func (GetProjectResultOutput) ToGetProjectResultOutput added in v5.21.0

func (o GetProjectResultOutput) ToGetProjectResultOutput() GetProjectResultOutput

func (GetProjectResultOutput) ToGetProjectResultOutputWithContext added in v5.21.0

func (o GetProjectResultOutput) ToGetProjectResultOutputWithContext(ctx context.Context) GetProjectResultOutput

type IAMAuditConfig

type IAMAuditConfig struct {
	pulumi.CustomResourceState

	// The configuration for logging of each type of permission.  This can be specified multiple times.  Structure is documented below.
	AuditLogConfigs IAMAuditConfigAuditLogConfigArrayOutput `pulumi:"auditLogConfigs"`
	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringOutput `pulumi:"project"`
	// Service which will be enabled for audit logging.  The special value `allServices` covers all services.  Note that if there are google\_project\_iam\_audit\_config resources covering both `allServices` and a specific service then the union of the two AuditConfigs is used for that service: the `logTypes` specified in each `auditLogConfig` are enabled, and the `exemptedMembers` in each `auditLogConfig` are exempted.
	Service pulumi.StringOutput `pulumi:"service"`
}

Four different resources help you manage your IAM policy for a project. Each of these resources serves a different use case:

* `projects.IAMPolicy`: Authoritative. Sets the IAM policy for the project and replaces any existing policy already attached. * `projects.IAMBinding`: 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 project are preserved. * `projects.IAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the project are preserved. * `projects.IAMAuditConfig`: Authoritative for a given service. Updates the IAM policy to enable audit logging for the given service.

> **Note:** `projects.IAMPolicy` **cannot** be used in conjunction with `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig` or they will fight over what your policy should be.

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

> **Note:** The underlying API method `projects.setIamPolicy` has a lot of constraints which are documented [here](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy). In addition to these constraints,

IAM Conditions cannot be used with Basic Roles such as Owner. Violating these constraints will result in the API returning 400 error code so please review these if you encounter errors with this resource.

## google\_project\_iam\_policy

> **Be careful!** You can accidentally lock yourself out of your project

using this resource. Deleting a `projects.IAMPolicy` removes access
from anyone without organization-level access to the project. Proceed with caution.
It's not recommended to use `projects.IAMPolicy` with your provider project
to avoid locking yourself out, and it should generally only be used with projects
fully managed by this provider. If you do use this resource, it is recommended to **import** the policy before
applying the change.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			Project:    pulumi.String("your-project-id"),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Condition: organizations.GetIAMPolicyBindingCondition{
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
						Title:       "expires_after_2019_12_31",
					},
					Members: []string{
						"user:jane@example.com",
					},
					Role: "roles/compute.admin",
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			PolicyData: pulumi.String(admin.PolicyData),
			Project:    pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Condition: &projects.IAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/container.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Condition: &projects.IAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/firebase.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_audit\_config

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMAuditConfig(ctx, "project", &projects.IAMAuditConfigArgs{
			AuditLogConfigs: projects.IAMAuditConfigAuditLogConfigArray{
				&projects.IAMAuditConfigAuditLogConfigArgs{
					LogType: pulumi.String("ADMIN_READ"),
				},
				&projects.IAMAuditConfigAuditLogConfigArgs{
					ExemptedMembers: pulumi.StringArray{
						pulumi.String("user:joebloggs@hashicorp.com"),
					},
					LogType: pulumi.String("DATA_READ"),
				},
			},
			Project: pulumi.String("your-project-id"),
			Service: pulumi.String("allServices"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `project_id`, role, and member e.g.

```sh

$ pulumi import gcp:projects/iAMAuditConfig:IAMAuditConfig my_project "your-project-id roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `project_id` and role, e.g.

```sh

$ pulumi import gcp:projects/iAMAuditConfig:IAMAuditConfig my_project "your-project-id roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `project_id`.

```sh

$ pulumi import gcp:projects/iAMAuditConfig:IAMAuditConfig my_project your-project-id

```

IAM audit config imports use the identifier of the resource in question and the service, e.g.

```sh

$ pulumi import gcp:projects/iAMAuditConfig:IAMAuditConfig my_project "your-project-id foo.googleapis.com"

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetIAMAuditConfig

func GetIAMAuditConfig(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IAMAuditConfigState, opts ...pulumi.ResourceOption) (*IAMAuditConfig, error)

GetIAMAuditConfig gets an existing IAMAuditConfig 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 NewIAMAuditConfig

func NewIAMAuditConfig(ctx *pulumi.Context,
	name string, args *IAMAuditConfigArgs, opts ...pulumi.ResourceOption) (*IAMAuditConfig, error)

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

func (*IAMAuditConfig) ElementType

func (*IAMAuditConfig) ElementType() reflect.Type

func (*IAMAuditConfig) ToIAMAuditConfigOutput

func (i *IAMAuditConfig) ToIAMAuditConfigOutput() IAMAuditConfigOutput

func (*IAMAuditConfig) ToIAMAuditConfigOutputWithContext

func (i *IAMAuditConfig) ToIAMAuditConfigOutputWithContext(ctx context.Context) IAMAuditConfigOutput

func (*IAMAuditConfig) ToIAMAuditConfigPtrOutput

func (i *IAMAuditConfig) ToIAMAuditConfigPtrOutput() IAMAuditConfigPtrOutput

func (*IAMAuditConfig) ToIAMAuditConfigPtrOutputWithContext

func (i *IAMAuditConfig) ToIAMAuditConfigPtrOutputWithContext(ctx context.Context) IAMAuditConfigPtrOutput

type IAMAuditConfigArgs

type IAMAuditConfigArgs struct {
	// The configuration for logging of each type of permission.  This can be specified multiple times.  Structure is documented below.
	AuditLogConfigs IAMAuditConfigAuditLogConfigArrayInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// Service which will be enabled for audit logging.  The special value `allServices` covers all services.  Note that if there are google\_project\_iam\_audit\_config resources covering both `allServices` and a specific service then the union of the two AuditConfigs is used for that service: the `logTypes` specified in each `auditLogConfig` are enabled, and the `exemptedMembers` in each `auditLogConfig` are exempted.
	Service pulumi.StringInput
}

The set of arguments for constructing a IAMAuditConfig resource.

func (IAMAuditConfigArgs) ElementType

func (IAMAuditConfigArgs) ElementType() reflect.Type

type IAMAuditConfigArray

type IAMAuditConfigArray []IAMAuditConfigInput

func (IAMAuditConfigArray) ElementType

func (IAMAuditConfigArray) ElementType() reflect.Type

func (IAMAuditConfigArray) ToIAMAuditConfigArrayOutput

func (i IAMAuditConfigArray) ToIAMAuditConfigArrayOutput() IAMAuditConfigArrayOutput

func (IAMAuditConfigArray) ToIAMAuditConfigArrayOutputWithContext

func (i IAMAuditConfigArray) ToIAMAuditConfigArrayOutputWithContext(ctx context.Context) IAMAuditConfigArrayOutput

type IAMAuditConfigArrayInput

type IAMAuditConfigArrayInput interface {
	pulumi.Input

	ToIAMAuditConfigArrayOutput() IAMAuditConfigArrayOutput
	ToIAMAuditConfigArrayOutputWithContext(context.Context) IAMAuditConfigArrayOutput
}

IAMAuditConfigArrayInput is an input type that accepts IAMAuditConfigArray and IAMAuditConfigArrayOutput values. You can construct a concrete instance of `IAMAuditConfigArrayInput` via:

IAMAuditConfigArray{ IAMAuditConfigArgs{...} }

type IAMAuditConfigArrayOutput

type IAMAuditConfigArrayOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigArrayOutput) ElementType

func (IAMAuditConfigArrayOutput) ElementType() reflect.Type

func (IAMAuditConfigArrayOutput) Index

func (IAMAuditConfigArrayOutput) ToIAMAuditConfigArrayOutput

func (o IAMAuditConfigArrayOutput) ToIAMAuditConfigArrayOutput() IAMAuditConfigArrayOutput

func (IAMAuditConfigArrayOutput) ToIAMAuditConfigArrayOutputWithContext

func (o IAMAuditConfigArrayOutput) ToIAMAuditConfigArrayOutputWithContext(ctx context.Context) IAMAuditConfigArrayOutput

type IAMAuditConfigAuditLogConfig

type IAMAuditConfigAuditLogConfig struct {
	// Identities that do not cause logging for this type of permission.  The format is the same as that for `members`.
	ExemptedMembers []string `pulumi:"exemptedMembers"`
	// Permission type for which logging is to be configured.  Must be one of `DATA_READ`, `DATA_WRITE`, or `ADMIN_READ`.
	LogType string `pulumi:"logType"`
}

type IAMAuditConfigAuditLogConfigArgs

type IAMAuditConfigAuditLogConfigArgs struct {
	// Identities that do not cause logging for this type of permission.  The format is the same as that for `members`.
	ExemptedMembers pulumi.StringArrayInput `pulumi:"exemptedMembers"`
	// Permission type for which logging is to be configured.  Must be one of `DATA_READ`, `DATA_WRITE`, or `ADMIN_READ`.
	LogType pulumi.StringInput `pulumi:"logType"`
}

func (IAMAuditConfigAuditLogConfigArgs) ElementType

func (IAMAuditConfigAuditLogConfigArgs) ToIAMAuditConfigAuditLogConfigOutput

func (i IAMAuditConfigAuditLogConfigArgs) ToIAMAuditConfigAuditLogConfigOutput() IAMAuditConfigAuditLogConfigOutput

func (IAMAuditConfigAuditLogConfigArgs) ToIAMAuditConfigAuditLogConfigOutputWithContext

func (i IAMAuditConfigAuditLogConfigArgs) ToIAMAuditConfigAuditLogConfigOutputWithContext(ctx context.Context) IAMAuditConfigAuditLogConfigOutput

type IAMAuditConfigAuditLogConfigArray

type IAMAuditConfigAuditLogConfigArray []IAMAuditConfigAuditLogConfigInput

func (IAMAuditConfigAuditLogConfigArray) ElementType

func (IAMAuditConfigAuditLogConfigArray) ToIAMAuditConfigAuditLogConfigArrayOutput

func (i IAMAuditConfigAuditLogConfigArray) ToIAMAuditConfigAuditLogConfigArrayOutput() IAMAuditConfigAuditLogConfigArrayOutput

func (IAMAuditConfigAuditLogConfigArray) ToIAMAuditConfigAuditLogConfigArrayOutputWithContext

func (i IAMAuditConfigAuditLogConfigArray) ToIAMAuditConfigAuditLogConfigArrayOutputWithContext(ctx context.Context) IAMAuditConfigAuditLogConfigArrayOutput

type IAMAuditConfigAuditLogConfigArrayInput

type IAMAuditConfigAuditLogConfigArrayInput interface {
	pulumi.Input

	ToIAMAuditConfigAuditLogConfigArrayOutput() IAMAuditConfigAuditLogConfigArrayOutput
	ToIAMAuditConfigAuditLogConfigArrayOutputWithContext(context.Context) IAMAuditConfigAuditLogConfigArrayOutput
}

IAMAuditConfigAuditLogConfigArrayInput is an input type that accepts IAMAuditConfigAuditLogConfigArray and IAMAuditConfigAuditLogConfigArrayOutput values. You can construct a concrete instance of `IAMAuditConfigAuditLogConfigArrayInput` via:

IAMAuditConfigAuditLogConfigArray{ IAMAuditConfigAuditLogConfigArgs{...} }

type IAMAuditConfigAuditLogConfigArrayOutput

type IAMAuditConfigAuditLogConfigArrayOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigAuditLogConfigArrayOutput) ElementType

func (IAMAuditConfigAuditLogConfigArrayOutput) Index

func (IAMAuditConfigAuditLogConfigArrayOutput) ToIAMAuditConfigAuditLogConfigArrayOutput

func (o IAMAuditConfigAuditLogConfigArrayOutput) ToIAMAuditConfigAuditLogConfigArrayOutput() IAMAuditConfigAuditLogConfigArrayOutput

func (IAMAuditConfigAuditLogConfigArrayOutput) ToIAMAuditConfigAuditLogConfigArrayOutputWithContext

func (o IAMAuditConfigAuditLogConfigArrayOutput) ToIAMAuditConfigAuditLogConfigArrayOutputWithContext(ctx context.Context) IAMAuditConfigAuditLogConfigArrayOutput

type IAMAuditConfigAuditLogConfigInput

type IAMAuditConfigAuditLogConfigInput interface {
	pulumi.Input

	ToIAMAuditConfigAuditLogConfigOutput() IAMAuditConfigAuditLogConfigOutput
	ToIAMAuditConfigAuditLogConfigOutputWithContext(context.Context) IAMAuditConfigAuditLogConfigOutput
}

IAMAuditConfigAuditLogConfigInput is an input type that accepts IAMAuditConfigAuditLogConfigArgs and IAMAuditConfigAuditLogConfigOutput values. You can construct a concrete instance of `IAMAuditConfigAuditLogConfigInput` via:

IAMAuditConfigAuditLogConfigArgs{...}

type IAMAuditConfigAuditLogConfigOutput

type IAMAuditConfigAuditLogConfigOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigAuditLogConfigOutput) ElementType

func (IAMAuditConfigAuditLogConfigOutput) ExemptedMembers

Identities that do not cause logging for this type of permission. The format is the same as that for `members`.

func (IAMAuditConfigAuditLogConfigOutput) LogType

Permission type for which logging is to be configured. Must be one of `DATA_READ`, `DATA_WRITE`, or `ADMIN_READ`.

func (IAMAuditConfigAuditLogConfigOutput) ToIAMAuditConfigAuditLogConfigOutput

func (o IAMAuditConfigAuditLogConfigOutput) ToIAMAuditConfigAuditLogConfigOutput() IAMAuditConfigAuditLogConfigOutput

func (IAMAuditConfigAuditLogConfigOutput) ToIAMAuditConfigAuditLogConfigOutputWithContext

func (o IAMAuditConfigAuditLogConfigOutput) ToIAMAuditConfigAuditLogConfigOutputWithContext(ctx context.Context) IAMAuditConfigAuditLogConfigOutput

type IAMAuditConfigInput

type IAMAuditConfigInput interface {
	pulumi.Input

	ToIAMAuditConfigOutput() IAMAuditConfigOutput
	ToIAMAuditConfigOutputWithContext(ctx context.Context) IAMAuditConfigOutput
}

type IAMAuditConfigMap

type IAMAuditConfigMap map[string]IAMAuditConfigInput

func (IAMAuditConfigMap) ElementType

func (IAMAuditConfigMap) ElementType() reflect.Type

func (IAMAuditConfigMap) ToIAMAuditConfigMapOutput

func (i IAMAuditConfigMap) ToIAMAuditConfigMapOutput() IAMAuditConfigMapOutput

func (IAMAuditConfigMap) ToIAMAuditConfigMapOutputWithContext

func (i IAMAuditConfigMap) ToIAMAuditConfigMapOutputWithContext(ctx context.Context) IAMAuditConfigMapOutput

type IAMAuditConfigMapInput

type IAMAuditConfigMapInput interface {
	pulumi.Input

	ToIAMAuditConfigMapOutput() IAMAuditConfigMapOutput
	ToIAMAuditConfigMapOutputWithContext(context.Context) IAMAuditConfigMapOutput
}

IAMAuditConfigMapInput is an input type that accepts IAMAuditConfigMap and IAMAuditConfigMapOutput values. You can construct a concrete instance of `IAMAuditConfigMapInput` via:

IAMAuditConfigMap{ "key": IAMAuditConfigArgs{...} }

type IAMAuditConfigMapOutput

type IAMAuditConfigMapOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigMapOutput) ElementType

func (IAMAuditConfigMapOutput) ElementType() reflect.Type

func (IAMAuditConfigMapOutput) MapIndex

func (IAMAuditConfigMapOutput) ToIAMAuditConfigMapOutput

func (o IAMAuditConfigMapOutput) ToIAMAuditConfigMapOutput() IAMAuditConfigMapOutput

func (IAMAuditConfigMapOutput) ToIAMAuditConfigMapOutputWithContext

func (o IAMAuditConfigMapOutput) ToIAMAuditConfigMapOutputWithContext(ctx context.Context) IAMAuditConfigMapOutput

type IAMAuditConfigOutput

type IAMAuditConfigOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigOutput) ElementType

func (IAMAuditConfigOutput) ElementType() reflect.Type

func (IAMAuditConfigOutput) ToIAMAuditConfigOutput

func (o IAMAuditConfigOutput) ToIAMAuditConfigOutput() IAMAuditConfigOutput

func (IAMAuditConfigOutput) ToIAMAuditConfigOutputWithContext

func (o IAMAuditConfigOutput) ToIAMAuditConfigOutputWithContext(ctx context.Context) IAMAuditConfigOutput

func (IAMAuditConfigOutput) ToIAMAuditConfigPtrOutput

func (o IAMAuditConfigOutput) ToIAMAuditConfigPtrOutput() IAMAuditConfigPtrOutput

func (IAMAuditConfigOutput) ToIAMAuditConfigPtrOutputWithContext

func (o IAMAuditConfigOutput) ToIAMAuditConfigPtrOutputWithContext(ctx context.Context) IAMAuditConfigPtrOutput

type IAMAuditConfigPtrInput

type IAMAuditConfigPtrInput interface {
	pulumi.Input

	ToIAMAuditConfigPtrOutput() IAMAuditConfigPtrOutput
	ToIAMAuditConfigPtrOutputWithContext(ctx context.Context) IAMAuditConfigPtrOutput
}

type IAMAuditConfigPtrOutput

type IAMAuditConfigPtrOutput struct{ *pulumi.OutputState }

func (IAMAuditConfigPtrOutput) Elem added in v5.21.0

func (IAMAuditConfigPtrOutput) ElementType

func (IAMAuditConfigPtrOutput) ElementType() reflect.Type

func (IAMAuditConfigPtrOutput) ToIAMAuditConfigPtrOutput

func (o IAMAuditConfigPtrOutput) ToIAMAuditConfigPtrOutput() IAMAuditConfigPtrOutput

func (IAMAuditConfigPtrOutput) ToIAMAuditConfigPtrOutputWithContext

func (o IAMAuditConfigPtrOutput) ToIAMAuditConfigPtrOutputWithContext(ctx context.Context) IAMAuditConfigPtrOutput

type IAMAuditConfigState

type IAMAuditConfigState struct {
	// The configuration for logging of each type of permission.  This can be specified multiple times.  Structure is documented below.
	AuditLogConfigs IAMAuditConfigAuditLogConfigArrayInput
	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringPtrInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// Service which will be enabled for audit logging.  The special value `allServices` covers all services.  Note that if there are google\_project\_iam\_audit\_config resources covering both `allServices` and a specific service then the union of the two AuditConfigs is used for that service: the `logTypes` specified in each `auditLogConfig` are enabled, and the `exemptedMembers` in each `auditLogConfig` are exempted.
	Service pulumi.StringPtrInput
}

func (IAMAuditConfigState) ElementType

func (IAMAuditConfigState) ElementType() reflect.Type

type IAMBinding

type IAMBinding struct {
	pulumi.CustomResourceState

	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMBindingConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the project's IAM policy.
	Etag    pulumi.StringOutput      `pulumi:"etag"`
	Members pulumi.StringArrayOutput `pulumi:"members"`
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `projects.IAMBinding` 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"`
}

Four different resources help you manage your IAM policy for a project. Each of these resources serves a different use case:

* `projects.IAMPolicy`: Authoritative. Sets the IAM policy for the project and replaces any existing policy already attached. * `projects.IAMBinding`: 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 project are preserved. * `projects.IAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the project are preserved. * `projects.IAMAuditConfig`: Authoritative for a given service. Updates the IAM policy to enable audit logging for the given service.

> **Note:** `projects.IAMPolicy` **cannot** be used in conjunction with `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig` or they will fight over what your policy should be.

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

> **Note:** The underlying API method `projects.setIamPolicy` has a lot of constraints which are documented [here](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy). In addition to these constraints,

IAM Conditions cannot be used with Basic Roles such as Owner. Violating these constraints will result in the API returning 400 error code so please review these if you encounter errors with this resource.

## google\_project\_iam\_policy

> **Be careful!** You can accidentally lock yourself out of your project

using this resource. Deleting a `projects.IAMPolicy` removes access
from anyone without organization-level access to the project. Proceed with caution.
It's not recommended to use `projects.IAMPolicy` with your provider project
to avoid locking yourself out, and it should generally only be used with projects
fully managed by this provider. If you do use this resource, it is recommended to **import** the policy before
applying the change.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			Project:    pulumi.String("your-project-id"),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Condition: organizations.GetIAMPolicyBindingCondition{
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
						Title:       "expires_after_2019_12_31",
					},
					Members: []string{
						"user:jane@example.com",
					},
					Role: "roles/compute.admin",
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			PolicyData: pulumi.String(admin.PolicyData),
			Project:    pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Condition: &projects.IAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/container.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Condition: &projects.IAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/firebase.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_audit\_config

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMAuditConfig(ctx, "project", &projects.IAMAuditConfigArgs{
			AuditLogConfigs: projects.IAMAuditConfigAuditLogConfigArray{
				&projects.IAMAuditConfigAuditLogConfigArgs{
					LogType: pulumi.String("ADMIN_READ"),
				},
				&projects.IAMAuditConfigAuditLogConfigArgs{
					ExemptedMembers: pulumi.StringArray{
						pulumi.String("user:joebloggs@hashicorp.com"),
					},
					LogType: pulumi.String("DATA_READ"),
				},
			},
			Project: pulumi.String("your-project-id"),
			Service: pulumi.String("allServices"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `project_id`, role, and member e.g.

```sh

$ pulumi import gcp:projects/iAMBinding:IAMBinding my_project "your-project-id roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `project_id` and role, e.g.

```sh

$ pulumi import gcp:projects/iAMBinding:IAMBinding my_project "your-project-id roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `project_id`.

```sh

$ pulumi import gcp:projects/iAMBinding:IAMBinding my_project your-project-id

```

IAM audit config imports use the identifier of the resource in question and the service, e.g.

```sh

$ pulumi import gcp:projects/iAMBinding:IAMBinding my_project "your-project-id foo.googleapis.com"

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetIAMBinding

func GetIAMBinding(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IAMBindingState, opts ...pulumi.ResourceOption) (*IAMBinding, error)

GetIAMBinding gets an existing IAMBinding 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 NewIAMBinding

func NewIAMBinding(ctx *pulumi.Context,
	name string, args *IAMBindingArgs, opts ...pulumi.ResourceOption) (*IAMBinding, error)

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

func (*IAMBinding) ElementType

func (*IAMBinding) ElementType() reflect.Type

func (*IAMBinding) ToIAMBindingOutput

func (i *IAMBinding) ToIAMBindingOutput() IAMBindingOutput

func (*IAMBinding) ToIAMBindingOutputWithContext

func (i *IAMBinding) ToIAMBindingOutputWithContext(ctx context.Context) IAMBindingOutput

func (*IAMBinding) ToIAMBindingPtrOutput

func (i *IAMBinding) ToIAMBindingPtrOutput() IAMBindingPtrOutput

func (*IAMBinding) ToIAMBindingPtrOutputWithContext

func (i *IAMBinding) ToIAMBindingPtrOutputWithContext(ctx context.Context) IAMBindingPtrOutput

type IAMBindingArgs

type IAMBindingArgs struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMBindingConditionPtrInput
	Members   pulumi.StringArrayInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `projects.IAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a IAMBinding resource.

func (IAMBindingArgs) ElementType

func (IAMBindingArgs) ElementType() reflect.Type

type IAMBindingArray

type IAMBindingArray []IAMBindingInput

func (IAMBindingArray) ElementType

func (IAMBindingArray) ElementType() reflect.Type

func (IAMBindingArray) ToIAMBindingArrayOutput

func (i IAMBindingArray) ToIAMBindingArrayOutput() IAMBindingArrayOutput

func (IAMBindingArray) ToIAMBindingArrayOutputWithContext

func (i IAMBindingArray) ToIAMBindingArrayOutputWithContext(ctx context.Context) IAMBindingArrayOutput

type IAMBindingArrayInput

type IAMBindingArrayInput interface {
	pulumi.Input

	ToIAMBindingArrayOutput() IAMBindingArrayOutput
	ToIAMBindingArrayOutputWithContext(context.Context) IAMBindingArrayOutput
}

IAMBindingArrayInput is an input type that accepts IAMBindingArray and IAMBindingArrayOutput values. You can construct a concrete instance of `IAMBindingArrayInput` via:

IAMBindingArray{ IAMBindingArgs{...} }

type IAMBindingArrayOutput

type IAMBindingArrayOutput struct{ *pulumi.OutputState }

func (IAMBindingArrayOutput) ElementType

func (IAMBindingArrayOutput) ElementType() reflect.Type

func (IAMBindingArrayOutput) Index

func (IAMBindingArrayOutput) ToIAMBindingArrayOutput

func (o IAMBindingArrayOutput) ToIAMBindingArrayOutput() IAMBindingArrayOutput

func (IAMBindingArrayOutput) ToIAMBindingArrayOutputWithContext

func (o IAMBindingArrayOutput) ToIAMBindingArrayOutputWithContext(ctx context.Context) IAMBindingArrayOutput

type IAMBindingCondition

type IAMBindingCondition struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	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 IAMBindingConditionArgs

type IAMBindingConditionArgs struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	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 (IAMBindingConditionArgs) ElementType

func (IAMBindingConditionArgs) ElementType() reflect.Type

func (IAMBindingConditionArgs) ToIAMBindingConditionOutput

func (i IAMBindingConditionArgs) ToIAMBindingConditionOutput() IAMBindingConditionOutput

func (IAMBindingConditionArgs) ToIAMBindingConditionOutputWithContext

func (i IAMBindingConditionArgs) ToIAMBindingConditionOutputWithContext(ctx context.Context) IAMBindingConditionOutput

func (IAMBindingConditionArgs) ToIAMBindingConditionPtrOutput

func (i IAMBindingConditionArgs) ToIAMBindingConditionPtrOutput() IAMBindingConditionPtrOutput

func (IAMBindingConditionArgs) ToIAMBindingConditionPtrOutputWithContext

func (i IAMBindingConditionArgs) ToIAMBindingConditionPtrOutputWithContext(ctx context.Context) IAMBindingConditionPtrOutput

type IAMBindingConditionInput

type IAMBindingConditionInput interface {
	pulumi.Input

	ToIAMBindingConditionOutput() IAMBindingConditionOutput
	ToIAMBindingConditionOutputWithContext(context.Context) IAMBindingConditionOutput
}

IAMBindingConditionInput is an input type that accepts IAMBindingConditionArgs and IAMBindingConditionOutput values. You can construct a concrete instance of `IAMBindingConditionInput` via:

IAMBindingConditionArgs{...}

type IAMBindingConditionOutput

type IAMBindingConditionOutput struct{ *pulumi.OutputState }

func (IAMBindingConditionOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (IAMBindingConditionOutput) ElementType

func (IAMBindingConditionOutput) ElementType() reflect.Type

func (IAMBindingConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (IAMBindingConditionOutput) Title

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

func (IAMBindingConditionOutput) ToIAMBindingConditionOutput

func (o IAMBindingConditionOutput) ToIAMBindingConditionOutput() IAMBindingConditionOutput

func (IAMBindingConditionOutput) ToIAMBindingConditionOutputWithContext

func (o IAMBindingConditionOutput) ToIAMBindingConditionOutputWithContext(ctx context.Context) IAMBindingConditionOutput

func (IAMBindingConditionOutput) ToIAMBindingConditionPtrOutput

func (o IAMBindingConditionOutput) ToIAMBindingConditionPtrOutput() IAMBindingConditionPtrOutput

func (IAMBindingConditionOutput) ToIAMBindingConditionPtrOutputWithContext

func (o IAMBindingConditionOutput) ToIAMBindingConditionPtrOutputWithContext(ctx context.Context) IAMBindingConditionPtrOutput

type IAMBindingConditionPtrInput

type IAMBindingConditionPtrInput interface {
	pulumi.Input

	ToIAMBindingConditionPtrOutput() IAMBindingConditionPtrOutput
	ToIAMBindingConditionPtrOutputWithContext(context.Context) IAMBindingConditionPtrOutput
}

IAMBindingConditionPtrInput is an input type that accepts IAMBindingConditionArgs, IAMBindingConditionPtr and IAMBindingConditionPtrOutput values. You can construct a concrete instance of `IAMBindingConditionPtrInput` via:

        IAMBindingConditionArgs{...}

or:

        nil

type IAMBindingConditionPtrOutput

type IAMBindingConditionPtrOutput struct{ *pulumi.OutputState }

func (IAMBindingConditionPtrOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (IAMBindingConditionPtrOutput) Elem

func (IAMBindingConditionPtrOutput) ElementType

func (IAMBindingConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (IAMBindingConditionPtrOutput) Title

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

func (IAMBindingConditionPtrOutput) ToIAMBindingConditionPtrOutput

func (o IAMBindingConditionPtrOutput) ToIAMBindingConditionPtrOutput() IAMBindingConditionPtrOutput

func (IAMBindingConditionPtrOutput) ToIAMBindingConditionPtrOutputWithContext

func (o IAMBindingConditionPtrOutput) ToIAMBindingConditionPtrOutputWithContext(ctx context.Context) IAMBindingConditionPtrOutput

type IAMBindingInput

type IAMBindingInput interface {
	pulumi.Input

	ToIAMBindingOutput() IAMBindingOutput
	ToIAMBindingOutputWithContext(ctx context.Context) IAMBindingOutput
}

type IAMBindingMap

type IAMBindingMap map[string]IAMBindingInput

func (IAMBindingMap) ElementType

func (IAMBindingMap) ElementType() reflect.Type

func (IAMBindingMap) ToIAMBindingMapOutput

func (i IAMBindingMap) ToIAMBindingMapOutput() IAMBindingMapOutput

func (IAMBindingMap) ToIAMBindingMapOutputWithContext

func (i IAMBindingMap) ToIAMBindingMapOutputWithContext(ctx context.Context) IAMBindingMapOutput

type IAMBindingMapInput

type IAMBindingMapInput interface {
	pulumi.Input

	ToIAMBindingMapOutput() IAMBindingMapOutput
	ToIAMBindingMapOutputWithContext(context.Context) IAMBindingMapOutput
}

IAMBindingMapInput is an input type that accepts IAMBindingMap and IAMBindingMapOutput values. You can construct a concrete instance of `IAMBindingMapInput` via:

IAMBindingMap{ "key": IAMBindingArgs{...} }

type IAMBindingMapOutput

type IAMBindingMapOutput struct{ *pulumi.OutputState }

func (IAMBindingMapOutput) ElementType

func (IAMBindingMapOutput) ElementType() reflect.Type

func (IAMBindingMapOutput) MapIndex

func (IAMBindingMapOutput) ToIAMBindingMapOutput

func (o IAMBindingMapOutput) ToIAMBindingMapOutput() IAMBindingMapOutput

func (IAMBindingMapOutput) ToIAMBindingMapOutputWithContext

func (o IAMBindingMapOutput) ToIAMBindingMapOutputWithContext(ctx context.Context) IAMBindingMapOutput

type IAMBindingOutput

type IAMBindingOutput struct{ *pulumi.OutputState }

func (IAMBindingOutput) ElementType

func (IAMBindingOutput) ElementType() reflect.Type

func (IAMBindingOutput) ToIAMBindingOutput

func (o IAMBindingOutput) ToIAMBindingOutput() IAMBindingOutput

func (IAMBindingOutput) ToIAMBindingOutputWithContext

func (o IAMBindingOutput) ToIAMBindingOutputWithContext(ctx context.Context) IAMBindingOutput

func (IAMBindingOutput) ToIAMBindingPtrOutput

func (o IAMBindingOutput) ToIAMBindingPtrOutput() IAMBindingPtrOutput

func (IAMBindingOutput) ToIAMBindingPtrOutputWithContext

func (o IAMBindingOutput) ToIAMBindingPtrOutputWithContext(ctx context.Context) IAMBindingPtrOutput

type IAMBindingPtrInput

type IAMBindingPtrInput interface {
	pulumi.Input

	ToIAMBindingPtrOutput() IAMBindingPtrOutput
	ToIAMBindingPtrOutputWithContext(ctx context.Context) IAMBindingPtrOutput
}

type IAMBindingPtrOutput

type IAMBindingPtrOutput struct{ *pulumi.OutputState }

func (IAMBindingPtrOutput) Elem added in v5.21.0

func (IAMBindingPtrOutput) ElementType

func (IAMBindingPtrOutput) ElementType() reflect.Type

func (IAMBindingPtrOutput) ToIAMBindingPtrOutput

func (o IAMBindingPtrOutput) ToIAMBindingPtrOutput() IAMBindingPtrOutput

func (IAMBindingPtrOutput) ToIAMBindingPtrOutputWithContext

func (o IAMBindingPtrOutput) ToIAMBindingPtrOutputWithContext(ctx context.Context) IAMBindingPtrOutput

type IAMBindingState

type IAMBindingState struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMBindingConditionPtrInput
	// (Computed) The etag of the project's IAM policy.
	Etag    pulumi.StringPtrInput
	Members pulumi.StringArrayInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `projects.IAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (IAMBindingState) ElementType

func (IAMBindingState) ElementType() reflect.Type

type IAMCustomRole

type IAMCustomRole struct {
	pulumi.CustomResourceState

	// (Optional) The current deleted state of the role.
	Deleted pulumi.BoolOutput `pulumi:"deleted"`
	// A human-readable description for the role.
	Description pulumi.StringPtrOutput `pulumi:"description"`
	// The name of the role in the format `projects/{{project}}/roles/{{role_id}}`. Like `id`, this field can be used as a reference in other resources such as IAM role bindings.
	Name pulumi.StringOutput `pulumi:"name"`
	// The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.
	Permissions pulumi.StringArrayOutput `pulumi:"permissions"`
	// The project that the service account will be created in.
	// Defaults to the provider project configuration.
	Project pulumi.StringOutput `pulumi:"project"`
	// The camel case role id to use for this role. Cannot contain `-` characters.
	RoleId pulumi.StringOutput `pulumi:"roleId"`
	// The current launch stage of the role.
	// Defaults to `GA`.
	// List of possible stages is [here](https://cloud.google.com/iam/reference/rest/v1/organizations.roles#Role.RoleLaunchStage).
	Stage pulumi.StringPtrOutput `pulumi:"stage"`
	// A human-readable title for the role.
	Title pulumi.StringOutput `pulumi:"title"`
}

Allows management of a customized Cloud IAM project role. For more information see [the official documentation](https://cloud.google.com/iam/docs/understanding-custom-roles) and [API](https://cloud.google.com/iam/reference/rest/v1/projects.roles).

> **Warning:** Note that custom roles in GCP have the concept of a soft-delete. There are two issues that may arise

from this and how roles are propagated. 1) creating a role may involve undeleting and then updating a role with the
same name, possibly causing confusing behavior between undelete and update. 2) A deleted role is permanently deleted
after 7 days, but it can take up to 30 more days (i.e. between 7 and 37 days after deletion) before the role name is
made available again. This means a deleted role that has been deleted for more than 7 days cannot be changed at all
by the provider, and new roles cannot share that name.

## Example Usage

This snippet creates a customized IAM role.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMCustomRole(ctx, "my_custom_role", &projects.IAMCustomRoleArgs{
			Description: pulumi.String("A description"),
			Permissions: pulumi.StringArray{
				pulumi.String("iam.roles.list"),
				pulumi.String("iam.roles.create"),
				pulumi.String("iam.roles.delete"),
			},
			RoleId: pulumi.String("myCustomRole"),
			Title:  pulumi.String("My Custom Role"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Custom Roles can be imported using any of these accepted formats

```sh

$ pulumi import gcp:projects/iAMCustomRole:IAMCustomRole default projects/{{project}}/roles/{{role_id}}

```

```sh

$ pulumi import gcp:projects/iAMCustomRole:IAMCustomRole default {{project}}/{{role_id}}

```

```sh

$ pulumi import gcp:projects/iAMCustomRole:IAMCustomRole default {{role_id}}

```

func GetIAMCustomRole

func GetIAMCustomRole(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IAMCustomRoleState, opts ...pulumi.ResourceOption) (*IAMCustomRole, error)

GetIAMCustomRole gets an existing IAMCustomRole 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 NewIAMCustomRole

func NewIAMCustomRole(ctx *pulumi.Context,
	name string, args *IAMCustomRoleArgs, opts ...pulumi.ResourceOption) (*IAMCustomRole, error)

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

func (*IAMCustomRole) ElementType

func (*IAMCustomRole) ElementType() reflect.Type

func (*IAMCustomRole) ToIAMCustomRoleOutput

func (i *IAMCustomRole) ToIAMCustomRoleOutput() IAMCustomRoleOutput

func (*IAMCustomRole) ToIAMCustomRoleOutputWithContext

func (i *IAMCustomRole) ToIAMCustomRoleOutputWithContext(ctx context.Context) IAMCustomRoleOutput

func (*IAMCustomRole) ToIAMCustomRolePtrOutput

func (i *IAMCustomRole) ToIAMCustomRolePtrOutput() IAMCustomRolePtrOutput

func (*IAMCustomRole) ToIAMCustomRolePtrOutputWithContext

func (i *IAMCustomRole) ToIAMCustomRolePtrOutputWithContext(ctx context.Context) IAMCustomRolePtrOutput

type IAMCustomRoleArgs

type IAMCustomRoleArgs struct {
	// A human-readable description for the role.
	Description pulumi.StringPtrInput
	// The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.
	Permissions pulumi.StringArrayInput
	// The project that the service account will be created in.
	// Defaults to the provider project configuration.
	Project pulumi.StringPtrInput
	// The camel case role id to use for this role. Cannot contain `-` characters.
	RoleId pulumi.StringInput
	// The current launch stage of the role.
	// Defaults to `GA`.
	// List of possible stages is [here](https://cloud.google.com/iam/reference/rest/v1/organizations.roles#Role.RoleLaunchStage).
	Stage pulumi.StringPtrInput
	// A human-readable title for the role.
	Title pulumi.StringInput
}

The set of arguments for constructing a IAMCustomRole resource.

func (IAMCustomRoleArgs) ElementType

func (IAMCustomRoleArgs) ElementType() reflect.Type

type IAMCustomRoleArray

type IAMCustomRoleArray []IAMCustomRoleInput

func (IAMCustomRoleArray) ElementType

func (IAMCustomRoleArray) ElementType() reflect.Type

func (IAMCustomRoleArray) ToIAMCustomRoleArrayOutput

func (i IAMCustomRoleArray) ToIAMCustomRoleArrayOutput() IAMCustomRoleArrayOutput

func (IAMCustomRoleArray) ToIAMCustomRoleArrayOutputWithContext

func (i IAMCustomRoleArray) ToIAMCustomRoleArrayOutputWithContext(ctx context.Context) IAMCustomRoleArrayOutput

type IAMCustomRoleArrayInput

type IAMCustomRoleArrayInput interface {
	pulumi.Input

	ToIAMCustomRoleArrayOutput() IAMCustomRoleArrayOutput
	ToIAMCustomRoleArrayOutputWithContext(context.Context) IAMCustomRoleArrayOutput
}

IAMCustomRoleArrayInput is an input type that accepts IAMCustomRoleArray and IAMCustomRoleArrayOutput values. You can construct a concrete instance of `IAMCustomRoleArrayInput` via:

IAMCustomRoleArray{ IAMCustomRoleArgs{...} }

type IAMCustomRoleArrayOutput

type IAMCustomRoleArrayOutput struct{ *pulumi.OutputState }

func (IAMCustomRoleArrayOutput) ElementType

func (IAMCustomRoleArrayOutput) ElementType() reflect.Type

func (IAMCustomRoleArrayOutput) Index

func (IAMCustomRoleArrayOutput) ToIAMCustomRoleArrayOutput

func (o IAMCustomRoleArrayOutput) ToIAMCustomRoleArrayOutput() IAMCustomRoleArrayOutput

func (IAMCustomRoleArrayOutput) ToIAMCustomRoleArrayOutputWithContext

func (o IAMCustomRoleArrayOutput) ToIAMCustomRoleArrayOutputWithContext(ctx context.Context) IAMCustomRoleArrayOutput

type IAMCustomRoleInput

type IAMCustomRoleInput interface {
	pulumi.Input

	ToIAMCustomRoleOutput() IAMCustomRoleOutput
	ToIAMCustomRoleOutputWithContext(ctx context.Context) IAMCustomRoleOutput
}

type IAMCustomRoleMap

type IAMCustomRoleMap map[string]IAMCustomRoleInput

func (IAMCustomRoleMap) ElementType

func (IAMCustomRoleMap) ElementType() reflect.Type

func (IAMCustomRoleMap) ToIAMCustomRoleMapOutput

func (i IAMCustomRoleMap) ToIAMCustomRoleMapOutput() IAMCustomRoleMapOutput

func (IAMCustomRoleMap) ToIAMCustomRoleMapOutputWithContext

func (i IAMCustomRoleMap) ToIAMCustomRoleMapOutputWithContext(ctx context.Context) IAMCustomRoleMapOutput

type IAMCustomRoleMapInput

type IAMCustomRoleMapInput interface {
	pulumi.Input

	ToIAMCustomRoleMapOutput() IAMCustomRoleMapOutput
	ToIAMCustomRoleMapOutputWithContext(context.Context) IAMCustomRoleMapOutput
}

IAMCustomRoleMapInput is an input type that accepts IAMCustomRoleMap and IAMCustomRoleMapOutput values. You can construct a concrete instance of `IAMCustomRoleMapInput` via:

IAMCustomRoleMap{ "key": IAMCustomRoleArgs{...} }

type IAMCustomRoleMapOutput

type IAMCustomRoleMapOutput struct{ *pulumi.OutputState }

func (IAMCustomRoleMapOutput) ElementType

func (IAMCustomRoleMapOutput) ElementType() reflect.Type

func (IAMCustomRoleMapOutput) MapIndex

func (IAMCustomRoleMapOutput) ToIAMCustomRoleMapOutput

func (o IAMCustomRoleMapOutput) ToIAMCustomRoleMapOutput() IAMCustomRoleMapOutput

func (IAMCustomRoleMapOutput) ToIAMCustomRoleMapOutputWithContext

func (o IAMCustomRoleMapOutput) ToIAMCustomRoleMapOutputWithContext(ctx context.Context) IAMCustomRoleMapOutput

type IAMCustomRoleOutput

type IAMCustomRoleOutput struct{ *pulumi.OutputState }

func (IAMCustomRoleOutput) ElementType

func (IAMCustomRoleOutput) ElementType() reflect.Type

func (IAMCustomRoleOutput) ToIAMCustomRoleOutput

func (o IAMCustomRoleOutput) ToIAMCustomRoleOutput() IAMCustomRoleOutput

func (IAMCustomRoleOutput) ToIAMCustomRoleOutputWithContext

func (o IAMCustomRoleOutput) ToIAMCustomRoleOutputWithContext(ctx context.Context) IAMCustomRoleOutput

func (IAMCustomRoleOutput) ToIAMCustomRolePtrOutput

func (o IAMCustomRoleOutput) ToIAMCustomRolePtrOutput() IAMCustomRolePtrOutput

func (IAMCustomRoleOutput) ToIAMCustomRolePtrOutputWithContext

func (o IAMCustomRoleOutput) ToIAMCustomRolePtrOutputWithContext(ctx context.Context) IAMCustomRolePtrOutput

type IAMCustomRolePtrInput

type IAMCustomRolePtrInput interface {
	pulumi.Input

	ToIAMCustomRolePtrOutput() IAMCustomRolePtrOutput
	ToIAMCustomRolePtrOutputWithContext(ctx context.Context) IAMCustomRolePtrOutput
}

type IAMCustomRolePtrOutput

type IAMCustomRolePtrOutput struct{ *pulumi.OutputState }

func (IAMCustomRolePtrOutput) Elem added in v5.21.0

func (IAMCustomRolePtrOutput) ElementType

func (IAMCustomRolePtrOutput) ElementType() reflect.Type

func (IAMCustomRolePtrOutput) ToIAMCustomRolePtrOutput

func (o IAMCustomRolePtrOutput) ToIAMCustomRolePtrOutput() IAMCustomRolePtrOutput

func (IAMCustomRolePtrOutput) ToIAMCustomRolePtrOutputWithContext

func (o IAMCustomRolePtrOutput) ToIAMCustomRolePtrOutputWithContext(ctx context.Context) IAMCustomRolePtrOutput

type IAMCustomRoleState

type IAMCustomRoleState struct {
	// (Optional) The current deleted state of the role.
	Deleted pulumi.BoolPtrInput
	// A human-readable description for the role.
	Description pulumi.StringPtrInput
	// The name of the role in the format `projects/{{project}}/roles/{{role_id}}`. Like `id`, this field can be used as a reference in other resources such as IAM role bindings.
	Name pulumi.StringPtrInput
	// The names of the permissions this role grants when bound in an IAM policy. At least one permission must be specified.
	Permissions pulumi.StringArrayInput
	// The project that the service account will be created in.
	// Defaults to the provider project configuration.
	Project pulumi.StringPtrInput
	// The camel case role id to use for this role. Cannot contain `-` characters.
	RoleId pulumi.StringPtrInput
	// The current launch stage of the role.
	// Defaults to `GA`.
	// List of possible stages is [here](https://cloud.google.com/iam/reference/rest/v1/organizations.roles#Role.RoleLaunchStage).
	Stage pulumi.StringPtrInput
	// A human-readable title for the role.
	Title pulumi.StringPtrInput
}

func (IAMCustomRoleState) ElementType

func (IAMCustomRoleState) ElementType() reflect.Type

type IAMMember

type IAMMember struct {
	pulumi.CustomResourceState

	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMMemberConditionPtrOutput `pulumi:"condition"`
	// (Computed) The etag of the project's IAM policy.
	Etag   pulumi.StringOutput `pulumi:"etag"`
	Member pulumi.StringOutput `pulumi:"member"`
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringOutput `pulumi:"project"`
	// The role that should be applied. Only one
	// `projects.IAMBinding` 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"`
}

Four different resources help you manage your IAM policy for a project. Each of these resources serves a different use case:

* `projects.IAMPolicy`: Authoritative. Sets the IAM policy for the project and replaces any existing policy already attached. * `projects.IAMBinding`: 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 project are preserved. * `projects.IAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the project are preserved. * `projects.IAMAuditConfig`: Authoritative for a given service. Updates the IAM policy to enable audit logging for the given service.

> **Note:** `projects.IAMPolicy` **cannot** be used in conjunction with `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig` or they will fight over what your policy should be.

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

> **Note:** The underlying API method `projects.setIamPolicy` has a lot of constraints which are documented [here](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy). In addition to these constraints,

IAM Conditions cannot be used with Basic Roles such as Owner. Violating these constraints will result in the API returning 400 error code so please review these if you encounter errors with this resource.

## google\_project\_iam\_policy

> **Be careful!** You can accidentally lock yourself out of your project

using this resource. Deleting a `projects.IAMPolicy` removes access
from anyone without organization-level access to the project. Proceed with caution.
It's not recommended to use `projects.IAMPolicy` with your provider project
to avoid locking yourself out, and it should generally only be used with projects
fully managed by this provider. If you do use this resource, it is recommended to **import** the policy before
applying the change.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			Project:    pulumi.String("your-project-id"),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Condition: organizations.GetIAMPolicyBindingCondition{
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
						Title:       "expires_after_2019_12_31",
					},
					Members: []string{
						"user:jane@example.com",
					},
					Role: "roles/compute.admin",
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			PolicyData: pulumi.String(admin.PolicyData),
			Project:    pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Condition: &projects.IAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/container.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Condition: &projects.IAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/firebase.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_audit\_config

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMAuditConfig(ctx, "project", &projects.IAMAuditConfigArgs{
			AuditLogConfigs: projects.IAMAuditConfigAuditLogConfigArray{
				&projects.IAMAuditConfigAuditLogConfigArgs{
					LogType: pulumi.String("ADMIN_READ"),
				},
				&projects.IAMAuditConfigAuditLogConfigArgs{
					ExemptedMembers: pulumi.StringArray{
						pulumi.String("user:joebloggs@hashicorp.com"),
					},
					LogType: pulumi.String("DATA_READ"),
				},
			},
			Project: pulumi.String("your-project-id"),
			Service: pulumi.String("allServices"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `project_id`, role, and member e.g.

```sh

$ pulumi import gcp:projects/iAMMember:IAMMember my_project "your-project-id roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `project_id` and role, e.g.

```sh

$ pulumi import gcp:projects/iAMMember:IAMMember my_project "your-project-id roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `project_id`.

```sh

$ pulumi import gcp:projects/iAMMember:IAMMember my_project your-project-id

```

IAM audit config imports use the identifier of the resource in question and the service, e.g.

```sh

$ pulumi import gcp:projects/iAMMember:IAMMember my_project "your-project-id foo.googleapis.com"

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetIAMMember

func GetIAMMember(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IAMMemberState, opts ...pulumi.ResourceOption) (*IAMMember, error)

GetIAMMember gets an existing IAMMember 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 NewIAMMember

func NewIAMMember(ctx *pulumi.Context,
	name string, args *IAMMemberArgs, opts ...pulumi.ResourceOption) (*IAMMember, error)

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

func (*IAMMember) ElementType

func (*IAMMember) ElementType() reflect.Type

func (*IAMMember) ToIAMMemberOutput

func (i *IAMMember) ToIAMMemberOutput() IAMMemberOutput

func (*IAMMember) ToIAMMemberOutputWithContext

func (i *IAMMember) ToIAMMemberOutputWithContext(ctx context.Context) IAMMemberOutput

func (*IAMMember) ToIAMMemberPtrOutput

func (i *IAMMember) ToIAMMemberPtrOutput() IAMMemberPtrOutput

func (*IAMMember) ToIAMMemberPtrOutputWithContext

func (i *IAMMember) ToIAMMemberPtrOutputWithContext(ctx context.Context) IAMMemberPtrOutput

type IAMMemberArgs

type IAMMemberArgs struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMMemberConditionPtrInput
	Member    pulumi.StringInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `projects.IAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringInput
}

The set of arguments for constructing a IAMMember resource.

func (IAMMemberArgs) ElementType

func (IAMMemberArgs) ElementType() reflect.Type

type IAMMemberArray

type IAMMemberArray []IAMMemberInput

func (IAMMemberArray) ElementType

func (IAMMemberArray) ElementType() reflect.Type

func (IAMMemberArray) ToIAMMemberArrayOutput

func (i IAMMemberArray) ToIAMMemberArrayOutput() IAMMemberArrayOutput

func (IAMMemberArray) ToIAMMemberArrayOutputWithContext

func (i IAMMemberArray) ToIAMMemberArrayOutputWithContext(ctx context.Context) IAMMemberArrayOutput

type IAMMemberArrayInput

type IAMMemberArrayInput interface {
	pulumi.Input

	ToIAMMemberArrayOutput() IAMMemberArrayOutput
	ToIAMMemberArrayOutputWithContext(context.Context) IAMMemberArrayOutput
}

IAMMemberArrayInput is an input type that accepts IAMMemberArray and IAMMemberArrayOutput values. You can construct a concrete instance of `IAMMemberArrayInput` via:

IAMMemberArray{ IAMMemberArgs{...} }

type IAMMemberArrayOutput

type IAMMemberArrayOutput struct{ *pulumi.OutputState }

func (IAMMemberArrayOutput) ElementType

func (IAMMemberArrayOutput) ElementType() reflect.Type

func (IAMMemberArrayOutput) Index

func (IAMMemberArrayOutput) ToIAMMemberArrayOutput

func (o IAMMemberArrayOutput) ToIAMMemberArrayOutput() IAMMemberArrayOutput

func (IAMMemberArrayOutput) ToIAMMemberArrayOutputWithContext

func (o IAMMemberArrayOutput) ToIAMMemberArrayOutputWithContext(ctx context.Context) IAMMemberArrayOutput

type IAMMemberCondition

type IAMMemberCondition struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	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 IAMMemberConditionArgs

type IAMMemberConditionArgs struct {
	// An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
	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 (IAMMemberConditionArgs) ElementType

func (IAMMemberConditionArgs) ElementType() reflect.Type

func (IAMMemberConditionArgs) ToIAMMemberConditionOutput

func (i IAMMemberConditionArgs) ToIAMMemberConditionOutput() IAMMemberConditionOutput

func (IAMMemberConditionArgs) ToIAMMemberConditionOutputWithContext

func (i IAMMemberConditionArgs) ToIAMMemberConditionOutputWithContext(ctx context.Context) IAMMemberConditionOutput

func (IAMMemberConditionArgs) ToIAMMemberConditionPtrOutput

func (i IAMMemberConditionArgs) ToIAMMemberConditionPtrOutput() IAMMemberConditionPtrOutput

func (IAMMemberConditionArgs) ToIAMMemberConditionPtrOutputWithContext

func (i IAMMemberConditionArgs) ToIAMMemberConditionPtrOutputWithContext(ctx context.Context) IAMMemberConditionPtrOutput

type IAMMemberConditionInput

type IAMMemberConditionInput interface {
	pulumi.Input

	ToIAMMemberConditionOutput() IAMMemberConditionOutput
	ToIAMMemberConditionOutputWithContext(context.Context) IAMMemberConditionOutput
}

IAMMemberConditionInput is an input type that accepts IAMMemberConditionArgs and IAMMemberConditionOutput values. You can construct a concrete instance of `IAMMemberConditionInput` via:

IAMMemberConditionArgs{...}

type IAMMemberConditionOutput

type IAMMemberConditionOutput struct{ *pulumi.OutputState }

func (IAMMemberConditionOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (IAMMemberConditionOutput) ElementType

func (IAMMemberConditionOutput) ElementType() reflect.Type

func (IAMMemberConditionOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (IAMMemberConditionOutput) Title

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

func (IAMMemberConditionOutput) ToIAMMemberConditionOutput

func (o IAMMemberConditionOutput) ToIAMMemberConditionOutput() IAMMemberConditionOutput

func (IAMMemberConditionOutput) ToIAMMemberConditionOutputWithContext

func (o IAMMemberConditionOutput) ToIAMMemberConditionOutputWithContext(ctx context.Context) IAMMemberConditionOutput

func (IAMMemberConditionOutput) ToIAMMemberConditionPtrOutput

func (o IAMMemberConditionOutput) ToIAMMemberConditionPtrOutput() IAMMemberConditionPtrOutput

func (IAMMemberConditionOutput) ToIAMMemberConditionPtrOutputWithContext

func (o IAMMemberConditionOutput) ToIAMMemberConditionPtrOutputWithContext(ctx context.Context) IAMMemberConditionPtrOutput

type IAMMemberConditionPtrInput

type IAMMemberConditionPtrInput interface {
	pulumi.Input

	ToIAMMemberConditionPtrOutput() IAMMemberConditionPtrOutput
	ToIAMMemberConditionPtrOutputWithContext(context.Context) IAMMemberConditionPtrOutput
}

IAMMemberConditionPtrInput is an input type that accepts IAMMemberConditionArgs, IAMMemberConditionPtr and IAMMemberConditionPtrOutput values. You can construct a concrete instance of `IAMMemberConditionPtrInput` via:

        IAMMemberConditionArgs{...}

or:

        nil

type IAMMemberConditionPtrOutput

type IAMMemberConditionPtrOutput struct{ *pulumi.OutputState }

func (IAMMemberConditionPtrOutput) Description

An optional description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.

func (IAMMemberConditionPtrOutput) Elem

func (IAMMemberConditionPtrOutput) ElementType

func (IAMMemberConditionPtrOutput) Expression

Textual representation of an expression in Common Expression Language syntax.

func (IAMMemberConditionPtrOutput) Title

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

func (IAMMemberConditionPtrOutput) ToIAMMemberConditionPtrOutput

func (o IAMMemberConditionPtrOutput) ToIAMMemberConditionPtrOutput() IAMMemberConditionPtrOutput

func (IAMMemberConditionPtrOutput) ToIAMMemberConditionPtrOutputWithContext

func (o IAMMemberConditionPtrOutput) ToIAMMemberConditionPtrOutputWithContext(ctx context.Context) IAMMemberConditionPtrOutput

type IAMMemberInput

type IAMMemberInput interface {
	pulumi.Input

	ToIAMMemberOutput() IAMMemberOutput
	ToIAMMemberOutputWithContext(ctx context.Context) IAMMemberOutput
}

type IAMMemberMap

type IAMMemberMap map[string]IAMMemberInput

func (IAMMemberMap) ElementType

func (IAMMemberMap) ElementType() reflect.Type

func (IAMMemberMap) ToIAMMemberMapOutput

func (i IAMMemberMap) ToIAMMemberMapOutput() IAMMemberMapOutput

func (IAMMemberMap) ToIAMMemberMapOutputWithContext

func (i IAMMemberMap) ToIAMMemberMapOutputWithContext(ctx context.Context) IAMMemberMapOutput

type IAMMemberMapInput

type IAMMemberMapInput interface {
	pulumi.Input

	ToIAMMemberMapOutput() IAMMemberMapOutput
	ToIAMMemberMapOutputWithContext(context.Context) IAMMemberMapOutput
}

IAMMemberMapInput is an input type that accepts IAMMemberMap and IAMMemberMapOutput values. You can construct a concrete instance of `IAMMemberMapInput` via:

IAMMemberMap{ "key": IAMMemberArgs{...} }

type IAMMemberMapOutput

type IAMMemberMapOutput struct{ *pulumi.OutputState }

func (IAMMemberMapOutput) ElementType

func (IAMMemberMapOutput) ElementType() reflect.Type

func (IAMMemberMapOutput) MapIndex

func (IAMMemberMapOutput) ToIAMMemberMapOutput

func (o IAMMemberMapOutput) ToIAMMemberMapOutput() IAMMemberMapOutput

func (IAMMemberMapOutput) ToIAMMemberMapOutputWithContext

func (o IAMMemberMapOutput) ToIAMMemberMapOutputWithContext(ctx context.Context) IAMMemberMapOutput

type IAMMemberOutput

type IAMMemberOutput struct{ *pulumi.OutputState }

func (IAMMemberOutput) ElementType

func (IAMMemberOutput) ElementType() reflect.Type

func (IAMMemberOutput) ToIAMMemberOutput

func (o IAMMemberOutput) ToIAMMemberOutput() IAMMemberOutput

func (IAMMemberOutput) ToIAMMemberOutputWithContext

func (o IAMMemberOutput) ToIAMMemberOutputWithContext(ctx context.Context) IAMMemberOutput

func (IAMMemberOutput) ToIAMMemberPtrOutput

func (o IAMMemberOutput) ToIAMMemberPtrOutput() IAMMemberPtrOutput

func (IAMMemberOutput) ToIAMMemberPtrOutputWithContext

func (o IAMMemberOutput) ToIAMMemberPtrOutputWithContext(ctx context.Context) IAMMemberPtrOutput

type IAMMemberPtrInput

type IAMMemberPtrInput interface {
	pulumi.Input

	ToIAMMemberPtrOutput() IAMMemberPtrOutput
	ToIAMMemberPtrOutputWithContext(ctx context.Context) IAMMemberPtrOutput
}

type IAMMemberPtrOutput

type IAMMemberPtrOutput struct{ *pulumi.OutputState }

func (IAMMemberPtrOutput) Elem added in v5.21.0

func (IAMMemberPtrOutput) ElementType

func (IAMMemberPtrOutput) ElementType() reflect.Type

func (IAMMemberPtrOutput) ToIAMMemberPtrOutput

func (o IAMMemberPtrOutput) ToIAMMemberPtrOutput() IAMMemberPtrOutput

func (IAMMemberPtrOutput) ToIAMMemberPtrOutputWithContext

func (o IAMMemberPtrOutput) ToIAMMemberPtrOutputWithContext(ctx context.Context) IAMMemberPtrOutput

type IAMMemberState

type IAMMemberState struct {
	// An [IAM Condition](https://cloud.google.com/iam/docs/conditions-overview) for a given binding.
	// Structure is documented below.
	Condition IAMMemberConditionPtrInput
	// (Computed) The etag of the project's IAM policy.
	Etag   pulumi.StringPtrInput
	Member pulumi.StringPtrInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
	// The role that should be applied. Only one
	// `projects.IAMBinding` can be used per role. Note that custom roles must be of the format
	// `[projects|organizations]/{parent-name}/roles/{role-name}`.
	Role pulumi.StringPtrInput
}

func (IAMMemberState) ElementType

func (IAMMemberState) ElementType() reflect.Type

type IAMPolicy

type IAMPolicy struct {
	pulumi.CustomResourceState

	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// The `organizations.getIAMPolicy` data source that represents
	// the IAM policy that will be applied to the project. The policy will be
	// merged with any existing policy applied to the project.
	PolicyData pulumi.StringOutput `pulumi:"policyData"`
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringOutput `pulumi:"project"`
}

Four different resources help you manage your IAM policy for a project. Each of these resources serves a different use case:

* `projects.IAMPolicy`: Authoritative. Sets the IAM policy for the project and replaces any existing policy already attached. * `projects.IAMBinding`: 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 project are preserved. * `projects.IAMMember`: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the project are preserved. * `projects.IAMAuditConfig`: Authoritative for a given service. Updates the IAM policy to enable audit logging for the given service.

> **Note:** `projects.IAMPolicy` **cannot** be used in conjunction with `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig` or they will fight over what your policy should be.

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

> **Note:** The underlying API method `projects.setIamPolicy` has a lot of constraints which are documented [here](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setIamPolicy). In addition to these constraints,

IAM Conditions cannot be used with Basic Roles such as Owner. Violating these constraints will result in the API returning 400 error code so please review these if you encounter errors with this resource.

## google\_project\_iam\_policy

> **Be careful!** You can accidentally lock yourself out of your project

using this resource. Deleting a `projects.IAMPolicy` removes access
from anyone without organization-level access to the project. Proceed with caution.
It's not recommended to use `projects.IAMPolicy` with your provider project
to avoid locking yourself out, and it should generally only be used with projects
fully managed by this provider. If you do use this resource, it is recommended to **import** the policy before
applying the change.

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Role: "roles/editor",
					Members: []string{
						"user:jane@example.com",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			Project:    pulumi.String("your-project-id"),
			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/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"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{
				organizations.GetIAMPolicyBinding{
					Condition: organizations.GetIAMPolicyBindingCondition{
						Description: "Expiring at midnight of 2019-12-31",
						Expression:  "request.time < timestamp(\"2020-01-01T00:00:00Z\")",
						Title:       "expires_after_2019_12_31",
					},
					Members: []string{
						"user:jane@example.com",
					},
					Role: "roles/compute.admin",
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = projects.NewIAMPolicy(ctx, "project", &projects.IAMPolicyArgs{
			PolicyData: pulumi.String(admin.PolicyData),
			Project:    pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_binding

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMBinding(ctx, "project", &projects.IAMBindingArgs{
			Condition: &projects.IAMBindingConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Members: pulumi.StringArray{
				pulumi.String("user:jane@example.com"),
			},
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/container.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_member

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/editor"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

With IAM Conditions:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMMember(ctx, "project", &projects.IAMMemberArgs{
			Condition: &projects.IAMMemberConditionArgs{
				Description: pulumi.String("Expiring at midnight of 2019-12-31"),
				Expression:  pulumi.String("request.time < timestamp(\"2020-01-01T00:00:00Z\")"),
				Title:       pulumi.String("expires_after_2019_12_31"),
			},
			Member:  pulumi.String("user:jane@example.com"),
			Project: pulumi.String("your-project-id"),
			Role:    pulumi.String("roles/firebase.admin"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## google\_project\_iam\_audit\_config

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewIAMAuditConfig(ctx, "project", &projects.IAMAuditConfigArgs{
			AuditLogConfigs: projects.IAMAuditConfigAuditLogConfigArray{
				&projects.IAMAuditConfigAuditLogConfigArgs{
					LogType: pulumi.String("ADMIN_READ"),
				},
				&projects.IAMAuditConfigAuditLogConfigArgs{
					ExemptedMembers: pulumi.StringArray{
						pulumi.String("user:joebloggs@hashicorp.com"),
					},
					LogType: pulumi.String("DATA_READ"),
				},
			},
			Project: pulumi.String("your-project-id"),
			Service: pulumi.String("allServices"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

IAM member imports use space-delimited identifiers; the resource in question, the role, and the account.

This member resource can be imported using the `project_id`, role, and member e.g.

```sh

$ pulumi import gcp:projects/iAMPolicy:IAMPolicy my_project "your-project-id roles/viewer user:foo@example.com"

```

IAM binding imports use space-delimited identifiers; the resource in question and the role.

This binding resource can be imported using the `project_id` and role, e.g.

```sh

$ pulumi import gcp:projects/iAMPolicy:IAMPolicy my_project "your-project-id roles/viewer"

```

IAM policy imports use the identifier of the resource in question.

This policy resource can be imported using the `project_id`.

```sh

$ pulumi import gcp:projects/iAMPolicy:IAMPolicy my_project your-project-id

```

IAM audit config imports use the identifier of the resource in question and the service, e.g.

```sh

$ pulumi import gcp:projects/iAMPolicy:IAMPolicy my_project "your-project-id foo.googleapis.com"

```

-> **Custom Roles**If you're importing a IAM resource with a custom role, make sure to use the

full name of the custom role, e.g. `[projects/my-project|organizations/my-org]/roles/my-custom-role`.

func GetIAMPolicy

func GetIAMPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *IAMPolicyState, opts ...pulumi.ResourceOption) (*IAMPolicy, error)

GetIAMPolicy gets an existing IAMPolicy 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 NewIAMPolicy

func NewIAMPolicy(ctx *pulumi.Context,
	name string, args *IAMPolicyArgs, opts ...pulumi.ResourceOption) (*IAMPolicy, error)

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

func (*IAMPolicy) ElementType

func (*IAMPolicy) ElementType() reflect.Type

func (*IAMPolicy) ToIAMPolicyOutput

func (i *IAMPolicy) ToIAMPolicyOutput() IAMPolicyOutput

func (*IAMPolicy) ToIAMPolicyOutputWithContext

func (i *IAMPolicy) ToIAMPolicyOutputWithContext(ctx context.Context) IAMPolicyOutput

func (*IAMPolicy) ToIAMPolicyPtrOutput

func (i *IAMPolicy) ToIAMPolicyPtrOutput() IAMPolicyPtrOutput

func (*IAMPolicy) ToIAMPolicyPtrOutputWithContext

func (i *IAMPolicy) ToIAMPolicyPtrOutputWithContext(ctx context.Context) IAMPolicyPtrOutput

type IAMPolicyArgs

type IAMPolicyArgs struct {
	// The `organizations.getIAMPolicy` data source that represents
	// the IAM policy that will be applied to the project. The policy will be
	// merged with any existing policy applied to the project.
	PolicyData pulumi.StringInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringInput
}

The set of arguments for constructing a IAMPolicy resource.

func (IAMPolicyArgs) ElementType

func (IAMPolicyArgs) ElementType() reflect.Type

type IAMPolicyArray

type IAMPolicyArray []IAMPolicyInput

func (IAMPolicyArray) ElementType

func (IAMPolicyArray) ElementType() reflect.Type

func (IAMPolicyArray) ToIAMPolicyArrayOutput

func (i IAMPolicyArray) ToIAMPolicyArrayOutput() IAMPolicyArrayOutput

func (IAMPolicyArray) ToIAMPolicyArrayOutputWithContext

func (i IAMPolicyArray) ToIAMPolicyArrayOutputWithContext(ctx context.Context) IAMPolicyArrayOutput

type IAMPolicyArrayInput

type IAMPolicyArrayInput interface {
	pulumi.Input

	ToIAMPolicyArrayOutput() IAMPolicyArrayOutput
	ToIAMPolicyArrayOutputWithContext(context.Context) IAMPolicyArrayOutput
}

IAMPolicyArrayInput is an input type that accepts IAMPolicyArray and IAMPolicyArrayOutput values. You can construct a concrete instance of `IAMPolicyArrayInput` via:

IAMPolicyArray{ IAMPolicyArgs{...} }

type IAMPolicyArrayOutput

type IAMPolicyArrayOutput struct{ *pulumi.OutputState }

func (IAMPolicyArrayOutput) ElementType

func (IAMPolicyArrayOutput) ElementType() reflect.Type

func (IAMPolicyArrayOutput) Index

func (IAMPolicyArrayOutput) ToIAMPolicyArrayOutput

func (o IAMPolicyArrayOutput) ToIAMPolicyArrayOutput() IAMPolicyArrayOutput

func (IAMPolicyArrayOutput) ToIAMPolicyArrayOutputWithContext

func (o IAMPolicyArrayOutput) ToIAMPolicyArrayOutputWithContext(ctx context.Context) IAMPolicyArrayOutput

type IAMPolicyInput

type IAMPolicyInput interface {
	pulumi.Input

	ToIAMPolicyOutput() IAMPolicyOutput
	ToIAMPolicyOutputWithContext(ctx context.Context) IAMPolicyOutput
}

type IAMPolicyMap

type IAMPolicyMap map[string]IAMPolicyInput

func (IAMPolicyMap) ElementType

func (IAMPolicyMap) ElementType() reflect.Type

func (IAMPolicyMap) ToIAMPolicyMapOutput

func (i IAMPolicyMap) ToIAMPolicyMapOutput() IAMPolicyMapOutput

func (IAMPolicyMap) ToIAMPolicyMapOutputWithContext

func (i IAMPolicyMap) ToIAMPolicyMapOutputWithContext(ctx context.Context) IAMPolicyMapOutput

type IAMPolicyMapInput

type IAMPolicyMapInput interface {
	pulumi.Input

	ToIAMPolicyMapOutput() IAMPolicyMapOutput
	ToIAMPolicyMapOutputWithContext(context.Context) IAMPolicyMapOutput
}

IAMPolicyMapInput is an input type that accepts IAMPolicyMap and IAMPolicyMapOutput values. You can construct a concrete instance of `IAMPolicyMapInput` via:

IAMPolicyMap{ "key": IAMPolicyArgs{...} }

type IAMPolicyMapOutput

type IAMPolicyMapOutput struct{ *pulumi.OutputState }

func (IAMPolicyMapOutput) ElementType

func (IAMPolicyMapOutput) ElementType() reflect.Type

func (IAMPolicyMapOutput) MapIndex

func (IAMPolicyMapOutput) ToIAMPolicyMapOutput

func (o IAMPolicyMapOutput) ToIAMPolicyMapOutput() IAMPolicyMapOutput

func (IAMPolicyMapOutput) ToIAMPolicyMapOutputWithContext

func (o IAMPolicyMapOutput) ToIAMPolicyMapOutputWithContext(ctx context.Context) IAMPolicyMapOutput

type IAMPolicyOutput

type IAMPolicyOutput struct{ *pulumi.OutputState }

func (IAMPolicyOutput) ElementType

func (IAMPolicyOutput) ElementType() reflect.Type

func (IAMPolicyOutput) ToIAMPolicyOutput

func (o IAMPolicyOutput) ToIAMPolicyOutput() IAMPolicyOutput

func (IAMPolicyOutput) ToIAMPolicyOutputWithContext

func (o IAMPolicyOutput) ToIAMPolicyOutputWithContext(ctx context.Context) IAMPolicyOutput

func (IAMPolicyOutput) ToIAMPolicyPtrOutput

func (o IAMPolicyOutput) ToIAMPolicyPtrOutput() IAMPolicyPtrOutput

func (IAMPolicyOutput) ToIAMPolicyPtrOutputWithContext

func (o IAMPolicyOutput) ToIAMPolicyPtrOutputWithContext(ctx context.Context) IAMPolicyPtrOutput

type IAMPolicyPtrInput

type IAMPolicyPtrInput interface {
	pulumi.Input

	ToIAMPolicyPtrOutput() IAMPolicyPtrOutput
	ToIAMPolicyPtrOutputWithContext(ctx context.Context) IAMPolicyPtrOutput
}

type IAMPolicyPtrOutput

type IAMPolicyPtrOutput struct{ *pulumi.OutputState }

func (IAMPolicyPtrOutput) Elem added in v5.21.0

func (IAMPolicyPtrOutput) ElementType

func (IAMPolicyPtrOutput) ElementType() reflect.Type

func (IAMPolicyPtrOutput) ToIAMPolicyPtrOutput

func (o IAMPolicyPtrOutput) ToIAMPolicyPtrOutput() IAMPolicyPtrOutput

func (IAMPolicyPtrOutput) ToIAMPolicyPtrOutputWithContext

func (o IAMPolicyPtrOutput) ToIAMPolicyPtrOutputWithContext(ctx context.Context) IAMPolicyPtrOutput

type IAMPolicyState

type IAMPolicyState struct {
	// (Computed) The etag of the project's IAM policy.
	Etag pulumi.StringPtrInput
	// The `organizations.getIAMPolicy` data source that represents
	// the IAM policy that will be applied to the project. The policy will be
	// merged with any existing policy applied to the project.
	PolicyData pulumi.StringPtrInput
	// The project ID. If not specified for `projects.IAMBinding`, `projects.IAMMember`, or `projects.IAMAuditConfig`, uses the ID of the project configured with the provider.
	// Required for `projects.IAMPolicy` - you must explicitly set the project, and it
	// will not be inferred from the provider.
	Project pulumi.StringPtrInput
}

func (IAMPolicyState) ElementType

func (IAMPolicyState) ElementType() reflect.Type

type LookupOrganizationPolicyArgs

type LookupOrganizationPolicyArgs struct {
	// (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
	Constraint string `pulumi:"constraint"`
	// The project ID.
	Project string `pulumi:"project"`
}

A collection of arguments for invoking getOrganizationPolicy.

type LookupOrganizationPolicyOutputArgs added in v5.21.0

type LookupOrganizationPolicyOutputArgs struct {
	// (Required) The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
	Constraint pulumi.StringInput `pulumi:"constraint"`
	// The project ID.
	Project pulumi.StringInput `pulumi:"project"`
}

A collection of arguments for invoking getOrganizationPolicy.

func (LookupOrganizationPolicyOutputArgs) ElementType added in v5.21.0

type LookupOrganizationPolicyResult

type LookupOrganizationPolicyResult struct {
	BooleanPolicies []GetOrganizationPolicyBooleanPolicy `pulumi:"booleanPolicies"`
	Constraint      string                               `pulumi:"constraint"`
	Etag            string                               `pulumi:"etag"`
	// The provider-assigned unique ID for this managed resource.
	Id              string                               `pulumi:"id"`
	ListPolicies    []GetOrganizationPolicyListPolicy    `pulumi:"listPolicies"`
	Project         string                               `pulumi:"project"`
	RestorePolicies []GetOrganizationPolicyRestorePolicy `pulumi:"restorePolicies"`
	UpdateTime      string                               `pulumi:"updateTime"`
	Version         int                                  `pulumi:"version"`
}

A collection of values returned by getOrganizationPolicy.

func LookupOrganizationPolicy

func LookupOrganizationPolicy(ctx *pulumi.Context, args *LookupOrganizationPolicyArgs, opts ...pulumi.InvokeOption) (*LookupOrganizationPolicyResult, error)

Allows management of Organization policies for a Google Project. For more information see [the official documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview)

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		policy, err := projects.LookupOrganizationPolicy(ctx, &projects.LookupOrganizationPolicyArgs{
			Project:    "project-id",
			Constraint: "constraints/serviceuser.services",
		}, nil)
		if err != nil {
			return err
		}
		ctx.Export("version", policy.Version)
		return nil
	})
}

```

type LookupOrganizationPolicyResultOutput added in v5.21.0

type LookupOrganizationPolicyResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getOrganizationPolicy.

func (LookupOrganizationPolicyResultOutput) BooleanPolicies added in v5.21.0

func (LookupOrganizationPolicyResultOutput) Constraint added in v5.21.0

func (LookupOrganizationPolicyResultOutput) ElementType added in v5.21.0

func (LookupOrganizationPolicyResultOutput) Etag added in v5.21.0

func (LookupOrganizationPolicyResultOutput) Id added in v5.21.0

The provider-assigned unique ID for this managed resource.

func (LookupOrganizationPolicyResultOutput) ListPolicies added in v5.21.0

func (LookupOrganizationPolicyResultOutput) Project added in v5.21.0

func (LookupOrganizationPolicyResultOutput) RestorePolicies added in v5.21.0

func (LookupOrganizationPolicyResultOutput) ToLookupOrganizationPolicyResultOutput added in v5.21.0

func (o LookupOrganizationPolicyResultOutput) ToLookupOrganizationPolicyResultOutput() LookupOrganizationPolicyResultOutput

func (LookupOrganizationPolicyResultOutput) ToLookupOrganizationPolicyResultOutputWithContext added in v5.21.0

func (o LookupOrganizationPolicyResultOutput) ToLookupOrganizationPolicyResultOutputWithContext(ctx context.Context) LookupOrganizationPolicyResultOutput

func (LookupOrganizationPolicyResultOutput) UpdateTime added in v5.21.0

func (LookupOrganizationPolicyResultOutput) Version added in v5.21.0

type OrganizationPolicy

type OrganizationPolicy struct {
	pulumi.CustomResourceState

	// A boolean policy is a constraint that is either enforced or not. Structure is documented below.
	BooleanPolicy OrganizationPolicyBooleanPolicyPtrOutput `pulumi:"booleanPolicy"`
	// The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
	Constraint pulumi.StringOutput `pulumi:"constraint"`
	// (Computed) The etag of the organization policy. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.
	Etag pulumi.StringOutput `pulumi:"etag"`
	// A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. Structure is documented below.
	ListPolicy OrganizationPolicyListPolicyPtrOutput `pulumi:"listPolicy"`
	// The project id of the project to set the policy for.
	Project pulumi.StringOutput `pulumi:"project"`
	// A restore policy is a constraint to restore the default policy. Structure is documented below.
	RestorePolicy OrganizationPolicyRestorePolicyPtrOutput `pulumi:"restorePolicy"`
	// (Computed) The timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds, representing when the variable was last updated. Example: "2016-10-09T12:33:37.578138407Z".
	UpdateTime pulumi.StringOutput `pulumi:"updateTime"`
	// Version of the Policy. Default version is 0.
	Version pulumi.IntOutput `pulumi:"version"`
}

Allows management of Organization Policies for a Google Cloud Project.

> **Warning:** This resource has been superseded by `orgpolicy.Policy`. `orgpolicy.Policy` uses Organization Policy API V2 instead of Cloud Resource Manager API V1 and it supports additional features such as tags and conditions.

To get more information about Organization Policies, see:

* [API documentation](https://cloud.google.com/resource-manager/reference/rest/v1/projects/setOrgPolicy) * How-to Guides

## Example Usage

To set policy with a [boolean constraint](https://cloud.google.com/resource-manager/docs/organization-policy/quickstart-boolean-constraints):

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewOrganizationPolicy(ctx, "serialPortPolicy", &projects.OrganizationPolicyArgs{
			BooleanPolicy: &projects.OrganizationPolicyBooleanPolicyArgs{
				Enforced: pulumi.Bool(true),
			},
			Constraint: pulumi.String("compute.disableSerialPortAccess"),
			Project:    pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

To set a policy with a [list constraint](https://cloud.google.com/resource-manager/docs/organization-policy/quickstart-list-constraints):

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewOrganizationPolicy(ctx, "servicesPolicy", &projects.OrganizationPolicyArgs{
			Constraint: pulumi.String("serviceuser.services"),
			ListPolicy: &projects.OrganizationPolicyListPolicyArgs{
				Allow: &projects.OrganizationPolicyListPolicyAllowArgs{
					All: pulumi.Bool(true),
				},
			},
			Project: pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

Or to deny some services, use the following instead:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewOrganizationPolicy(ctx, "servicesPolicy", &projects.OrganizationPolicyArgs{
			Constraint: pulumi.String("serviceuser.services"),
			ListPolicy: &projects.OrganizationPolicyListPolicyArgs{
				Deny: &projects.OrganizationPolicyListPolicyDenyArgs{
					Values: pulumi.StringArray{
						pulumi.String("cloudresourcemanager.googleapis.com"),
					},
				},
				SuggestedValue: pulumi.String("compute.googleapis.com"),
			},
			Project: pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

To restore the default project organization policy, use the following instead:

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewOrganizationPolicy(ctx, "servicesPolicy", &projects.OrganizationPolicyArgs{
			Constraint: pulumi.String("serviceuser.services"),
			Project:    pulumi.String("your-project-id"),
			RestorePolicy: &projects.OrganizationPolicyRestorePolicyArgs{
				Default: pulumi.Bool(true),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Project organization policies can be imported using any of the follow formats

```sh

$ pulumi import gcp:projects/organizationPolicy:OrganizationPolicy policy projects/test-project:constraints/serviceuser.services

```

```sh

$ pulumi import gcp:projects/organizationPolicy:OrganizationPolicy policy test-project:constraints/serviceuser.services

```

```sh

$ pulumi import gcp:projects/organizationPolicy:OrganizationPolicy policy test-project:serviceuser.services

```

func GetOrganizationPolicy

func GetOrganizationPolicy(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *OrganizationPolicyState, opts ...pulumi.ResourceOption) (*OrganizationPolicy, error)

GetOrganizationPolicy gets an existing OrganizationPolicy 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 NewOrganizationPolicy

func NewOrganizationPolicy(ctx *pulumi.Context,
	name string, args *OrganizationPolicyArgs, opts ...pulumi.ResourceOption) (*OrganizationPolicy, error)

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

func (*OrganizationPolicy) ElementType

func (*OrganizationPolicy) ElementType() reflect.Type

func (*OrganizationPolicy) ToOrganizationPolicyOutput

func (i *OrganizationPolicy) ToOrganizationPolicyOutput() OrganizationPolicyOutput

func (*OrganizationPolicy) ToOrganizationPolicyOutputWithContext

func (i *OrganizationPolicy) ToOrganizationPolicyOutputWithContext(ctx context.Context) OrganizationPolicyOutput

func (*OrganizationPolicy) ToOrganizationPolicyPtrOutput

func (i *OrganizationPolicy) ToOrganizationPolicyPtrOutput() OrganizationPolicyPtrOutput

func (*OrganizationPolicy) ToOrganizationPolicyPtrOutputWithContext

func (i *OrganizationPolicy) ToOrganizationPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyPtrOutput

type OrganizationPolicyArgs

type OrganizationPolicyArgs struct {
	// A boolean policy is a constraint that is either enforced or not. Structure is documented below.
	BooleanPolicy OrganizationPolicyBooleanPolicyPtrInput
	// The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
	Constraint pulumi.StringInput
	// A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. Structure is documented below.
	ListPolicy OrganizationPolicyListPolicyPtrInput
	// The project id of the project to set the policy for.
	Project pulumi.StringInput
	// A restore policy is a constraint to restore the default policy. Structure is documented below.
	RestorePolicy OrganizationPolicyRestorePolicyPtrInput
	// Version of the Policy. Default version is 0.
	Version pulumi.IntPtrInput
}

The set of arguments for constructing a OrganizationPolicy resource.

func (OrganizationPolicyArgs) ElementType

func (OrganizationPolicyArgs) ElementType() reflect.Type

type OrganizationPolicyArray

type OrganizationPolicyArray []OrganizationPolicyInput

func (OrganizationPolicyArray) ElementType

func (OrganizationPolicyArray) ElementType() reflect.Type

func (OrganizationPolicyArray) ToOrganizationPolicyArrayOutput

func (i OrganizationPolicyArray) ToOrganizationPolicyArrayOutput() OrganizationPolicyArrayOutput

func (OrganizationPolicyArray) ToOrganizationPolicyArrayOutputWithContext

func (i OrganizationPolicyArray) ToOrganizationPolicyArrayOutputWithContext(ctx context.Context) OrganizationPolicyArrayOutput

type OrganizationPolicyArrayInput

type OrganizationPolicyArrayInput interface {
	pulumi.Input

	ToOrganizationPolicyArrayOutput() OrganizationPolicyArrayOutput
	ToOrganizationPolicyArrayOutputWithContext(context.Context) OrganizationPolicyArrayOutput
}

OrganizationPolicyArrayInput is an input type that accepts OrganizationPolicyArray and OrganizationPolicyArrayOutput values. You can construct a concrete instance of `OrganizationPolicyArrayInput` via:

OrganizationPolicyArray{ OrganizationPolicyArgs{...} }

type OrganizationPolicyArrayOutput

type OrganizationPolicyArrayOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyArrayOutput) ElementType

func (OrganizationPolicyArrayOutput) Index

func (OrganizationPolicyArrayOutput) ToOrganizationPolicyArrayOutput

func (o OrganizationPolicyArrayOutput) ToOrganizationPolicyArrayOutput() OrganizationPolicyArrayOutput

func (OrganizationPolicyArrayOutput) ToOrganizationPolicyArrayOutputWithContext

func (o OrganizationPolicyArrayOutput) ToOrganizationPolicyArrayOutputWithContext(ctx context.Context) OrganizationPolicyArrayOutput

type OrganizationPolicyBooleanPolicy

type OrganizationPolicyBooleanPolicy struct {
	// If true, then the Policy is enforced. If false, then any configuration is acceptable.
	Enforced bool `pulumi:"enforced"`
}

type OrganizationPolicyBooleanPolicyArgs

type OrganizationPolicyBooleanPolicyArgs struct {
	// If true, then the Policy is enforced. If false, then any configuration is acceptable.
	Enforced pulumi.BoolInput `pulumi:"enforced"`
}

func (OrganizationPolicyBooleanPolicyArgs) ElementType

func (OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyOutput

func (i OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyOutput() OrganizationPolicyBooleanPolicyOutput

func (OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyOutputWithContext

func (i OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyOutputWithContext(ctx context.Context) OrganizationPolicyBooleanPolicyOutput

func (OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyPtrOutput

func (i OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyPtrOutput() OrganizationPolicyBooleanPolicyPtrOutput

func (OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext

func (i OrganizationPolicyBooleanPolicyArgs) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyBooleanPolicyPtrOutput

type OrganizationPolicyBooleanPolicyInput

type OrganizationPolicyBooleanPolicyInput interface {
	pulumi.Input

	ToOrganizationPolicyBooleanPolicyOutput() OrganizationPolicyBooleanPolicyOutput
	ToOrganizationPolicyBooleanPolicyOutputWithContext(context.Context) OrganizationPolicyBooleanPolicyOutput
}

OrganizationPolicyBooleanPolicyInput is an input type that accepts OrganizationPolicyBooleanPolicyArgs and OrganizationPolicyBooleanPolicyOutput values. You can construct a concrete instance of `OrganizationPolicyBooleanPolicyInput` via:

OrganizationPolicyBooleanPolicyArgs{...}

type OrganizationPolicyBooleanPolicyOutput

type OrganizationPolicyBooleanPolicyOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyBooleanPolicyOutput) ElementType

func (OrganizationPolicyBooleanPolicyOutput) Enforced

If true, then the Policy is enforced. If false, then any configuration is acceptable.

func (OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyOutput

func (o OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyOutput() OrganizationPolicyBooleanPolicyOutput

func (OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyOutputWithContext

func (o OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyOutputWithContext(ctx context.Context) OrganizationPolicyBooleanPolicyOutput

func (OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyPtrOutput

func (o OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyPtrOutput() OrganizationPolicyBooleanPolicyPtrOutput

func (OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext

func (o OrganizationPolicyBooleanPolicyOutput) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyBooleanPolicyPtrOutput

type OrganizationPolicyBooleanPolicyPtrInput

type OrganizationPolicyBooleanPolicyPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyBooleanPolicyPtrOutput() OrganizationPolicyBooleanPolicyPtrOutput
	ToOrganizationPolicyBooleanPolicyPtrOutputWithContext(context.Context) OrganizationPolicyBooleanPolicyPtrOutput
}

OrganizationPolicyBooleanPolicyPtrInput is an input type that accepts OrganizationPolicyBooleanPolicyArgs, OrganizationPolicyBooleanPolicyPtr and OrganizationPolicyBooleanPolicyPtrOutput values. You can construct a concrete instance of `OrganizationPolicyBooleanPolicyPtrInput` via:

        OrganizationPolicyBooleanPolicyArgs{...}

or:

        nil

type OrganizationPolicyBooleanPolicyPtrOutput

type OrganizationPolicyBooleanPolicyPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyBooleanPolicyPtrOutput) Elem

func (OrganizationPolicyBooleanPolicyPtrOutput) ElementType

func (OrganizationPolicyBooleanPolicyPtrOutput) Enforced

If true, then the Policy is enforced. If false, then any configuration is acceptable.

func (OrganizationPolicyBooleanPolicyPtrOutput) ToOrganizationPolicyBooleanPolicyPtrOutput

func (o OrganizationPolicyBooleanPolicyPtrOutput) ToOrganizationPolicyBooleanPolicyPtrOutput() OrganizationPolicyBooleanPolicyPtrOutput

func (OrganizationPolicyBooleanPolicyPtrOutput) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext

func (o OrganizationPolicyBooleanPolicyPtrOutput) ToOrganizationPolicyBooleanPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyBooleanPolicyPtrOutput

type OrganizationPolicyInput

type OrganizationPolicyInput interface {
	pulumi.Input

	ToOrganizationPolicyOutput() OrganizationPolicyOutput
	ToOrganizationPolicyOutputWithContext(ctx context.Context) OrganizationPolicyOutput
}

type OrganizationPolicyListPolicy

type OrganizationPolicyListPolicy struct {
	// or `deny` - (Optional) One or the other must be set.
	Allow *OrganizationPolicyListPolicyAllow `pulumi:"allow"`
	Deny  *OrganizationPolicyListPolicyDeny  `pulumi:"deny"`
	// If set to true, the values from the effective Policy of the parent resource
	// are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.
	InheritFromParent *bool `pulumi:"inheritFromParent"`
	// The Google Cloud Console will try to default to a configuration that matches the value specified in this field.
	SuggestedValue *string `pulumi:"suggestedValue"`
}

type OrganizationPolicyListPolicyAllow

type OrganizationPolicyListPolicyAllow struct {
	// The policy allows or denies all values.
	All *bool `pulumi:"all"`
	// The policy can define specific values that are allowed or denied.
	Values []string `pulumi:"values"`
}

type OrganizationPolicyListPolicyAllowArgs

type OrganizationPolicyListPolicyAllowArgs struct {
	// The policy allows or denies all values.
	All pulumi.BoolPtrInput `pulumi:"all"`
	// The policy can define specific values that are allowed or denied.
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (OrganizationPolicyListPolicyAllowArgs) ElementType

func (OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowOutput

func (i OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowOutput() OrganizationPolicyListPolicyAllowOutput

func (OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowOutputWithContext

func (i OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyAllowOutput

func (OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowPtrOutput

func (i OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowPtrOutput() OrganizationPolicyListPolicyAllowPtrOutput

func (OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext

func (i OrganizationPolicyListPolicyAllowArgs) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyAllowPtrOutput

type OrganizationPolicyListPolicyAllowInput

type OrganizationPolicyListPolicyAllowInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyAllowOutput() OrganizationPolicyListPolicyAllowOutput
	ToOrganizationPolicyListPolicyAllowOutputWithContext(context.Context) OrganizationPolicyListPolicyAllowOutput
}

OrganizationPolicyListPolicyAllowInput is an input type that accepts OrganizationPolicyListPolicyAllowArgs and OrganizationPolicyListPolicyAllowOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyAllowInput` via:

OrganizationPolicyListPolicyAllowArgs{...}

type OrganizationPolicyListPolicyAllowOutput

type OrganizationPolicyListPolicyAllowOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyAllowOutput) All

The policy allows or denies all values.

func (OrganizationPolicyListPolicyAllowOutput) ElementType

func (OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowOutput

func (o OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowOutput() OrganizationPolicyListPolicyAllowOutput

func (OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowOutputWithContext

func (o OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyAllowOutput

func (OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowPtrOutput

func (o OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowPtrOutput() OrganizationPolicyListPolicyAllowPtrOutput

func (OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext

func (o OrganizationPolicyListPolicyAllowOutput) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyAllowPtrOutput

func (OrganizationPolicyListPolicyAllowOutput) Values

The policy can define specific values that are allowed or denied.

type OrganizationPolicyListPolicyAllowPtrInput

type OrganizationPolicyListPolicyAllowPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyAllowPtrOutput() OrganizationPolicyListPolicyAllowPtrOutput
	ToOrganizationPolicyListPolicyAllowPtrOutputWithContext(context.Context) OrganizationPolicyListPolicyAllowPtrOutput
}

OrganizationPolicyListPolicyAllowPtrInput is an input type that accepts OrganizationPolicyListPolicyAllowArgs, OrganizationPolicyListPolicyAllowPtr and OrganizationPolicyListPolicyAllowPtrOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyAllowPtrInput` via:

        OrganizationPolicyListPolicyAllowArgs{...}

or:

        nil

type OrganizationPolicyListPolicyAllowPtrOutput

type OrganizationPolicyListPolicyAllowPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyAllowPtrOutput) All

The policy allows or denies all values.

func (OrganizationPolicyListPolicyAllowPtrOutput) Elem

func (OrganizationPolicyListPolicyAllowPtrOutput) ElementType

func (OrganizationPolicyListPolicyAllowPtrOutput) ToOrganizationPolicyListPolicyAllowPtrOutput

func (o OrganizationPolicyListPolicyAllowPtrOutput) ToOrganizationPolicyListPolicyAllowPtrOutput() OrganizationPolicyListPolicyAllowPtrOutput

func (OrganizationPolicyListPolicyAllowPtrOutput) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext

func (o OrganizationPolicyListPolicyAllowPtrOutput) ToOrganizationPolicyListPolicyAllowPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyAllowPtrOutput

func (OrganizationPolicyListPolicyAllowPtrOutput) Values

The policy can define specific values that are allowed or denied.

type OrganizationPolicyListPolicyArgs

type OrganizationPolicyListPolicyArgs struct {
	// or `deny` - (Optional) One or the other must be set.
	Allow OrganizationPolicyListPolicyAllowPtrInput `pulumi:"allow"`
	Deny  OrganizationPolicyListPolicyDenyPtrInput  `pulumi:"deny"`
	// If set to true, the values from the effective Policy of the parent resource
	// are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.
	InheritFromParent pulumi.BoolPtrInput `pulumi:"inheritFromParent"`
	// The Google Cloud Console will try to default to a configuration that matches the value specified in this field.
	SuggestedValue pulumi.StringPtrInput `pulumi:"suggestedValue"`
}

func (OrganizationPolicyListPolicyArgs) ElementType

func (OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyOutput

func (i OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyOutput() OrganizationPolicyListPolicyOutput

func (OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyOutputWithContext

func (i OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyOutput

func (OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyPtrOutput

func (i OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyPtrOutput() OrganizationPolicyListPolicyPtrOutput

func (OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyPtrOutputWithContext

func (i OrganizationPolicyListPolicyArgs) ToOrganizationPolicyListPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyPtrOutput

type OrganizationPolicyListPolicyDeny

type OrganizationPolicyListPolicyDeny struct {
	// The policy allows or denies all values.
	All *bool `pulumi:"all"`
	// The policy can define specific values that are allowed or denied.
	Values []string `pulumi:"values"`
}

type OrganizationPolicyListPolicyDenyArgs

type OrganizationPolicyListPolicyDenyArgs struct {
	// The policy allows or denies all values.
	All pulumi.BoolPtrInput `pulumi:"all"`
	// The policy can define specific values that are allowed or denied.
	Values pulumi.StringArrayInput `pulumi:"values"`
}

func (OrganizationPolicyListPolicyDenyArgs) ElementType

func (OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyOutput

func (i OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyOutput() OrganizationPolicyListPolicyDenyOutput

func (OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyOutputWithContext

func (i OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyDenyOutput

func (OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyPtrOutput

func (i OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyPtrOutput() OrganizationPolicyListPolicyDenyPtrOutput

func (OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext

func (i OrganizationPolicyListPolicyDenyArgs) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyDenyPtrOutput

type OrganizationPolicyListPolicyDenyInput

type OrganizationPolicyListPolicyDenyInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyDenyOutput() OrganizationPolicyListPolicyDenyOutput
	ToOrganizationPolicyListPolicyDenyOutputWithContext(context.Context) OrganizationPolicyListPolicyDenyOutput
}

OrganizationPolicyListPolicyDenyInput is an input type that accepts OrganizationPolicyListPolicyDenyArgs and OrganizationPolicyListPolicyDenyOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyDenyInput` via:

OrganizationPolicyListPolicyDenyArgs{...}

type OrganizationPolicyListPolicyDenyOutput

type OrganizationPolicyListPolicyDenyOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyDenyOutput) All

The policy allows or denies all values.

func (OrganizationPolicyListPolicyDenyOutput) ElementType

func (OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyOutput

func (o OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyOutput() OrganizationPolicyListPolicyDenyOutput

func (OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyOutputWithContext

func (o OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyDenyOutput

func (OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyPtrOutput

func (o OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyPtrOutput() OrganizationPolicyListPolicyDenyPtrOutput

func (OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext

func (o OrganizationPolicyListPolicyDenyOutput) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyDenyPtrOutput

func (OrganizationPolicyListPolicyDenyOutput) Values

The policy can define specific values that are allowed or denied.

type OrganizationPolicyListPolicyDenyPtrInput

type OrganizationPolicyListPolicyDenyPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyDenyPtrOutput() OrganizationPolicyListPolicyDenyPtrOutput
	ToOrganizationPolicyListPolicyDenyPtrOutputWithContext(context.Context) OrganizationPolicyListPolicyDenyPtrOutput
}

OrganizationPolicyListPolicyDenyPtrInput is an input type that accepts OrganizationPolicyListPolicyDenyArgs, OrganizationPolicyListPolicyDenyPtr and OrganizationPolicyListPolicyDenyPtrOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyDenyPtrInput` via:

        OrganizationPolicyListPolicyDenyArgs{...}

or:

        nil

type OrganizationPolicyListPolicyDenyPtrOutput

type OrganizationPolicyListPolicyDenyPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyDenyPtrOutput) All

The policy allows or denies all values.

func (OrganizationPolicyListPolicyDenyPtrOutput) Elem

func (OrganizationPolicyListPolicyDenyPtrOutput) ElementType

func (OrganizationPolicyListPolicyDenyPtrOutput) ToOrganizationPolicyListPolicyDenyPtrOutput

func (o OrganizationPolicyListPolicyDenyPtrOutput) ToOrganizationPolicyListPolicyDenyPtrOutput() OrganizationPolicyListPolicyDenyPtrOutput

func (OrganizationPolicyListPolicyDenyPtrOutput) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext

func (o OrganizationPolicyListPolicyDenyPtrOutput) ToOrganizationPolicyListPolicyDenyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyDenyPtrOutput

func (OrganizationPolicyListPolicyDenyPtrOutput) Values

The policy can define specific values that are allowed or denied.

type OrganizationPolicyListPolicyInput

type OrganizationPolicyListPolicyInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyOutput() OrganizationPolicyListPolicyOutput
	ToOrganizationPolicyListPolicyOutputWithContext(context.Context) OrganizationPolicyListPolicyOutput
}

OrganizationPolicyListPolicyInput is an input type that accepts OrganizationPolicyListPolicyArgs and OrganizationPolicyListPolicyOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyInput` via:

OrganizationPolicyListPolicyArgs{...}

type OrganizationPolicyListPolicyOutput

type OrganizationPolicyListPolicyOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyOutput) Allow

or `deny` - (Optional) One or the other must be set.

func (OrganizationPolicyListPolicyOutput) Deny

func (OrganizationPolicyListPolicyOutput) ElementType

func (OrganizationPolicyListPolicyOutput) InheritFromParent

If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.

func (OrganizationPolicyListPolicyOutput) SuggestedValue

The Google Cloud Console will try to default to a configuration that matches the value specified in this field.

func (OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyOutput

func (o OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyOutput() OrganizationPolicyListPolicyOutput

func (OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyOutputWithContext

func (o OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyOutput

func (OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyPtrOutput

func (o OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyPtrOutput() OrganizationPolicyListPolicyPtrOutput

func (OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyPtrOutputWithContext

func (o OrganizationPolicyListPolicyOutput) ToOrganizationPolicyListPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyPtrOutput

type OrganizationPolicyListPolicyPtrInput

type OrganizationPolicyListPolicyPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyListPolicyPtrOutput() OrganizationPolicyListPolicyPtrOutput
	ToOrganizationPolicyListPolicyPtrOutputWithContext(context.Context) OrganizationPolicyListPolicyPtrOutput
}

OrganizationPolicyListPolicyPtrInput is an input type that accepts OrganizationPolicyListPolicyArgs, OrganizationPolicyListPolicyPtr and OrganizationPolicyListPolicyPtrOutput values. You can construct a concrete instance of `OrganizationPolicyListPolicyPtrInput` via:

        OrganizationPolicyListPolicyArgs{...}

or:

        nil

type OrganizationPolicyListPolicyPtrOutput

type OrganizationPolicyListPolicyPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyListPolicyPtrOutput) Allow

or `deny` - (Optional) One or the other must be set.

func (OrganizationPolicyListPolicyPtrOutput) Deny

func (OrganizationPolicyListPolicyPtrOutput) Elem

func (OrganizationPolicyListPolicyPtrOutput) ElementType

func (OrganizationPolicyListPolicyPtrOutput) InheritFromParent

If set to true, the values from the effective Policy of the parent resource are inherited, meaning the values set in this Policy are added to the values inherited up the hierarchy.

func (OrganizationPolicyListPolicyPtrOutput) SuggestedValue

The Google Cloud Console will try to default to a configuration that matches the value specified in this field.

func (OrganizationPolicyListPolicyPtrOutput) ToOrganizationPolicyListPolicyPtrOutput

func (o OrganizationPolicyListPolicyPtrOutput) ToOrganizationPolicyListPolicyPtrOutput() OrganizationPolicyListPolicyPtrOutput

func (OrganizationPolicyListPolicyPtrOutput) ToOrganizationPolicyListPolicyPtrOutputWithContext

func (o OrganizationPolicyListPolicyPtrOutput) ToOrganizationPolicyListPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyListPolicyPtrOutput

type OrganizationPolicyMap

type OrganizationPolicyMap map[string]OrganizationPolicyInput

func (OrganizationPolicyMap) ElementType

func (OrganizationPolicyMap) ElementType() reflect.Type

func (OrganizationPolicyMap) ToOrganizationPolicyMapOutput

func (i OrganizationPolicyMap) ToOrganizationPolicyMapOutput() OrganizationPolicyMapOutput

func (OrganizationPolicyMap) ToOrganizationPolicyMapOutputWithContext

func (i OrganizationPolicyMap) ToOrganizationPolicyMapOutputWithContext(ctx context.Context) OrganizationPolicyMapOutput

type OrganizationPolicyMapInput

type OrganizationPolicyMapInput interface {
	pulumi.Input

	ToOrganizationPolicyMapOutput() OrganizationPolicyMapOutput
	ToOrganizationPolicyMapOutputWithContext(context.Context) OrganizationPolicyMapOutput
}

OrganizationPolicyMapInput is an input type that accepts OrganizationPolicyMap and OrganizationPolicyMapOutput values. You can construct a concrete instance of `OrganizationPolicyMapInput` via:

OrganizationPolicyMap{ "key": OrganizationPolicyArgs{...} }

type OrganizationPolicyMapOutput

type OrganizationPolicyMapOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyMapOutput) ElementType

func (OrganizationPolicyMapOutput) MapIndex

func (OrganizationPolicyMapOutput) ToOrganizationPolicyMapOutput

func (o OrganizationPolicyMapOutput) ToOrganizationPolicyMapOutput() OrganizationPolicyMapOutput

func (OrganizationPolicyMapOutput) ToOrganizationPolicyMapOutputWithContext

func (o OrganizationPolicyMapOutput) ToOrganizationPolicyMapOutputWithContext(ctx context.Context) OrganizationPolicyMapOutput

type OrganizationPolicyOutput

type OrganizationPolicyOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyOutput) ElementType

func (OrganizationPolicyOutput) ElementType() reflect.Type

func (OrganizationPolicyOutput) ToOrganizationPolicyOutput

func (o OrganizationPolicyOutput) ToOrganizationPolicyOutput() OrganizationPolicyOutput

func (OrganizationPolicyOutput) ToOrganizationPolicyOutputWithContext

func (o OrganizationPolicyOutput) ToOrganizationPolicyOutputWithContext(ctx context.Context) OrganizationPolicyOutput

func (OrganizationPolicyOutput) ToOrganizationPolicyPtrOutput

func (o OrganizationPolicyOutput) ToOrganizationPolicyPtrOutput() OrganizationPolicyPtrOutput

func (OrganizationPolicyOutput) ToOrganizationPolicyPtrOutputWithContext

func (o OrganizationPolicyOutput) ToOrganizationPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyPtrOutput

type OrganizationPolicyPtrInput

type OrganizationPolicyPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyPtrOutput() OrganizationPolicyPtrOutput
	ToOrganizationPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyPtrOutput
}

type OrganizationPolicyPtrOutput

type OrganizationPolicyPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyPtrOutput) Elem added in v5.21.0

func (OrganizationPolicyPtrOutput) ElementType

func (OrganizationPolicyPtrOutput) ToOrganizationPolicyPtrOutput

func (o OrganizationPolicyPtrOutput) ToOrganizationPolicyPtrOutput() OrganizationPolicyPtrOutput

func (OrganizationPolicyPtrOutput) ToOrganizationPolicyPtrOutputWithContext

func (o OrganizationPolicyPtrOutput) ToOrganizationPolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyPtrOutput

type OrganizationPolicyRestorePolicy

type OrganizationPolicyRestorePolicy struct {
	// May only be set to true. If set, then the default Policy is restored.
	Default bool `pulumi:"default"`
}

type OrganizationPolicyRestorePolicyArgs

type OrganizationPolicyRestorePolicyArgs struct {
	// May only be set to true. If set, then the default Policy is restored.
	Default pulumi.BoolInput `pulumi:"default"`
}

func (OrganizationPolicyRestorePolicyArgs) ElementType

func (OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyOutput

func (i OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyOutput() OrganizationPolicyRestorePolicyOutput

func (OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyOutputWithContext

func (i OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyOutputWithContext(ctx context.Context) OrganizationPolicyRestorePolicyOutput

func (OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyPtrOutput

func (i OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyPtrOutput() OrganizationPolicyRestorePolicyPtrOutput

func (OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyPtrOutputWithContext

func (i OrganizationPolicyRestorePolicyArgs) ToOrganizationPolicyRestorePolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyRestorePolicyPtrOutput

type OrganizationPolicyRestorePolicyInput

type OrganizationPolicyRestorePolicyInput interface {
	pulumi.Input

	ToOrganizationPolicyRestorePolicyOutput() OrganizationPolicyRestorePolicyOutput
	ToOrganizationPolicyRestorePolicyOutputWithContext(context.Context) OrganizationPolicyRestorePolicyOutput
}

OrganizationPolicyRestorePolicyInput is an input type that accepts OrganizationPolicyRestorePolicyArgs and OrganizationPolicyRestorePolicyOutput values. You can construct a concrete instance of `OrganizationPolicyRestorePolicyInput` via:

OrganizationPolicyRestorePolicyArgs{...}

type OrganizationPolicyRestorePolicyOutput

type OrganizationPolicyRestorePolicyOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyRestorePolicyOutput) Default

May only be set to true. If set, then the default Policy is restored.

func (OrganizationPolicyRestorePolicyOutput) ElementType

func (OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyOutput

func (o OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyOutput() OrganizationPolicyRestorePolicyOutput

func (OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyOutputWithContext

func (o OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyOutputWithContext(ctx context.Context) OrganizationPolicyRestorePolicyOutput

func (OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyPtrOutput

func (o OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyPtrOutput() OrganizationPolicyRestorePolicyPtrOutput

func (OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyPtrOutputWithContext

func (o OrganizationPolicyRestorePolicyOutput) ToOrganizationPolicyRestorePolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyRestorePolicyPtrOutput

type OrganizationPolicyRestorePolicyPtrInput

type OrganizationPolicyRestorePolicyPtrInput interface {
	pulumi.Input

	ToOrganizationPolicyRestorePolicyPtrOutput() OrganizationPolicyRestorePolicyPtrOutput
	ToOrganizationPolicyRestorePolicyPtrOutputWithContext(context.Context) OrganizationPolicyRestorePolicyPtrOutput
}

OrganizationPolicyRestorePolicyPtrInput is an input type that accepts OrganizationPolicyRestorePolicyArgs, OrganizationPolicyRestorePolicyPtr and OrganizationPolicyRestorePolicyPtrOutput values. You can construct a concrete instance of `OrganizationPolicyRestorePolicyPtrInput` via:

        OrganizationPolicyRestorePolicyArgs{...}

or:

        nil

type OrganizationPolicyRestorePolicyPtrOutput

type OrganizationPolicyRestorePolicyPtrOutput struct{ *pulumi.OutputState }

func (OrganizationPolicyRestorePolicyPtrOutput) Default

May only be set to true. If set, then the default Policy is restored.

func (OrganizationPolicyRestorePolicyPtrOutput) Elem

func (OrganizationPolicyRestorePolicyPtrOutput) ElementType

func (OrganizationPolicyRestorePolicyPtrOutput) ToOrganizationPolicyRestorePolicyPtrOutput

func (o OrganizationPolicyRestorePolicyPtrOutput) ToOrganizationPolicyRestorePolicyPtrOutput() OrganizationPolicyRestorePolicyPtrOutput

func (OrganizationPolicyRestorePolicyPtrOutput) ToOrganizationPolicyRestorePolicyPtrOutputWithContext

func (o OrganizationPolicyRestorePolicyPtrOutput) ToOrganizationPolicyRestorePolicyPtrOutputWithContext(ctx context.Context) OrganizationPolicyRestorePolicyPtrOutput

type OrganizationPolicyState

type OrganizationPolicyState struct {
	// A boolean policy is a constraint that is either enforced or not. Structure is documented below.
	BooleanPolicy OrganizationPolicyBooleanPolicyPtrInput
	// The name of the Constraint the Policy is configuring, for example, `serviceuser.services`. Check out the [complete list of available constraints](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-constraints#available_constraints).
	Constraint pulumi.StringPtrInput
	// (Computed) The etag of the organization policy. `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other.
	Etag pulumi.StringPtrInput
	// A policy that can define specific values that are allowed or denied for the given constraint. It can also be used to allow or deny all values. Structure is documented below.
	ListPolicy OrganizationPolicyListPolicyPtrInput
	// The project id of the project to set the policy for.
	Project pulumi.StringPtrInput
	// A restore policy is a constraint to restore the default policy. Structure is documented below.
	RestorePolicy OrganizationPolicyRestorePolicyPtrInput
	// (Computed) The timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds, representing when the variable was last updated. Example: "2016-10-09T12:33:37.578138407Z".
	UpdateTime pulumi.StringPtrInput
	// Version of the Policy. Default version is 0.
	Version pulumi.IntPtrInput
}

func (OrganizationPolicyState) ElementType

func (OrganizationPolicyState) ElementType() reflect.Type

type Service

type Service struct {
	pulumi.CustomResourceState

	// If `true`, services that are enabled
	// and which depend on this service should also be disabled when this service is
	// destroyed. If `false` or unset, an error will be generated if any enabled
	// services depend on this service when destroying it.
	DisableDependentServices pulumi.BoolPtrOutput `pulumi:"disableDependentServices"`
	// If true, disable the service when the resource is destroyed. Defaults to true. May be useful in the event that a project is long-lived but the infrastructure running in that project changes frequently.
	DisableOnDestroy pulumi.BoolPtrOutput `pulumi:"disableOnDestroy"`
	// The project ID. If not provided, the provider project
	// is used.
	Project pulumi.StringOutput `pulumi:"project"`
	// The service to enable.
	Service pulumi.StringOutput `pulumi:"service"`
}

Allows management of a single API service for a Google Cloud Platform project.

For a list of services available, visit the [API library page](https://console.cloud.google.com/apis/library) or run `gcloud services list --available`.

This resource requires the [Service Usage API](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com) to use.

To get more information about `projects.Service`, see:

* [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1/services) * How-to Guides

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := projects.NewService(ctx, "project", &projects.ServiceArgs{
			DisableDependentServices: pulumi.Bool(true),
			Project:                  pulumi.String("your-project-id"),
			Service:                  pulumi.String("iam.googleapis.com"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Project services can be imported using the `project_id` and `service`, e.g.

```sh

$ pulumi import gcp:projects/service:Service my_project your-project-id/iam.googleapis.com

```

Note that unlike other resources that fail if they already exist, `terraform apply` can be successfully used to verify already enabled services. This means that when importing existing resources into Terraform, you can either import the `google_project_service` resources or treat them as new infrastructure and run `terraform apply` to add them to state.

func GetService

func GetService(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceState, opts ...pulumi.ResourceOption) (*Service, error)

GetService gets an existing Service 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 NewService

func NewService(ctx *pulumi.Context,
	name string, args *ServiceArgs, opts ...pulumi.ResourceOption) (*Service, error)

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

func (*Service) ElementType

func (*Service) ElementType() reflect.Type

func (*Service) ToServiceOutput

func (i *Service) ToServiceOutput() ServiceOutput

func (*Service) ToServiceOutputWithContext

func (i *Service) ToServiceOutputWithContext(ctx context.Context) ServiceOutput

func (*Service) ToServicePtrOutput

func (i *Service) ToServicePtrOutput() ServicePtrOutput

func (*Service) ToServicePtrOutputWithContext

func (i *Service) ToServicePtrOutputWithContext(ctx context.Context) ServicePtrOutput

type ServiceArgs

type ServiceArgs struct {
	// If `true`, services that are enabled
	// and which depend on this service should also be disabled when this service is
	// destroyed. If `false` or unset, an error will be generated if any enabled
	// services depend on this service when destroying it.
	DisableDependentServices pulumi.BoolPtrInput
	// If true, disable the service when the resource is destroyed. Defaults to true. May be useful in the event that a project is long-lived but the infrastructure running in that project changes frequently.
	DisableOnDestroy pulumi.BoolPtrInput
	// The project ID. If not provided, the provider project
	// is used.
	Project pulumi.StringPtrInput
	// The service to enable.
	Service pulumi.StringInput
}

The set of arguments for constructing a Service resource.

func (ServiceArgs) ElementType

func (ServiceArgs) ElementType() reflect.Type

type ServiceArray

type ServiceArray []ServiceInput

func (ServiceArray) ElementType

func (ServiceArray) ElementType() reflect.Type

func (ServiceArray) ToServiceArrayOutput

func (i ServiceArray) ToServiceArrayOutput() ServiceArrayOutput

func (ServiceArray) ToServiceArrayOutputWithContext

func (i ServiceArray) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput

type ServiceArrayInput

type ServiceArrayInput interface {
	pulumi.Input

	ToServiceArrayOutput() ServiceArrayOutput
	ToServiceArrayOutputWithContext(context.Context) ServiceArrayOutput
}

ServiceArrayInput is an input type that accepts ServiceArray and ServiceArrayOutput values. You can construct a concrete instance of `ServiceArrayInput` via:

ServiceArray{ ServiceArgs{...} }

type ServiceArrayOutput

type ServiceArrayOutput struct{ *pulumi.OutputState }

func (ServiceArrayOutput) ElementType

func (ServiceArrayOutput) ElementType() reflect.Type

func (ServiceArrayOutput) Index

func (ServiceArrayOutput) ToServiceArrayOutput

func (o ServiceArrayOutput) ToServiceArrayOutput() ServiceArrayOutput

func (ServiceArrayOutput) ToServiceArrayOutputWithContext

func (o ServiceArrayOutput) ToServiceArrayOutputWithContext(ctx context.Context) ServiceArrayOutput

type ServiceIdentity

type ServiceIdentity struct {
	pulumi.CustomResourceState

	// The email address of the Google managed service account.
	Email pulumi.StringOutput `pulumi:"email"`
	// 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 service to generate identity for.
	Service pulumi.StringOutput `pulumi:"service"`
}

Generate service identity for a service.

> **Note**: Once created, this resource cannot be updated or destroyed. These actions are a no-op.

> **Note**: This resource can be used to retrieve the emails of the [Google-managed service accounts](https://cloud.google.com/iam/docs/service-agents) of the APIs that Google has configured with a Service Identity. You can run `gcloud beta services identity create --service SERVICE_NAME.googleapis.com` to verify if an API supports this.

To get more information about Service Identity, see:

* [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1beta1/services/generateServiceIdentity)

## Example Usage ### Service Identity Basic

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/organizations"
"github.com/pulumi/pulumi-gcp/sdk/v5/go/gcp/projects"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		project, err := organizations.LookupProject(ctx, nil, nil)
		if err != nil {
			return err
		}
		hcSa, err := projects.NewServiceIdentity(ctx, "hcSa", &projects.ServiceIdentityArgs{
			Project: pulumi.String(project.ProjectId),
			Service: pulumi.String("healthcare.googleapis.com"),
		}, pulumi.Provider(google_beta))
		if err != nil {
			return err
		}
		_, err = projects.NewIAMMember(ctx, "hcSaBqJobuser", &projects.IAMMemberArgs{
			Project: pulumi.String(project.ProjectId),
			Role:    pulumi.String("roles/bigquery.jobUser"),
			Member: hcSa.Email.ApplyT(func(email string) (string, error) {
				return fmt.Sprintf("%v%v", "serviceAccount:", email), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

This resource does not support import.

func GetServiceIdentity

func GetServiceIdentity(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServiceIdentityState, opts ...pulumi.ResourceOption) (*ServiceIdentity, error)

GetServiceIdentity gets an existing ServiceIdentity 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 NewServiceIdentity

func NewServiceIdentity(ctx *pulumi.Context,
	name string, args *ServiceIdentityArgs, opts ...pulumi.ResourceOption) (*ServiceIdentity, error)

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

func (*ServiceIdentity) ElementType

func (*ServiceIdentity) ElementType() reflect.Type

func (*ServiceIdentity) ToServiceIdentityOutput

func (i *ServiceIdentity) ToServiceIdentityOutput() ServiceIdentityOutput

func (*ServiceIdentity) ToServiceIdentityOutputWithContext

func (i *ServiceIdentity) ToServiceIdentityOutputWithContext(ctx context.Context) ServiceIdentityOutput

func (*ServiceIdentity) ToServiceIdentityPtrOutput

func (i *ServiceIdentity) ToServiceIdentityPtrOutput() ServiceIdentityPtrOutput

func (*ServiceIdentity) ToServiceIdentityPtrOutputWithContext

func (i *ServiceIdentity) ToServiceIdentityPtrOutputWithContext(ctx context.Context) ServiceIdentityPtrOutput

type ServiceIdentityArgs

type ServiceIdentityArgs struct {
	// The ID of the project in which the resource belongs.
	// If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
	// The service to generate identity for.
	Service pulumi.StringInput
}

The set of arguments for constructing a ServiceIdentity resource.

func (ServiceIdentityArgs) ElementType

func (ServiceIdentityArgs) ElementType() reflect.Type

type ServiceIdentityArray

type ServiceIdentityArray []ServiceIdentityInput

func (ServiceIdentityArray) ElementType

func (ServiceIdentityArray) ElementType() reflect.Type

func (ServiceIdentityArray) ToServiceIdentityArrayOutput

func (i ServiceIdentityArray) ToServiceIdentityArrayOutput() ServiceIdentityArrayOutput

func (ServiceIdentityArray) ToServiceIdentityArrayOutputWithContext

func (i ServiceIdentityArray) ToServiceIdentityArrayOutputWithContext(ctx context.Context) ServiceIdentityArrayOutput

type ServiceIdentityArrayInput

type ServiceIdentityArrayInput interface {
	pulumi.Input

	ToServiceIdentityArrayOutput() ServiceIdentityArrayOutput
	ToServiceIdentityArrayOutputWithContext(context.Context) ServiceIdentityArrayOutput
}

ServiceIdentityArrayInput is an input type that accepts ServiceIdentityArray and ServiceIdentityArrayOutput values. You can construct a concrete instance of `ServiceIdentityArrayInput` via:

ServiceIdentityArray{ ServiceIdentityArgs{...} }

type ServiceIdentityArrayOutput

type ServiceIdentityArrayOutput struct{ *pulumi.OutputState }

func (ServiceIdentityArrayOutput) ElementType

func (ServiceIdentityArrayOutput) ElementType() reflect.Type

func (ServiceIdentityArrayOutput) Index

func (ServiceIdentityArrayOutput) ToServiceIdentityArrayOutput

func (o ServiceIdentityArrayOutput) ToServiceIdentityArrayOutput() ServiceIdentityArrayOutput

func (ServiceIdentityArrayOutput) ToServiceIdentityArrayOutputWithContext

func (o ServiceIdentityArrayOutput) ToServiceIdentityArrayOutputWithContext(ctx context.Context) ServiceIdentityArrayOutput

type ServiceIdentityInput

type ServiceIdentityInput interface {
	pulumi.Input

	ToServiceIdentityOutput() ServiceIdentityOutput
	ToServiceIdentityOutputWithContext(ctx context.Context) ServiceIdentityOutput
}

type ServiceIdentityMap

type ServiceIdentityMap map[string]ServiceIdentityInput

func (ServiceIdentityMap) ElementType

func (ServiceIdentityMap) ElementType() reflect.Type

func (ServiceIdentityMap) ToServiceIdentityMapOutput

func (i ServiceIdentityMap) ToServiceIdentityMapOutput() ServiceIdentityMapOutput

func (ServiceIdentityMap) ToServiceIdentityMapOutputWithContext

func (i ServiceIdentityMap) ToServiceIdentityMapOutputWithContext(ctx context.Context) ServiceIdentityMapOutput

type ServiceIdentityMapInput

type ServiceIdentityMapInput interface {
	pulumi.Input

	ToServiceIdentityMapOutput() ServiceIdentityMapOutput
	ToServiceIdentityMapOutputWithContext(context.Context) ServiceIdentityMapOutput
}

ServiceIdentityMapInput is an input type that accepts ServiceIdentityMap and ServiceIdentityMapOutput values. You can construct a concrete instance of `ServiceIdentityMapInput` via:

ServiceIdentityMap{ "key": ServiceIdentityArgs{...} }

type ServiceIdentityMapOutput

type ServiceIdentityMapOutput struct{ *pulumi.OutputState }

func (ServiceIdentityMapOutput) ElementType

func (ServiceIdentityMapOutput) ElementType() reflect.Type

func (ServiceIdentityMapOutput) MapIndex

func (ServiceIdentityMapOutput) ToServiceIdentityMapOutput

func (o ServiceIdentityMapOutput) ToServiceIdentityMapOutput() ServiceIdentityMapOutput

func (ServiceIdentityMapOutput) ToServiceIdentityMapOutputWithContext

func (o ServiceIdentityMapOutput) ToServiceIdentityMapOutputWithContext(ctx context.Context) ServiceIdentityMapOutput

type ServiceIdentityOutput

type ServiceIdentityOutput struct{ *pulumi.OutputState }

func (ServiceIdentityOutput) ElementType

func (ServiceIdentityOutput) ElementType() reflect.Type

func (ServiceIdentityOutput) ToServiceIdentityOutput

func (o ServiceIdentityOutput) ToServiceIdentityOutput() ServiceIdentityOutput

func (ServiceIdentityOutput) ToServiceIdentityOutputWithContext

func (o ServiceIdentityOutput) ToServiceIdentityOutputWithContext(ctx context.Context) ServiceIdentityOutput

func (ServiceIdentityOutput) ToServiceIdentityPtrOutput

func (o ServiceIdentityOutput) ToServiceIdentityPtrOutput() ServiceIdentityPtrOutput

func (ServiceIdentityOutput) ToServiceIdentityPtrOutputWithContext

func (o ServiceIdentityOutput) ToServiceIdentityPtrOutputWithContext(ctx context.Context) ServiceIdentityPtrOutput

type ServiceIdentityPtrInput

type ServiceIdentityPtrInput interface {
	pulumi.Input

	ToServiceIdentityPtrOutput() ServiceIdentityPtrOutput
	ToServiceIdentityPtrOutputWithContext(ctx context.Context) ServiceIdentityPtrOutput
}

type ServiceIdentityPtrOutput

type ServiceIdentityPtrOutput struct{ *pulumi.OutputState }

func (ServiceIdentityPtrOutput) Elem added in v5.21.0

func (ServiceIdentityPtrOutput) ElementType

func (ServiceIdentityPtrOutput) ElementType() reflect.Type

func (ServiceIdentityPtrOutput) ToServiceIdentityPtrOutput

func (o ServiceIdentityPtrOutput) ToServiceIdentityPtrOutput() ServiceIdentityPtrOutput

func (ServiceIdentityPtrOutput) ToServiceIdentityPtrOutputWithContext

func (o ServiceIdentityPtrOutput) ToServiceIdentityPtrOutputWithContext(ctx context.Context) ServiceIdentityPtrOutput

type ServiceIdentityState

type ServiceIdentityState struct {
	// The email address of the Google managed service account.
	Email 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 service to generate identity for.
	Service pulumi.StringPtrInput
}

func (ServiceIdentityState) ElementType

func (ServiceIdentityState) ElementType() reflect.Type

type ServiceInput

type ServiceInput interface {
	pulumi.Input

	ToServiceOutput() ServiceOutput
	ToServiceOutputWithContext(ctx context.Context) ServiceOutput
}

type ServiceMap

type ServiceMap map[string]ServiceInput

func (ServiceMap) ElementType

func (ServiceMap) ElementType() reflect.Type

func (ServiceMap) ToServiceMapOutput

func (i ServiceMap) ToServiceMapOutput() ServiceMapOutput

func (ServiceMap) ToServiceMapOutputWithContext

func (i ServiceMap) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput

type ServiceMapInput

type ServiceMapInput interface {
	pulumi.Input

	ToServiceMapOutput() ServiceMapOutput
	ToServiceMapOutputWithContext(context.Context) ServiceMapOutput
}

ServiceMapInput is an input type that accepts ServiceMap and ServiceMapOutput values. You can construct a concrete instance of `ServiceMapInput` via:

ServiceMap{ "key": ServiceArgs{...} }

type ServiceMapOutput

type ServiceMapOutput struct{ *pulumi.OutputState }

func (ServiceMapOutput) ElementType

func (ServiceMapOutput) ElementType() reflect.Type

func (ServiceMapOutput) MapIndex

func (ServiceMapOutput) ToServiceMapOutput

func (o ServiceMapOutput) ToServiceMapOutput() ServiceMapOutput

func (ServiceMapOutput) ToServiceMapOutputWithContext

func (o ServiceMapOutput) ToServiceMapOutputWithContext(ctx context.Context) ServiceMapOutput

type ServiceOutput

type ServiceOutput struct{ *pulumi.OutputState }

func (ServiceOutput) ElementType

func (ServiceOutput) ElementType() reflect.Type

func (ServiceOutput) ToServiceOutput

func (o ServiceOutput) ToServiceOutput() ServiceOutput

func (ServiceOutput) ToServiceOutputWithContext

func (o ServiceOutput) ToServiceOutputWithContext(ctx context.Context) ServiceOutput

func (ServiceOutput) ToServicePtrOutput

func (o ServiceOutput) ToServicePtrOutput() ServicePtrOutput

func (ServiceOutput) ToServicePtrOutputWithContext

func (o ServiceOutput) ToServicePtrOutputWithContext(ctx context.Context) ServicePtrOutput

type ServicePtrInput

type ServicePtrInput interface {
	pulumi.Input

	ToServicePtrOutput() ServicePtrOutput
	ToServicePtrOutputWithContext(ctx context.Context) ServicePtrOutput
}

type ServicePtrOutput

type ServicePtrOutput struct{ *pulumi.OutputState }

func (ServicePtrOutput) Elem added in v5.21.0

func (ServicePtrOutput) ElementType

func (ServicePtrOutput) ElementType() reflect.Type

func (ServicePtrOutput) ToServicePtrOutput

func (o ServicePtrOutput) ToServicePtrOutput() ServicePtrOutput

func (ServicePtrOutput) ToServicePtrOutputWithContext

func (o ServicePtrOutput) ToServicePtrOutputWithContext(ctx context.Context) ServicePtrOutput

type ServiceState

type ServiceState struct {
	// If `true`, services that are enabled
	// and which depend on this service should also be disabled when this service is
	// destroyed. If `false` or unset, an error will be generated if any enabled
	// services depend on this service when destroying it.
	DisableDependentServices pulumi.BoolPtrInput
	// If true, disable the service when the resource is destroyed. Defaults to true. May be useful in the event that a project is long-lived but the infrastructure running in that project changes frequently.
	DisableOnDestroy pulumi.BoolPtrInput
	// The project ID. If not provided, the provider project
	// is used.
	Project pulumi.StringPtrInput
	// The service to enable.
	Service pulumi.StringPtrInput
}

func (ServiceState) ElementType

func (ServiceState) ElementType() reflect.Type

type UsageExportBucket

type UsageExportBucket struct {
	pulumi.CustomResourceState

	// The bucket to store reports in.
	BucketName pulumi.StringOutput `pulumi:"bucketName"`
	// A prefix for the reports, for instance, the project name.
	Prefix pulumi.StringPtrOutput `pulumi:"prefix"`
	// The project to set the export bucket on. If it is not provided, the provider project is used.
	Project pulumi.StringOutput `pulumi:"project"`
}

Allows creation and management of a Google Cloud Platform project.

Projects created with this resource must be associated with an Organization. See the [Organization documentation](https://cloud.google.com/resource-manager/docs/quickstarts) for more details.

The user or service account that is running this provider when creating a `organizations.Project` resource must have `roles/resourcemanager.projectCreator` on the specified organization. See the [Access Control for Organizations Using IAM](https://cloud.google.com/resource-manager/docs/access-control-org) doc for more information.

> This resource reads the specified billing account on every provider apply and plan operation so you must have permissions on the specified billing account.

To get more information about projects, see:

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

## Example Usage

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := organizations.NewProject(ctx, "myProject", &organizations.ProjectArgs{
			OrgId:     pulumi.String("1234567"),
			ProjectId: pulumi.String("your-project-id"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

To create a project under a specific folder

```go package main

import (

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

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		department1, err := organizations.NewFolder(ctx, "department1", &organizations.FolderArgs{
			DisplayName: pulumi.String("Department 1"),
			Parent:      pulumi.String("organizations/1234567"),
		})
		if err != nil {
			return err
		}
		_, err = organizations.NewProject(ctx, "myProject_in_a_folder", &organizations.ProjectArgs{
			ProjectId: pulumi.String("your-project-id"),
			FolderId:  department1.Name,
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Projects can be imported using the `project_id`, e.g.

```sh

$ pulumi import gcp:projects/usageExportBucket:UsageExportBucket my_project your-project-id

```

func GetUsageExportBucket

func GetUsageExportBucket(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UsageExportBucketState, opts ...pulumi.ResourceOption) (*UsageExportBucket, error)

GetUsageExportBucket gets an existing UsageExportBucket 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 NewUsageExportBucket

func NewUsageExportBucket(ctx *pulumi.Context,
	name string, args *UsageExportBucketArgs, opts ...pulumi.ResourceOption) (*UsageExportBucket, error)

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

func (*UsageExportBucket) ElementType

func (*UsageExportBucket) ElementType() reflect.Type

func (*UsageExportBucket) ToUsageExportBucketOutput

func (i *UsageExportBucket) ToUsageExportBucketOutput() UsageExportBucketOutput

func (*UsageExportBucket) ToUsageExportBucketOutputWithContext

func (i *UsageExportBucket) ToUsageExportBucketOutputWithContext(ctx context.Context) UsageExportBucketOutput

func (*UsageExportBucket) ToUsageExportBucketPtrOutput

func (i *UsageExportBucket) ToUsageExportBucketPtrOutput() UsageExportBucketPtrOutput

func (*UsageExportBucket) ToUsageExportBucketPtrOutputWithContext

func (i *UsageExportBucket) ToUsageExportBucketPtrOutputWithContext(ctx context.Context) UsageExportBucketPtrOutput

type UsageExportBucketArgs

type UsageExportBucketArgs struct {
	// The bucket to store reports in.
	BucketName pulumi.StringInput
	// A prefix for the reports, for instance, the project name.
	Prefix pulumi.StringPtrInput
	// The project to set the export bucket on. If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

The set of arguments for constructing a UsageExportBucket resource.

func (UsageExportBucketArgs) ElementType

func (UsageExportBucketArgs) ElementType() reflect.Type

type UsageExportBucketArray

type UsageExportBucketArray []UsageExportBucketInput

func (UsageExportBucketArray) ElementType

func (UsageExportBucketArray) ElementType() reflect.Type

func (UsageExportBucketArray) ToUsageExportBucketArrayOutput

func (i UsageExportBucketArray) ToUsageExportBucketArrayOutput() UsageExportBucketArrayOutput

func (UsageExportBucketArray) ToUsageExportBucketArrayOutputWithContext

func (i UsageExportBucketArray) ToUsageExportBucketArrayOutputWithContext(ctx context.Context) UsageExportBucketArrayOutput

type UsageExportBucketArrayInput

type UsageExportBucketArrayInput interface {
	pulumi.Input

	ToUsageExportBucketArrayOutput() UsageExportBucketArrayOutput
	ToUsageExportBucketArrayOutputWithContext(context.Context) UsageExportBucketArrayOutput
}

UsageExportBucketArrayInput is an input type that accepts UsageExportBucketArray and UsageExportBucketArrayOutput values. You can construct a concrete instance of `UsageExportBucketArrayInput` via:

UsageExportBucketArray{ UsageExportBucketArgs{...} }

type UsageExportBucketArrayOutput

type UsageExportBucketArrayOutput struct{ *pulumi.OutputState }

func (UsageExportBucketArrayOutput) ElementType

func (UsageExportBucketArrayOutput) Index

func (UsageExportBucketArrayOutput) ToUsageExportBucketArrayOutput

func (o UsageExportBucketArrayOutput) ToUsageExportBucketArrayOutput() UsageExportBucketArrayOutput

func (UsageExportBucketArrayOutput) ToUsageExportBucketArrayOutputWithContext

func (o UsageExportBucketArrayOutput) ToUsageExportBucketArrayOutputWithContext(ctx context.Context) UsageExportBucketArrayOutput

type UsageExportBucketInput

type UsageExportBucketInput interface {
	pulumi.Input

	ToUsageExportBucketOutput() UsageExportBucketOutput
	ToUsageExportBucketOutputWithContext(ctx context.Context) UsageExportBucketOutput
}

type UsageExportBucketMap

type UsageExportBucketMap map[string]UsageExportBucketInput

func (UsageExportBucketMap) ElementType

func (UsageExportBucketMap) ElementType() reflect.Type

func (UsageExportBucketMap) ToUsageExportBucketMapOutput

func (i UsageExportBucketMap) ToUsageExportBucketMapOutput() UsageExportBucketMapOutput

func (UsageExportBucketMap) ToUsageExportBucketMapOutputWithContext

func (i UsageExportBucketMap) ToUsageExportBucketMapOutputWithContext(ctx context.Context) UsageExportBucketMapOutput

type UsageExportBucketMapInput

type UsageExportBucketMapInput interface {
	pulumi.Input

	ToUsageExportBucketMapOutput() UsageExportBucketMapOutput
	ToUsageExportBucketMapOutputWithContext(context.Context) UsageExportBucketMapOutput
}

UsageExportBucketMapInput is an input type that accepts UsageExportBucketMap and UsageExportBucketMapOutput values. You can construct a concrete instance of `UsageExportBucketMapInput` via:

UsageExportBucketMap{ "key": UsageExportBucketArgs{...} }

type UsageExportBucketMapOutput

type UsageExportBucketMapOutput struct{ *pulumi.OutputState }

func (UsageExportBucketMapOutput) ElementType

func (UsageExportBucketMapOutput) ElementType() reflect.Type

func (UsageExportBucketMapOutput) MapIndex

func (UsageExportBucketMapOutput) ToUsageExportBucketMapOutput

func (o UsageExportBucketMapOutput) ToUsageExportBucketMapOutput() UsageExportBucketMapOutput

func (UsageExportBucketMapOutput) ToUsageExportBucketMapOutputWithContext

func (o UsageExportBucketMapOutput) ToUsageExportBucketMapOutputWithContext(ctx context.Context) UsageExportBucketMapOutput

type UsageExportBucketOutput

type UsageExportBucketOutput struct{ *pulumi.OutputState }

func (UsageExportBucketOutput) ElementType

func (UsageExportBucketOutput) ElementType() reflect.Type

func (UsageExportBucketOutput) ToUsageExportBucketOutput

func (o UsageExportBucketOutput) ToUsageExportBucketOutput() UsageExportBucketOutput

func (UsageExportBucketOutput) ToUsageExportBucketOutputWithContext

func (o UsageExportBucketOutput) ToUsageExportBucketOutputWithContext(ctx context.Context) UsageExportBucketOutput

func (UsageExportBucketOutput) ToUsageExportBucketPtrOutput

func (o UsageExportBucketOutput) ToUsageExportBucketPtrOutput() UsageExportBucketPtrOutput

func (UsageExportBucketOutput) ToUsageExportBucketPtrOutputWithContext

func (o UsageExportBucketOutput) ToUsageExportBucketPtrOutputWithContext(ctx context.Context) UsageExportBucketPtrOutput

type UsageExportBucketPtrInput

type UsageExportBucketPtrInput interface {
	pulumi.Input

	ToUsageExportBucketPtrOutput() UsageExportBucketPtrOutput
	ToUsageExportBucketPtrOutputWithContext(ctx context.Context) UsageExportBucketPtrOutput
}

type UsageExportBucketPtrOutput

type UsageExportBucketPtrOutput struct{ *pulumi.OutputState }

func (UsageExportBucketPtrOutput) Elem added in v5.21.0

func (UsageExportBucketPtrOutput) ElementType

func (UsageExportBucketPtrOutput) ElementType() reflect.Type

func (UsageExportBucketPtrOutput) ToUsageExportBucketPtrOutput

func (o UsageExportBucketPtrOutput) ToUsageExportBucketPtrOutput() UsageExportBucketPtrOutput

func (UsageExportBucketPtrOutput) ToUsageExportBucketPtrOutputWithContext

func (o UsageExportBucketPtrOutput) ToUsageExportBucketPtrOutputWithContext(ctx context.Context) UsageExportBucketPtrOutput

type UsageExportBucketState

type UsageExportBucketState struct {
	// The bucket to store reports in.
	BucketName pulumi.StringPtrInput
	// A prefix for the reports, for instance, the project name.
	Prefix pulumi.StringPtrInput
	// The project to set the export bucket on. If it is not provided, the provider project is used.
	Project pulumi.StringPtrInput
}

func (UsageExportBucketState) ElementType

func (UsageExportBucketState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

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