get Project Service Account
suspend fun getProjectServiceAccount(argument: GetProjectServiceAccountPlainArgs): GetProjectServiceAccountResult
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());
}
}
Content copied to clipboard
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());
}
}
Content copied to clipboard
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.
user Project
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.
suspend fun getProjectServiceAccount(argument: suspend GetProjectServiceAccountPlainArgsBuilder.() -> Unit): GetProjectServiceAccountResult
Return
A collection of values returned by getProjectServiceAccount.
See also
Parameters
argument
Builder for com.pulumi.gcp.storage.kotlin.inputs.GetProjectServiceAccountPlainArgs.