AccountArgs

data class AccountArgs(val accessKeyMetadataWritesEnabled: Output<Boolean>? = null, val analyticalStorage: Output<AccountAnalyticalStorageArgs>? = null, val analyticalStorageEnabled: Output<Boolean>? = null, val backup: Output<AccountBackupArgs>? = null, val capabilities: Output<List<AccountCapabilityArgs>>? = null, val capacity: Output<AccountCapacityArgs>? = null, val consistencyPolicy: Output<AccountConsistencyPolicyArgs>? = null, val corsRule: Output<AccountCorsRuleArgs>? = null, val createMode: Output<String>? = null, val defaultIdentityType: Output<String>? = null, val enableAutomaticFailover: Output<Boolean>? = null, val enableFreeTier: Output<Boolean>? = null, val enableMultipleWriteLocations: Output<Boolean>? = null, val geoLocations: Output<List<AccountGeoLocationArgs>>? = null, val identity: Output<AccountIdentityArgs>? = null, val ipRangeFilter: Output<String>? = null, val isVirtualNetworkFilterEnabled: Output<Boolean>? = null, val keyVaultKeyId: Output<String>? = null, val kind: Output<String>? = null, val localAuthenticationDisabled: Output<Boolean>? = null, val location: Output<String>? = null, val minimalTlsVersion: Output<String>? = null, val mongoServerVersion: Output<String>? = null, val name: Output<String>? = null, val networkAclBypassForAzureServices: Output<Boolean>? = null, val networkAclBypassIds: Output<List<String>>? = null, val offerType: Output<String>? = null, val partitionMergeEnabled: Output<Boolean>? = null, val publicNetworkAccessEnabled: Output<Boolean>? = null, val resourceGroupName: Output<String>? = null, val restore: Output<AccountRestoreArgs>? = null, val tags: Output<Map<String, String>>? = null, val virtualNetworkRules: Output<List<AccountVirtualNetworkRuleArgs>>? = null) : ConvertibleToJava<AccountArgs>

Manages a CosmosDB (formally DocumentDB) Account.

Example Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.random.RandomInteger;
import com.pulumi.random.RandomIntegerArgs;
import com.pulumi.azure.cosmosdb.Account;
import com.pulumi.azure.cosmosdb.AccountArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountCapabilityArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountConsistencyPolicyArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountGeoLocationArgs;
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 rg = new ResourceGroup("rg", ResourceGroupArgs.builder()
.name("sample-rg")
.location("westus")
.build());
var ri = new RandomInteger("ri", RandomIntegerArgs.builder()
.min(10000)
.max(99999)
.build());
var db = new Account("db", AccountArgs.builder()
.name(ri.result().applyValue(result -> String.format("tfex-cosmos-db-%s", result)))
.location(example.location())
.resourceGroupName(example.name())
.offerType("Standard")
.kind("MongoDB")
.enableAutomaticFailover(true)
.capabilities(
AccountCapabilityArgs.builder()
.name("EnableAggregationPipeline")
.build(),
AccountCapabilityArgs.builder()
.name("mongoEnableDocLevelTTL")
.build(),
AccountCapabilityArgs.builder()
.name("MongoDBv3.4")
.build(),
AccountCapabilityArgs.builder()
.name("EnableMongo")
.build())
.consistencyPolicy(AccountConsistencyPolicyArgs.builder()
.consistencyLevel("BoundedStaleness")
.maxIntervalInSeconds(300)
.maxStalenessPrefix(100000)
.build())
.geoLocations(
AccountGeoLocationArgs.builder()
.location("eastus")
.failoverPriority(1)
.build(),
AccountGeoLocationArgs.builder()
.location("westus")
.failoverPriority(0)
.build())
.build());
}
}

User Assigned Identity Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const example = new azure.authorization.UserAssignedIdentity("example", {
resourceGroupName: exampleAzurermResourceGroup.name,
location: exampleAzurermResourceGroup.location,
name: "example-resource",
});
const exampleAccount = new azure.cosmosdb.Account("example", {
name: "example-resource",
location: exampleAzurermResourceGroup.location,
resourceGroupName: exampleAzurermResourceGroup.name,
defaultIdentityType: std.joinOutput({
separator: "=",
input: [
"UserAssignedIdentity",
example.id,
],
}).apply(invoke => invoke.result),
offerType: "Standard",
kind: "MongoDB",
capabilities: [{
name: "EnableMongo",
}],
consistencyPolicy: {
consistencyLevel: "Strong",
},
geoLocations: [{
location: "westus",
failoverPriority: 0,
}],
identity: {
type: "UserAssigned",
identityIds: [example&#46;id],
},
});
import pulumi
import pulumi_azure as azure
import pulumi_std as std
example = azure.authorization.UserAssignedIdentity("example",
resource_group_name=example_azurerm_resource_group["name"],
location=example_azurerm_resource_group["location"],
name="example-resource")
example_account = azure.cosmosdb.Account("example",
name="example-resource",
location=example_azurerm_resource_group["location"],
resource_group_name=example_azurerm_resource_group["name"],
default_identity_type=std.join_output(separator="=",
input=[
"UserAssignedIdentity",
example.id,
]).apply(lambda invoke: invoke.result),
offer_type="Standard",
kind="MongoDB",
capabilities=[azure.cosmosdb.AccountCapabilityArgs(
name="EnableMongo",
)],
consistency_policy=azure.cosmosdb.AccountConsistencyPolicyArgs(
consistency_level="Strong",
),
geo_locations=[azure.cosmosdb.AccountGeoLocationArgs(
location="westus",
failover_priority=0,
)],
identity=azure.cosmosdb.AccountIdentityArgs(
type="UserAssigned",
identity_ids=[example&#46;id],
))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Authorization.UserAssignedIdentity("example", new()
{
ResourceGroupName = exampleAzurermResourceGroup.Name,
Location = exampleAzurermResourceGroup.Location,
Name = "example-resource",
});
var exampleAccount = new Azure.CosmosDB.Account("example", new()
{
Name = "example-resource",
Location = exampleAzurermResourceGroup.Location,
ResourceGroupName = exampleAzurermResourceGroup.Name,
DefaultIdentityType = Std.Join.Invoke(new()
{
Separator = "=",
Input = new[]
{
"UserAssignedIdentity",
example.Id,
},
}).Apply(invoke => invoke.Result),
OfferType = "Standard",
Kind = "MongoDB",
Capabilities = new[]
{
new Azure.CosmosDB.Inputs.AccountCapabilityArgs
{
Name = "EnableMongo",
},
},
ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs
{
ConsistencyLevel = "Strong",
},
GeoLocations = new[]
{
new Azure.CosmosDB.Inputs.AccountGeoLocationArgs
{
Location = "westus",
FailoverPriority = 0,
},
},
Identity = new Azure.CosmosDB.Inputs.AccountIdentityArgs
{
Type = "UserAssigned",
IdentityIds = new[]
{
example.Id,
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/authorization"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/cosmosdb"
"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 {
example, err := authorization.NewUserAssignedIdentity(ctx, "example", &authorization.UserAssignedIdentityArgs{
ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name),
Location: pulumi.Any(exampleAzurermResourceGroup.Location),
Name: pulumi.String("example-resource"),
})
if err != nil {
return err
}
_, err = cosmosdb.NewAccount(ctx, "example", &cosmosdb.AccountArgs{
Name: pulumi.String("example-resource"),
Location: pulumi.Any(exampleAzurermResourceGroup.Location),
ResourceGroupName: pulumi.Any(exampleAzurermResourceGroup.Name),
DefaultIdentityType: std.JoinOutput(ctx, std.JoinOutputArgs{
Separator: pulumi.String("="),
Input: pulumi.StringArray{
pulumi.String("UserAssignedIdentity"),
example.ID(),
},
}, nil).ApplyT(func(invoke std.JoinResult) (*string, error) {
return invoke.Result, nil
}).(pulumi.StringPtrOutput),
OfferType: pulumi.String("Standard"),
Kind: pulumi.String("MongoDB"),
Capabilities: cosmosdb.AccountCapabilityArray{
&cosmosdb.AccountCapabilityArgs{
Name: pulumi.String("EnableMongo"),
},
},
ConsistencyPolicy: &cosmosdb.AccountConsistencyPolicyArgs{
ConsistencyLevel: pulumi.String("Strong"),
},
GeoLocations: cosmosdb.AccountGeoLocationArray{
&cosmosdb.AccountGeoLocationArgs{
Location: pulumi.String("westus"),
FailoverPriority: pulumi.Int(0),
},
},
Identity: &cosmosdb.AccountIdentityArgs{
Type: pulumi.String("UserAssigned"),
IdentityIds: pulumi.StringArray{
example.ID(),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.authorization.UserAssignedIdentity;
import com.pulumi.azure.authorization.UserAssignedIdentityArgs;
import com.pulumi.azure.cosmosdb.Account;
import com.pulumi.azure.cosmosdb.AccountArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountCapabilityArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountConsistencyPolicyArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountGeoLocationArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountIdentityArgs;
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 example = new UserAssignedIdentity("example", UserAssignedIdentityArgs.builder()
.resourceGroupName(exampleAzurermResourceGroup.name())
.location(exampleAzurermResourceGroup.location())
.name("example-resource")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("example-resource")
.location(exampleAzurermResourceGroup.location())
.resourceGroupName(exampleAzurermResourceGroup.name())
.defaultIdentityType(StdFunctions.join().applyValue(invoke -> invoke.result()))
.offerType("Standard")
.kind("MongoDB")
.capabilities(AccountCapabilityArgs.builder()
.name("EnableMongo")
.build())
.consistencyPolicy(AccountConsistencyPolicyArgs.builder()
.consistencyLevel("Strong")
.build())
.geoLocations(AccountGeoLocationArgs.builder()
.location("westus")
.failoverPriority(0)
.build())
.identity(AccountIdentityArgs.builder()
.type("UserAssigned")
.identityIds(example.id())
.build())
.build());
}
}
resources:
example:
type: azure:authorization:UserAssignedIdentity
properties:
resourceGroupName: ${exampleAzurermResourceGroup.name}
location: ${exampleAzurermResourceGroup.location}
name: example-resource
exampleAccount:
type: azure:cosmosdb:Account
name: example
properties:
name: example-resource
location: ${exampleAzurermResourceGroup.location}
resourceGroupName: ${exampleAzurermResourceGroup.name}
defaultIdentityType:
fn::invoke:
Function: std:join
Arguments:
separator: =
input:
- UserAssignedIdentity
- ${example.id}
Return: result
offerType: Standard
kind: MongoDB
capabilities:
- name: EnableMongo
consistencyPolicy:
consistencyLevel: Strong
geoLocations:
- location: westus
failoverPriority: 0
identity:
type: UserAssigned
identityIds:
- ${example.id}

Import

CosmosDB Accounts can be imported using the resource id, e.g.

$ pulumi import azure:cosmosdb/account:Account account1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DocumentDB/databaseAccounts/account1

Constructors

Link copied to clipboard
fun AccountArgs(accessKeyMetadataWritesEnabled: Output<Boolean>? = null, analyticalStorage: Output<AccountAnalyticalStorageArgs>? = null, analyticalStorageEnabled: Output<Boolean>? = null, backup: Output<AccountBackupArgs>? = null, capabilities: Output<List<AccountCapabilityArgs>>? = null, capacity: Output<AccountCapacityArgs>? = null, consistencyPolicy: Output<AccountConsistencyPolicyArgs>? = null, corsRule: Output<AccountCorsRuleArgs>? = null, createMode: Output<String>? = null, defaultIdentityType: Output<String>? = null, enableAutomaticFailover: Output<Boolean>? = null, enableFreeTier: Output<Boolean>? = null, enableMultipleWriteLocations: Output<Boolean>? = null, geoLocations: Output<List<AccountGeoLocationArgs>>? = null, identity: Output<AccountIdentityArgs>? = null, ipRangeFilter: Output<String>? = null, isVirtualNetworkFilterEnabled: Output<Boolean>? = null, keyVaultKeyId: Output<String>? = null, kind: Output<String>? = null, localAuthenticationDisabled: Output<Boolean>? = null, location: Output<String>? = null, minimalTlsVersion: Output<String>? = null, mongoServerVersion: Output<String>? = null, name: Output<String>? = null, networkAclBypassForAzureServices: Output<Boolean>? = null, networkAclBypassIds: Output<List<String>>? = null, offerType: Output<String>? = null, partitionMergeEnabled: Output<Boolean>? = null, publicNetworkAccessEnabled: Output<Boolean>? = null, resourceGroupName: Output<String>? = null, restore: Output<AccountRestoreArgs>? = null, tags: Output<Map<String, String>>? = null, virtualNetworkRules: Output<List<AccountVirtualNetworkRuleArgs>>? = null)

Functions

Link copied to clipboard
open override fun toJava(): AccountArgs

Properties

Link copied to clipboard

Is write operations on metadata resources (databases, containers, throughput) via account keys enabled? Defaults to true.

Link copied to clipboard

An analytical_storage block as defined below.

Link copied to clipboard
val analyticalStorageEnabled: Output<Boolean>? = null

Enable Analytical Storage option for this Cosmos DB account. Defaults to false. Enabling and then disabling analytical storage forces a new resource to be created.

Link copied to clipboard
val backup: Output<AccountBackupArgs>? = null

A backup block as defined below.

Link copied to clipboard

The capabilities which should be enabled for this Cosmos DB account. Value is a capabilities block as defined below.

Link copied to clipboard
val capacity: Output<AccountCapacityArgs>? = null

A capacity block as defined below.

Link copied to clipboard

Specifies one consistency_policy block as defined below, used to define the consistency policy for this CosmosDB account.

Link copied to clipboard
val corsRule: Output<AccountCorsRuleArgs>? = null

A cors_rule block as defined below.

Link copied to clipboard
val createMode: Output<String>? = null

The creation mode for the CosmosDB Account. Possible values are Default and Restore. Changing this forces a new resource to be created.

Link copied to clipboard
val defaultIdentityType: Output<String>? = null

The default identity for accessing Key Vault. Possible values are FirstPartyIdentity, SystemAssignedIdentity or UserAssignedIdentity. Defaults to FirstPartyIdentity.

Link copied to clipboard
val enableAutomaticFailover: Output<Boolean>? = null

Enable automatic failover for this Cosmos DB account.

Link copied to clipboard
val enableFreeTier: Output<Boolean>? = null

Enable the Free Tier pricing option for this Cosmos DB account. Defaults to false. Changing this forces a new resource to be created.

Link copied to clipboard

Enable multiple write locations for this Cosmos DB account.

Link copied to clipboard

Specifies a geo_location resource, used to define where data should be replicated with the failover_priority 0 specifying the primary location. Value is a geo_location block as defined below.

Link copied to clipboard
val identity: Output<AccountIdentityArgs>? = null

An identity block as defined below.

Link copied to clipboard
val ipRangeFilter: Output<String>? = null

CosmosDB Firewall Support: This value specifies the set of IP addresses or IP address ranges in CIDR form to be included as the allowed list of client IPs for a given database account. IP addresses/ranges must be comma separated and must not contain any spaces.

Link copied to clipboard

Enables virtual network filtering for this Cosmos DB account.

Link copied to clipboard
val keyVaultKeyId: Output<String>? = null

A versionless Key Vault Key ID for CMK encryption. Changing this forces a new resource to be created.

Link copied to clipboard
val kind: Output<String>? = null

Specifies the Kind of CosmosDB to create - possible values are GlobalDocumentDB, MongoDB and Parse. Defaults to GlobalDocumentDB. Changing this forces a new resource to be created.

Link copied to clipboard

Disable local authentication and ensure only MSI and AAD can be used exclusively for authentication. Defaults to false. Can be set only when using the SQL API.

Link copied to clipboard
val location: Output<String>? = null

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

Link copied to clipboard
val minimalTlsVersion: Output<String>? = null

Specifies the minimal TLS version for the CosmosDB account. Possible values are: Tls, Tls11, and Tls12. Defaults to Tls12.

Link copied to clipboard
val mongoServerVersion: Output<String>? = null

The Server Version of a MongoDB account. Possible values are 4.2, 4.0, 3.6, and 3.2.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name of the CosmosDB Account. Changing this forces a new resource to be created.

Link copied to clipboard

If Azure services can bypass ACLs. Defaults to false.

Link copied to clipboard
val networkAclBypassIds: Output<List<String>>? = null

The list of resource Ids for Network Acl Bypass for this Cosmos DB account.

Link copied to clipboard
val offerType: Output<String>? = null

Specifies the Offer Type to use for this CosmosDB Account; currently, this can only be set to Standard.

Link copied to clipboard
val partitionMergeEnabled: Output<Boolean>? = null

Is partition merge on the Cosmos DB account enabled? Defaults to false.

Link copied to clipboard
val publicNetworkAccessEnabled: Output<Boolean>? = null

Whether or not public network access is allowed for this CosmosDB account. Defaults to true.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group in which the CosmosDB Account is created. Changing this forces a new resource to be created.

Link copied to clipboard
val restore: Output<AccountRestoreArgs>? = null

A restore block as defined below.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource.

Link copied to clipboard

Specifies a virtual_network_rule block as defined below, used to define which subnets are allowed to access this CosmosDB account.