getProjectServiceAccount

Example Usage

Pub/Sub Notifications

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.storage.StorageFunctions;
import com.pulumi.gcp.storage.inputs.GetProjectServiceAccountArgs;
import com.pulumi.gcp.pubsub.TopicIAMBinding;
import com.pulumi.gcp.pubsub.TopicIAMBindingArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var gcsAccount = StorageFunctions.getProjectServiceAccount();
var binding = new TopicIAMBinding("binding", TopicIAMBindingArgs.builder()
.topic(google_pubsub_topic.topic().name())
.role("roles/pubsub.publisher")
.members(String.format("serviceAccount:%s", gcsAccount.applyValue(getProjectServiceAccountResult -> getProjectServiceAccountResult.emailAddress())))
.build());
}
}

Cloud KMS Keys

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.storage.StorageFunctions;
import com.pulumi.gcp.storage.inputs.GetProjectServiceAccountArgs;
import com.pulumi.gcp.kms.CryptoKeyIAMBinding;
import com.pulumi.gcp.kms.CryptoKeyIAMBindingArgs;
import com.pulumi.gcp.storage.Bucket;
import com.pulumi.gcp.storage.BucketArgs;
import com.pulumi.gcp.storage.inputs.BucketEncryptionArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var gcsAccount = StorageFunctions.getProjectServiceAccount();
var binding = new CryptoKeyIAMBinding("binding", CryptoKeyIAMBindingArgs.builder()
.cryptoKeyId("your-crypto-key-id")
.role("roles/cloudkms.cryptoKeyEncrypterDecrypter")
.members(String.format("serviceAccount:%s", gcsAccount.applyValue(getProjectServiceAccountResult -> getProjectServiceAccountResult.emailAddress())))
.build());
var bucket = new Bucket("bucket", BucketArgs.builder()
.location("US")
.encryption(BucketEncryptionArgs.builder()
.defaultKmsKeyName("your-crypto-key-id")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(binding)
.build());
}
}

Return

A collection of values returned by getProjectServiceAccount.

Parameters

argument

A collection of arguments for invoking getProjectServiceAccount.


suspend fun getProjectServiceAccount(project: String? = null, userProject: String? = null): GetProjectServiceAccountResult

Return

A collection of values returned by getProjectServiceAccount.

See also

Parameters

project

The project the unique service account was created for. If it is not provided, the provider project is used.

userProject

The project the lookup originates from. This field is used if you are making the request from a different account than the one you are finding the service account for.


Return

A collection of values returned by getProjectServiceAccount.

See also

Parameters

argument

Builder for com.pulumi.gcp.storage.kotlin.inputs.GetProjectServiceAccountPlainArgs.