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

io.cloudshiftdev.awscdk.services.workspacesweb.CfnUserSettingsProps.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.workspacesweb

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.Number
import kotlin.String
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Properties for defining a `CfnUserSettings`.
 *
 * 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.workspacesweb.*;
 * CfnUserSettingsProps cfnUserSettingsProps = CfnUserSettingsProps.builder()
 * .copyAllowed("copyAllowed")
 * .downloadAllowed("downloadAllowed")
 * .pasteAllowed("pasteAllowed")
 * .printAllowed("printAllowed")
 * .uploadAllowed("uploadAllowed")
 * // the properties below are optional
 * .additionalEncryptionContext(Map.of(
 * "additionalEncryptionContextKey", "additionalEncryptionContext"))
 * .cookieSynchronizationConfiguration(CookieSynchronizationConfigurationProperty.builder()
 * .allowlist(List.of(CookieSpecificationProperty.builder()
 * .domain("domain")
 * // the properties below are optional
 * .name("name")
 * .path("path")
 * .build()))
 * // the properties below are optional
 * .blocklist(List.of(CookieSpecificationProperty.builder()
 * .domain("domain")
 * // the properties below are optional
 * .name("name")
 * .path("path")
 * .build()))
 * .build())
 * .customerManagedKey("customerManagedKey")
 * .deepLinkAllowed("deepLinkAllowed")
 * .disconnectTimeoutInMinutes(123)
 * .idleDisconnectTimeoutInMinutes(123)
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html)
 */
public interface CfnUserSettingsProps {
  /**
   * The additional encryption context of the user settings.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-additionalencryptioncontext)
   */
  public fun additionalEncryptionContext(): Any? = unwrap(this).getAdditionalEncryptionContext()

  /**
   * The configuration that specifies which cookies should be synchronized from the end user's local
   * browser to the remote browser.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-cookiesynchronizationconfiguration)
   */
  public fun cookieSynchronizationConfiguration(): Any? =
      unwrap(this).getCookieSynchronizationConfiguration()

  /**
   * Specifies whether the user can copy text from the streaming session to the local device.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-copyallowed)
   */
  public fun copyAllowed(): String

  /**
   * The customer managed key used to encrypt sensitive information in the user settings.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-customermanagedkey)
   */
  public fun customerManagedKey(): String? = unwrap(this).getCustomerManagedKey()

  /**
   * Specifies whether the user can use deep links that open automatically when connecting to a
   * session.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-deeplinkallowed)
   */
  public fun deepLinkAllowed(): String? = unwrap(this).getDeepLinkAllowed()

  /**
   * The amount of time that a streaming session remains active after users disconnect.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-disconnecttimeoutinminutes)
   */
  public fun disconnectTimeoutInMinutes(): Number? = unwrap(this).getDisconnectTimeoutInMinutes()

  /**
   * Specifies whether the user can download files from the streaming session to the local device.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-downloadallowed)
   */
  public fun downloadAllowed(): String

  /**
   * The amount of time that users can be idle (inactive) before they are disconnected from their
   * streaming session and the disconnect timeout interval begins.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-idledisconnecttimeoutinminutes)
   */
  public fun idleDisconnectTimeoutInMinutes(): Number? =
      unwrap(this).getIdleDisconnectTimeoutInMinutes()

  /**
   * Specifies whether the user can paste text from the local device to the streaming session.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-pasteallowed)
   */
  public fun pasteAllowed(): String

  /**
   * Specifies whether the user can print to the local device.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-printallowed)
   */
  public fun printAllowed(): String

  /**
   * The tags to add to the user settings resource.
   *
   * A tag is a key-value pair.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * Specifies whether the user can upload files from the local device to the streaming session.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-uploadallowed)
   */
  public fun uploadAllowed(): String

  /**
   * A builder for [CfnUserSettingsProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param additionalEncryptionContext The additional encryption context of the user settings.
     */
    public fun additionalEncryptionContext(additionalEncryptionContext: IResolvable)

    /**
     * @param additionalEncryptionContext The additional encryption context of the user settings.
     */
    public fun additionalEncryptionContext(additionalEncryptionContext: Map)

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    public fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: IResolvable)

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    public
        fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: CfnUserSettings.CookieSynchronizationConfigurationProperty)

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("41653d4c76ea2e84cd0be422d9ab64d0907e443e697e821cf8b130c9769c0ca9")
    public
        fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: CfnUserSettings.CookieSynchronizationConfigurationProperty.Builder.() -> Unit)

    /**
     * @param copyAllowed Specifies whether the user can copy text from the streaming session to the
     * local device. 
     */
    public fun copyAllowed(copyAllowed: String)

    /**
     * @param customerManagedKey The customer managed key used to encrypt sensitive information in
     * the user settings.
     */
    public fun customerManagedKey(customerManagedKey: String)

    /**
     * @param deepLinkAllowed Specifies whether the user can use deep links that open automatically
     * when connecting to a session.
     */
    public fun deepLinkAllowed(deepLinkAllowed: String)

    /**
     * @param disconnectTimeoutInMinutes The amount of time that a streaming session remains active
     * after users disconnect.
     */
    public fun disconnectTimeoutInMinutes(disconnectTimeoutInMinutes: Number)

    /**
     * @param downloadAllowed Specifies whether the user can download files from the streaming
     * session to the local device. 
     */
    public fun downloadAllowed(downloadAllowed: String)

    /**
     * @param idleDisconnectTimeoutInMinutes The amount of time that users can be idle (inactive)
     * before they are disconnected from their streaming session and the disconnect timeout interval
     * begins.
     */
    public fun idleDisconnectTimeoutInMinutes(idleDisconnectTimeoutInMinutes: Number)

    /**
     * @param pasteAllowed Specifies whether the user can paste text from the local device to the
     * streaming session. 
     */
    public fun pasteAllowed(pasteAllowed: String)

    /**
     * @param printAllowed Specifies whether the user can print to the local device. 
     */
    public fun printAllowed(printAllowed: String)

    /**
     * @param tags The tags to add to the user settings resource.
     * A tag is a key-value pair.
     */
    public fun tags(tags: List)

    /**
     * @param tags The tags to add to the user settings resource.
     * A tag is a key-value pair.
     */
    public fun tags(vararg tags: CfnTag)

    /**
     * @param uploadAllowed Specifies whether the user can upload files from the local device to the
     * streaming session. 
     */
    public fun uploadAllowed(uploadAllowed: String)
  }

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

    /**
     * @param additionalEncryptionContext The additional encryption context of the user settings.
     */
    override fun additionalEncryptionContext(additionalEncryptionContext: IResolvable) {
      cdkBuilder.additionalEncryptionContext(additionalEncryptionContext.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param additionalEncryptionContext The additional encryption context of the user settings.
     */
    override fun additionalEncryptionContext(additionalEncryptionContext: Map) {
      cdkBuilder.additionalEncryptionContext(additionalEncryptionContext)
    }

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    override
        fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: IResolvable) {
      cdkBuilder.cookieSynchronizationConfiguration(cookieSynchronizationConfiguration.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    override
        fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: CfnUserSettings.CookieSynchronizationConfigurationProperty) {
      cdkBuilder.cookieSynchronizationConfiguration(cookieSynchronizationConfiguration.let(CfnUserSettings.CookieSynchronizationConfigurationProperty.Companion::unwrap))
    }

    /**
     * @param cookieSynchronizationConfiguration The configuration that specifies which cookies
     * should be synchronized from the end user's local browser to the remote browser.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("41653d4c76ea2e84cd0be422d9ab64d0907e443e697e821cf8b130c9769c0ca9")
    override
        fun cookieSynchronizationConfiguration(cookieSynchronizationConfiguration: CfnUserSettings.CookieSynchronizationConfigurationProperty.Builder.() -> Unit):
        Unit =
        cookieSynchronizationConfiguration(CfnUserSettings.CookieSynchronizationConfigurationProperty(cookieSynchronizationConfiguration))

    /**
     * @param copyAllowed Specifies whether the user can copy text from the streaming session to the
     * local device. 
     */
    override fun copyAllowed(copyAllowed: String) {
      cdkBuilder.copyAllowed(copyAllowed)
    }

    /**
     * @param customerManagedKey The customer managed key used to encrypt sensitive information in
     * the user settings.
     */
    override fun customerManagedKey(customerManagedKey: String) {
      cdkBuilder.customerManagedKey(customerManagedKey)
    }

    /**
     * @param deepLinkAllowed Specifies whether the user can use deep links that open automatically
     * when connecting to a session.
     */
    override fun deepLinkAllowed(deepLinkAllowed: String) {
      cdkBuilder.deepLinkAllowed(deepLinkAllowed)
    }

    /**
     * @param disconnectTimeoutInMinutes The amount of time that a streaming session remains active
     * after users disconnect.
     */
    override fun disconnectTimeoutInMinutes(disconnectTimeoutInMinutes: Number) {
      cdkBuilder.disconnectTimeoutInMinutes(disconnectTimeoutInMinutes)
    }

    /**
     * @param downloadAllowed Specifies whether the user can download files from the streaming
     * session to the local device. 
     */
    override fun downloadAllowed(downloadAllowed: String) {
      cdkBuilder.downloadAllowed(downloadAllowed)
    }

    /**
     * @param idleDisconnectTimeoutInMinutes The amount of time that users can be idle (inactive)
     * before they are disconnected from their streaming session and the disconnect timeout interval
     * begins.
     */
    override fun idleDisconnectTimeoutInMinutes(idleDisconnectTimeoutInMinutes: Number) {
      cdkBuilder.idleDisconnectTimeoutInMinutes(idleDisconnectTimeoutInMinutes)
    }

    /**
     * @param pasteAllowed Specifies whether the user can paste text from the local device to the
     * streaming session. 
     */
    override fun pasteAllowed(pasteAllowed: String) {
      cdkBuilder.pasteAllowed(pasteAllowed)
    }

    /**
     * @param printAllowed Specifies whether the user can print to the local device. 
     */
    override fun printAllowed(printAllowed: String) {
      cdkBuilder.printAllowed(printAllowed)
    }

    /**
     * @param tags The tags to add to the user settings resource.
     * A tag is a key-value pair.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags The tags to add to the user settings resource.
     * A tag is a key-value pair.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    /**
     * @param uploadAllowed Specifies whether the user can upload files from the local device to the
     * streaming session. 
     */
    override fun uploadAllowed(uploadAllowed: String) {
      cdkBuilder.uploadAllowed(uploadAllowed)
    }

    public fun build(): software.amazon.awscdk.services.workspacesweb.CfnUserSettingsProps =
        cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.workspacesweb.CfnUserSettingsProps,
  ) : CdkObject(cdkObject),
      CfnUserSettingsProps {
    /**
     * The additional encryption context of the user settings.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-additionalencryptioncontext)
     */
    override fun additionalEncryptionContext(): Any? = unwrap(this).getAdditionalEncryptionContext()

    /**
     * The configuration that specifies which cookies should be synchronized from the end user's
     * local browser to the remote browser.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-cookiesynchronizationconfiguration)
     */
    override fun cookieSynchronizationConfiguration(): Any? =
        unwrap(this).getCookieSynchronizationConfiguration()

    /**
     * Specifies whether the user can copy text from the streaming session to the local device.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-copyallowed)
     */
    override fun copyAllowed(): String = unwrap(this).getCopyAllowed()

    /**
     * The customer managed key used to encrypt sensitive information in the user settings.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-customermanagedkey)
     */
    override fun customerManagedKey(): String? = unwrap(this).getCustomerManagedKey()

    /**
     * Specifies whether the user can use deep links that open automatically when connecting to a
     * session.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-deeplinkallowed)
     */
    override fun deepLinkAllowed(): String? = unwrap(this).getDeepLinkAllowed()

    /**
     * The amount of time that a streaming session remains active after users disconnect.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-disconnecttimeoutinminutes)
     */
    override fun disconnectTimeoutInMinutes(): Number? =
        unwrap(this).getDisconnectTimeoutInMinutes()

    /**
     * Specifies whether the user can download files from the streaming session to the local device.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-downloadallowed)
     */
    override fun downloadAllowed(): String = unwrap(this).getDownloadAllowed()

    /**
     * The amount of time that users can be idle (inactive) before they are disconnected from their
     * streaming session and the disconnect timeout interval begins.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-idledisconnecttimeoutinminutes)
     */
    override fun idleDisconnectTimeoutInMinutes(): Number? =
        unwrap(this).getIdleDisconnectTimeoutInMinutes()

    /**
     * Specifies whether the user can paste text from the local device to the streaming session.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-pasteallowed)
     */
    override fun pasteAllowed(): String = unwrap(this).getPasteAllowed()

    /**
     * Specifies whether the user can print to the local device.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-printallowed)
     */
    override fun printAllowed(): String = unwrap(this).getPrintAllowed()

    /**
     * The tags to add to the user settings resource.
     *
     * A tag is a key-value pair.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * Specifies whether the user can upload files from the local device to the streaming session.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-workspacesweb-usersettings.html#cfn-workspacesweb-usersettings-uploadallowed)
     */
    override fun uploadAllowed(): String = unwrap(this).getUploadAllowed()
  }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy