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

io.cloudshiftdev.awscdk.services.datasync.CfnLocationObjectStorageProps.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.common.CdkDslMarker
import io.cloudshiftdev.awscdk.common.CdkObject
import io.cloudshiftdev.awscdk.common.CdkObjectWrappers
import kotlin.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List

/**
 * Properties for defining a `CfnLocationObjectStorage`.
 *
 * 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.*;
 * CfnLocationObjectStorageProps cfnLocationObjectStorageProps =
 * CfnLocationObjectStorageProps.builder()
 * .agentArns(List.of("agentArns"))
 * // the properties below are optional
 * .accessKey("accessKey")
 * .bucketName("bucketName")
 * .secretKey("secretKey")
 * .serverCertificate("serverCertificate")
 * .serverHostname("serverHostname")
 * .serverPort(123)
 * .serverProtocol("serverProtocol")
 * .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-locationobjectstorage.html)
 */
public interface CfnLocationObjectStorageProps {
  /**
   * Specifies the access key (for example, a user name) if credentials are required to authenticate
   * with the object storage server.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-accesskey)
   */
  public fun accessKey(): String? = unwrap(this).getAccessKey()

  /**
   * Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can connect with your
   * object storage system.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-agentarns)
   */
  public fun agentArns(): List

  /**
   * Specifies the name of the object storage bucket involved in the transfer.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-bucketname)
   */
  public fun bucketName(): String? = unwrap(this).getBucketName()

  /**
   * Specifies the secret key (for example, a password) if credentials are required to authenticate
   * with the object storage server.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-secretkey)
   */
  public fun secretKey(): String? = unwrap(this).getSecretKey()

  /**
   * Specifies a certificate chain for DataSync to authenticate with your object storage system if
   * the system uses a private or self-signed certificate authority (CA).
   *
   * You must specify a single `.pem` file with a full certificate chain (for example,
   * `file:///home/user/.ssh/object_storage_certificates.pem` ).
   *
   * The certificate chain might include:
   *
   * * The object storage system's certificate
   * * All intermediate certificates (if there are any)
   * * The root certificate of the signing CA
   *
   * You can concatenate your certificates into a `.pem` file (which can be up to 32768 bytes before
   * base64 encoding). The following example `cat` command creates an `object_storage_certificates.pem`
   * file that includes three certificates:
   *
   * `cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem >
   * object_storage_certificates.pem`
   *
   * To use this parameter, configure `ServerProtocol` to `HTTPS` .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-servercertificate)
   */
  public fun serverCertificate(): String? = unwrap(this).getServerCertificate()

  /**
   * Specifies the domain name or IP address of the object storage server.
   *
   * A DataSync agent uses this hostname to mount the object storage server in a network.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverhostname)
   */
  public fun serverHostname(): String? = unwrap(this).getServerHostname()

  /**
   * Specifies the port that your object storage server accepts inbound network traffic on (for
   * example, port 443).
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverport)
   */
  public fun serverPort(): Number? = unwrap(this).getServerPort()

  /**
   * Specifies the protocol that your object storage server uses to communicate.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverprotocol)
   */
  public fun serverProtocol(): String? = unwrap(this).getServerProtocol()

  /**
   * Specifies the object prefix for your object storage server.
   *
   * If this is a source location, DataSync only copies objects with this prefix. If this is a
   * destination location, DataSync writes all objects with this prefix.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-subdirectory)
   */
  public fun subdirectory(): String? = unwrap(this).getSubdirectory()

  /**
   * Specifies the key-value pair that represents a tag that you want to add to the resource.
   *
   * Tags can help you manage, filter, and search for your resources. We recommend creating a name
   * tag for your location.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * A builder for [CfnLocationObjectStorageProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param accessKey Specifies the access key (for example, a user name) if credentials are
     * required to authenticate with the object storage server.
     */
    public fun accessKey(accessKey: String)

    /**
     * @param agentArns Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can
     * connect with your object storage system. 
     */
    public fun agentArns(agentArns: List)

    /**
     * @param agentArns Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can
     * connect with your object storage system. 
     */
    public fun agentArns(vararg agentArns: String)

    /**
     * @param bucketName Specifies the name of the object storage bucket involved in the transfer.
     */
    public fun bucketName(bucketName: String)

    /**
     * @param secretKey Specifies the secret key (for example, a password) if credentials are
     * required to authenticate with the object storage server.
     */
    public fun secretKey(secretKey: String)

    /**
     * @param serverCertificate Specifies a certificate chain for DataSync to authenticate with your
     * object storage system if the system uses a private or self-signed certificate authority (CA).
     * You must specify a single `.pem` file with a full certificate chain (for example,
     * `file:///home/user/.ssh/object_storage_certificates.pem` ).
     *
     * The certificate chain might include:
     *
     * * The object storage system's certificate
     * * All intermediate certificates (if there are any)
     * * The root certificate of the signing CA
     *
     * You can concatenate your certificates into a `.pem` file (which can be up to 32768 bytes
     * before base64 encoding). The following example `cat` command creates an
     * `object_storage_certificates.pem` file that includes three certificates:
     *
     * `cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem >
     * object_storage_certificates.pem`
     *
     * To use this parameter, configure `ServerProtocol` to `HTTPS` .
     */
    public fun serverCertificate(serverCertificate: String)

    /**
     * @param serverHostname Specifies the domain name or IP address of the object storage server.
     * A DataSync agent uses this hostname to mount the object storage server in a network.
     */
    public fun serverHostname(serverHostname: String)

    /**
     * @param serverPort Specifies the port that your object storage server accepts inbound network
     * traffic on (for example, port 443).
     */
    public fun serverPort(serverPort: Number)

    /**
     * @param serverProtocol Specifies the protocol that your object storage server uses to
     * communicate.
     */
    public fun serverProtocol(serverProtocol: String)

    /**
     * @param subdirectory Specifies the object prefix for your object storage server.
     * If this is a source location, DataSync only copies objects with this prefix. If this is a
     * destination location, DataSync writes all objects with this prefix.
     */
    public fun subdirectory(subdirectory: String)

    /**
     * @param tags Specifies the key-value pair that represents a tag that you want to add to the
     * resource.
     * Tags can help you manage, filter, and search for your resources. We recommend creating a name
     * tag for your location.
     */
    public fun tags(tags: List)

    /**
     * @param tags Specifies the key-value pair that represents a tag that you want to add to the
     * resource.
     * Tags can help you manage, filter, and search for your resources. We recommend creating a name
     * tag for your location.
     */
    public fun tags(vararg tags: CfnTag)
  }

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

    /**
     * @param accessKey Specifies the access key (for example, a user name) if credentials are
     * required to authenticate with the object storage server.
     */
    override fun accessKey(accessKey: String) {
      cdkBuilder.accessKey(accessKey)
    }

    /**
     * @param agentArns Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can
     * connect with your object storage system. 
     */
    override fun agentArns(agentArns: List) {
      cdkBuilder.agentArns(agentArns)
    }

    /**
     * @param agentArns Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can
     * connect with your object storage system. 
     */
    override fun agentArns(vararg agentArns: String): Unit = agentArns(agentArns.toList())

    /**
     * @param bucketName Specifies the name of the object storage bucket involved in the transfer.
     */
    override fun bucketName(bucketName: String) {
      cdkBuilder.bucketName(bucketName)
    }

    /**
     * @param secretKey Specifies the secret key (for example, a password) if credentials are
     * required to authenticate with the object storage server.
     */
    override fun secretKey(secretKey: String) {
      cdkBuilder.secretKey(secretKey)
    }

    /**
     * @param serverCertificate Specifies a certificate chain for DataSync to authenticate with your
     * object storage system if the system uses a private or self-signed certificate authority (CA).
     * You must specify a single `.pem` file with a full certificate chain (for example,
     * `file:///home/user/.ssh/object_storage_certificates.pem` ).
     *
     * The certificate chain might include:
     *
     * * The object storage system's certificate
     * * All intermediate certificates (if there are any)
     * * The root certificate of the signing CA
     *
     * You can concatenate your certificates into a `.pem` file (which can be up to 32768 bytes
     * before base64 encoding). The following example `cat` command creates an
     * `object_storage_certificates.pem` file that includes three certificates:
     *
     * `cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem >
     * object_storage_certificates.pem`
     *
     * To use this parameter, configure `ServerProtocol` to `HTTPS` .
     */
    override fun serverCertificate(serverCertificate: String) {
      cdkBuilder.serverCertificate(serverCertificate)
    }

    /**
     * @param serverHostname Specifies the domain name or IP address of the object storage server.
     * A DataSync agent uses this hostname to mount the object storage server in a network.
     */
    override fun serverHostname(serverHostname: String) {
      cdkBuilder.serverHostname(serverHostname)
    }

    /**
     * @param serverPort Specifies the port that your object storage server accepts inbound network
     * traffic on (for example, port 443).
     */
    override fun serverPort(serverPort: Number) {
      cdkBuilder.serverPort(serverPort)
    }

    /**
     * @param serverProtocol Specifies the protocol that your object storage server uses to
     * communicate.
     */
    override fun serverProtocol(serverProtocol: String) {
      cdkBuilder.serverProtocol(serverProtocol)
    }

    /**
     * @param subdirectory Specifies the object prefix for your object storage server.
     * If this is a source location, DataSync only copies objects with this prefix. If this is a
     * destination location, DataSync writes all objects with this prefix.
     */
    override fun subdirectory(subdirectory: String) {
      cdkBuilder.subdirectory(subdirectory)
    }

    /**
     * @param tags Specifies the key-value pair that represents a tag that you want to add to the
     * resource.
     * Tags can help you manage, filter, and search for your resources. We recommend creating a name
     * tag for your location.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags Specifies the key-value pair that represents a tag that you want to add to the
     * resource.
     * Tags can help you manage, filter, and search for your resources. We recommend creating a name
     * tag for your location.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

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

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.datasync.CfnLocationObjectStorageProps,
  ) : CdkObject(cdkObject),
      CfnLocationObjectStorageProps {
    /**
     * Specifies the access key (for example, a user name) if credentials are required to
     * authenticate with the object storage server.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-accesskey)
     */
    override fun accessKey(): String? = unwrap(this).getAccessKey()

    /**
     * Specifies the Amazon Resource Names (ARNs) of the DataSync agents that can connect with your
     * object storage system.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-agentarns)
     */
    override fun agentArns(): List = unwrap(this).getAgentArns()

    /**
     * Specifies the name of the object storage bucket involved in the transfer.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-bucketname)
     */
    override fun bucketName(): String? = unwrap(this).getBucketName()

    /**
     * Specifies the secret key (for example, a password) if credentials are required to
     * authenticate with the object storage server.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-secretkey)
     */
    override fun secretKey(): String? = unwrap(this).getSecretKey()

    /**
     * Specifies a certificate chain for DataSync to authenticate with your object storage system if
     * the system uses a private or self-signed certificate authority (CA).
     *
     * You must specify a single `.pem` file with a full certificate chain (for example,
     * `file:///home/user/.ssh/object_storage_certificates.pem` ).
     *
     * The certificate chain might include:
     *
     * * The object storage system's certificate
     * * All intermediate certificates (if there are any)
     * * The root certificate of the signing CA
     *
     * You can concatenate your certificates into a `.pem` file (which can be up to 32768 bytes
     * before base64 encoding). The following example `cat` command creates an
     * `object_storage_certificates.pem` file that includes three certificates:
     *
     * `cat object_server_certificate.pem intermediate_certificate.pem ca_root_certificate.pem >
     * object_storage_certificates.pem`
     *
     * To use this parameter, configure `ServerProtocol` to `HTTPS` .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-servercertificate)
     */
    override fun serverCertificate(): String? = unwrap(this).getServerCertificate()

    /**
     * Specifies the domain name or IP address of the object storage server.
     *
     * A DataSync agent uses this hostname to mount the object storage server in a network.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverhostname)
     */
    override fun serverHostname(): String? = unwrap(this).getServerHostname()

    /**
     * Specifies the port that your object storage server accepts inbound network traffic on (for
     * example, port 443).
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverport)
     */
    override fun serverPort(): Number? = unwrap(this).getServerPort()

    /**
     * Specifies the protocol that your object storage server uses to communicate.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-serverprotocol)
     */
    override fun serverProtocol(): String? = unwrap(this).getServerProtocol()

    /**
     * Specifies the object prefix for your object storage server.
     *
     * If this is a source location, DataSync only copies objects with this prefix. If this is a
     * destination location, DataSync writes all objects with this prefix.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-subdirectory)
     */
    override fun subdirectory(): String? = unwrap(this).getSubdirectory()

    /**
     * Specifies the key-value pair that represents a tag that you want to add to the resource.
     *
     * Tags can help you manage, filter, and search for your resources. We recommend creating a name
     * tag for your location.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-datasync-locationobjectstorage.html#cfn-datasync-locationobjectstorage-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()
  }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy