Google Cloud (GCP) Classic

Pulumi Official
Package maintained by Pulumi
v6.32.0 published on Wednesday, Jul 20, 2022 by Pulumi

AccessApprovalSettings

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:

Example Usage

Project Access Approval Full

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
    public MyStack()
    {
        var projectAccessApproval = new Gcp.Projects.AccessApprovalSettings("projectAccessApproval", new Gcp.Projects.AccessApprovalSettingsArgs
        {
            EnrolledServices = 
            {
                new Gcp.Projects.Inputs.AccessApprovalSettingsEnrolledServiceArgs
                {
                    CloudProduct = "all",
                    EnrollmentLevel = "BLOCK_ALL",
                },
            },
            NotificationEmails = 
            {
                "testuser@example.com",
                "example.user@example.com",
            },
            ProjectId = "my-project-name",
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v6/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
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var projectAccessApproval = new AccessApprovalSettings("projectAccessApproval", AccessApprovalSettingsArgs.builder()        
            .enrolledServices(AccessApprovalSettingsEnrolledServiceArgs.builder()
                .cloudProduct("all")
                .enrollmentLevel("BLOCK_ALL")
                .build())
            .notificationEmails(            
                "testuser@example.com",
                "example.user@example.com")
            .projectId("my-project-name")
            .build());

    }
}
import pulumi
import pulumi_gcp as gcp

project_access_approval = gcp.projects.AccessApprovalSettings("projectAccessApproval",
    enrolled_services=[gcp.projects.AccessApprovalSettingsEnrolledServiceArgs(
        cloud_product="all",
        enrollment_level="BLOCK_ALL",
    )],
    notification_emails=[
        "testuser@example.com",
        "example.user@example.com",
    ],
    project_id="my-project-name")
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const projectAccessApproval = new gcp.projects.AccessApprovalSettings("project_access_approval", {
    enrolledServices: [{
        cloudProduct: "all",
        enrollmentLevel: "BLOCK_ALL",
    }],
    notificationEmails: [
        "testuser@example.com",
        "example.user@example.com",
    ],
    projectId: "my-project-name",
});
resources:
  projectAccessApproval:
    type: gcp:projects:AccessApprovalSettings
    properties:
      enrolledServices:
        - cloudProduct: all
          enrollmentLevel: BLOCK_ALL
      notificationEmails:
        - testuser@example.com
        - example.user@example.com
      projectId: my-project-name

Project Access Approval Active Key Version

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
    public MyStack()
    {
        var keyRing = new Gcp.Kms.KeyRing("keyRing", new Gcp.Kms.KeyRingArgs
        {
            Location = "global",
            Project = "my-project-name",
        });
        var cryptoKey = new Gcp.Kms.CryptoKey("cryptoKey", new Gcp.Kms.CryptoKeyArgs
        {
            KeyRing = keyRing.Id,
            Purpose = "ASYMMETRIC_SIGN",
            VersionTemplate = new Gcp.Kms.Inputs.CryptoKeyVersionTemplateArgs
            {
                Algorithm = "EC_SIGN_P384_SHA384",
            },
        });
        var serviceAccount = Output.Create(Gcp.AccessApproval.GetProjectServiceAccount.InvokeAsync(new Gcp.AccessApproval.GetProjectServiceAccountArgs
        {
            ProjectId = "my-project-name",
        }));
        var iam = new Gcp.Kms.CryptoKeyIAMMember("iam", new Gcp.Kms.CryptoKeyIAMMemberArgs
        {
            CryptoKeyId = cryptoKey.Id,
            Role = "roles/cloudkms.signerVerifier",
            Member = serviceAccount.Apply(serviceAccount => $"serviceAccount:{serviceAccount.AccountEmail}"),
        });
        var cryptoKeyVersion = Gcp.Kms.GetKMSCryptoKeyVersion.Invoke(new Gcp.Kms.GetKMSCryptoKeyVersionInvokeArgs
        {
            CryptoKey = cryptoKey.Id,
        });
        var projectAccessApproval = new Gcp.Projects.AccessApprovalSettings("projectAccessApproval", new Gcp.Projects.AccessApprovalSettingsArgs
        {
            ProjectId = "my-project-name",
            ActiveKeyVersion = cryptoKeyVersion.Apply(cryptoKeyVersion => cryptoKeyVersion.Name),
            EnrolledServices = 
            {
                new Gcp.Projects.Inputs.AccessApprovalSettingsEnrolledServiceArgs
                {
                    CloudProduct = "all",
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn = 
            {
                iam,
            },
        });
    }

}
package main

import (
	"fmt"

	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/accessapproval"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/projects"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		keyRing, err := kms.NewKeyRing(ctx, "keyRing", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
			Project:  pulumi.String("my-project-name"),
		})
		if err != nil {
			return err
		}
		cryptoKey, err := kms.NewCryptoKey(ctx, "cryptoKey", &kms.CryptoKeyArgs{
			KeyRing: keyRing.ID(),
			Purpose: pulumi.String("ASYMMETRIC_SIGN"),
			VersionTemplate: &kms.CryptoKeyVersionTemplateArgs{
				Algorithm: pulumi.String("EC_SIGN_P384_SHA384"),
			},
		})
		if err != nil {
			return err
		}
		serviceAccount, err := accessapproval.GetProjectServiceAccount(ctx, &accessapproval.GetProjectServiceAccountArgs{
			ProjectId: "my-project-name",
		}, nil)
		if err != nil {
			return err
		}
		iam, err := kms.NewCryptoKeyIAMMember(ctx, "iam", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.signerVerifier"),
			Member:      pulumi.String(fmt.Sprintf("%v%v", "serviceAccount:", serviceAccount.AccountEmail)),
		})
		if err != nil {
			return err
		}
		cryptoKeyVersion := kms.GetKMSCryptoKeyVersionOutput(ctx, kms.GetKMSCryptoKeyVersionOutputArgs{
			CryptoKey: cryptoKey.ID(),
		}, nil)
		_, err = projects.NewAccessApprovalSettings(ctx, "projectAccessApproval", &projects.AccessApprovalSettingsArgs{
			ProjectId: pulumi.String("my-project-name"),
			ActiveKeyVersion: cryptoKeyVersion.ApplyT(func(cryptoKeyVersion kms.GetKMSCryptoKeyVersionResult) (string, error) {
				return cryptoKeyVersion.Name, nil
			}).(pulumi.StringOutput),
			EnrolledServices: projects.AccessApprovalSettingsEnrolledServiceArray{
				&projects.AccessApprovalSettingsEnrolledServiceArgs{
					CloudProduct: pulumi.String("all"),
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			iam,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;
import com.pulumi.resources.CustomResourceOptions;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var keyRing = new KeyRing("keyRing", KeyRingArgs.builder()        
            .location("global")
            .project("my-project-name")
            .build());

        var cryptoKey = new CryptoKey("cryptoKey", CryptoKeyArgs.builder()        
            .keyRing(keyRing.id())
            .purpose("ASYMMETRIC_SIGN")
            .versionTemplate(CryptoKeyVersionTemplateArgs.builder()
                .algorithm("EC_SIGN_P384_SHA384")
                .build())
            .build());

        final var serviceAccount = Output.of(AccessapprovalFunctions.getProjectServiceAccount(GetProjectServiceAccountArgs.builder()
            .projectId("my-project-name")
            .build()));

        var iam = new CryptoKeyIAMMember("iam", CryptoKeyIAMMemberArgs.builder()        
            .cryptoKeyId(cryptoKey.id())
            .role("roles/cloudkms.signerVerifier")
            .member(String.format("serviceAccount:%s", serviceAccount.apply(getProjectServiceAccountResult -> getProjectServiceAccountResult.accountEmail())))
            .build());

        final var cryptoKeyVersion = KmsFunctions.getKMSCryptoKeyVersion(GetKMSCryptoKeyVersionArgs.builder()
            .cryptoKey(cryptoKey.id())
            .build());

        var projectAccessApproval = new AccessApprovalSettings("projectAccessApproval", AccessApprovalSettingsArgs.builder()        
            .projectId("my-project-name")
            .activeKeyVersion(cryptoKeyVersion.apply(getKMSCryptoKeyVersionResult -> getKMSCryptoKeyVersionResult).apply(cryptoKeyVersion -> cryptoKeyVersion.apply(getKMSCryptoKeyVersionResult -> getKMSCryptoKeyVersionResult.name())))
            .enrolledServices(AccessApprovalSettingsEnrolledServiceArgs.builder()
                .cloudProduct("all")
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(iam)
                .build());

    }
}
import pulumi
import pulumi_gcp as gcp

key_ring = gcp.kms.KeyRing("keyRing",
    location="global",
    project="my-project-name")
crypto_key = gcp.kms.CryptoKey("cryptoKey",
    key_ring=key_ring.id,
    purpose="ASYMMETRIC_SIGN",
    version_template=gcp.kms.CryptoKeyVersionTemplateArgs(
        algorithm="EC_SIGN_P384_SHA384",
    ))
service_account = gcp.accessapproval.get_project_service_account(project_id="my-project-name")
iam = gcp.kms.CryptoKeyIAMMember("iam",
    crypto_key_id=crypto_key.id,
    role="roles/cloudkms.signerVerifier",
    member=f"serviceAccount:{service_account.account_email}")
crypto_key_version = gcp.kms.get_kms_crypto_key_version_output(crypto_key=crypto_key.id)
project_access_approval = gcp.projects.AccessApprovalSettings("projectAccessApproval",
    project_id="my-project-name",
    active_key_version=crypto_key_version.name,
    enrolled_services=[gcp.projects.AccessApprovalSettingsEnrolledServiceArgs(
        cloud_product="all",
    )],
    opts=pulumi.ResourceOptions(depends_on=[iam]))
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const keyRing = new gcp.kms.KeyRing("keyRing", {
    location: "global",
    project: "my-project-name",
});
const cryptoKey = new gcp.kms.CryptoKey("cryptoKey", {
    keyRing: keyRing.id,
    purpose: "ASYMMETRIC_SIGN",
    versionTemplate: {
        algorithm: "EC_SIGN_P384_SHA384",
    },
});
const serviceAccount = gcp.accessapproval.getProjectServiceAccount({
    projectId: "my-project-name",
});
const iam = new gcp.kms.CryptoKeyIAMMember("iam", {
    cryptoKeyId: cryptoKey.id,
    role: "roles/cloudkms.signerVerifier",
    member: serviceAccount.then(serviceAccount => `serviceAccount:${serviceAccount.accountEmail}`),
});
const cryptoKeyVersion = gcp.kms.getKMSCryptoKeyVersionOutput({
    cryptoKey: cryptoKey.id,
});
const projectAccessApproval = new gcp.projects.AccessApprovalSettings("projectAccessApproval", {
    projectId: "my-project-name",
    activeKeyVersion: cryptoKeyVersion.apply(cryptoKeyVersion => cryptoKeyVersion.name),
    enrolledServices: [{
        cloudProduct: "all",
    }],
}, {
    dependsOn: [iam],
});
resources:
  keyRing:
    type: gcp:kms:KeyRing
    properties:
      location: global
      project: my-project-name
  cryptoKey:
    type: gcp:kms:CryptoKey
    properties:
      keyRing: ${keyRing.id}
      purpose: ASYMMETRIC_SIGN
      versionTemplate:
        algorithm: EC_SIGN_P384_SHA384
  iam:
    type: gcp:kms:CryptoKeyIAMMember
    properties:
      cryptoKeyId: ${cryptoKey.id}
      role: roles/cloudkms.signerVerifier
      member: serviceAccount:${serviceAccount.accountEmail}
  projectAccessApproval:
    type: gcp:projects:AccessApprovalSettings
    properties:
      projectId: my-project-name
      activeKeyVersion: ${cryptoKeyVersion.name}
      enrolledServices:
        - cloudProduct: all
    options:
      dependson:
        - ${iam}
variables:
  serviceAccount:
    Fn::Invoke:
      Function: gcp:accessapproval:getProjectServiceAccount
      Arguments:
        projectId: my-project-name
  cryptoKeyVersion:
    Fn::Invoke:
      Function: gcp:kms:getKMSCryptoKeyVersion
      Arguments:
        cryptoKey: ${cryptoKey.id}

Create a AccessApprovalSettings Resource

new AccessApprovalSettings(name: string, args: AccessApprovalSettingsArgs, opts?: CustomResourceOptions);
@overload
def AccessApprovalSettings(resource_name: str,
                           opts: Optional[ResourceOptions] = None,
                           active_key_version: Optional[str] = None,
                           enrolled_services: Optional[Sequence[AccessApprovalSettingsEnrolledServiceArgs]] = None,
                           notification_emails: Optional[Sequence[str]] = None,
                           project: Optional[str] = None,
                           project_id: Optional[str] = None)
@overload
def AccessApprovalSettings(resource_name: str,
                           args: AccessApprovalSettingsArgs,
                           opts: Optional[ResourceOptions] = None)
func NewAccessApprovalSettings(ctx *Context, name string, args AccessApprovalSettingsArgs, opts ...ResourceOption) (*AccessApprovalSettings, error)
public AccessApprovalSettings(string name, AccessApprovalSettingsArgs args, CustomResourceOptions? opts = null)
public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args)
public AccessApprovalSettings(String name, AccessApprovalSettingsArgs args, CustomResourceOptions options)
type: gcp:projects:AccessApprovalSettings
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args AccessApprovalSettingsArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args AccessApprovalSettingsArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args AccessApprovalSettingsArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args AccessApprovalSettingsArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args AccessApprovalSettingsArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

AccessApprovalSettings Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The AccessApprovalSettings resource accepts the following input properties:

EnrolledServices List<AccessApprovalSettingsEnrolledServiceArgs>

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.

ProjectId string

ID of the project of the access approval settings.

ActiveKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

NotificationEmails List<string>

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.

Project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

EnrolledServices []AccessApprovalSettingsEnrolledServiceArgs

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.

ProjectId string

ID of the project of the access approval settings.

ActiveKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

NotificationEmails []string

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.

Project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

enrolledServices List<AccessApprovalSettingsEnrolledServiceArgs>

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.

projectId String

ID of the project of the access approval settings.

activeKeyVersion String

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

notificationEmails List<String>

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.

project String

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

enrolledServices AccessApprovalSettingsEnrolledServiceArgs[]

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.

projectId string

ID of the project of the access approval settings.

activeKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

notificationEmails string[]

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.

project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

enrolled_services Sequence[AccessApprovalSettingsEnrolledServiceArgs]

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.

project_id str

ID of the project of the access approval settings.

active_key_version str

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

notification_emails Sequence[str]

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.

project str

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

enrolledServices List<Property Map>

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.

projectId String

ID of the project of the access approval settings.

activeKeyVersion String

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

notificationEmails List<String>

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.

project String

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

Outputs

All input properties are implicitly available as output properties. Additionally, the AccessApprovalSettings resource produces the following output properties:

AncestorHasActiveKeyVersion bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

EnrolledAncestor bool

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.

Id string

The provider-assigned unique ID for this managed resource.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

Name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

AncestorHasActiveKeyVersion bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

EnrolledAncestor bool

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.

Id string

The provider-assigned unique ID for this managed resource.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

Name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor Boolean

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.

id String

The provider-assigned unique ID for this managed resource.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name String

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor boolean

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.

id string

The provider-assigned unique ID for this managed resource.

invalidKeyVersion boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

ancestor_has_active_key_version bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolled_ancestor bool

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.

id str

The provider-assigned unique ID for this managed resource.

invalid_key_version bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name str

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor Boolean

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.

id String

The provider-assigned unique ID for this managed resource.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name String

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

Look up an Existing AccessApprovalSettings Resource

Get an existing AccessApprovalSettings resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: AccessApprovalSettingsState, opts?: CustomResourceOptions): AccessApprovalSettings
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        active_key_version: Optional[str] = None,
        ancestor_has_active_key_version: Optional[bool] = None,
        enrolled_ancestor: Optional[bool] = None,
        enrolled_services: Optional[Sequence[AccessApprovalSettingsEnrolledServiceArgs]] = None,
        invalid_key_version: Optional[bool] = None,
        name: Optional[str] = None,
        notification_emails: Optional[Sequence[str]] = None,
        project: Optional[str] = None,
        project_id: Optional[str] = None) -> AccessApprovalSettings
func GetAccessApprovalSettings(ctx *Context, name string, id IDInput, state *AccessApprovalSettingsState, opts ...ResourceOption) (*AccessApprovalSettings, error)
public static AccessApprovalSettings Get(string name, Input<string> id, AccessApprovalSettingsState? state, CustomResourceOptions? opts = null)
public static AccessApprovalSettings get(String name, Output<String> id, AccessApprovalSettingsState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
ActiveKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

AncestorHasActiveKeyVersion bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

EnrolledAncestor bool

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.

EnrolledServices List<AccessApprovalSettingsEnrolledServiceArgs>

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.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

Name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

NotificationEmails List<string>

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.

Project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

ProjectId string

ID of the project of the access approval settings.

ActiveKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

AncestorHasActiveKeyVersion bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

EnrolledAncestor bool

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.

EnrolledServices []AccessApprovalSettingsEnrolledServiceArgs

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.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

Name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

NotificationEmails []string

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.

Project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

ProjectId string

ID of the project of the access approval settings.

activeKeyVersion String

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor Boolean

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.

enrolledServices List<AccessApprovalSettingsEnrolledServiceArgs>

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.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name String

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

notificationEmails List<String>

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.

project String

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

projectId String

ID of the project of the access approval settings.

activeKeyVersion string

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

ancestorHasActiveKeyVersion boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor boolean

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.

enrolledServices AccessApprovalSettingsEnrolledServiceArgs[]

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.

invalidKeyVersion boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name string

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

notificationEmails string[]

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.

project string

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

projectId string

ID of the project of the access approval settings.

active_key_version str

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

ancestor_has_active_key_version bool

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolled_ancestor bool

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.

enrolled_services Sequence[AccessApprovalSettingsEnrolledServiceArgs]

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.

invalid_key_version bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name str

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

notification_emails Sequence[str]

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.

project str

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

project_id str

ID of the project of the access approval settings.

activeKeyVersion String

The asymmetric crypto key version to use for signing approval requests. Empty active_key_version indicates that a Google-managed key should be used for signing. This property will be ignored if set by an ancestor of the resource, and new non-empty values may not be set.

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Project has set active_key_version.

enrolledAncestor Boolean

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.

enrolledServices List<Property Map>

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.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Project (e.g. it doesn't exist or the Access Approval service account doesn't have the correct permissions on it, etc.) This key version is not necessarily the effective key version at this level, as key versions are inherited top-down.

name String

The resource name of the settings. Format is "projects/{project_id}/accessApprovalSettings"

notificationEmails List<String>

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.

project String

(Optional, Deprecated) Deprecated in favor of project_id

Deprecated:

Deprecated in favor of project_id

projectId String

ID of the project of the access approval settings.

Supporting Types

AccessApprovalSettingsEnrolledService

CloudProduct string

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

EnrollmentLevel string

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

CloudProduct string

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

EnrollmentLevel string

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

cloudProduct String

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

enrollmentLevel String

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

cloudProduct string

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

enrollmentLevel string

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

cloud_product str

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

enrollment_level str

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

cloudProduct String

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

enrollmentLevel String

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

Import

ProjectSettings can be imported using any of these accepted formats

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

Package Details

Repository
https://github.com/pulumi/pulumi-gcp
License
Apache-2.0
Notes

This Pulumi package is based on the google-beta Terraform Provider.