1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. serviceaccount
  5. getAccountKey
Google Cloud Classic v7.16.0 published on Wednesday, Mar 27, 2024 by Pulumi

gcp.serviceaccount.getAccountKey

Explore with Pulumi AI

gcp logo
Google Cloud Classic v7.16.0 published on Wednesday, Mar 27, 2024 by Pulumi

    Get service account public key. For more information, see the official documentation and API.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const myaccount = new gcp.serviceaccount.Account("myaccount", {accountId: "dev-foo-account"});
    const mykeyKey = new gcp.serviceaccount.Key("mykey", {serviceAccountId: myaccount.name});
    const mykey = gcp.serviceaccount.getAccountKeyOutput({
        name: mykeyKey.name,
        publicKeyType: "TYPE_X509_PEM_FILE",
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    myaccount = gcp.serviceaccount.Account("myaccount", account_id="dev-foo-account")
    mykey_key = gcp.serviceaccount.Key("mykey", service_account_id=myaccount.name)
    mykey = gcp.serviceaccount.get_account_key_output(name=mykey_key.name,
        public_key_type="TYPE_X509_PEM_FILE")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/serviceaccount"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		myaccount, err := serviceaccount.NewAccount(ctx, "myaccount", &serviceaccount.AccountArgs{
    			AccountId: pulumi.String("dev-foo-account"),
    		})
    		if err != nil {
    			return err
    		}
    		mykeyKey, err := serviceaccount.NewKey(ctx, "mykey", &serviceaccount.KeyArgs{
    			ServiceAccountId: myaccount.Name,
    		})
    		if err != nil {
    			return err
    		}
    		_ = serviceaccount.GetAccountKeyOutput(ctx, serviceaccount.GetAccountKeyOutputArgs{
    			Name:          mykeyKey.Name,
    			PublicKeyType: pulumi.String("TYPE_X509_PEM_FILE"),
    		}, nil)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var myaccount = new Gcp.ServiceAccount.Account("myaccount", new()
        {
            AccountId = "dev-foo-account",
        });
    
        var mykeyKey = new Gcp.ServiceAccount.Key("mykey", new()
        {
            ServiceAccountId = myaccount.Name,
        });
    
        var mykey = Gcp.ServiceAccount.GetAccountKey.Invoke(new()
        {
            Name = mykeyKey.Name,
            PublicKeyType = "TYPE_X509_PEM_FILE",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.serviceaccount.Account;
    import com.pulumi.gcp.serviceaccount.AccountArgs;
    import com.pulumi.gcp.serviceaccount.Key;
    import com.pulumi.gcp.serviceaccount.KeyArgs;
    import com.pulumi.gcp.serviceaccount.ServiceaccountFunctions;
    import com.pulumi.gcp.serviceaccount.inputs.GetAccountKeyArgs;
    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) {
            var myaccount = new Account("myaccount", AccountArgs.builder()        
                .accountId("dev-foo-account")
                .build());
    
            var mykeyKey = new Key("mykeyKey", KeyArgs.builder()        
                .serviceAccountId(myaccount.name())
                .build());
    
            final var mykey = ServiceaccountFunctions.getAccountKey(GetAccountKeyArgs.builder()
                .name(mykeyKey.name())
                .publicKeyType("TYPE_X509_PEM_FILE")
                .build());
    
        }
    }
    
    resources:
      myaccount:
        type: gcp:serviceaccount:Account
        properties:
          accountId: dev-foo-account
      mykeyKey:
        type: gcp:serviceaccount:Key
        name: mykey
        properties:
          serviceAccountId: ${myaccount.name}
    variables:
      mykey:
        fn::invoke:
          Function: gcp:serviceaccount:getAccountKey
          Arguments:
            name: ${mykeyKey.name}
            publicKeyType: TYPE_X509_PEM_FILE
    

    Using getAccountKey

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getAccountKey(args: GetAccountKeyArgs, opts?: InvokeOptions): Promise<GetAccountKeyResult>
    function getAccountKeyOutput(args: GetAccountKeyOutputArgs, opts?: InvokeOptions): Output<GetAccountKeyResult>
    def get_account_key(name: Optional[str] = None,
                        project: Optional[str] = None,
                        public_key_type: Optional[str] = None,
                        opts: Optional[InvokeOptions] = None) -> GetAccountKeyResult
    def get_account_key_output(name: Optional[pulumi.Input[str]] = None,
                        project: Optional[pulumi.Input[str]] = None,
                        public_key_type: Optional[pulumi.Input[str]] = None,
                        opts: Optional[InvokeOptions] = None) -> Output[GetAccountKeyResult]
    func GetAccountKey(ctx *Context, args *GetAccountKeyArgs, opts ...InvokeOption) (*GetAccountKeyResult, error)
    func GetAccountKeyOutput(ctx *Context, args *GetAccountKeyOutputArgs, opts ...InvokeOption) GetAccountKeyResultOutput

    > Note: This function is named GetAccountKey in the Go SDK.

    public static class GetAccountKey 
    {
        public static Task<GetAccountKeyResult> InvokeAsync(GetAccountKeyArgs args, InvokeOptions? opts = null)
        public static Output<GetAccountKeyResult> Invoke(GetAccountKeyInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetAccountKeyResult> getAccountKey(GetAccountKeyArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: gcp:serviceaccount/getAccountKey:getAccountKey
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Name string
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    Project string
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    PublicKeyType string
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
    Name string
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    Project string
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    PublicKeyType string
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
    name String
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    project String
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    publicKeyType String
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
    name string
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    project string
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    publicKeyType string
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
    name str
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    project str
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    public_key_type str
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.
    name String
    The name of the service account key. This must have format projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{KEYID}, where {ACCOUNT} is the email address or unique id of the service account.
    project String
    The ID of the project that the service account will be created in. Defaults to the provider project configuration.
    publicKeyType String
    The output format of the public key requested. TYPE_X509_PEM_FILE is the default output format.

    getAccountKey Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    KeyAlgorithm string
    Name string
    PublicKey string
    The public key, base64 encoded
    Project string
    PublicKeyType string
    Id string
    The provider-assigned unique ID for this managed resource.
    KeyAlgorithm string
    Name string
    PublicKey string
    The public key, base64 encoded
    Project string
    PublicKeyType string
    id String
    The provider-assigned unique ID for this managed resource.
    keyAlgorithm String
    name String
    publicKey String
    The public key, base64 encoded
    project String
    publicKeyType String
    id string
    The provider-assigned unique ID for this managed resource.
    keyAlgorithm string
    name string
    publicKey string
    The public key, base64 encoded
    project string
    publicKeyType string
    id str
    The provider-assigned unique ID for this managed resource.
    key_algorithm str
    name str
    public_key str
    The public key, base64 encoded
    project str
    public_key_type str
    id String
    The provider-assigned unique ID for this managed resource.
    keyAlgorithm String
    name String
    publicKey String
    The public key, base64 encoded
    project String
    publicKeyType String

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud Classic v7.16.0 published on Wednesday, Mar 27, 2024 by Pulumi