Sync Server Endpoint Args
Manages a Storage Sync Server Endpoint.
NOTE: The parent
azure.storage.SyncGroup
must have anazure.storage.SyncCloudEndpoint
available before anazure.storage.SyncServerEndpoint
resource can be created.
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 exampleSync = new azure.storage.Sync("example", {
name: "example-storage-sync",
resourceGroupName: example.name,
location: example.location,
});
const exampleSyncGroup = new azure.storage.SyncGroup("example", {
name: "example-storage-sync-group",
storageSyncId: exampleSync.id,
});
const exampleAccount = new azure.storage.Account("example", {
name: "example-storage-account",
resourceGroupName: example.name,
location: example.location,
accountTier: "Standard",
accountReplicationType: "LRS",
});
const exampleShare = new azure.storage.Share("example", {
name: "example-storage-share",
storageAccountName: exampleAccount.name,
quota: 1,
acls: [{
id: "GhostedRecall",
accessPolicies: [{
permissions: "r",
}],
}],
});
const exampleSyncCloudEndpoint = new azure.storage.SyncCloudEndpoint("example", {
name: "example-ss-ce",
storageSyncGroupId: exampleSyncGroup.id,
fileShareName: exampleShare.name,
storageAccountId: exampleAccount.id,
});
const exampleSyncServerEndpoint = new azure.storage.SyncServerEndpoint("example", {
name: "example-storage-sync-server-endpoint",
storageSyncGroupId: exampleSyncGroup.id,
registeredServerId: exampleSync.registeredServers[0],
}, {
dependsOn: [exampleSyncCloudEndpoint],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_sync = azure.storage.Sync("example",
name="example-storage-sync",
resource_group_name=example.name,
location=example.location)
example_sync_group = azure.storage.SyncGroup("example",
name="example-storage-sync-group",
storage_sync_id=example_sync.id)
example_account = azure.storage.Account("example",
name="example-storage-account",
resource_group_name=example.name,
location=example.location,
account_tier="Standard",
account_replication_type="LRS")
example_share = azure.storage.Share("example",
name="example-storage-share",
storage_account_name=example_account.name,
quota=1,
acls=[{
"id": "GhostedRecall",
"access_policies": [{
"permissions": "r",
}],
}])
example_sync_cloud_endpoint = azure.storage.SyncCloudEndpoint("example",
name="example-ss-ce",
storage_sync_group_id=example_sync_group.id,
file_share_name=example_share.name,
storage_account_id=example_account.id)
example_sync_server_endpoint = azure.storage.SyncServerEndpoint("example",
name="example-storage-sync-server-endpoint",
storage_sync_group_id=example_sync_group.id,
registered_server_id=example_sync.registered_servers[0],
opts = pulumi.ResourceOptions(depends_on=[example_sync_cloud_endpoint]))
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 exampleSync = new Azure.Storage.Sync("example", new()
{
Name = "example-storage-sync",
ResourceGroupName = example.Name,
Location = example.Location,
});
var exampleSyncGroup = new Azure.Storage.SyncGroup("example", new()
{
Name = "example-storage-sync-group",
StorageSyncId = exampleSync.Id,
});
var exampleAccount = new Azure.Storage.Account("example", new()
{
Name = "example-storage-account",
ResourceGroupName = example.Name,
Location = example.Location,
AccountTier = "Standard",
AccountReplicationType = "LRS",
});
var exampleShare = new Azure.Storage.Share("example", new()
{
Name = "example-storage-share",
StorageAccountName = exampleAccount.Name,
Quota = 1,
Acls = new[]
{
new Azure.Storage.Inputs.ShareAclArgs
{
Id = "GhostedRecall",
AccessPolicies = new[]
{
new Azure.Storage.Inputs.ShareAclAccessPolicyArgs
{
Permissions = "r",
},
},
},
},
});
var exampleSyncCloudEndpoint = new Azure.Storage.SyncCloudEndpoint("example", new()
{
Name = "example-ss-ce",
StorageSyncGroupId = exampleSyncGroup.Id,
FileShareName = exampleShare.Name,
StorageAccountId = exampleAccount.Id,
});
var exampleSyncServerEndpoint = new Azure.Storage.SyncServerEndpoint("example", new()
{
Name = "example-storage-sync-server-endpoint",
StorageSyncGroupId = exampleSyncGroup.Id,
RegisteredServerId = exampleSync.RegisteredServers.Apply(registeredServers => registeredServers[0]),
}, new CustomResourceOptions
{
DependsOn =
{
exampleSyncCloudEndpoint,
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/storage"
"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
}
exampleSync, err := storage.NewSync(ctx, "example", &storage.SyncArgs{
Name: pulumi.String("example-storage-sync"),
ResourceGroupName: example.Name,
Location: example.Location,
})
if err != nil {
return err
}
exampleSyncGroup, err := storage.NewSyncGroup(ctx, "example", &storage.SyncGroupArgs{
Name: pulumi.String("example-storage-sync-group"),
StorageSyncId: exampleSync.ID(),
})
if err != nil {
return err
}
exampleAccount, err := storage.NewAccount(ctx, "example", &storage.AccountArgs{
Name: pulumi.String("example-storage-account"),
ResourceGroupName: example.Name,
Location: example.Location,
AccountTier: pulumi.String("Standard"),
AccountReplicationType: pulumi.String("LRS"),
})
if err != nil {
return err
}
exampleShare, err := storage.NewShare(ctx, "example", &storage.ShareArgs{
Name: pulumi.String("example-storage-share"),
StorageAccountName: exampleAccount.Name,
Quota: pulumi.Int(1),
Acls: storage.ShareAclArray{
&storage.ShareAclArgs{
Id: pulumi.String("GhostedRecall"),
AccessPolicies: storage.ShareAclAccessPolicyArray{
&storage.ShareAclAccessPolicyArgs{
Permissions: pulumi.String("r"),
},
},
},
},
})
if err != nil {
return err
}
exampleSyncCloudEndpoint, err := storage.NewSyncCloudEndpoint(ctx, "example", &storage.SyncCloudEndpointArgs{
Name: pulumi.String("example-ss-ce"),
StorageSyncGroupId: exampleSyncGroup.ID(),
FileShareName: exampleShare.Name,
StorageAccountId: exampleAccount.ID(),
})
if err != nil {
return err
}
_, err = storage.NewSyncServerEndpoint(ctx, "example", &storage.SyncServerEndpointArgs{
Name: pulumi.String("example-storage-sync-server-endpoint"),
StorageSyncGroupId: exampleSyncGroup.ID(),
RegisteredServerId: exampleSync.RegisteredServers.ApplyT(func(registeredServers []string) (string, error) {
return registeredServers[0], nil
}).(pulumi.StringOutput),
}, pulumi.DependsOn([]pulumi.Resource{
exampleSyncCloudEndpoint,
}))
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.storage.Sync;
import com.pulumi.azure.storage.SyncArgs;
import com.pulumi.azure.storage.SyncGroup;
import com.pulumi.azure.storage.SyncGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.storage.Share;
import com.pulumi.azure.storage.ShareArgs;
import com.pulumi.azure.storage.inputs.ShareAclArgs;
import com.pulumi.azure.storage.SyncCloudEndpoint;
import com.pulumi.azure.storage.SyncCloudEndpointArgs;
import com.pulumi.azure.storage.SyncServerEndpoint;
import com.pulumi.azure.storage.SyncServerEndpointArgs;
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 example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleSync = new Sync("exampleSync", SyncArgs.builder()
.name("example-storage-sync")
.resourceGroupName(example.name())
.location(example.location())
.build());
var exampleSyncGroup = new SyncGroup("exampleSyncGroup", SyncGroupArgs.builder()
.name("example-storage-sync-group")
.storageSyncId(exampleSync.id())
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.name("example-storage-account")
.resourceGroupName(example.name())
.location(example.location())
.accountTier("Standard")
.accountReplicationType("LRS")
.build());
var exampleShare = new Share("exampleShare", ShareArgs.builder()
.name("example-storage-share")
.storageAccountName(exampleAccount.name())
.quota(1)
.acls(ShareAclArgs.builder()
.id("GhostedRecall")
.accessPolicies(ShareAclAccessPolicyArgs.builder()
.permissions("r")
.build())
.build())
.build());
var exampleSyncCloudEndpoint = new SyncCloudEndpoint("exampleSyncCloudEndpoint", SyncCloudEndpointArgs.builder()
.name("example-ss-ce")
.storageSyncGroupId(exampleSyncGroup.id())
.fileShareName(exampleShare.name())
.storageAccountId(exampleAccount.id())
.build());
var exampleSyncServerEndpoint = new SyncServerEndpoint("exampleSyncServerEndpoint", SyncServerEndpointArgs.builder()
.name("example-storage-sync-server-endpoint")
.storageSyncGroupId(exampleSyncGroup.id())
.registeredServerId(exampleSync.registeredServers().applyValue(registeredServers -> registeredServers[0]))
.build(), CustomResourceOptions.builder()
.dependsOn(exampleSyncCloudEndpoint)
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
exampleSync:
type: azure:storage:Sync
name: example
properties:
name: example-storage-sync
resourceGroupName: ${example.name}
location: ${example.location}
exampleSyncGroup:
type: azure:storage:SyncGroup
name: example
properties:
name: example-storage-sync-group
storageSyncId: ${exampleSync.id}
exampleAccount:
type: azure:storage:Account
name: example
properties:
name: example-storage-account
resourceGroupName: ${example.name}
location: ${example.location}
accountTier: Standard
accountReplicationType: LRS
exampleShare:
type: azure:storage:Share
name: example
properties:
name: example-storage-share
storageAccountName: ${exampleAccount.name}
quota: 1
acls:
- id: GhostedRecall
accessPolicies:
- permissions: r
exampleSyncCloudEndpoint:
type: azure:storage:SyncCloudEndpoint
name: example
properties:
name: example-ss-ce
storageSyncGroupId: ${exampleSyncGroup.id}
fileShareName: ${exampleShare.name}
storageAccountId: ${exampleAccount.id}
exampleSyncServerEndpoint:
type: azure:storage:SyncServerEndpoint
name: example
properties:
name: example-storage-sync-server-endpoint
storageSyncGroupId: ${exampleSyncGroup.id}
registeredServerId: ${exampleSync.registeredServers[0]}
options:
dependsOn:
- ${exampleSyncCloudEndpoint}
Import
Storage Sync Server Endpoints can be imported using the resource id
, e.g.
$ pulumi import azure:storage/syncServerEndpoint:SyncServerEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageSync/storageSyncServices/sync1/syncGroups/syncGroup1/serverEndpoints/endpoint1
Constructors
Properties
Is Cloud Tiering Enabled? Defaults to false
.
Specifies how the server initially downloads the Azure file share data. Valid Values includes NamespaceThenModifiedFiles
, NamespaceOnly
, and AvoidTieredFiles
. Defaults to NamespaceThenModifiedFiles
.
Specifies how to handle the local cache. Valid Values include UpdateLocallyCachedFiles
and DownloadNewAndModifiedFiles
. Defaults to UpdateLocallyCachedFiles
.
The ID of the Registered Server that will be associate with the Storage Sync Server Endpoint. Changing this forces a new Storage Sync Server Endpoint to be created.
The path on the Windows Server to be synced to the Azure file share. Changing this forces a new Storage Sync Server Endpoint to be created.
The ID of the Storage Sync Group where the Storage Sync Server Endpoint should exist. Changing this forces a new Storage Sync Server Endpoint to be created.
Files older than the specified age will be tiered to the cloud.
What percentage of free space on the volume should be preserved? Defaults to 20
.