1. Packages
  2. Mongodbatlas Provider
  3. API Docs
  4. getApiKeyProjectAssignments
MongoDB Atlas v3.35.0 published on Monday, Aug 11, 2025 by Pulumi

mongodbatlas.getApiKeyProjectAssignments

Explore with Pulumi AI

mongodbatlas logo
MongoDB Atlas v3.35.0 published on Monday, Aug 11, 2025 by Pulumi

    # Data Source: mongodbatlas.getApiKeyProjectAssignments

    mongodbatlas.getApiKeyProjectAssignments provides an API Key Project Assignments data source. The data source lets you list all API key project assignments for an organization.

    Example Usage

    S

    import * as pulumi from "@pulumi/pulumi";
    import * as mongodbatlas from "@pulumi/mongodbatlas";
    
    const _this = new mongodbatlas.ApiKey("this", {
        orgId: orgId,
        description: "Test API Key",
        roleNames: ["ORG_READ_ONLY"],
    });
    const firstProject = new mongodbatlas.Project("first_project", {
        name: "First Project",
        orgId: orgId,
    });
    const secondProject = new mongodbatlas.Project("second_project", {
        name: "Second Project",
        orgId: orgId,
    });
    const firstAssignment = new mongodbatlas.ApiKeyProjectAssignment("first_assignment", {
        projectId: firstProject.id,
        apiKeyId: _this.apiKeyId,
        roles: ["GROUP_OWNER"],
    });
    const secondAssignment = new mongodbatlas.ApiKeyProjectAssignment("second_assignment", {
        projectId: secondProject.id,
        apiKeyId: _this.apiKeyId,
        roles: ["GROUP_OWNER"],
    });
    // Add IP Access List Entry to Programmatic API Key 
    const thisAccessListApiKey = new mongodbatlas.AccessListApiKey("this", {
        orgId: orgId,
        cidrBlock: "0.0.0.0/1",
        apiKeyId: _this.apiKeyId,
    });
    
    import pulumi
    import pulumi_mongodbatlas as mongodbatlas
    
    this = mongodbatlas.ApiKey("this",
        org_id=org_id,
        description="Test API Key",
        role_names=["ORG_READ_ONLY"])
    first_project = mongodbatlas.Project("first_project",
        name="First Project",
        org_id=org_id)
    second_project = mongodbatlas.Project("second_project",
        name="Second Project",
        org_id=org_id)
    first_assignment = mongodbatlas.ApiKeyProjectAssignment("first_assignment",
        project_id=first_project.id,
        api_key_id=this.api_key_id,
        roles=["GROUP_OWNER"])
    second_assignment = mongodbatlas.ApiKeyProjectAssignment("second_assignment",
        project_id=second_project.id,
        api_key_id=this.api_key_id,
        roles=["GROUP_OWNER"])
    # Add IP Access List Entry to Programmatic API Key 
    this_access_list_api_key = mongodbatlas.AccessListApiKey("this",
        org_id=org_id,
        cidr_block="0.0.0.0/1",
        api_key_id=this.api_key_id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-mongodbatlas/sdk/v3/go/mongodbatlas"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		this, err := mongodbatlas.NewApiKey(ctx, "this", &mongodbatlas.ApiKeyArgs{
    			OrgId:       pulumi.Any(orgId),
    			Description: pulumi.String("Test API Key"),
    			RoleNames: pulumi.StringArray{
    				pulumi.String("ORG_READ_ONLY"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		firstProject, err := mongodbatlas.NewProject(ctx, "first_project", &mongodbatlas.ProjectArgs{
    			Name:  pulumi.String("First Project"),
    			OrgId: pulumi.Any(orgId),
    		})
    		if err != nil {
    			return err
    		}
    		secondProject, err := mongodbatlas.NewProject(ctx, "second_project", &mongodbatlas.ProjectArgs{
    			Name:  pulumi.String("Second Project"),
    			OrgId: pulumi.Any(orgId),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = mongodbatlas.NewApiKeyProjectAssignment(ctx, "first_assignment", &mongodbatlas.ApiKeyProjectAssignmentArgs{
    			ProjectId: firstProject.ID(),
    			ApiKeyId:  this.ApiKeyId,
    			Roles: pulumi.StringArray{
    				pulumi.String("GROUP_OWNER"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = mongodbatlas.NewApiKeyProjectAssignment(ctx, "second_assignment", &mongodbatlas.ApiKeyProjectAssignmentArgs{
    			ProjectId: secondProject.ID(),
    			ApiKeyId:  this.ApiKeyId,
    			Roles: pulumi.StringArray{
    				pulumi.String("GROUP_OWNER"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		// Add IP Access List Entry to Programmatic API Key
    		_, err = mongodbatlas.NewAccessListApiKey(ctx, "this", &mongodbatlas.AccessListApiKeyArgs{
    			OrgId:     pulumi.Any(orgId),
    			CidrBlock: pulumi.String("0.0.0.0/1"),
    			ApiKeyId:  this.ApiKeyId,
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Mongodbatlas = Pulumi.Mongodbatlas;
    
    return await Deployment.RunAsync(() => 
    {
        var @this = new Mongodbatlas.ApiKey("this", new()
        {
            OrgId = orgId,
            Description = "Test API Key",
            RoleNames = new[]
            {
                "ORG_READ_ONLY",
            },
        });
    
        var firstProject = new Mongodbatlas.Project("first_project", new()
        {
            Name = "First Project",
            OrgId = orgId,
        });
    
        var secondProject = new Mongodbatlas.Project("second_project", new()
        {
            Name = "Second Project",
            OrgId = orgId,
        });
    
        var firstAssignment = new Mongodbatlas.ApiKeyProjectAssignment("first_assignment", new()
        {
            ProjectId = firstProject.Id,
            ApiKeyId = @this.ApiKeyId,
            Roles = new[]
            {
                "GROUP_OWNER",
            },
        });
    
        var secondAssignment = new Mongodbatlas.ApiKeyProjectAssignment("second_assignment", new()
        {
            ProjectId = secondProject.Id,
            ApiKeyId = @this.ApiKeyId,
            Roles = new[]
            {
                "GROUP_OWNER",
            },
        });
    
        // Add IP Access List Entry to Programmatic API Key 
        var thisAccessListApiKey = new Mongodbatlas.AccessListApiKey("this", new()
        {
            OrgId = orgId,
            CidrBlock = "0.0.0.0/1",
            ApiKeyId = @this.ApiKeyId,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.mongodbatlas.ApiKey;
    import com.pulumi.mongodbatlas.ApiKeyArgs;
    import com.pulumi.mongodbatlas.Project;
    import com.pulumi.mongodbatlas.ProjectArgs;
    import com.pulumi.mongodbatlas.ApiKeyProjectAssignment;
    import com.pulumi.mongodbatlas.ApiKeyProjectAssignmentArgs;
    import com.pulumi.mongodbatlas.AccessListApiKey;
    import com.pulumi.mongodbatlas.AccessListApiKeyArgs;
    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 this_ = new ApiKey("this", ApiKeyArgs.builder()
                .orgId(orgId)
                .description("Test API Key")
                .roleNames("ORG_READ_ONLY")
                .build());
    
            var firstProject = new Project("firstProject", ProjectArgs.builder()
                .name("First Project")
                .orgId(orgId)
                .build());
    
            var secondProject = new Project("secondProject", ProjectArgs.builder()
                .name("Second Project")
                .orgId(orgId)
                .build());
    
            var firstAssignment = new ApiKeyProjectAssignment("firstAssignment", ApiKeyProjectAssignmentArgs.builder()
                .projectId(firstProject.id())
                .apiKeyId(this_.apiKeyId())
                .roles("GROUP_OWNER")
                .build());
    
            var secondAssignment = new ApiKeyProjectAssignment("secondAssignment", ApiKeyProjectAssignmentArgs.builder()
                .projectId(secondProject.id())
                .apiKeyId(this_.apiKeyId())
                .roles("GROUP_OWNER")
                .build());
    
            // Add IP Access List Entry to Programmatic API Key 
            var thisAccessListApiKey = new AccessListApiKey("thisAccessListApiKey", AccessListApiKeyArgs.builder()
                .orgId(orgId)
                .cidrBlock("0.0.0.0/1")
                .apiKeyId(this_.apiKeyId())
                .build());
    
        }
    }
    
    resources:
      this:
        type: mongodbatlas:ApiKey
        properties:
          orgId: ${orgId}
          description: Test API Key
          roleNames:
            - ORG_READ_ONLY
      firstProject:
        type: mongodbatlas:Project
        name: first_project
        properties:
          name: First Project
          orgId: ${orgId}
      secondProject:
        type: mongodbatlas:Project
        name: second_project
        properties:
          name: Second Project
          orgId: ${orgId}
      firstAssignment:
        type: mongodbatlas:ApiKeyProjectAssignment
        name: first_assignment
        properties:
          projectId: ${firstProject.id}
          apiKeyId: ${this.apiKeyId}
          roles:
            - GROUP_OWNER
      secondAssignment:
        type: mongodbatlas:ApiKeyProjectAssignment
        name: second_assignment
        properties:
          projectId: ${secondProject.id}
          apiKeyId: ${this.apiKeyId}
          roles:
            - GROUP_OWNER
      # Add IP Access List Entry to Programmatic API Key
      thisAccessListApiKey:
        type: mongodbatlas:AccessListApiKey
        name: this
        properties:
          orgId: ${orgId}
          cidrBlock: 0.0.0.0/1
          apiKeyId: ${this.apiKeyId}
    

    Using getApiKeyProjectAssignments

    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 getApiKeyProjectAssignments(args: GetApiKeyProjectAssignmentsArgs, opts?: InvokeOptions): Promise<GetApiKeyProjectAssignmentsResult>
    function getApiKeyProjectAssignmentsOutput(args: GetApiKeyProjectAssignmentsOutputArgs, opts?: InvokeOptions): Output<GetApiKeyProjectAssignmentsResult>
    def get_api_key_project_assignments(project_id: Optional[str] = None,
                                        opts: Optional[InvokeOptions] = None) -> GetApiKeyProjectAssignmentsResult
    def get_api_key_project_assignments_output(project_id: Optional[pulumi.Input[str]] = None,
                                        opts: Optional[InvokeOptions] = None) -> Output[GetApiKeyProjectAssignmentsResult]
    func LookupApiKeyProjectAssignments(ctx *Context, args *LookupApiKeyProjectAssignmentsArgs, opts ...InvokeOption) (*LookupApiKeyProjectAssignmentsResult, error)
    func LookupApiKeyProjectAssignmentsOutput(ctx *Context, args *LookupApiKeyProjectAssignmentsOutputArgs, opts ...InvokeOption) LookupApiKeyProjectAssignmentsResultOutput

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

    public static class GetApiKeyProjectAssignments 
    {
        public static Task<GetApiKeyProjectAssignmentsResult> InvokeAsync(GetApiKeyProjectAssignmentsArgs args, InvokeOptions? opts = null)
        public static Output<GetApiKeyProjectAssignmentsResult> Invoke(GetApiKeyProjectAssignmentsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetApiKeyProjectAssignmentsResult> getApiKeyProjectAssignments(GetApiKeyProjectAssignmentsArgs args, InvokeOptions options)
    public static Output<GetApiKeyProjectAssignmentsResult> getApiKeyProjectAssignments(GetApiKeyProjectAssignmentsArgs args, InvokeOptions options)
    
    fn::invoke:
      function: mongodbatlas:index/getApiKeyProjectAssignments:getApiKeyProjectAssignments
      arguments:
        # arguments dictionary

    The following arguments are supported:

    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    projectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    project_id str
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.

    getApiKeyProjectAssignments Result

    The following output properties are available:

    Id string
    The provider-assigned unique ID for this managed resource.
    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    Results List<GetApiKeyProjectAssignmentsResult>
    Id string
    The provider-assigned unique ID for this managed resource.
    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    Results []GetApiKeyProjectAssignmentsResult
    id String
    The provider-assigned unique ID for this managed resource.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    results List<GetApiKeyProjectAssignmentsResult>
    id string
    The provider-assigned unique ID for this managed resource.
    projectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    results GetApiKeyProjectAssignmentsResult[]
    id str
    The provider-assigned unique ID for this managed resource.
    project_id str
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    results Sequence[GetApiKeyProjectAssignmentsResult]
    id String
    The provider-assigned unique ID for this managed resource.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    results List<Property Map>

    Supporting Types

    GetApiKeyProjectAssignmentsResult

    ApiKeyId string
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    Roles List<string>
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.
    ApiKeyId string
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    ProjectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    Roles []string
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.
    apiKeyId String
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    roles List<String>
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.
    apiKeyId string
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    projectId string
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    roles string[]
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.
    api_key_id str
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    project_id str
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    roles Sequence[str]
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.
    apiKeyId String
    Unique 24-hexadecimal digit string that identifies this organization API key that you want to assign to one project.
    projectId String
    Unique 24-hexadecimal digit string that identifies your project. Use the /groups endpoint to retrieve all projects to which the authenticated user has access.
    roles List<String>
    Human-readable label that identifies the collection of privileges that MongoDB Cloud grants a specific API key, MongoDB Cloud user, or MongoDB Cloud team. These roles include only the specific project-level roles.

    Package Details

    Repository
    MongoDB Atlas pulumi/pulumi-mongodbatlas
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the mongodbatlas Terraform Provider.
    mongodbatlas logo
    MongoDB Atlas v3.35.0 published on Monday, Aug 11, 2025 by Pulumi