Endpoint Cosmosdb Account Args
Manages an IotHub Cosmos DB Account Endpoint
NOTE: Endpoints can be defined either directly on the
azure.iot.IoTHub
resource, or using theazurerm_iothub_endpoint_*
resources - but the two ways of defining the endpoints cannot be used together. If both are used against the same IoTHub, spurious changes will occur. Also, defining aazurerm_iothub_endpoint_*
resource and another endpoint of a different type directly on theazure.iot.IoTHub
resource is not supported.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleIoTHub = new azure.iot.IoTHub("example", {
name: "exampleIothub",
resourceGroupName: example.name,
location: example.location,
sku: {
name: "B1",
capacity: 1,
},
tags: {
purpose: "example",
},
});
const exampleAccount = new azure.cosmosdb.Account("example", {
name: "cosmosdb-account",
location: example.location,
resourceGroupName: example.name,
offerType: "Standard",
kind: "GlobalDocumentDB",
consistencyPolicy: {
consistencyLevel: "Strong",
},
geoLocations: [{
location: example.location,
failoverPriority: 0,
}],
});
const exampleSqlDatabase = new azure.cosmosdb.SqlDatabase("example", {
name: "cosmos-sql-db",
resourceGroupName: exampleAccount.resourceGroupName,
accountName: exampleAccount.name,
});
const exampleSqlContainer = new azure.cosmosdb.SqlContainer("example", {
name: "example-container",
resourceGroupName: exampleAccount.resourceGroupName,
accountName: exampleAccount.name,
databaseName: exampleSqlDatabase.name,
partitionKeyPath: "/definition/id",
});
const exampleEndpointCosmosdbAccount = new azure.iot.EndpointCosmosdbAccount("example", {
name: "example",
resourceGroupName: example.name,
iothubId: exampleIoTHub.id,
containerName: exampleSqlContainer.name,
databaseName: exampleSqlDatabase.name,
endpointUri: exampleAccount.endpoint,
primaryKey: exampleAccount.primaryKey,
secondaryKey: exampleAccount.secondaryKey,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_io_t_hub = azure.iot.IoTHub("example",
name="exampleIothub",
resource_group_name=example.name,
location=example.location,
sku={
"name": "B1",
"capacity": 1,
},
tags={
"purpose": "example",
})
example_account = azure.cosmosdb.Account("example",
name="cosmosdb-account",
location=example.location,
resource_group_name=example.name,
offer_type="Standard",
kind="GlobalDocumentDB",
consistency_policy={
"consistency_level": "Strong",
},
geo_locations=[{
"location": example.location,
"failover_priority": 0,
}])
example_sql_database = azure.cosmosdb.SqlDatabase("example",
name="cosmos-sql-db",
resource_group_name=example_account.resource_group_name,
account_name=example_account.name)
example_sql_container = azure.cosmosdb.SqlContainer("example",
name="example-container",
resource_group_name=example_account.resource_group_name,
account_name=example_account.name,
database_name=example_sql_database.name,
partition_key_path="/definition/id")
example_endpoint_cosmosdb_account = azure.iot.EndpointCosmosdbAccount("example",
name="example",
resource_group_name=example.name,
iothub_id=example_io_t_hub.id,
container_name=example_sql_container.name,
database_name=example_sql_database.name,
endpoint_uri=example_account.endpoint,
primary_key=example_account.primary_key,
secondary_key=example_account.secondary_key)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleIoTHub = new Azure.Iot.IoTHub("example", new()
{
Name = "exampleIothub",
ResourceGroupName = example.Name,
Location = example.Location,
Sku = new Azure.Iot.Inputs.IoTHubSkuArgs
{
Name = "B1",
Capacity = 1,
},
Tags =
{
{ "purpose", "example" },
},
});
var exampleAccount = new Azure.CosmosDB.Account("example", new()
{
Name = "cosmosdb-account",
Location = example.Location,
ResourceGroupName = example.Name,
OfferType = "Standard",
Kind = "GlobalDocumentDB",
ConsistencyPolicy = new Azure.CosmosDB.Inputs.AccountConsistencyPolicyArgs
{
ConsistencyLevel = "Strong",
},
GeoLocations = new[]
{
new Azure.CosmosDB.Inputs.AccountGeoLocationArgs
{
Location = example.Location,
FailoverPriority = 0,
},
},
});
var exampleSqlDatabase = new Azure.CosmosDB.SqlDatabase("example", new()
{
Name = "cosmos-sql-db",
ResourceGroupName = exampleAccount.ResourceGroupName,
AccountName = exampleAccount.Name,
});
var exampleSqlContainer = new Azure.CosmosDB.SqlContainer("example", new()
{
Name = "example-container",
ResourceGroupName = exampleAccount.ResourceGroupName,
AccountName = exampleAccount.Name,
DatabaseName = exampleSqlDatabase.Name,
PartitionKeyPath = "/definition/id",
});
var exampleEndpointCosmosdbAccount = new Azure.Iot.EndpointCosmosdbAccount("example", new()
{
Name = "example",
ResourceGroupName = example.Name,
IothubId = exampleIoTHub.Id,
ContainerName = exampleSqlContainer.Name,
DatabaseName = exampleSqlDatabase.Name,
EndpointUri = exampleAccount.Endpoint,
PrimaryKey = exampleAccount.PrimaryKey,
SecondaryKey = exampleAccount.SecondaryKey,
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/cosmosdb"
"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/iot"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleIoTHub, err := iot.NewIoTHub(ctx, "example", &iot.IoTHubArgs{
Name: pulumi.String("exampleIothub"),
ResourceGroupName: example.Name,
Location: example.Location,
Sku: &iot.IoTHubSkuArgs{
Name: pulumi.String("B1"),
Capacity: pulumi.Int(1),
},
Tags: pulumi.StringMap{
"purpose": pulumi.String("example"),
},
})
if err != nil {
return err
}
exampleAccount, err := cosmosdb.NewAccount(ctx, "example", &cosmosdb.AccountArgs{
Name: pulumi.String("cosmosdb-account"),
Location: example.Location,
ResourceGroupName: example.Name,
OfferType: pulumi.String("Standard"),
Kind: pulumi.String("GlobalDocumentDB"),
ConsistencyPolicy: &cosmosdb.AccountConsistencyPolicyArgs{
ConsistencyLevel: pulumi.String("Strong"),
},
GeoLocations: cosmosdb.AccountGeoLocationArray{
&cosmosdb.AccountGeoLocationArgs{
Location: example.Location,
FailoverPriority: pulumi.Int(0),
},
},
})
if err != nil {
return err
}
exampleSqlDatabase, err := cosmosdb.NewSqlDatabase(ctx, "example", &cosmosdb.SqlDatabaseArgs{
Name: pulumi.String("cosmos-sql-db"),
ResourceGroupName: exampleAccount.ResourceGroupName,
AccountName: exampleAccount.Name,
})
if err != nil {
return err
}
exampleSqlContainer, err := cosmosdb.NewSqlContainer(ctx, "example", &cosmosdb.SqlContainerArgs{
Name: pulumi.String("example-container"),
ResourceGroupName: exampleAccount.ResourceGroupName,
AccountName: exampleAccount.Name,
DatabaseName: exampleSqlDatabase.Name,
PartitionKeyPath: pulumi.String("/definition/id"),
})
if err != nil {
return err
}
_, err = iot.NewEndpointCosmosdbAccount(ctx, "example", &iot.EndpointCosmosdbAccountArgs{
Name: pulumi.String("example"),
ResourceGroupName: example.Name,
IothubId: exampleIoTHub.ID(),
ContainerName: exampleSqlContainer.Name,
DatabaseName: exampleSqlDatabase.Name,
EndpointUri: exampleAccount.Endpoint,
PrimaryKey: exampleAccount.PrimaryKey,
SecondaryKey: exampleAccount.SecondaryKey,
})
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.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.iot.IoTHub;
import com.pulumi.azure.iot.IoTHubArgs;
import com.pulumi.azure.iot.inputs.IoTHubSkuArgs;
import com.pulumi.azure.cosmosdb.Account;
import com.pulumi.azure.cosmosdb.AccountArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountConsistencyPolicyArgs;
import com.pulumi.azure.cosmosdb.inputs.AccountGeoLocationArgs;
import com.pulumi.azure.cosmosdb.SqlDatabase;
import com.pulumi.azure.cosmosdb.SqlDatabaseArgs;
import com.pulumi.azure.cosmosdb.SqlContainer;
import com.pulumi.azure.cosmosdb.SqlContainerArgs;
import com.pulumi.azure.iot.EndpointCosmosdbAccount;
import com.pulumi.azure.iot.EndpointCosmosdbAccountArgs;
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 ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleIoTHub = new IoTHub("exampleIoTHub", IoTHubArgs.builder()
.name("exampleIothub")
.resourceGroupName(example.name())
.location(example.location())
.sku(IoTHubSkuArgs.builder()
.name("B1")
.capacity("1")
.build())
.tags(Map.of("purpose", "example"))
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("cosmosdb-account")
.location(example.location())
.resourceGroupName(example.name())
.offerType("Standard")
.kind("GlobalDocumentDB")
.consistencyPolicy(AccountConsistencyPolicyArgs.builder()
.consistencyLevel("Strong")
.build())
.geoLocations(AccountGeoLocationArgs.builder()
.location(example.location())
.failoverPriority(0)
.build())
.build());
var exampleSqlDatabase = new SqlDatabase("exampleSqlDatabase", SqlDatabaseArgs.builder()
.name("cosmos-sql-db")
.resourceGroupName(exampleAccount.resourceGroupName())
.accountName(exampleAccount.name())
.build());
var exampleSqlContainer = new SqlContainer("exampleSqlContainer", SqlContainerArgs.builder()
.name("example-container")
.resourceGroupName(exampleAccount.resourceGroupName())
.accountName(exampleAccount.name())
.databaseName(exampleSqlDatabase.name())
.partitionKeyPath("/definition/id")
.build());
var exampleEndpointCosmosdbAccount = new EndpointCosmosdbAccount("exampleEndpointCosmosdbAccount", EndpointCosmosdbAccountArgs.builder()
.name("example")
.resourceGroupName(example.name())
.iothubId(exampleIoTHub.id())
.containerName(exampleSqlContainer.name())
.databaseName(exampleSqlDatabase.name())
.endpointUri(exampleAccount.endpoint())
.primaryKey(exampleAccount.primaryKey())
.secondaryKey(exampleAccount.secondaryKey())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleIoTHub:
type: azure:iot:IoTHub
name: example
properties:
name: exampleIothub
resourceGroupName: ${example.name}
location: ${example.location}
sku:
name: B1
capacity: '1'
tags:
purpose: example
exampleAccount:
type: azure:cosmosdb:Account
name: example
properties:
name: cosmosdb-account
location: ${example.location}
resourceGroupName: ${example.name}
offerType: Standard
kind: GlobalDocumentDB
consistencyPolicy:
consistencyLevel: Strong
geoLocations:
- location: ${example.location}
failoverPriority: 0
exampleSqlDatabase:
type: azure:cosmosdb:SqlDatabase
name: example
properties:
name: cosmos-sql-db
resourceGroupName: ${exampleAccount.resourceGroupName}
accountName: ${exampleAccount.name}
exampleSqlContainer:
type: azure:cosmosdb:SqlContainer
name: example
properties:
name: example-container
resourceGroupName: ${exampleAccount.resourceGroupName}
accountName: ${exampleAccount.name}
databaseName: ${exampleSqlDatabase.name}
partitionKeyPath: /definition/id
exampleEndpointCosmosdbAccount:
type: azure:iot:EndpointCosmosdbAccount
name: example
properties:
name: example
resourceGroupName: ${example.name}
iothubId: ${exampleIoTHub.id}
containerName: ${exampleSqlContainer.name}
databaseName: ${exampleSqlDatabase.name}
endpointUri: ${exampleAccount.endpoint}
primaryKey: ${exampleAccount.primaryKey}
secondaryKey: ${exampleAccount.secondaryKey}
Import
IoTHub Cosmos DB Account Endpoint can be imported using the resource id
, e.g.
$ pulumi import azure:iot/endpointCosmosdbAccount:EndpointCosmosdbAccount endpoint1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Devices/iotHubs/hub1/endpoints/cosmosDBAccountEndpoint1
Constructors
Properties
The type used to authenticate against the Cosmos DB Account endpoint. Possible values are keyBased
and identityBased
. Defaults to keyBased
.
The name of the Cosmos DB Container in the Cosmos DB Database. Changing this forces a new resource to be created.
The name of the Cosmos DB Database in the Cosmos DB Account. Changing this forces a new resource to be created.
The URI of the Cosmos DB Account. Changing this forces a new resource to be created.
The ID of the User Managed Identity used to authenticate against the Cosmos DB Account endpoint.
The name of the partition key associated with the Cosmos DB Container.
The template for generating a synthetic partition key value for use within the Cosmos DB Container.
The primary key of the Cosmos DB Account.
The name of the resource group under which the Cosmos DB Account has been created. Changing this forces a new resource to be created.
The secondary key of the Cosmos DB Account.