SyncServerEndpointArgs

data class SyncServerEndpointArgs(val cloudTieringEnabled: Output<Boolean>? = null, val initialDownloadPolicy: Output<String>? = null, val localCacheMode: Output<String>? = null, val name: Output<String>? = null, val registeredServerId: Output<String>? = null, val serverLocalPath: Output<String>? = null, val storageSyncGroupId: Output<String>? = null, val tierFilesOlderThanDays: Output<Int>? = null, val volumeFreeSpacePercent: Output<Int>? = null) : ConvertibleToJava<SyncServerEndpointArgs>

Manages a Storage Sync Server Endpoint.

NOTE: The parent azure.storage.SyncGroup must have an azure.storage.SyncCloudEndpoint available before an azure.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

Link copied to clipboard
constructor(cloudTieringEnabled: Output<Boolean>? = null, initialDownloadPolicy: Output<String>? = null, localCacheMode: Output<String>? = null, name: Output<String>? = null, registeredServerId: Output<String>? = null, serverLocalPath: Output<String>? = null, storageSyncGroupId: Output<String>? = null, tierFilesOlderThanDays: Output<Int>? = null, volumeFreeSpacePercent: Output<Int>? = null)

Properties

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

Is Cloud Tiering Enabled? Defaults to false.

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

Specifies how the server initially downloads the Azure file share data. Valid Values includes NamespaceThenModifiedFiles, NamespaceOnly, and AvoidTieredFiles. Defaults to NamespaceThenModifiedFiles.

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

Specifies how to handle the local cache. Valid Values include UpdateLocallyCachedFiles and DownloadNewAndModifiedFiles. Defaults to UpdateLocallyCachedFiles.

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

The name which should be used for this Storage Sync. Changing this forces a new Storage Sync Server Endpoint to be created.

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

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.

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

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.

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

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.

Link copied to clipboard
val tierFilesOlderThanDays: Output<Int>? = null

Files older than the specified age will be tiered to the cloud.

Link copied to clipboard
val volumeFreeSpacePercent: Output<Int>? = null

What percentage of free space on the volume should be preserved? Defaults to 20.

Functions

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