Viewing docs for MongoDB Atlas v4.18.1
published on Tuesday, Oct 27, 2026 by Pulumi
published on Tuesday, Oct 27, 2026 by Pulumi
Viewing docs for MongoDB Atlas v4.18.1
published on Tuesday, Oct 27, 2026 by Pulumi
published on Tuesday, Oct 27, 2026 by Pulumi
mongodbatlas.ProjectServiceAccount describes a Project Service Account.
IMPORTANT WARNING: Managing Service Accounts with Terraform exposes sensitive organizational secrets in Terraform’s state. We suggest following Terraform’s best practices.
Example Usage
S
import * as pulumi from "@pulumi/pulumi";
import * as mongodbatlas from "@pulumi/mongodbatlas";
// Read the Project Service Account and the project's Service Accounts back from Atlas.
const _this = mongodbatlas.getProjectServiceAccount({
projectId: projectId,
clientId: thisMongodbatlasProjectServiceAccount.clientId,
});
const thisGetProjectServiceAccounts = mongodbatlas.getProjectServiceAccounts({
projectId: projectId,
});
export const serviceAccountClientId = thisMongodbatlasProjectServiceAccount.clientId;
export const serviceAccountName = _this.then(_this => _this.name);
export const serviceAccountsResults = thisGetProjectServiceAccounts.then(thisGetProjectServiceAccounts => thisGetProjectServiceAccounts.results);
import pulumi
import pulumi_mongodbatlas as mongodbatlas
# Read the Project Service Account and the project's Service Accounts back from Atlas.
this = mongodbatlas.get_project_service_account(project_id=project_id,
client_id=this_mongodbatlas_project_service_account["clientId"])
this_get_project_service_accounts = mongodbatlas.get_project_service_accounts(project_id=project_id)
pulumi.export("serviceAccountClientId", this_mongodbatlas_project_service_account["clientId"])
pulumi.export("serviceAccountName", this.name)
pulumi.export("serviceAccountsResults", this_get_project_service_accounts.results)
package main
import (
"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Read the Project Service Account and the project's Service Accounts back from Atlas.
this, err := mongodbatlas.GetProjectServiceAccount(ctx, &mongodbatlas.LookupProjectServiceAccountArgs{
ProjectId: projectId,
ClientId: thisMongodbatlasProjectServiceAccount.ClientId,
}, nil)
if err != nil {
return err
}
thisGetProjectServiceAccounts, err := mongodbatlas.GetProjectServiceAccounts(ctx, &mongodbatlas.LookupProjectServiceAccountsArgs{
ProjectId: projectId,
}, nil)
if err != nil {
return err
}
ctx.Export("serviceAccountClientId", pulumi.Any(thisMongodbatlasProjectServiceAccount.ClientId))
ctx.Export("serviceAccountName", this.Name)
ctx.Export("serviceAccountsResults", thisGetProjectServiceAccounts.Results)
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Mongodbatlas = Pulumi.Mongodbatlas;
return await Deployment.RunAsync(() =>
{
// Read the Project Service Account and the project's Service Accounts back from Atlas.
var @this = Mongodbatlas.GetProjectServiceAccount.Invoke(new()
{
ProjectId = projectId,
ClientId = thisMongodbatlasProjectServiceAccount.ClientId,
});
var thisGetProjectServiceAccounts = Mongodbatlas.GetProjectServiceAccounts.Invoke(new()
{
ProjectId = projectId,
});
return new Dictionary<string, object?>
{
["serviceAccountClientId"] = thisMongodbatlasProjectServiceAccount.ClientId,
["serviceAccountName"] = @this.Apply(@this => @this.Apply(getProjectServiceAccountResult => getProjectServiceAccountResult.Name)),
["serviceAccountsResults"] = thisGetProjectServiceAccounts.Apply(getProjectServiceAccountsResult => getProjectServiceAccountsResult.Results),
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.mongodbatlas.MongodbatlasFunctions;
import com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountArgs;
import com.pulumi.mongodbatlas.inputs.GetProjectServiceAccountsArgs;
import java.util.ArrayList;
import java.util.Arrays;
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) {
// Read the Project Service Account and the project's Service Accounts back from Atlas.
final var this = MongodbatlasFunctions.getProjectServiceAccount(GetProjectServiceAccountArgs.builder()
.projectId(projectId)
.clientId(thisMongodbatlasProjectServiceAccount.get("clientId"))
.build());
final var thisGetProjectServiceAccounts = MongodbatlasFunctions.getProjectServiceAccounts(GetProjectServiceAccountsArgs.builder()
.projectId(projectId)
.build());
ctx.export("serviceAccountClientId", thisMongodbatlasProjectServiceAccount.get("clientId"));
ctx.export("serviceAccountName", this_.name());
ctx.export("serviceAccountsResults", thisGetProjectServiceAccounts.results());
}
}
variables:
# Read the Project Service Account and the project's Service Accounts back from Atlas.
this:
fn::invoke:
function: mongodbatlas:getProjectServiceAccount
arguments:
projectId: ${projectId}
clientId: ${thisMongodbatlasProjectServiceAccount.clientId}
thisGetProjectServiceAccounts:
fn::invoke:
function: mongodbatlas:getProjectServiceAccounts
arguments:
projectId: ${projectId}
outputs:
serviceAccountClientId: ${thisMongodbatlasProjectServiceAccount.clientId}
serviceAccountName: ${this.name}
serviceAccountsResults: ${thisGetProjectServiceAccounts.results}
terraform {
required_providers {
mongodbatlas = {
source = "pulumi/mongodbatlas"
}
}
}
data "mongodbatlas_project_service_account" "this" {
project_id = projectId
client_id = thisMongodbatlasProjectServiceAccount.clientId
}
data "mongodbatlas_project_service_accounts" "thisGetProjectServiceAccounts" {
project_id = projectId
}
# Read the Project Service Account and the project's Service Accounts back from Atlas.
output "serviceAccountClientId" {
value = thisMongodbatlasProjectServiceAccount.clientId
}
output "serviceAccountName" {
value = data.mongodbatlas_project_service_account.this.name
}
output "serviceAccountsResults" {
value = data.mongodbatlas_project_service_accounts.thisGetProjectServiceAccounts.results
}
Using getProjectServiceAccount
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 getProjectServiceAccount(args: GetProjectServiceAccountArgs, opts?: InvokeOptions): Promise<GetProjectServiceAccountResult>
function getProjectServiceAccountOutput(args: GetProjectServiceAccountOutputArgs, opts?: InvokeOutputOptions): Output<GetProjectServiceAccountResult>def get_project_service_account(client_id: Optional[str] = None,
project_id: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetProjectServiceAccountResult
def get_project_service_account_output(client_id: pulumi.Input[Optional[str]] = None,
project_id: pulumi.Input[Optional[str]] = None,
opts: Optional[InvokeOutputOptions] = None) -> Output[GetProjectServiceAccountResult]func LookupProjectServiceAccount(ctx *Context, args *LookupProjectServiceAccountArgs, opts ...InvokeOption) (*LookupProjectServiceAccountResult, error)
func LookupProjectServiceAccountOutput(ctx *Context, args *LookupProjectServiceAccountOutputArgs, opts ...InvokeOption) LookupProjectServiceAccountResultOutput> Note: This function is named LookupProjectServiceAccount in the Go SDK.
public static class GetProjectServiceAccount
{
public static Task<GetProjectServiceAccountResult> InvokeAsync(GetProjectServiceAccountArgs args, InvokeOptions? opts = null)
public static Output<GetProjectServiceAccountResult> Invoke(GetProjectServiceAccountInvokeArgs args, InvokeOptions? opts = null)
public static Output<GetProjectServiceAccountResult> Invoke(GetProjectServiceAccountInvokeArgs args, InvokeOutputOptions opts)
}public static CompletableFuture<GetProjectServiceAccountResult> getProjectServiceAccount(GetProjectServiceAccountArgs args, InvokeOptions options)
public static Output<GetProjectServiceAccountResult> getProjectServiceAccount(GetProjectServiceAccountArgs args, InvokeOptions options)
public static Output<GetProjectServiceAccountResult> getProjectServiceAccount(GetProjectServiceAccountArgs args, InvokeOutputOptions options)
fn::invoke:
function: mongodbatlas:index/getProjectServiceAccount:getProjectServiceAccount
arguments:
# arguments dictionarydata "mongodbatlas_get_project_service_account" "name" {
# arguments
}The following arguments are supported:
- client_
id string - The Client ID of the Service Account.
- project_
id string - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation.
- client_
id str - The Client ID of the Service Account.
- project_
id str - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation.
getProjectServiceAccount Result
The following output properties are available:
- Client
Id string - The Client ID of the Service Account.
- Created
At string - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Description string
- Human readable description for the Service Account.
- Name string
- Human-readable name for the Service Account.
- Project
Id string - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - Roles List<string>
- A list of Project roles associated with the Service Account.
- Secrets
List<Get
Project Service Account Secret> - A list of secrets associated with the specified Service Account.
- System
Managed bool - Indicates whether the Service Account is system managed.
- Client
Id string - The Client ID of the Service Account.
- Created
At string - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Description string
- Human readable description for the Service Account.
- Name string
- Human-readable name for the Service Account.
- Project
Id string - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - Roles []string
- A list of Project roles associated with the Service Account.
- Secrets
[]Get
Project Service Account Secret Type - A list of secrets associated with the specified Service Account.
- System
Managed bool - Indicates whether the Service Account is system managed.
- client_
id string - The Client ID of the Service Account.
- created_
at string - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- description string
- Human readable description for the Service Account.
- name string
- Human-readable name for the Service Account.
- project_
id string - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - roles list(string)
- A list of Project roles associated with the Service Account.
- secrets list(object)
- A list of secrets associated with the specified Service Account.
- system_
managed bool - Indicates whether the Service Account is system managed.
- client
Id String - The Client ID of the Service Account.
- created
At String - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- description String
- Human readable description for the Service Account.
- name String
- Human-readable name for the Service Account.
- project
Id String - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - roles List<String>
- A list of Project roles associated with the Service Account.
- secrets
List<Get
Project Service Account Secret> - A list of secrets associated with the specified Service Account.
- system
Managed Boolean - Indicates whether the Service Account is system managed.
- client
Id string - The Client ID of the Service Account.
- created
At string - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- description string
- Human readable description for the Service Account.
- name string
- Human-readable name for the Service Account.
- project
Id string - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - roles string[]
- A list of Project roles associated with the Service Account.
- secrets
Get
Project Service Account Secret[] - A list of secrets associated with the specified Service Account.
- system
Managed boolean - Indicates whether the Service Account is system managed.
- client_
id str - The Client ID of the Service Account.
- created_
at str - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- description str
- Human readable description for the Service Account.
- name str
- Human-readable name for the Service Account.
- project_
id str - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - roles Sequence[str]
- A list of Project roles associated with the Service Account.
- secrets
Sequence[Get
Project Service Account Secret] - A list of secrets associated with the specified Service Account.
- system_
managed bool - Indicates whether the Service Account is system managed.
- client
Id String - The Client ID of the Service Account.
- created
At String - The date that the Service Account was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- description String
- Human readable description for the Service Account.
- name String
- Human-readable name for the Service Account.
- project
Id String - Unique 24-hexadecimal digit string that identifies your project, also known as
groupIdin the official documentation. - roles List<String>
- A list of Project roles associated with the Service Account.
- secrets List<Property Map>
- A list of secrets associated with the specified Service Account.
- system
Managed Boolean - Indicates whether the Service Account is system managed.
Supporting Types
GetProjectServiceAccountSecret
- Created
At string - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Expires
At string - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Last
Used stringAt - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Masked
Secret stringValue - The masked Service Account secret.
- Secret
Id string - Unique 24-hexadecimal digit string that identifies the secret.
- Created
At string - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Expires
At string - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Last
Used stringAt - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- Masked
Secret stringValue - The masked Service Account secret.
- Secret
Id string - Unique 24-hexadecimal digit string that identifies the secret.
- created_
at string - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- expires_
at string - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- last_
used_ stringat - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- masked_
secret_ stringvalue - The masked Service Account secret.
- secret_
id string - Unique 24-hexadecimal digit string that identifies the secret.
- created
At String - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- expires
At String - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- last
Used StringAt - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- masked
Secret StringValue - The masked Service Account secret.
- secret
Id String - Unique 24-hexadecimal digit string that identifies the secret.
- created
At string - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- expires
At string - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- last
Used stringAt - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- masked
Secret stringValue - The masked Service Account secret.
- secret
Id string - Unique 24-hexadecimal digit string that identifies the secret.
- created_
at str - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- expires_
at str - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- last_
used_ strat - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- masked_
secret_ strvalue - The masked Service Account secret.
- secret_
id str - Unique 24-hexadecimal digit string that identifies the secret.
- created
At String - The date that the secret was created on. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- expires
At String - The date for the expiration of the secret. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- last
Used StringAt - The last time the secret was used. This parameter expresses its value in the ISO 8601 timestamp format in UTC.
- masked
Secret StringValue - The masked Service Account secret.
- secret
Id String - Unique 24-hexadecimal digit string that identifies the secret.
Package Details
- Repository
- MongoDB Atlas pulumi/pulumi-mongodbatlas
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
mongodbatlasTerraform Provider.
Viewing docs for MongoDB Atlas v4.18.1
published on Tuesday, Oct 27, 2026 by Pulumi
published on Tuesday, Oct 27, 2026 by Pulumi