Viewing docs for MongoDB Atlas v4.5.0
published on Thursday, Mar 12, 2026 by Pulumi
published on Thursday, Mar 12, 2026 by Pulumi
Viewing docs for MongoDB Atlas v4.5.0
published on Thursday, Mar 12, 2026 by Pulumi
published on Thursday, Mar 12, 2026 by Pulumi
mongodbatlas.StreamPrivatelinkEndpoint describes a Privatelink Endpoint for Streams.
Example Usage
S
AWS Confluent Privatelink
import * as pulumi from "@pulumi/pulumi";
import * as confluent from "@pulumi/confluent";
import * as mongodbatlas from "@pulumi/mongodbatlas";
import * as std from "@pulumi/std";
const staging = new confluent.index.Environment("staging", {displayName: "Staging"});
const privateLink = new confluent.index.Network("private_link", {
displayName: "terraform-test-private-link-network-manual",
cloud: "AWS",
region: awsRegion,
connectionTypes: ["PRIVATELINK"],
zones: std.index.keys({
input: subnetsToPrivatelink,
}).result,
environment: [{
id: staging.id,
}],
dnsConfig: [{
resolution: "PRIVATE",
}],
});
const aws = new confluent.index.PrivateLinkAccess("aws", {
displayName: "example-private-link-access",
aws: [{
account: awsAccountId,
}],
environment: [{
id: staging.id,
}],
network: [{
id: privateLink.id,
}],
});
const dedicated = new confluent.index.KafkaCluster("dedicated", {
displayName: "example-dedicated-cluster",
availability: "MULTI_ZONE",
cloud: privateLink.cloud,
region: privateLink.region,
dedicated: [{
cku: 2,
}],
environment: [{
id: staging.id,
}],
network: [{
id: privateLink.id,
}],
});
const test = new mongodbatlas.StreamPrivatelinkEndpoint("test", {
projectId: projectId,
dnsDomain: privateLink.dnsDomain,
providerName: "AWS",
region: awsRegion,
vendor: "CONFLUENT",
serviceEndpointId: privateLink.aws[0].privateLinkEndpointService,
dnsSubDomains: privateLink.zonalSubdomains,
});
const singularDatasource = test.id.apply(id => mongodbatlas.getStreamPrivatelinkEndpointOutput({
projectId: projectId,
id: id,
}));
const pluralDatasource = mongodbatlas.getStreamPrivatelinkEndpoints({
projectId: projectId,
});
export const interfaceEndpointId = singularDatasource.apply(singularDatasource => singularDatasource.interfaceEndpointId);
export const interfaceEndpointIds = pluralDatasource.then(pluralDatasource => pluralDatasource.results.map(__item => __item.interfaceEndpointId));
import pulumi
import pulumi_confluent as confluent
import pulumi_mongodbatlas as mongodbatlas
import pulumi_std as std
staging = confluent.index.Environment("staging", display_name=Staging)
private_link = confluent.index.Network("private_link",
display_name=terraform-test-private-link-network-manual,
cloud=AWS,
region=aws_region,
connection_types=[PRIVATELINK],
zones=std.index.keys(input=subnets_to_privatelink).result,
environment=[{
id: staging.id,
}],
dns_config=[{
resolution: PRIVATE,
}])
aws = confluent.index.PrivateLinkAccess("aws",
display_name=example-private-link-access,
aws=[{
account: aws_account_id,
}],
environment=[{
id: staging.id,
}],
network=[{
id: private_link.id,
}])
dedicated = confluent.index.KafkaCluster("dedicated",
display_name=example-dedicated-cluster,
availability=MULTI_ZONE,
cloud=private_link.cloud,
region=private_link.region,
dedicated=[{
cku: 2,
}],
environment=[{
id: staging.id,
}],
network=[{
id: private_link.id,
}])
test = mongodbatlas.StreamPrivatelinkEndpoint("test",
project_id=project_id,
dns_domain=private_link["dnsDomain"],
provider_name="AWS",
region=aws_region,
vendor="CONFLUENT",
service_endpoint_id=private_link["aws"][0]["privateLinkEndpointService"],
dns_sub_domains=private_link["zonalSubdomains"])
singular_datasource = test.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,
id=id))
plural_datasource = mongodbatlas.get_stream_privatelink_endpoints(project_id=project_id)
pulumi.export("interfaceEndpointId", singular_datasource.interface_endpoint_id)
pulumi.export("interfaceEndpointIds", [__item.interface_endpoint_id for __item in plural_datasource.results])
package main
import (
"github.com/pulumi/pulumi-confluent/sdk/go/confluent"
"github.com/pulumi/pulumi-mongodbatlas/sdk/v4/go/mongodbatlas"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
staging, err := confluent.NewEnvironment(ctx, "staging", &confluent.EnvironmentArgs{
DisplayName: "Staging",
})
if err != nil {
return err
}
privateLink, err := confluent.NewNetwork(ctx, "private_link", &confluent.NetworkArgs{
DisplayName: "terraform-test-private-link-network-manual",
Cloud: "AWS",
Region: awsRegion,
ConnectionTypes: []string{
"PRIVATELINK",
},
Zones: std.Keys(ctx, map[string]interface{}{
"input": subnetsToPrivatelink,
}, nil).Result,
Environment: []map[string]interface{}{
map[string]interface{}{
"id": staging.Id,
},
},
DnsConfig: []map[string]interface{}{
map[string]interface{}{
"resolution": "PRIVATE",
},
},
})
if err != nil {
return err
}
_, err = confluent.NewPrivateLinkAccess(ctx, "aws", &confluent.PrivateLinkAccessArgs{
DisplayName: "example-private-link-access",
Aws: []map[string]interface{}{
map[string]interface{}{
"account": awsAccountId,
},
},
Environment: []map[string]interface{}{
map[string]interface{}{
"id": staging.Id,
},
},
Network: []map[string]interface{}{
map[string]interface{}{
"id": privateLink.Id,
},
},
})
if err != nil {
return err
}
_, err = confluent.NewKafkaCluster(ctx, "dedicated", &confluent.KafkaClusterArgs{
DisplayName: "example-dedicated-cluster",
Availability: "MULTI_ZONE",
Cloud: privateLink.Cloud,
Region: privateLink.Region,
Dedicated: []map[string]interface{}{
map[string]interface{}{
"cku": 2,
},
},
Environment: []map[string]interface{}{
map[string]interface{}{
"id": staging.Id,
},
},
Network: []map[string]interface{}{
map[string]interface{}{
"id": privateLink.Id,
},
},
})
if err != nil {
return err
}
test, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, "test", &mongodbatlas.StreamPrivatelinkEndpointArgs{
ProjectId: pulumi.Any(projectId),
DnsDomain: privateLink.DnsDomain,
ProviderName: pulumi.String("AWS"),
Region: pulumi.Any(awsRegion),
Vendor: pulumi.String("CONFLUENT"),
ServiceEndpointId: privateLink.Aws[0].PrivateLinkEndpointService,
DnsSubDomains: privateLink.ZonalSubdomains,
})
if err != nil {
return err
}
singularDatasource := test.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {
return mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, &mongodbatlas.LookupStreamPrivatelinkEndpointArgs{
ProjectId: projectId,
Id: id,
}, nil))), nil
}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)
pluralDatasource, err := mongodbatlas.LookupStreamPrivatelinkEndpoints(ctx, &mongodbatlas.LookupStreamPrivatelinkEndpointsArgs{
ProjectId: projectId,
}, nil);
if err != nil {
return err
}
ctx.Export("interfaceEndpointId", singularDatasource.ApplyT(func(singularDatasource mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {
return &singularDatasource.InterfaceEndpointId, nil
}).(pulumi.StringPtrOutput))
ctx.Export("interfaceEndpointIds", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:74,11-58)))
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Confluent = Pulumi.Confluent;
using Mongodbatlas = Pulumi.Mongodbatlas;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var staging = new Confluent.Index.Environment("staging", new()
{
DisplayName = "Staging",
});
var privateLink = new Confluent.Index.Network("private_link", new()
{
DisplayName = "terraform-test-private-link-network-manual",
Cloud = "AWS",
Region = awsRegion,
ConnectionTypes = new[]
{
"PRIVATELINK",
},
Zones = Std.Index.Keys.Invoke(new()
{
Input = subnetsToPrivatelink,
}).Result,
Environment = new[]
{
{
{ "id", staging.Id },
},
},
DnsConfig = new[]
{
{
{ "resolution", "PRIVATE" },
},
},
});
var aws = new Confluent.Index.PrivateLinkAccess("aws", new()
{
DisplayName = "example-private-link-access",
Aws = new[]
{
{
{ "account", awsAccountId },
},
},
Environment = new[]
{
{
{ "id", staging.Id },
},
},
Network = new[]
{
{
{ "id", privateLink.Id },
},
},
});
var dedicated = new Confluent.Index.KafkaCluster("dedicated", new()
{
DisplayName = "example-dedicated-cluster",
Availability = "MULTI_ZONE",
Cloud = privateLink.Cloud,
Region = privateLink.Region,
Dedicated = new[]
{
{
{ "cku", 2 },
},
},
Environment = new[]
{
{
{ "id", staging.Id },
},
},
Network = new[]
{
{
{ "id", privateLink.Id },
},
},
});
var test = new Mongodbatlas.StreamPrivatelinkEndpoint("test", new()
{
ProjectId = projectId,
DnsDomain = privateLink.DnsDomain,
ProviderName = "AWS",
Region = awsRegion,
Vendor = "CONFLUENT",
ServiceEndpointId = privateLink.Aws[0].PrivateLinkEndpointService,
DnsSubDomains = privateLink.ZonalSubdomains,
});
var singularDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()
{
ProjectId = projectId,
Id = test.Id,
});
var pluralDatasource = Mongodbatlas.GetStreamPrivatelinkEndpoints.Invoke(new()
{
ProjectId = projectId,
});
return new Dictionary<string, object?>
{
["interfaceEndpointId"] = singularDatasource.Apply(getStreamPrivatelinkEndpointResult => getStreamPrivatelinkEndpointResult.InterfaceEndpointId),
["interfaceEndpointIds"] = pluralDatasource.Apply(getStreamPrivatelinkEndpointsResult => getStreamPrivatelinkEndpointsResult.Results).Select(__item => __item.InterfaceEndpointId).ToList(),
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.confluent.Environment;
import com.pulumi.confluent.EnvironmentArgs;
import com.pulumi.confluent.Network;
import com.pulumi.confluent.NetworkArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.confluent.PrivateLinkAccess;
import com.pulumi.confluent.PrivateLinkAccessArgs;
import com.pulumi.confluent.KafkaCluster;
import com.pulumi.confluent.KafkaClusterArgs;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;
import com.pulumi.mongodbatlas.MongodbatlasFunctions;
import com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;
import com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointsArgs;
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 staging = new Environment("staging", EnvironmentArgs.builder()
.displayName("Staging")
.build());
var privateLink = new Network("privateLink", NetworkArgs.builder()
.displayName("terraform-test-private-link-network-manual")
.cloud("AWS")
.region(awsRegion)
.connectionTypes(List.of("PRIVATELINK"))
.zones(StdFunctions.keys(Map.of("input", subnetsToPrivatelink)).result())
.environment(List.of(Map.of("id", staging.id())))
.dnsConfig(List.of(Map.of("resolution", "PRIVATE")))
.build());
var aws = new PrivateLinkAccess("aws", PrivateLinkAccessArgs.builder()
.displayName("example-private-link-access")
.aws(List.of(Map.of("account", awsAccountId)))
.environment(List.of(Map.of("id", staging.id())))
.network(List.of(Map.of("id", privateLink.id())))
.build());
var dedicated = new KafkaCluster("dedicated", KafkaClusterArgs.builder()
.displayName("example-dedicated-cluster")
.availability("MULTI_ZONE")
.cloud(privateLink.cloud())
.region(privateLink.region())
.dedicated(List.of(Map.of("cku", 2)))
.environment(List.of(Map.of("id", staging.id())))
.network(List.of(Map.of("id", privateLink.id())))
.build());
var test = new StreamPrivatelinkEndpoint("test", StreamPrivatelinkEndpointArgs.builder()
.projectId(projectId)
.dnsDomain(privateLink.dnsDomain())
.providerName("AWS")
.region(awsRegion)
.vendor("CONFLUENT")
.serviceEndpointId(privateLink.aws()[0].privateLinkEndpointService())
.dnsSubDomains(privateLink.zonalSubdomains())
.build());
final var singularDatasource = test.id().applyValue(_id -> MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()
.projectId(projectId)
.id(_id)
.build()));
final var pluralDatasource = MongodbatlasFunctions.getStreamPrivatelinkEndpoints(GetStreamPrivatelinkEndpointsArgs.builder()
.projectId(projectId)
.build());
ctx.export("interfaceEndpointId", singularDatasource.applyValue(_singularDatasource -> _singularDatasource.interfaceEndpointId()));
ctx.export("interfaceEndpointIds", pluralDatasource.results().stream().map(element -> element.interfaceEndpointId()).collect(toList()));
}
}
Example coming soon!
AWS S3 Privatelink
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
import * as mongodbatlas from "@pulumi/mongodbatlas";
// S3 bucket for stream data
const streamBucket = new aws.index.S3Bucket("stream_bucket", {
bucket: s3BucketName,
forceDestroy: true,
});
const streamBucketVersioning = new aws.index.S3BucketVersioning("stream_bucket_versioning", {
bucket: streamBucket.id,
versioningConfiguration: [{
status: "Enabled",
}],
});
const streamBucketEncryption = new aws.index.S3BucketServerSideEncryptionConfiguration("stream_bucket_encryption", {
bucket: streamBucket.id,
rule: [{
applyServerSideEncryptionByDefault: [{
sseAlgorithm: "AES256",
}],
}],
});
// PrivateLink for S3
const _this = new mongodbatlas.StreamPrivatelinkEndpoint("this", {
projectId: projectId,
providerName: "AWS",
vendor: "S3",
region: region,
serviceEndpointId: serviceEndpointId,
});
export const privatelinkEndpointId = _this.id;
import pulumi
import pulumi_aws as aws
import pulumi_mongodbatlas as mongodbatlas
# S3 bucket for stream data
stream_bucket = aws.index.S3Bucket("stream_bucket",
bucket=s3_bucket_name,
force_destroy=True)
stream_bucket_versioning = aws.index.S3BucketVersioning("stream_bucket_versioning",
bucket=stream_bucket.id,
versioning_configuration=[{
status: Enabled,
}])
stream_bucket_encryption = aws.index.S3BucketServerSideEncryptionConfiguration("stream_bucket_encryption",
bucket=stream_bucket.id,
rule=[{
applyServerSideEncryptionByDefault: [{
sseAlgorithm: AES256,
}],
}])
# PrivateLink for S3
this = mongodbatlas.StreamPrivatelinkEndpoint("this",
project_id=project_id,
provider_name="AWS",
vendor="S3",
region=region,
service_endpoint_id=service_endpoint_id)
pulumi.export("privatelinkEndpointId", this.id)
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v7/go/aws"
"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 {
// S3 bucket for stream data
streamBucket, err := aws.NewS3Bucket(ctx, "stream_bucket", &aws.S3BucketArgs{
Bucket: s3BucketName,
ForceDestroy: true,
})
if err != nil {
return err
}
_, err = aws.NewS3BucketVersioning(ctx, "stream_bucket_versioning", &aws.S3BucketVersioningArgs{
Bucket: streamBucket.Id,
VersioningConfiguration: []map[string]interface{}{
map[string]interface{}{
"status": "Enabled",
},
},
})
if err != nil {
return err
}
_, err = aws.NewS3BucketServerSideEncryptionConfiguration(ctx, "stream_bucket_encryption", &aws.S3BucketServerSideEncryptionConfigurationArgs{
Bucket: streamBucket.Id,
Rule: []map[string]interface{}{
map[string]interface{}{
"applyServerSideEncryptionByDefault": []map[string]interface{}{
map[string]interface{}{
"sseAlgorithm": "AES256",
},
},
},
},
})
if err != nil {
return err
}
// PrivateLink for S3
this, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, "this", &mongodbatlas.StreamPrivatelinkEndpointArgs{
ProjectId: pulumi.Any(projectId),
ProviderName: pulumi.String("AWS"),
Vendor: pulumi.String("S3"),
Region: pulumi.Any(region),
ServiceEndpointId: pulumi.Any(serviceEndpointId),
})
if err != nil {
return err
}
ctx.Export("privatelinkEndpointId", this.ID())
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
using Mongodbatlas = Pulumi.Mongodbatlas;
return await Deployment.RunAsync(() =>
{
// S3 bucket for stream data
var streamBucket = new Aws.Index.S3Bucket("stream_bucket", new()
{
Bucket = s3BucketName,
ForceDestroy = true,
});
var streamBucketVersioning = new Aws.Index.S3BucketVersioning("stream_bucket_versioning", new()
{
Bucket = streamBucket.Id,
VersioningConfiguration = new[]
{
{
{ "status", "Enabled" },
},
},
});
var streamBucketEncryption = new Aws.Index.S3BucketServerSideEncryptionConfiguration("stream_bucket_encryption", new()
{
Bucket = streamBucket.Id,
Rule = new[]
{
{
{ "applyServerSideEncryptionByDefault", new[]
{
{
{ "sseAlgorithm", "AES256" },
},
} },
},
},
});
// PrivateLink for S3
var @this = new Mongodbatlas.StreamPrivatelinkEndpoint("this", new()
{
ProjectId = projectId,
ProviderName = "AWS",
Vendor = "S3",
Region = region,
ServiceEndpointId = serviceEndpointId,
});
return new Dictionary<string, object?>
{
["privatelinkEndpointId"] = @this.Id,
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.S3Bucket;
import com.pulumi.aws.S3BucketArgs;
import com.pulumi.aws.S3BucketVersioning;
import com.pulumi.aws.S3BucketVersioningArgs;
import com.pulumi.aws.S3BucketServerSideEncryptionConfiguration;
import com.pulumi.aws.S3BucketServerSideEncryptionConfigurationArgs;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;
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) {
// S3 bucket for stream data
var streamBucket = new S3Bucket("streamBucket", S3BucketArgs.builder()
.bucket(s3BucketName)
.forceDestroy(true)
.build());
var streamBucketVersioning = new S3BucketVersioning("streamBucketVersioning", S3BucketVersioningArgs.builder()
.bucket(streamBucket.id())
.versioningConfiguration(List.of(Map.of("status", "Enabled")))
.build());
var streamBucketEncryption = new S3BucketServerSideEncryptionConfiguration("streamBucketEncryption", S3BucketServerSideEncryptionConfigurationArgs.builder()
.bucket(streamBucket.id())
.rule(List.of(Map.of("applyServerSideEncryptionByDefault", List.of(Map.of("sseAlgorithm", "AES256")))))
.build());
// PrivateLink for S3
var this_ = new StreamPrivatelinkEndpoint("this", StreamPrivatelinkEndpointArgs.builder()
.projectId(projectId)
.providerName("AWS")
.vendor("S3")
.region(region)
.serviceEndpointId(serviceEndpointId)
.build());
ctx.export("privatelinkEndpointId", this_.id());
}
}
resources:
# S3 bucket for stream data
streamBucket:
type: aws:S3Bucket
name: stream_bucket
properties:
bucket: ${s3BucketName}
forceDestroy: true
streamBucketVersioning:
type: aws:S3BucketVersioning
name: stream_bucket_versioning
properties:
bucket: ${streamBucket.id}
versioningConfiguration:
- status: Enabled
streamBucketEncryption:
type: aws:S3BucketServerSideEncryptionConfiguration
name: stream_bucket_encryption
properties:
bucket: ${streamBucket.id}
rule:
- applyServerSideEncryptionByDefault:
- sseAlgorithm: AES256
# PrivateLink for S3
this:
type: mongodbatlas:StreamPrivatelinkEndpoint
properties:
projectId: ${projectId}
providerName: AWS
vendor: S3
region: ${region}
serviceEndpointId: ${serviceEndpointId}
outputs:
privatelinkEndpointId: ${this.id}
GCP Confluent Privatelink
import * as pulumi from "@pulumi/pulumi";
import * as mongodbatlas from "@pulumi/mongodbatlas";
const gcpConfluentStreamPrivatelinkEndpoint = new mongodbatlas.StreamPrivatelinkEndpoint("gcp_confluent", {
projectId: projectId,
providerName: "GCP",
vendor: "CONFLUENT",
region: gcpRegion,
dnsDomain: confluentDnsDomain,
dnsSubDomains: confluentDnsSubdomains,
serviceAttachmentUris: [
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1",
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2",
],
});
const gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id.apply(id => mongodbatlas.getStreamPrivatelinkEndpointOutput({
projectId: projectId,
id: id,
}));
export const privatelinkEndpointId = gcpConfluentStreamPrivatelinkEndpoint.id;
export const privatelinkEndpointState = gcpConfluent.apply(gcpConfluent => gcpConfluent.state);
export const serviceAttachmentUris = gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris;
import pulumi
import pulumi_mongodbatlas as mongodbatlas
gcp_confluent_stream_privatelink_endpoint = mongodbatlas.StreamPrivatelinkEndpoint("gcp_confluent",
project_id=project_id,
provider_name="GCP",
vendor="CONFLUENT",
region=gcp_region,
dns_domain=confluent_dns_domain,
dns_sub_domains=confluent_dns_subdomains,
service_attachment_uris=[
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1",
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2",
])
gcp_confluent = gcp_confluent_stream_privatelink_endpoint.id.apply(lambda id: mongodbatlas.get_stream_privatelink_endpoint_output(project_id=project_id,
id=id))
pulumi.export("privatelinkEndpointId", gcp_confluent_stream_privatelink_endpoint.id)
pulumi.export("privatelinkEndpointState", gcp_confluent.state)
pulumi.export("serviceAttachmentUris", gcp_confluent_stream_privatelink_endpoint.service_attachment_uris)
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 {
gcpConfluentStreamPrivatelinkEndpoint, err := mongodbatlas.NewStreamPrivatelinkEndpoint(ctx, "gcp_confluent", &mongodbatlas.StreamPrivatelinkEndpointArgs{
ProjectId: pulumi.Any(projectId),
ProviderName: pulumi.String("GCP"),
Vendor: pulumi.String("CONFLUENT"),
Region: pulumi.Any(gcpRegion),
DnsDomain: pulumi.Any(confluentDnsDomain),
DnsSubDomains: pulumi.Any(confluentDnsSubdomains),
ServiceAttachmentUris: pulumi.StringArray{
pulumi.String("projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1"),
pulumi.String("projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2"),
},
})
if err != nil {
return err
}
gcpConfluent := gcpConfluentStreamPrivatelinkEndpoint.ID().ApplyT(func(id string) (mongodbatlas.GetStreamPrivatelinkEndpointResult, error) {
return mongodbatlas.GetStreamPrivatelinkEndpointResult(interface{}(mongodbatlas.LookupStreamPrivatelinkEndpoint(ctx, &mongodbatlas.LookupStreamPrivatelinkEndpointArgs{
ProjectId: projectId,
Id: id,
}, nil))), nil
}).(mongodbatlas.GetStreamPrivatelinkEndpointResultOutput)
ctx.Export("privatelinkEndpointId", gcpConfluentStreamPrivatelinkEndpoint.ID())
ctx.Export("privatelinkEndpointState", gcpConfluent.ApplyT(func(gcpConfluent mongodbatlas.GetStreamPrivatelinkEndpointResult) (*string, error) {
return &gcpConfluent.State, nil
}).(pulumi.StringPtrOutput))
ctx.Export("serviceAttachmentUris", gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris)
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Mongodbatlas = Pulumi.Mongodbatlas;
return await Deployment.RunAsync(() =>
{
var gcpConfluentStreamPrivatelinkEndpoint = new Mongodbatlas.StreamPrivatelinkEndpoint("gcp_confluent", new()
{
ProjectId = projectId,
ProviderName = "GCP",
Vendor = "CONFLUENT",
Region = gcpRegion,
DnsDomain = confluentDnsDomain,
DnsSubDomains = confluentDnsSubdomains,
ServiceAttachmentUris = new[]
{
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1",
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2",
},
});
var gcpConfluent = Mongodbatlas.GetStreamPrivatelinkEndpoint.Invoke(new()
{
ProjectId = projectId,
Id = gcpConfluentStreamPrivatelinkEndpoint.Id,
});
return new Dictionary<string, object?>
{
["privatelinkEndpointId"] = gcpConfluentStreamPrivatelinkEndpoint.Id,
["privatelinkEndpointState"] = gcpConfluent.Apply(getStreamPrivatelinkEndpointResult => getStreamPrivatelinkEndpointResult.State),
["serviceAttachmentUris"] = gcpConfluentStreamPrivatelinkEndpoint.ServiceAttachmentUris,
};
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpoint;
import com.pulumi.mongodbatlas.StreamPrivatelinkEndpointArgs;
import com.pulumi.mongodbatlas.MongodbatlasFunctions;
import com.pulumi.mongodbatlas.inputs.GetStreamPrivatelinkEndpointArgs;
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 gcpConfluentStreamPrivatelinkEndpoint = new StreamPrivatelinkEndpoint("gcpConfluentStreamPrivatelinkEndpoint", StreamPrivatelinkEndpointArgs.builder()
.projectId(projectId)
.providerName("GCP")
.vendor("CONFLUENT")
.region(gcpRegion)
.dnsDomain(confluentDnsDomain)
.dnsSubDomains(confluentDnsSubdomains)
.serviceAttachmentUris(
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1",
"projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2")
.build());
final var gcpConfluent = gcpConfluentStreamPrivatelinkEndpoint.id().applyValue(_id -> MongodbatlasFunctions.getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs.builder()
.projectId(projectId)
.id(_id)
.build()));
ctx.export("privatelinkEndpointId", gcpConfluentStreamPrivatelinkEndpoint.id());
ctx.export("privatelinkEndpointState", gcpConfluent.applyValue(_gcpConfluent -> _gcpConfluent.state()));
ctx.export("serviceAttachmentUris", gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris());
}
}
resources:
gcpConfluentStreamPrivatelinkEndpoint:
type: mongodbatlas:StreamPrivatelinkEndpoint
name: gcp_confluent
properties:
projectId: ${projectId}
providerName: GCP
vendor: CONFLUENT
region: ${gcpRegion}
dnsDomain: ${confluentDnsDomain}
dnsSubDomains: ${confluentDnsSubdomains}
serviceAttachmentUris:
- projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-1
- projects/my-project/regions/us-west1/serviceAttachments/confluent-attachment-2
variables:
gcpConfluent:
fn::invoke:
function: mongodbatlas:getStreamPrivatelinkEndpoint
arguments:
projectId: ${projectId}
id: ${gcpConfluentStreamPrivatelinkEndpoint.id}
outputs:
privatelinkEndpointId: ${gcpConfluentStreamPrivatelinkEndpoint.id}
privatelinkEndpointState: ${gcpConfluent.state}
serviceAttachmentUris: ${gcpConfluentStreamPrivatelinkEndpoint.serviceAttachmentUris}
Using getStreamPrivatelinkEndpoint
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 getStreamPrivatelinkEndpoint(args: GetStreamPrivatelinkEndpointArgs, opts?: InvokeOptions): Promise<GetStreamPrivatelinkEndpointResult>
function getStreamPrivatelinkEndpointOutput(args: GetStreamPrivatelinkEndpointOutputArgs, opts?: InvokeOptions): Output<GetStreamPrivatelinkEndpointResult>def get_stream_privatelink_endpoint(id: Optional[str] = None,
project_id: Optional[str] = None,
opts: Optional[InvokeOptions] = None) -> GetStreamPrivatelinkEndpointResult
def get_stream_privatelink_endpoint_output(id: Optional[pulumi.Input[str]] = None,
project_id: Optional[pulumi.Input[str]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetStreamPrivatelinkEndpointResult]func LookupStreamPrivatelinkEndpoint(ctx *Context, args *LookupStreamPrivatelinkEndpointArgs, opts ...InvokeOption) (*LookupStreamPrivatelinkEndpointResult, error)
func LookupStreamPrivatelinkEndpointOutput(ctx *Context, args *LookupStreamPrivatelinkEndpointOutputArgs, opts ...InvokeOption) LookupStreamPrivatelinkEndpointResultOutput> Note: This function is named LookupStreamPrivatelinkEndpoint in the Go SDK.
public static class GetStreamPrivatelinkEndpoint
{
public static Task<GetStreamPrivatelinkEndpointResult> InvokeAsync(GetStreamPrivatelinkEndpointArgs args, InvokeOptions? opts = null)
public static Output<GetStreamPrivatelinkEndpointResult> Invoke(GetStreamPrivatelinkEndpointInvokeArgs args, InvokeOptions? opts = null)
}public static CompletableFuture<GetStreamPrivatelinkEndpointResult> getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs args, InvokeOptions options)
public static Output<GetStreamPrivatelinkEndpointResult> getStreamPrivatelinkEndpoint(GetStreamPrivatelinkEndpointArgs args, InvokeOptions options)
fn::invoke:
function: mongodbatlas:index/getStreamPrivatelinkEndpoint:getStreamPrivatelinkEndpoint
arguments:
# arguments dictionaryThe following arguments are supported:
- id str
- project_
id str
getStreamPrivatelinkEndpoint Result
The following output properties are available:
- Arn string
- Dns
Domain string - Dns
Sub List<string>Domains - Error
Message string - Id string
- Interface
Endpoint stringId - Interface
Endpoint stringName - Project
Id string - Provider
Account stringId - Provider
Name string - Region string
- Service
Attachment List<string>Uris - Service
Endpoint stringId - State string
- Vendor string
- Arn string
- Dns
Domain string - Dns
Sub []stringDomains - Error
Message string - Id string
- Interface
Endpoint stringId - Interface
Endpoint stringName - Project
Id string - Provider
Account stringId - Provider
Name string - Region string
- Service
Attachment []stringUris - Service
Endpoint stringId - State string
- Vendor string
- arn String
- dns
Domain String - dns
Sub List<String>Domains - error
Message String - id String
- interface
Endpoint StringId - interface
Endpoint StringName - project
Id String - provider
Account StringId - provider
Name String - region String
- service
Attachment List<String>Uris - service
Endpoint StringId - state String
- vendor String
- arn string
- dns
Domain string - dns
Sub string[]Domains - error
Message string - id string
- interface
Endpoint stringId - interface
Endpoint stringName - project
Id string - provider
Account stringId - provider
Name string - region string
- service
Attachment string[]Uris - service
Endpoint stringId - state string
- vendor string
- arn str
- dns_
domain str - dns_
sub_ Sequence[str]domains - error_
message str - id str
- interface_
endpoint_ strid - interface_
endpoint_ strname - project_
id str - provider_
account_ strid - provider_
name str - region str
- service_
attachment_ Sequence[str]uris - service_
endpoint_ strid - state str
- vendor str
- arn String
- dns
Domain String - dns
Sub List<String>Domains - error
Message String - id String
- interface
Endpoint StringId - interface
Endpoint StringName - project
Id String - provider
Account StringId - provider
Name String - region String
- service
Attachment List<String>Uris - service
Endpoint StringId - state String
- vendor String
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.5.0
published on Thursday, Mar 12, 2026 by Pulumi
published on Thursday, Mar 12, 2026 by Pulumi
