DatasetBlobStorageArgs

data class DatasetBlobStorageArgs(val containerName: Output<String>? = null, val dataShareId: Output<String>? = null, val filePath: Output<String>? = null, val folderPath: Output<String>? = null, val name: Output<String>? = null, val storageAccount: Output<DatasetBlobStorageStorageAccountArgs>? = null) : ConvertibleToJava<DatasetBlobStorageArgs>

Manages a Data Share Blob Storage Dataset.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as azuread from "@pulumi/azuread";
const exampleResourceGroup = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleAccount = new azure.datashare.Account("example", {
name: "example-dsa",
location: exampleResourceGroup.location,
resourceGroupName: exampleResourceGroup.name,
identity: {
type: "SystemAssigned",
},
});
const exampleShare = new azure.datashare.Share("example", {
name: "example_ds",
accountId: exampleAccount.id,
kind: "CopyBased",
});
const exampleAccount2 = new azure.storage.Account("example", {
name: "examplestr",
resourceGroupName: exampleResourceGroup.name,
location: exampleResourceGroup.location,
accountTier: "Standard",
accountReplicationType: "RAGRS",
});
const exampleContainer = new azure.storage.Container("example", {
name: "example-sc",
storageAccountName: exampleAccount2.name,
containerAccessType: "container",
});
const example = azuread.getServicePrincipalOutput({
displayName: exampleAccount.name,
});
const exampleAssignment = new azure.authorization.Assignment("example", {
scope: exampleAccount2.id,
roleDefinitionName: "Storage Blob Data Reader",
principalId: example.apply(example => example.objectId),
});
const exampleDatasetBlobStorage = new azure.datashare.DatasetBlobStorage("example", {
name: "example-dsbsds-file",
dataShareId: exampleShare.id,
containerName: exampleContainer.name,
storageAccount: {
name: exampleAccount2.name,
resourceGroupName: exampleAccount2.resourceGroupName,
subscriptionId: "00000000-0000-0000-0000-000000000000",
},
filePath: "myfile.txt",
}, {
dependsOn: [exampleAssignment],
});
import pulumi
import pulumi_azure as azure
import pulumi_azuread as azuread
example_resource_group = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_account = azure.datashare.Account("example",
name="example-dsa",
location=example_resource_group.location,
resource_group_name=example_resource_group.name,
identity={
"type": "SystemAssigned",
})
example_share = azure.datashare.Share("example",
name="example_ds",
account_id=example_account.id,
kind="CopyBased")
example_account2 = azure.storage.Account("example",
name="examplestr",
resource_group_name=example_resource_group.name,
location=example_resource_group.location,
account_tier="Standard",
account_replication_type="RAGRS")
example_container = azure.storage.Container("example",
name="example-sc",
storage_account_name=example_account2.name,
container_access_type="container")
example = azuread.get_service_principal_output(display_name=example_account.name)
example_assignment = azure.authorization.Assignment("example",
scope=example_account2.id,
role_definition_name="Storage Blob Data Reader",
principal_id=example.object_id)
example_dataset_blob_storage = azure.datashare.DatasetBlobStorage("example",
name="example-dsbsds-file",
data_share_id=example_share.id,
container_name=example_container.name,
storage_account={
"name": example_account2.name,
"resource_group_name": example_account2.resource_group_name,
"subscription_id": "00000000-0000-0000-0000-000000000000",
},
file_path="myfile.txt",
opts = pulumi.ResourceOptions(depends_on=[example_assignment]))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
using AzureAD = Pulumi.AzureAD;
return await Deployment.RunAsync(() =>
{
var exampleResourceGroup = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleAccount = new Azure.DataShare.Account("example", new()
{
Name = "example-dsa",
Location = exampleResourceGroup.Location,
ResourceGroupName = exampleResourceGroup.Name,
Identity = new Azure.DataShare.Inputs.AccountIdentityArgs
{
Type = "SystemAssigned",
},
});
var exampleShare = new Azure.DataShare.Share("example", new()
{
Name = "example_ds",
AccountId = exampleAccount.Id,
Kind = "CopyBased",
});
var exampleAccount2 = new Azure.Storage.Account("example", new()
{
Name = "examplestr",
ResourceGroupName = exampleResourceGroup.Name,
Location = exampleResourceGroup.Location,
AccountTier = "Standard",
AccountReplicationType = "RAGRS",
});
var exampleContainer = new Azure.Storage.Container("example", new()
{
Name = "example-sc",
StorageAccountName = exampleAccount2.Name,
ContainerAccessType = "container",
});
var example = AzureAD.GetServicePrincipal.Invoke(new()
{
DisplayName = exampleAccount.Name,
});
var exampleAssignment = new Azure.Authorization.Assignment("example", new()
{
Scope = exampleAccount2.Id,
RoleDefinitionName = "Storage Blob Data Reader",
PrincipalId = example.Apply(getServicePrincipalResult => getServicePrincipalResult.ObjectId),
});
var exampleDatasetBlobStorage = new Azure.DataShare.DatasetBlobStorage("example", new()
{
Name = "example-dsbsds-file",
DataShareId = exampleShare.Id,
ContainerName = exampleContainer.Name,
StorageAccount = new Azure.DataShare.Inputs.DatasetBlobStorageStorageAccountArgs
{
Name = exampleAccount2.Name,
ResourceGroupName = exampleAccount2.ResourceGroupName,
SubscriptionId = "00000000-0000-0000-0000-000000000000",
},
FilePath = "myfile.txt",
}, new CustomResourceOptions
{
DependsOn =
{
exampleAssignment,
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/datashare"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage"
"github.com/pulumi/pulumi-azuread/sdk/v5/go/azuread"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
exampleResourceGroup, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
exampleAccount, err := datashare.NewAccount(ctx, "example", &datashare.AccountArgs{
Name: pulumi.String("example-dsa"),
Location: exampleResourceGroup.Location,
ResourceGroupName: exampleResourceGroup.Name,
Identity: &datashare.AccountIdentityArgs{
Type: pulumi.String("SystemAssigned"),
},
})
if err != nil {
return err
}
exampleShare, err := datashare.NewShare(ctx, "example", &datashare.ShareArgs{
Name: pulumi.String("example_ds"),
AccountId: exampleAccount.ID(),
Kind: pulumi.String("CopyBased"),
})
if err != nil {
return err
}
exampleAccount2, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("examplestr"),
ResourceGroupName: exampleResourceGroup.Name,
Location: exampleResourceGroup.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("RAGRS"),
})
if err != nil {
return err
}
exampleContainer, err := storage.NewContainer(ctx, "example", &storage.ContainerArgs{
Name: pulumi.String("example-sc"),
StorageAccountName: exampleAccount2.Name,
ContainerAccessType: pulumi.String("container"),
})
if err != nil {
return err
}
example := azuread.LookupServicePrincipalOutput(ctx, azuread.GetServicePrincipalOutputArgs{
DisplayName: exampleAccount.Name,
}, nil)
exampleAssignment, err := authorization.NewAssignment(ctx, "example", &authorization.AssignmentArgs{
Scope: exampleAccount2.ID(),
RoleDefinitionName: pulumi.String("Storage Blob Data Reader"),
PrincipalId: pulumi.String(example.ApplyT(func(example azuread.GetServicePrincipalResult) (*string, error) {
return &example.ObjectId, nil
}).(pulumi.StringPtrOutput)),
})
if err != nil {
return err
}
_, err = datashare.NewDatasetBlobStorage(ctx, "example", &datashare.DatasetBlobStorageArgs{
Name: pulumi.String("example-dsbsds-file"),
DataShareId: exampleShare.ID(),
ContainerName: exampleContainer.Name,
StorageAccount: &datashare.DatasetBlobStorageStorageAccountArgs{
Name: exampleAccount2.Name,
ResourceGroupName: exampleAccount2.ResourceGroupName,
SubscriptionId: pulumi.String("00000000-0000-0000-0000-000000000000"),
},
FilePath: pulumi.String("myfile.txt"),
}, pulumi.DependsOn([]pulumi.Resource{
exampleAssignment,
}))
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.datashare.inputs.AccountIdentityArgs;
import com.pulumi.azure.datashare.Share;
import com.pulumi.azure.datashare.ShareArgs;
import com.pulumi.azure.storage.Container;
import com.pulumi.azure.storage.ContainerArgs;
import com.pulumi.azuread.AzureadFunctions;
import com.pulumi.azuread.inputs.GetServicePrincipalArgs;
import com.pulumi.azure.authorization.Assignment;
import com.pulumi.azure.authorization.AssignmentArgs;
import com.pulumi.azure.datashare.DatasetBlobStorage;
import com.pulumi.azure.datashare.DatasetBlobStorageArgs;
import com.pulumi.azure.datashare.inputs.DatasetBlobStorageStorageAccountArgs;
import com.pulumi.resources.CustomResourceOptions;
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 exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleAccount = new com.pulumi.azure.datashare.Account("exampleAccount", com.pulumi.azure.datashare.AccountArgs.builder()
.name("example-dsa")
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.identity(AccountIdentityArgs.builder()
.type("SystemAssigned")
.build())
.build());
var exampleShare = new Share("exampleShare", ShareArgs.builder()
.name("example_ds")
.accountId(exampleAccount.id())
.kind("CopyBased")
.build());
var exampleAccount2 = new com.pulumi.azure.storage.Account("exampleAccount2", com.pulumi.azure.storage.AccountArgs.builder()
.name("examplestr")
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.accountTier("Standard")
.accountReplicationType("RAGRS")
.build());
var exampleContainer = new Container("exampleContainer", ContainerArgs.builder()
.name("example-sc")
.storageAccountName(exampleAccount2.name())
.containerAccessType("container")
.build());
final var example = AzureadFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()
.displayName(exampleAccount.name())
.build());
var exampleAssignment = new Assignment("exampleAssignment", AssignmentArgs.builder()
.scope(exampleAccount2.id())
.roleDefinitionName("Storage Blob Data Reader")
.principalId(example.applyValue(_example -> _example.objectId()))
.build());
var exampleDatasetBlobStorage = new DatasetBlobStorage("exampleDatasetBlobStorage", DatasetBlobStorageArgs.builder()
.name("example-dsbsds-file")
.dataShareId(exampleShare.id())
.containerName(exampleContainer.name())
.storageAccount(DatasetBlobStorageStorageAccountArgs.builder()
.name(exampleAccount2.name())
.resourceGroupName(exampleAccount2.resourceGroupName())
.subscriptionId("00000000-0000-0000-0000-000000000000")
.build())
.filePath("myfile.txt")
.build(), CustomResourceOptions.builder()
.dependsOn(exampleAssignment)
.build());
}
}
resources:
exampleResourceGroup:
type: azure:core:ResourceGroup
name: example
properties:
name: example-resources
location: West Europe
exampleAccount:
type: azure:datashare:Account
name: example
properties:
name: example-dsa
location: ${exampleResourceGroup.location}
resourceGroupName: ${exampleResourceGroup.name}
identity:
type: SystemAssigned
exampleShare:
type: azure:datashare:Share
name: example
properties:
name: example_ds
accountId: ${exampleAccount.id}
kind: CopyBased
exampleAccount2:
type: azure:storage:Account
name: example
properties:
name: examplestr
resourceGroupName: ${exampleResourceGroup.name}
location: ${exampleResourceGroup.location}
accountTier: Standard
accountReplicationType: RAGRS
exampleContainer:
type: azure:storage:Container
name: example
properties:
name: example-sc
storageAccountName: ${exampleAccount2.name}
containerAccessType: container
exampleAssignment:
type: azure:authorization:Assignment
name: example
properties:
scope: ${exampleAccount2.id}
roleDefinitionName: Storage Blob Data Reader
principalId: ${example.objectId}
exampleDatasetBlobStorage:
type: azure:datashare:DatasetBlobStorage
name: example
properties:
name: example-dsbsds-file
dataShareId: ${exampleShare.id}
containerName: ${exampleContainer.name}
storageAccount:
name: ${exampleAccount2.name}
resourceGroupName: ${exampleAccount2.resourceGroupName}
subscriptionId: 00000000-0000-0000-0000-000000000000
filePath: myfile.txt
options:
dependsOn:
- ${exampleAssignment}
variables:
example:
fn::invoke:
function: azuread:getServicePrincipal
arguments:
displayName: ${exampleAccount.name}

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.DataShare: 2019-11-01

Import

Data Share Blob Storage Datasets can be imported using the resource id, e.g.

$ pulumi import azure:datashare/datasetBlobStorage:DatasetBlobStorage example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.DataShare/accounts/account1/shares/share1/dataSets/dataSet1

Constructors

Link copied to clipboard
constructor(containerName: Output<String>? = null, dataShareId: Output<String>? = null, filePath: Output<String>? = null, folderPath: Output<String>? = null, name: Output<String>? = null, storageAccount: Output<DatasetBlobStorageStorageAccountArgs>? = null)

Properties

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

The name of the storage account container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.

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

The ID of the Data Share in which this Data Share Blob Storage Dataset should be created. Changing this forces a new Data Share Blob Storage Dataset to be created.

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

The path of the file in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.

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

The path of the folder in the storage container to be shared with the receiver. Changing this forces a new Data Share Blob Storage Dataset to be created.

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

The name which should be used for this Data Share Blob Storage Dataset. Changing this forces a new Data Share Blob Storage Dataset to be created.

Link copied to clipboard

A storage_account block as defined below. Changing this forces a new resource to be created.

Functions

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