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

io.cloudshiftdev.awscdk.services.datasync.CfnLocationAzureBlobProps.kt Maven / Gradle / Ivy

There is a newer version: 0.10.0
Show newest version
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.datasync

import io.cloudshiftdev.awscdk.CfnTag
import io.cloudshiftdev.awscdk.IResolvable
import io.cloudshiftdev.awscdk.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Any
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnLocationAzureBlob`.
 *
 * Example:
 *
 * ```
 * // The code below shows an example of how to instantiate this type.
 * // The values are placeholders you should change.
 * import io.cloudshiftdev.awscdk.services.datasync.*;
 * CfnLocationAzureBlobProps cfnLocationAzureBlobProps = CfnLocationAzureBlobProps.builder()
 * .agentArns(List.of("agentArns"))
 * .azureBlobAuthenticationType("azureBlobAuthenticationType")
 * // the properties below are optional
 * .azureAccessTier("azureAccessTier")
 * .azureBlobContainerUrl("azureBlobContainerUrl")
 * .azureBlobSasConfiguration(AzureBlobSasConfigurationProperty.builder()
 * .azureBlobSasToken("azureBlobSasToken")
 * .build())
 * .azureBlobType("azureBlobType")
 * .subdirectory("subdirectory")
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html)
 */
public interface CfnLocationAzureBlobProps {
  /**
   * Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure
   * Blob Storage container.
   *
   * You can specify more than one agent. For more information, see [Using multiple agents for your
   * transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-agentarns)
   */
  public fun agentArns(): List

  /**
   * Specifies the access tier that you want your objects or files transferred into.
   *
   * This only applies when using the location as a transfer destination. For more information, see
   * [Access
   * tiers](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers)
   * .
   *
   * Default: - "HOT"
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureaccesstier)
   */
  public fun azureAccessTier(): String? = unwrap(this).getAzureAccessTier()

  /**
   * Specifies the authentication method DataSync uses to access your Azure Blob Storage.
   *
   * DataSync can access blob storage using a shared access signature (SAS).
   *
   * Default: - "SAS"
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobauthenticationtype)
   */
  public fun azureBlobAuthenticationType(): String

  /**
   * Specifies the URL of the Azure Blob Storage container involved in your transfer.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobcontainerurl)
   */
  public fun azureBlobContainerUrl(): String? = unwrap(this).getAzureBlobContainerUrl()

  /**
   * Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobsasconfiguration)
   */
  public fun azureBlobSasConfiguration(): Any? = unwrap(this).getAzureBlobSasConfiguration()

  /**
   * Specifies the type of blob that you want your objects or files to be when transferring them
   * into Azure Blob Storage.
   *
   * Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For more
   * information on blob types, see the [Azure Blob Storage
   * documentation](https://docs.aws.amazon.com/https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)
   * .
   *
   * Default: - "BLOCK"
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobtype)
   */
  public fun azureBlobType(): String? = unwrap(this).getAzureBlobType()

  /**
   * Specifies path segments if you want to limit your transfer to a virtual directory in your
   * container (for example, `/my/images` ).
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-subdirectory)
   */
  public fun subdirectory(): String? = unwrap(this).getSubdirectory()

  /**
   * Specifies labels that help you categorize, filter, and search for your AWS resources.
   *
   * We recommend creating at least a name tag for your transfer location.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * A builder for [CfnLocationAzureBlobProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param agentArns Specifies the Amazon Resource Name (ARN) of the DataSync agent that can
     * connect with your Azure Blob Storage container. 
     * You can specify more than one agent. For more information, see [Using multiple agents for
     * your transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
     */
    public fun agentArns(agentArns: List)

    /**
     * @param agentArns Specifies the Amazon Resource Name (ARN) of the DataSync agent that can
     * connect with your Azure Blob Storage container. 
     * You can specify more than one agent. For more information, see [Using multiple agents for
     * your transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
     */
    public fun agentArns(vararg agentArns: String)

    /**
     * @param azureAccessTier Specifies the access tier that you want your objects or files
     * transferred into.
     * This only applies when using the location as a transfer destination. For more information,
     * see [Access
     * tiers](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers)
     * .
     */
    public fun azureAccessTier(azureAccessTier: String)

    /**
     * @param azureBlobAuthenticationType Specifies the authentication method DataSync uses to
     * access your Azure Blob Storage. 
     * DataSync can access blob storage using a shared access signature (SAS).
     */
    public fun azureBlobAuthenticationType(azureBlobAuthenticationType: String)

    /**
     * @param azureBlobContainerUrl Specifies the URL of the Azure Blob Storage container involved
     * in your transfer.
     */
    public fun azureBlobContainerUrl(azureBlobContainerUrl: String)

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    public fun azureBlobSasConfiguration(azureBlobSasConfiguration: IResolvable)

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    public
        fun azureBlobSasConfiguration(azureBlobSasConfiguration: CfnLocationAzureBlob.AzureBlobSasConfigurationProperty)

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("958492692d815b712459c1d6eef3188c06fd817e7363d0989e04f6aff912233d")
    public
        fun azureBlobSasConfiguration(azureBlobSasConfiguration: CfnLocationAzureBlob.AzureBlobSasConfigurationProperty.Builder.() -> Unit)

    /**
     * @param azureBlobType Specifies the type of blob that you want your objects or files to be
     * when transferring them into Azure Blob Storage.
     * Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For
     * more information on blob types, see the [Azure Blob Storage
     * documentation](https://docs.aws.amazon.com/https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)
     * .
     */
    public fun azureBlobType(azureBlobType: String)

    /**
     * @param subdirectory Specifies path segments if you want to limit your transfer to a virtual
     * directory in your container (for example, `/my/images` ).
     */
    public fun subdirectory(subdirectory: String)

    /**
     * @param tags Specifies labels that help you categorize, filter, and search for your AWS
     * resources.
     * We recommend creating at least a name tag for your transfer location.
     */
    public fun tags(tags: List)

    /**
     * @param tags Specifies labels that help you categorize, filter, and search for your AWS
     * resources.
     * We recommend creating at least a name tag for your transfer location.
     */
    public fun tags(vararg tags: CfnTag)
  }

  private class BuilderImpl : Builder {
    private val cdkBuilder:
        software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps.Builder =
        software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps.builder()

    /**
     * @param agentArns Specifies the Amazon Resource Name (ARN) of the DataSync agent that can
     * connect with your Azure Blob Storage container. 
     * You can specify more than one agent. For more information, see [Using multiple agents for
     * your transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
     */
    override fun agentArns(agentArns: List) {
      cdkBuilder.agentArns(agentArns)
    }

    /**
     * @param agentArns Specifies the Amazon Resource Name (ARN) of the DataSync agent that can
     * connect with your Azure Blob Storage container. 
     * You can specify more than one agent. For more information, see [Using multiple agents for
     * your transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
     */
    override fun agentArns(vararg agentArns: String): Unit = agentArns(agentArns.toList())

    /**
     * @param azureAccessTier Specifies the access tier that you want your objects or files
     * transferred into.
     * This only applies when using the location as a transfer destination. For more information,
     * see [Access
     * tiers](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers)
     * .
     */
    override fun azureAccessTier(azureAccessTier: String) {
      cdkBuilder.azureAccessTier(azureAccessTier)
    }

    /**
     * @param azureBlobAuthenticationType Specifies the authentication method DataSync uses to
     * access your Azure Blob Storage. 
     * DataSync can access blob storage using a shared access signature (SAS).
     */
    override fun azureBlobAuthenticationType(azureBlobAuthenticationType: String) {
      cdkBuilder.azureBlobAuthenticationType(azureBlobAuthenticationType)
    }

    /**
     * @param azureBlobContainerUrl Specifies the URL of the Azure Blob Storage container involved
     * in your transfer.
     */
    override fun azureBlobContainerUrl(azureBlobContainerUrl: String) {
      cdkBuilder.azureBlobContainerUrl(azureBlobContainerUrl)
    }

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    override fun azureBlobSasConfiguration(azureBlobSasConfiguration: IResolvable) {
      cdkBuilder.azureBlobSasConfiguration(azureBlobSasConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    override
        fun azureBlobSasConfiguration(azureBlobSasConfiguration: CfnLocationAzureBlob.AzureBlobSasConfigurationProperty) {
      cdkBuilder.azureBlobSasConfiguration(azureBlobSasConfiguration.let(CfnLocationAzureBlob.AzureBlobSasConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param azureBlobSasConfiguration Specifies the SAS configuration that allows DataSync to
     * access your Azure Blob Storage.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("958492692d815b712459c1d6eef3188c06fd817e7363d0989e04f6aff912233d")
    override
        fun azureBlobSasConfiguration(azureBlobSasConfiguration: CfnLocationAzureBlob.AzureBlobSasConfigurationProperty.Builder.() -> Unit):
        Unit =
        azureBlobSasConfiguration(CfnLocationAzureBlob.AzureBlobSasConfigurationProperty(azureBlobSasConfiguration))

    /**
     * @param azureBlobType Specifies the type of blob that you want your objects or files to be
     * when transferring them into Azure Blob Storage.
     * Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For
     * more information on blob types, see the [Azure Blob Storage
     * documentation](https://docs.aws.amazon.com/https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)
     * .
     */
    override fun azureBlobType(azureBlobType: String) {
      cdkBuilder.azureBlobType(azureBlobType)
    }

    /**
     * @param subdirectory Specifies path segments if you want to limit your transfer to a virtual
     * directory in your container (for example, `/my/images` ).
     */
    override fun subdirectory(subdirectory: String) {
      cdkBuilder.subdirectory(subdirectory)
    }

    /**
     * @param tags Specifies labels that help you categorize, filter, and search for your AWS
     * resources.
     * We recommend creating at least a name tag for your transfer location.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags Specifies labels that help you categorize, filter, and search for your AWS
     * resources.
     * We recommend creating at least a name tag for your transfer location.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    public fun build(): software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps,
  ) : CdkObject(cdkObject),
      CfnLocationAzureBlobProps {
    /**
     * Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your
     * Azure Blob Storage container.
     *
     * You can specify more than one agent. For more information, see [Using multiple agents for
     * your transfer](https://docs.aws.amazon.com/datasync/latest/userguide/multiple-agents.html) .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-agentarns)
     */
    override fun agentArns(): List = unwrap(this).getAgentArns()

    /**
     * Specifies the access tier that you want your objects or files transferred into.
     *
     * This only applies when using the location as a transfer destination. For more information,
     * see [Access
     * tiers](https://docs.aws.amazon.com/datasync/latest/userguide/creating-azure-blob-location.html#azure-blob-access-tiers)
     * .
     *
     * Default: - "HOT"
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureaccesstier)
     */
    override fun azureAccessTier(): String? = unwrap(this).getAzureAccessTier()

    /**
     * Specifies the authentication method DataSync uses to access your Azure Blob Storage.
     *
     * DataSync can access blob storage using a shared access signature (SAS).
     *
     * Default: - "SAS"
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobauthenticationtype)
     */
    override fun azureBlobAuthenticationType(): String =
        unwrap(this).getAzureBlobAuthenticationType()

    /**
     * Specifies the URL of the Azure Blob Storage container involved in your transfer.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobcontainerurl)
     */
    override fun azureBlobContainerUrl(): String? = unwrap(this).getAzureBlobContainerUrl()

    /**
     * Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobsasconfiguration)
     */
    override fun azureBlobSasConfiguration(): Any? = unwrap(this).getAzureBlobSasConfiguration()

    /**
     * Specifies the type of blob that you want your objects or files to be when transferring them
     * into Azure Blob Storage.
     *
     * Currently, DataSync only supports moving data into Azure Blob Storage as block blobs. For
     * more information on blob types, see the [Azure Blob Storage
     * documentation](https://docs.aws.amazon.com/https://learn.microsoft.com/en-us/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs)
     * .
     *
     * Default: - "BLOCK"
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-azureblobtype)
     */
    override fun azureBlobType(): String? = unwrap(this).getAzureBlobType()

    /**
     * Specifies path segments if you want to limit your transfer to a virtual directory in your
     * container (for example, `/my/images` ).
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-subdirectory)
     */
    override fun subdirectory(): String? = unwrap(this).getSubdirectory()

    /**
     * Specifies labels that help you categorize, filter, and search for your AWS resources.
     *
     * We recommend creating at least a name tag for your transfer location.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationazureblob.html#cfn-datasync-locationazureblob-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
  }

  public companion object {
    public operator fun invoke(block: Builder.() -> Unit = {}): CfnLocationAzureBlobProps {
      val builderImpl = BuilderImpl()
      return Wrapper(builderImpl.apply(block).build())
    }

    internal
        fun wrap(cdkObject: software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps):
        CfnLocationAzureBlobProps = CdkObjectWrappers.wrap(cdkObject) as? CfnLocationAzureBlobProps
        ?: Wrapper(cdkObject)

    internal fun unwrap(wrapped: CfnLocationAzureBlobProps):
        software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps = (wrapped as
        CdkObject).cdkObject as software.amazon.awscdk.services.datasync.CfnLocationAzureBlobProps
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy