Google Cloud (GCP) Classic

Pulumi Official
Package maintained by Pulumi
v6.24.0 published on Tuesday, May 17, 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 FolderSettings, see:

Example Usage

Folder Access Approval Full

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
    public MyStack()
    {
        var myFolder = new Gcp.Organizations.Folder("myFolder", new Gcp.Organizations.FolderArgs
        {
            DisplayName = "my-folder",
            Parent = "organizations/123456789",
        });
        var folderAccessApproval = new Gcp.Folder.AccessApprovalSettings("folderAccessApproval", new Gcp.Folder.AccessApprovalSettingsArgs
        {
            FolderId = myFolder.FolderId,
            NotificationEmails = 
            {
                "testuser@example.com",
                "example.user@example.com",
            },
            EnrolledServices = 
            {
                new Gcp.Folder.Inputs.AccessApprovalSettingsEnrolledServiceArgs
                {
                    CloudProduct = "all",
                },
            },
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/folder"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myFolder, err := organizations.NewFolder(ctx, "myFolder", &organizations.FolderArgs{
			DisplayName: pulumi.String("my-folder"),
			Parent:      pulumi.String("organizations/123456789"),
		})
		if err != nil {
			return err
		}
		_, err = folder.NewAccessApprovalSettings(ctx, "folderAccessApproval", &folder.AccessApprovalSettingsArgs{
			FolderId: myFolder.FolderId,
			NotificationEmails: pulumi.StringArray{
				pulumi.String("testuser@example.com"),
				pulumi.String("example.user@example.com"),
			},
			EnrolledServices: folder.AccessApprovalSettingsEnrolledServiceArray{
				&folder.AccessApprovalSettingsEnrolledServiceArgs{
					CloudProduct: pulumi.String("all"),
				},
			},
		})
		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 myFolder = new Folder("myFolder", FolderArgs.builder()        
            .displayName("my-folder")
            .parent("organizations/123456789")
            .build());

        var folderAccessApproval = new AccessApprovalSettings("folderAccessApproval", AccessApprovalSettingsArgs.builder()        
            .folderId(myFolder.getFolderId())
            .notificationEmails(            
                "testuser@example.com",
                "example.user@example.com")
            .enrolledServices(AccessApprovalSettingsEnrolledService.builder()
                .cloudProduct("all")
                .build())
            .build());

        }
}
import pulumi
import pulumi_gcp as gcp

my_folder = gcp.organizations.Folder("myFolder",
    display_name="my-folder",
    parent="organizations/123456789")
folder_access_approval = gcp.folder.AccessApprovalSettings("folderAccessApproval",
    folder_id=my_folder.folder_id,
    notification_emails=[
        "testuser@example.com",
        "example.user@example.com",
    ],
    enrolled_services=[gcp.folder.AccessApprovalSettingsEnrolledServiceArgs(
        cloud_product="all",
    )])
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const myFolder = new gcp.organizations.Folder("myFolder", {
    displayName: "my-folder",
    parent: "organizations/123456789",
});
const folderAccessApproval = new gcp.folder.AccessApprovalSettings("folderAccessApproval", {
    folderId: myFolder.folderId,
    notificationEmails: [
        "testuser@example.com",
        "example.user@example.com",
    ],
    enrolledServices: [{
        cloudProduct: "all",
    }],
});
resources:
  myFolder:
    type: gcp:organizations:Folder
    properties:
      displayName: my-folder
      parent: organizations/123456789
  folderAccessApproval:
    type: gcp:folder:AccessApprovalSettings
    properties:
      folderId: ${myFolder.folderId}
      notificationEmails:
        - testuser@example.com
        - example.user@example.com
      enrolledServices:
        - cloudProduct: all

Folder Access Approval Active Key Version

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
    public MyStack()
    {
        var myFolder = new Gcp.Organizations.Folder("myFolder", new Gcp.Organizations.FolderArgs
        {
            DisplayName = "my-folder",
            Parent = "organizations/123456789",
        });
        var myProject = new Gcp.Organizations.Project("myProject", new Gcp.Organizations.ProjectArgs
        {
            ProjectId = "your-project-id",
            FolderId = myFolder.Name,
        });
        var keyRing = new Gcp.Kms.KeyRing("keyRing", new Gcp.Kms.KeyRingArgs
        {
            Location = "global",
            Project = myProject.ProjectId,
        });
        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 = Gcp.AccessApproval.GetFolderServiceAccount.Invoke(new Gcp.AccessApproval.GetFolderServiceAccountInvokeArgs
        {
            FolderId = myFolder.FolderId,
        });
        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 folderAccessApproval = new Gcp.Folder.AccessApprovalSettings("folderAccessApproval", new Gcp.Folder.AccessApprovalSettingsArgs
        {
            FolderId = myFolder.FolderId,
            ActiveKeyVersion = cryptoKeyVersion.Apply(cryptoKeyVersion => cryptoKeyVersion.Name),
            EnrolledServices = 
            {
                new Gcp.Folder.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/folder"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/kms"
	"github.com/pulumi/pulumi-gcp/sdk/v6/go/gcp/organizations"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		myFolder, err := organizations.NewFolder(ctx, "myFolder", &organizations.FolderArgs{
			DisplayName: pulumi.String("my-folder"),
			Parent:      pulumi.String("organizations/123456789"),
		})
		if err != nil {
			return err
		}
		myProject, err := organizations.NewProject(ctx, "myProject", &organizations.ProjectArgs{
			ProjectId: pulumi.String("your-project-id"),
			FolderId:  myFolder.Name,
		})
		if err != nil {
			return err
		}
		keyRing, err := kms.NewKeyRing(ctx, "keyRing", &kms.KeyRingArgs{
			Location: pulumi.String("global"),
			Project:  myProject.ProjectId,
		})
		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 := accessapproval.GetFolderServiceAccountOutput(ctx, accessapproval.GetFolderServiceAccountOutputArgs{
			FolderId: myFolder.FolderId,
		}, nil)
		iam, err := kms.NewCryptoKeyIAMMember(ctx, "iam", &kms.CryptoKeyIAMMemberArgs{
			CryptoKeyId: cryptoKey.ID(),
			Role:        pulumi.String("roles/cloudkms.signerVerifier"),
			Member: serviceAccount.ApplyT(func(serviceAccount accessapproval.GetFolderServiceAccountResult) (string, error) {
				return fmt.Sprintf("%v%v", "serviceAccount:", serviceAccount.AccountEmail), nil
			}).(pulumi.StringOutput),
		})
		if err != nil {
			return err
		}
		cryptoKeyVersion := kms.GetKMSCryptoKeyVersionOutput(ctx, kms.GetKMSCryptoKeyVersionOutputArgs{
			CryptoKey: cryptoKey.ID(),
		}, nil)
		_, err = folder.NewAccessApprovalSettings(ctx, "folderAccessApproval", &folder.AccessApprovalSettingsArgs{
			FolderId: myFolder.FolderId,
			ActiveKeyVersion: cryptoKeyVersion.ApplyT(func(cryptoKeyVersion kms.GetKMSCryptoKeyVersionResult) (string, error) {
				return cryptoKeyVersion.Name, nil
			}).(pulumi.StringOutput),
			EnrolledServices: folder.AccessApprovalSettingsEnrolledServiceArray{
				&folder.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.*;

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

    public static void stack(Context ctx) {
        var myFolder = new Folder("myFolder", FolderArgs.builder()        
            .displayName("my-folder")
            .parent("organizations/123456789")
            .build());

        var myProject = new Project("myProject", ProjectArgs.builder()        
            .projectId("your-project-id")
            .folderId(myFolder.getName())
            .build());

        var keyRing = new KeyRing("keyRing", KeyRingArgs.builder()        
            .location("global")
            .project(myProject.getProjectId())
            .build());

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

        final var serviceAccount = AccessapprovalFunctions.getFolderServiceAccount(GetFolderServiceAccountArgs.builder()
            .folderId(myFolder.getFolderId())
            .build());

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

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

        var folderAccessApproval = new AccessApprovalSettings("folderAccessApproval", AccessApprovalSettingsArgs.builder()        
            .folderId(myFolder.getFolderId())
            .activeKeyVersion(cryptoKeyVersion.apply(getKMSCryptoKeyVersionResult -> getKMSCryptoKeyVersionResult).apply(cryptoKeyVersion -> cryptoKeyVersion.apply(getKMSCryptoKeyVersionResult -> getKMSCryptoKeyVersionResult.getName())))
            .enrolledServices(AccessApprovalSettingsEnrolledService.builder()
                .cloudProduct("all")
                .build())
            .build());

        }
}
import pulumi
import pulumi_gcp as gcp

my_folder = gcp.organizations.Folder("myFolder",
    display_name="my-folder",
    parent="organizations/123456789")
my_project = gcp.organizations.Project("myProject",
    project_id="your-project-id",
    folder_id=my_folder.name)
key_ring = gcp.kms.KeyRing("keyRing",
    location="global",
    project=my_project.project_id)
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_folder_service_account_output(folder_id=my_folder.folder_id)
iam = gcp.kms.CryptoKeyIAMMember("iam",
    crypto_key_id=crypto_key.id,
    role="roles/cloudkms.signerVerifier",
    member=service_account.apply(lambda service_account: f"serviceAccount:{service_account.account_email}"))
crypto_key_version = gcp.kms.get_kms_crypto_key_version_output(crypto_key=crypto_key.id)
folder_access_approval = gcp.folder.AccessApprovalSettings("folderAccessApproval",
    folder_id=my_folder.folder_id,
    active_key_version=crypto_key_version.name,
    enrolled_services=[gcp.folder.AccessApprovalSettingsEnrolledServiceArgs(
        cloud_product="all",
    )],
    opts=pulumi.ResourceOptions(depends_on=[iam]))
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const myFolder = new gcp.organizations.Folder("myFolder", {
    displayName: "my-folder",
    parent: "organizations/123456789",
});
const myProject = new gcp.organizations.Project("myProject", {
    projectId: "your-project-id",
    folderId: myFolder.name,
});
const keyRing = new gcp.kms.KeyRing("keyRing", {
    location: "global",
    project: myProject.projectId,
});
const cryptoKey = new gcp.kms.CryptoKey("cryptoKey", {
    keyRing: keyRing.id,
    purpose: "ASYMMETRIC_SIGN",
    versionTemplate: {
        algorithm: "EC_SIGN_P384_SHA384",
    },
});
const serviceAccount = gcp.accessapproval.getFolderServiceAccountOutput({
    folderId: myFolder.folderId,
});
const iam = new gcp.kms.CryptoKeyIAMMember("iam", {
    cryptoKeyId: cryptoKey.id,
    role: "roles/cloudkms.signerVerifier",
    member: serviceAccount.apply(serviceAccount => `serviceAccount:${serviceAccount.accountEmail}`),
});
const cryptoKeyVersion = gcp.kms.getKMSCryptoKeyVersionOutput({
    cryptoKey: cryptoKey.id,
});
const folderAccessApproval = new gcp.folder.AccessApprovalSettings("folderAccessApproval", {
    folderId: myFolder.folderId,
    activeKeyVersion: cryptoKeyVersion.apply(cryptoKeyVersion => cryptoKeyVersion.name),
    enrolledServices: [{
        cloudProduct: "all",
    }],
}, {
    dependsOn: [iam],
});
resources:
  myFolder:
    type: gcp:organizations:Folder
    properties:
      displayName: my-folder
      parent: organizations/123456789
  myProject:
    type: gcp:organizations:Project
    properties:
      projectId: your-project-id
      folderId: ${myFolder.name}
  keyRing:
    type: gcp:kms:KeyRing
    properties:
      location: global
      project: ${myProject.projectId}
  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}
  folderAccessApproval:
    type: gcp:folder:AccessApprovalSettings
    properties:
      folderId: ${myFolder.folderId}
      activeKeyVersion: ${cryptoKeyVersion.name}
      enrolledServices:
        - cloudProduct: all
    options:
      dependson:
        - ${iam}
variables:
  serviceAccount:
    Fn::Invoke:
      Function: gcp:accessapproval:getFolderServiceAccount
      Arguments:
        folderId: ${myFolder.folderId}
  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,
                           folder_id: Optional[str] = None,
                           notification_emails: Optional[Sequence[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:folder: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.

FolderId string

ID of the folder 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.

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.

FolderId string

ID of the folder 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.

enrolledServices ListApprovalSettingsEnrolledServiceArgs>

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.

folderId String

ID of the folder 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

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.

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.

folderId string

ID of the folder 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.

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.

folder_id str

ID of the folder 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.

enrolledServices List

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.

folderId String

ID of the folder 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

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.

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 Folder 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 Folder.

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 Folder (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 "folders/{folder_id}/accessApprovalSettings"

AncestorHasActiveKeyVersion bool

If the field is true, that indicates that an ancestor of this Folder 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 Folder.

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 Folder (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 "folders/{folder_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Folder 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 Folder.

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 Folder (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 "folders/{folder_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion boolean

If the field is true, that indicates that an ancestor of this Folder 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 Folder.

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 Folder (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 "folders/{folder_id}/accessApprovalSettings"

ancestor_has_active_key_version bool

If the field is true, that indicates that an ancestor of this Folder 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 Folder.

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 Folder (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 "folders/{folder_id}/accessApprovalSettings"

ancestorHasActiveKeyVersion Boolean

If the field is true, that indicates that an ancestor of this Folder 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 Folder.

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 Folder (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 "folders/{folder_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,
        folder_id: Optional[str] = None,
        invalid_key_version: Optional[bool] = None,
        name: Optional[str] = None,
        notification_emails: Optional[Sequence[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 Folder 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 Folder.

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.

FolderId string

ID of the folder of the access approval settings.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Folder (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 "folders/{folder_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.

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 Folder 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 Folder.

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.

FolderId string

ID of the folder of the access approval settings.

InvalidKeyVersion bool

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Folder (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 "folders/{folder_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.

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 Folder 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 Folder.

enrolledServices ListApprovalSettingsEnrolledServiceArgs>

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.

folderId String

ID of the folder of the access approval settings.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Folder (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 "folders/{folder_id}/accessApprovalSettings"

notificationEmails List

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.

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 Folder 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 Folder.

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.

folderId string

ID of the folder of the access approval settings.

invalidKeyVersion boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Folder (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 "folders/{folder_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.

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 Folder 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 Folder.

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.

folder_id str

ID of the folder of the access approval settings.

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 Folder (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 "folders/{folder_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.

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 Folder 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 Folder.

enrolledServices List

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.

folderId String

ID of the folder of the access approval settings.

invalidKeyVersion Boolean

If the field is true, that indicates that there is some configuration issue with the active_key_version configured on this Folder (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 "folders/{folder_id}/accessApprovalSettings"

notificationEmails List

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.

Supporting Types

AccessApprovalSettingsEnrolledService

CloudProduct string

The product for which Access Approval will be enrolled. Allowed values are listed (case-sensitive):

  • all
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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
  • App Engine
  • BigQuery
  • Cloud Bigtable
  • Cloud Key Management Service
  • Compute Engine
  • Cloud Dataflow
  • Cloud Identity and Access Management
  • Cloud Pub/Sub
  • Cloud Storage
  • Persistent Disk Note: These values are supported as input, but considered a legacy format:
  • 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

FolderSettings can be imported using any of these accepted formats

 $ pulumi import gcp:folder/accessApprovalSettings:AccessApprovalSettings default folders/{{folder_id}}/accessApprovalSettings
 $ pulumi import gcp:folder/accessApprovalSettings:AccessApprovalSettings default {{folder_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.