All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azure.storage.kotlin.SyncServerEndpointArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.azure.storage.kotlin

import com.pulumi.azure.storage.SyncServerEndpointArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * 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
 * 
 * ```typescript
 * 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],
 * });
 * ```
 * ```python
 * 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]))
 * ```
 * ```csharp
 * 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,
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
 * 	"github.com/pulumi/pulumi-azure/sdk/v5/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
 * 	})
 * }
 * ```
 * ```java
 * 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());
 *     }
 * }
 * ```
 * ```yaml
 * 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.
 * ```sh
 * $ pulumi import azure:storage/syncServerEndpoint:SyncServerEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.StorageSync/storageSyncServices/sync1/syncGroups/syncGroup1/serverEndpoints/endpoint1
 * ```
 * @property cloudTieringEnabled Is Cloud Tiering Enabled? Defaults to `false`.
 * @property initialDownloadPolicy Specifies how the server initially downloads the Azure file share data. Valid Values includes `NamespaceThenModifiedFiles`, `NamespaceOnly`, and `AvoidTieredFiles`. Defaults to `NamespaceThenModifiedFiles`.
 * @property localCacheMode Specifies how to handle the local cache. Valid Values include `UpdateLocallyCachedFiles` and `DownloadNewAndModifiedFiles`. Defaults to `UpdateLocallyCachedFiles`.
 * @property name The name which should be used for this Storage Sync. Changing this forces a new Storage Sync Server Endpoint to be created.
 * @property registeredServerId 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.
 * > **NOTE:** The target server must already be registered with the parent `azure.storage.Sync` prior to creating this endpoint. For more information on registering a server see the [Microsoft documentation](https://learn.microsoft.com/azure/storage/file-sync/file-sync-server-registration)
 * @property serverLocalPath 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.
 * @property storageSyncGroupId 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.
 * @property tierFilesOlderThanDays Files older than the specified age will be tiered to the cloud.
 * @property volumeFreeSpacePercent What percentage of free space on the volume should be preserved? Defaults to `20`.
 */
public data class SyncServerEndpointArgs(
    public val cloudTieringEnabled: Output? = null,
    public val initialDownloadPolicy: Output? = null,
    public val localCacheMode: Output? = null,
    public val name: Output? = null,
    public val registeredServerId: Output? = null,
    public val serverLocalPath: Output? = null,
    public val storageSyncGroupId: Output? = null,
    public val tierFilesOlderThanDays: Output? = null,
    public val volumeFreeSpacePercent: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.azure.storage.SyncServerEndpointArgs =
        com.pulumi.azure.storage.SyncServerEndpointArgs.builder()
            .cloudTieringEnabled(cloudTieringEnabled?.applyValue({ args0 -> args0 }))
            .initialDownloadPolicy(initialDownloadPolicy?.applyValue({ args0 -> args0 }))
            .localCacheMode(localCacheMode?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .registeredServerId(registeredServerId?.applyValue({ args0 -> args0 }))
            .serverLocalPath(serverLocalPath?.applyValue({ args0 -> args0 }))
            .storageSyncGroupId(storageSyncGroupId?.applyValue({ args0 -> args0 }))
            .tierFilesOlderThanDays(tierFilesOlderThanDays?.applyValue({ args0 -> args0 }))
            .volumeFreeSpacePercent(volumeFreeSpacePercent?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [SyncServerEndpointArgs].
 */
@PulumiTagMarker
public class SyncServerEndpointArgsBuilder internal constructor() {
    private var cloudTieringEnabled: Output? = null

    private var initialDownloadPolicy: Output? = null

    private var localCacheMode: Output? = null

    private var name: Output? = null

    private var registeredServerId: Output? = null

    private var serverLocalPath: Output? = null

    private var storageSyncGroupId: Output? = null

    private var tierFilesOlderThanDays: Output? = null

    private var volumeFreeSpacePercent: Output? = null

    /**
     * @param value Is Cloud Tiering Enabled? Defaults to `false`.
     */
    @JvmName("tbctkcukolownsup")
    public suspend fun cloudTieringEnabled(`value`: Output) {
        this.cloudTieringEnabled = value
    }

    /**
     * @param value Specifies how the server initially downloads the Azure file share data. Valid Values includes `NamespaceThenModifiedFiles`, `NamespaceOnly`, and `AvoidTieredFiles`. Defaults to `NamespaceThenModifiedFiles`.
     */
    @JvmName("dinqlsaigvckgdtx")
    public suspend fun initialDownloadPolicy(`value`: Output) {
        this.initialDownloadPolicy = value
    }

    /**
     * @param value Specifies how to handle the local cache. Valid Values include `UpdateLocallyCachedFiles` and `DownloadNewAndModifiedFiles`. Defaults to `UpdateLocallyCachedFiles`.
     */
    @JvmName("thmyylpfxumhnewi")
    public suspend fun localCacheMode(`value`: Output) {
        this.localCacheMode = value
    }

    /**
     * @param value The name which should be used for this Storage Sync. Changing this forces a new Storage Sync Server Endpoint to be created.
     */
    @JvmName("fidtxpnlebjejnwh")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value 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.
     * > **NOTE:** The target server must already be registered with the parent `azure.storage.Sync` prior to creating this endpoint. For more information on registering a server see the [Microsoft documentation](https://learn.microsoft.com/azure/storage/file-sync/file-sync-server-registration)
     */
    @JvmName("gemqwbxqltpvntua")
    public suspend fun registeredServerId(`value`: Output) {
        this.registeredServerId = value
    }

    /**
     * @param value 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.
     */
    @JvmName("nilcbgdqdebtabbd")
    public suspend fun serverLocalPath(`value`: Output) {
        this.serverLocalPath = value
    }

    /**
     * @param value 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.
     */
    @JvmName("ecgtwosjakuqffrj")
    public suspend fun storageSyncGroupId(`value`: Output) {
        this.storageSyncGroupId = value
    }

    /**
     * @param value Files older than the specified age will be tiered to the cloud.
     */
    @JvmName("hgqjnsygrokdjisx")
    public suspend fun tierFilesOlderThanDays(`value`: Output) {
        this.tierFilesOlderThanDays = value
    }

    /**
     * @param value What percentage of free space on the volume should be preserved? Defaults to `20`.
     */
    @JvmName("juoiekbrosyqsekh")
    public suspend fun volumeFreeSpacePercent(`value`: Output) {
        this.volumeFreeSpacePercent = value
    }

    /**
     * @param value Is Cloud Tiering Enabled? Defaults to `false`.
     */
    @JvmName("nngqvbiwuuclodss")
    public suspend fun cloudTieringEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.cloudTieringEnabled = mapped
    }

    /**
     * @param value Specifies how the server initially downloads the Azure file share data. Valid Values includes `NamespaceThenModifiedFiles`, `NamespaceOnly`, and `AvoidTieredFiles`. Defaults to `NamespaceThenModifiedFiles`.
     */
    @JvmName("rynqpsycryqecbif")
    public suspend fun initialDownloadPolicy(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.initialDownloadPolicy = mapped
    }

    /**
     * @param value Specifies how to handle the local cache. Valid Values include `UpdateLocallyCachedFiles` and `DownloadNewAndModifiedFiles`. Defaults to `UpdateLocallyCachedFiles`.
     */
    @JvmName("igkqohmqiiyoxhws")
    public suspend fun localCacheMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.localCacheMode = mapped
    }

    /**
     * @param value The name which should be used for this Storage Sync. Changing this forces a new Storage Sync Server Endpoint to be created.
     */
    @JvmName("bomcovtclmedptmx")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value 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.
     * > **NOTE:** The target server must already be registered with the parent `azure.storage.Sync` prior to creating this endpoint. For more information on registering a server see the [Microsoft documentation](https://learn.microsoft.com/azure/storage/file-sync/file-sync-server-registration)
     */
    @JvmName("ydjisshfeoryjwik")
    public suspend fun registeredServerId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.registeredServerId = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("jurcnbcjoxbptube")
    public suspend fun serverLocalPath(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serverLocalPath = mapped
    }

    /**
     * @param value 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.
     */
    @JvmName("jaghwnoaddrlwtkm")
    public suspend fun storageSyncGroupId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.storageSyncGroupId = mapped
    }

    /**
     * @param value Files older than the specified age will be tiered to the cloud.
     */
    @JvmName("rwfbyyijvdkweiva")
    public suspend fun tierFilesOlderThanDays(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tierFilesOlderThanDays = mapped
    }

    /**
     * @param value What percentage of free space on the volume should be preserved? Defaults to `20`.
     */
    @JvmName("ukpetssorjllbxpv")
    public suspend fun volumeFreeSpacePercent(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.volumeFreeSpacePercent = mapped
    }

    internal fun build(): SyncServerEndpointArgs = SyncServerEndpointArgs(
        cloudTieringEnabled = cloudTieringEnabled,
        initialDownloadPolicy = initialDownloadPolicy,
        localCacheMode = localCacheMode,
        name = name,
        registeredServerId = registeredServerId,
        serverLocalPath = serverLocalPath,
        storageSyncGroupId = storageSyncGroupId,
        tierFilesOlderThanDays = tierFilesOlderThanDays,
        volumeFreeSpacePercent = volumeFreeSpacePercent,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy