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

io.cloudshiftdev.awscdk.services.medialive.CfnInputProps.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("RedundantVisibilityModifier","RedundantUnitReturnType","RemoveRedundantQualifierName","unused","UnusedImport","ClassName","REDUNDANT_PROJECTION","DEPRECATION")

package io.cloudshiftdev.awscdk.services.medialive

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 `CfnInput`.
 *
 * 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.medialive.*;
 * Object tags;
 * CfnInputProps cfnInputProps = CfnInputProps.builder()
 * .destinations(List.of(InputDestinationRequestProperty.builder()
 * .streamName("streamName")
 * .build()))
 * .inputDevices(List.of(InputDeviceSettingsProperty.builder()
 * .id("id")
 * .build()))
 * .inputSecurityGroups(List.of("inputSecurityGroups"))
 * .mediaConnectFlows(List.of(MediaConnectFlowRequestProperty.builder()
 * .flowArn("flowArn")
 * .build()))
 * .name("name")
 * .roleArn("roleArn")
 * .sources(List.of(InputSourceRequestProperty.builder()
 * .passwordParam("passwordParam")
 * .url("url")
 * .username("username")
 * .build()))
 * .srtSettings(SrtSettingsRequestProperty.builder()
 * .srtCallerSources(List.of(SrtCallerSourceRequestProperty.builder()
 * .decryption(SrtCallerDecryptionRequestProperty.builder()
 * .algorithm("algorithm")
 * .passphraseSecretArn("passphraseSecretArn")
 * .build())
 * .minimumLatency(123)
 * .srtListenerAddress("srtListenerAddress")
 * .srtListenerPort("srtListenerPort")
 * .streamId("streamId")
 * .build()))
 * .build())
 * .tags(tags)
 * .type("type")
 * .vpc(InputVpcRequestProperty.builder()
 * .securityGroupIds(List.of("securityGroupIds"))
 * .subnetIds(List.of("subnetIds"))
 * .build())
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html)
 */
public interface CfnInputProps {
  /**
   * Settings that apply only if the input is a push type of input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-destinations)
   */
  public fun destinations(): Any? = unwrap(this).getDestinations()

  /**
   * Settings that apply only if the input is an Elemental Link input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputdevices)
   */
  public fun inputDevices(): Any? = unwrap(this).getInputDevices()

  /**
   * The list of input security groups (referenced by IDs) to attach to the input if the input is a
   * push type.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputsecuritygroups)
   */
  public fun inputSecurityGroups(): List = unwrap(this).getInputSecurityGroups() ?:
      emptyList()

  /**
   * Settings that apply only if the input is a MediaConnect input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-mediaconnectflows)
   */
  public fun mediaConnectFlows(): Any? = unwrap(this).getMediaConnectFlows()

  /**
   * A name for the input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-name)
   */
  public fun name(): String? = unwrap(this).getName()

  /**
   * The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input.
   *
   * This doesn't apply to other types of inputs. The role is identified by its ARN.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-rolearn)
   */
  public fun roleArn(): String? = unwrap(this).getRoleArn()

  /**
   * Settings that apply only if the input is a pull type of input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-sources)
   */
  public fun sources(): Any? = unwrap(this).getSources()

  /**
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-srtsettings)
   */
  public fun srtSettings(): Any? = unwrap(this).getSrtSettings()

  /**
   * A collection of tags for this input.
   *
   * Each tag is a key-value pair.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-tags)
   */
  public fun tags(): Any? = unwrap(this).getTags()

  /**
   * The type for this input.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-type)
   */
  public fun type(): String? = unwrap(this).getType()

  /**
   * Settings that apply only if the input is an push input where the source is on Amazon VPC.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-vpc)
   */
  public fun vpc(): Any? = unwrap(this).getVpc()

  /**
   * A builder for [CfnInputProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    public fun destinations(destinations: IResolvable)

    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    public fun destinations(destinations: List)

    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    public fun destinations(vararg destinations: Any)

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    public fun inputDevices(inputDevices: IResolvable)

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    public fun inputDevices(inputDevices: List)

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    public fun inputDevices(vararg inputDevices: Any)

    /**
     * @param inputSecurityGroups The list of input security groups (referenced by IDs) to attach to
     * the input if the input is a push type.
     */
    public fun inputSecurityGroups(inputSecurityGroups: List)

    /**
     * @param inputSecurityGroups The list of input security groups (referenced by IDs) to attach to
     * the input if the input is a push type.
     */
    public fun inputSecurityGroups(vararg inputSecurityGroups: String)

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    public fun mediaConnectFlows(mediaConnectFlows: IResolvable)

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    public fun mediaConnectFlows(mediaConnectFlows: List)

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    public fun mediaConnectFlows(vararg mediaConnectFlows: Any)

    /**
     * @param name A name for the input.
     */
    public fun name(name: String)

    /**
     * @param roleArn The IAM role for MediaLive to assume when creating a MediaConnect input or
     * Amazon VPC input.
     * This doesn't apply to other types of inputs. The role is identified by its ARN.
     */
    public fun roleArn(roleArn: String)

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    public fun sources(sources: IResolvable)

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    public fun sources(sources: List)

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    public fun sources(vararg sources: Any)

    /**
     * @param srtSettings the value to be set.
     */
    public fun srtSettings(srtSettings: IResolvable)

    /**
     * @param srtSettings the value to be set.
     */
    public fun srtSettings(srtSettings: CfnInput.SrtSettingsRequestProperty)

    /**
     * @param srtSettings the value to be set.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("2c2bf0d8c2fca216bb26ae39974a46c2a59b3ab1d7abefe44ae336f2c1058e3a")
    public fun srtSettings(srtSettings: CfnInput.SrtSettingsRequestProperty.Builder.() -> Unit)

    /**
     * @param tags A collection of tags for this input.
     * Each tag is a key-value pair.
     */
    public fun tags(tags: Any)

    /**
     * @param type The type for this input.
     */
    public fun type(type: String)

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    public fun vpc(vpc: IResolvable)

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    public fun vpc(vpc: CfnInput.InputVpcRequestProperty)

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("eae357f6c95dedd1105307d2774e33375fd49905396a1804bb5edf7e6aa368c7")
    public fun vpc(vpc: CfnInput.InputVpcRequestProperty.Builder.() -> Unit)
  }

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

    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    override fun destinations(destinations: IResolvable) {
      cdkBuilder.destinations(destinations.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    override fun destinations(destinations: List) {
      cdkBuilder.destinations(destinations.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param destinations Settings that apply only if the input is a push type of input.
     */
    override fun destinations(vararg destinations: Any): Unit = destinations(destinations.toList())

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    override fun inputDevices(inputDevices: IResolvable) {
      cdkBuilder.inputDevices(inputDevices.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    override fun inputDevices(inputDevices: List) {
      cdkBuilder.inputDevices(inputDevices.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param inputDevices Settings that apply only if the input is an Elemental Link input.
     */
    override fun inputDevices(vararg inputDevices: Any): Unit = inputDevices(inputDevices.toList())

    /**
     * @param inputSecurityGroups The list of input security groups (referenced by IDs) to attach to
     * the input if the input is a push type.
     */
    override fun inputSecurityGroups(inputSecurityGroups: List) {
      cdkBuilder.inputSecurityGroups(inputSecurityGroups)
    }

    /**
     * @param inputSecurityGroups The list of input security groups (referenced by IDs) to attach to
     * the input if the input is a push type.
     */
    override fun inputSecurityGroups(vararg inputSecurityGroups: String): Unit =
        inputSecurityGroups(inputSecurityGroups.toList())

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    override fun mediaConnectFlows(mediaConnectFlows: IResolvable) {
      cdkBuilder.mediaConnectFlows(mediaConnectFlows.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    override fun mediaConnectFlows(mediaConnectFlows: List) {
      cdkBuilder.mediaConnectFlows(mediaConnectFlows.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param mediaConnectFlows Settings that apply only if the input is a MediaConnect input.
     */
    override fun mediaConnectFlows(vararg mediaConnectFlows: Any): Unit =
        mediaConnectFlows(mediaConnectFlows.toList())

    /**
     * @param name A name for the input.
     */
    override fun name(name: String) {
      cdkBuilder.name(name)
    }

    /**
     * @param roleArn The IAM role for MediaLive to assume when creating a MediaConnect input or
     * Amazon VPC input.
     * This doesn't apply to other types of inputs. The role is identified by its ARN.
     */
    override fun roleArn(roleArn: String) {
      cdkBuilder.roleArn(roleArn)
    }

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    override fun sources(sources: IResolvable) {
      cdkBuilder.sources(sources.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    override fun sources(sources: List) {
      cdkBuilder.sources(sources.map{CdkObjectWrappers.unwrap(it)})
    }

    /**
     * @param sources Settings that apply only if the input is a pull type of input.
     */
    override fun sources(vararg sources: Any): Unit = sources(sources.toList())

    /**
     * @param srtSettings the value to be set.
     */
    override fun srtSettings(srtSettings: IResolvable) {
      cdkBuilder.srtSettings(srtSettings.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param srtSettings the value to be set.
     */
    override fun srtSettings(srtSettings: CfnInput.SrtSettingsRequestProperty) {
      cdkBuilder.srtSettings(srtSettings.let(CfnInput.SrtSettingsRequestProperty.Companion::unwrap))
    }

    /**
     * @param srtSettings the value to be set.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("2c2bf0d8c2fca216bb26ae39974a46c2a59b3ab1d7abefe44ae336f2c1058e3a")
    override fun srtSettings(srtSettings: CfnInput.SrtSettingsRequestProperty.Builder.() -> Unit):
        Unit = srtSettings(CfnInput.SrtSettingsRequestProperty(srtSettings))

    /**
     * @param tags A collection of tags for this input.
     * Each tag is a key-value pair.
     */
    override fun tags(tags: Any) {
      cdkBuilder.tags(tags)
    }

    /**
     * @param type The type for this input.
     */
    override fun type(type: String) {
      cdkBuilder.type(type)
    }

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    override fun vpc(vpc: IResolvable) {
      cdkBuilder.vpc(vpc.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    override fun vpc(vpc: CfnInput.InputVpcRequestProperty) {
      cdkBuilder.vpc(vpc.let(CfnInput.InputVpcRequestProperty.Companion::unwrap))
    }

    /**
     * @param vpc Settings that apply only if the input is an push input where the source is on
     * Amazon VPC.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("eae357f6c95dedd1105307d2774e33375fd49905396a1804bb5edf7e6aa368c7")
    override fun vpc(vpc: CfnInput.InputVpcRequestProperty.Builder.() -> Unit): Unit =
        vpc(CfnInput.InputVpcRequestProperty(vpc))

    public fun build(): software.amazon.awscdk.services.medialive.CfnInputProps = cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.medialive.CfnInputProps,
  ) : CdkObject(cdkObject),
      CfnInputProps {
    /**
     * Settings that apply only if the input is a push type of input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-destinations)
     */
    override fun destinations(): Any? = unwrap(this).getDestinations()

    /**
     * Settings that apply only if the input is an Elemental Link input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputdevices)
     */
    override fun inputDevices(): Any? = unwrap(this).getInputDevices()

    /**
     * The list of input security groups (referenced by IDs) to attach to the input if the input is
     * a push type.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-inputsecuritygroups)
     */
    override fun inputSecurityGroups(): List = unwrap(this).getInputSecurityGroups() ?:
        emptyList()

    /**
     * Settings that apply only if the input is a MediaConnect input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-mediaconnectflows)
     */
    override fun mediaConnectFlows(): Any? = unwrap(this).getMediaConnectFlows()

    /**
     * A name for the input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-name)
     */
    override fun name(): String? = unwrap(this).getName()

    /**
     * The IAM role for MediaLive to assume when creating a MediaConnect input or Amazon VPC input.
     *
     * This doesn't apply to other types of inputs. The role is identified by its ARN.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-rolearn)
     */
    override fun roleArn(): String? = unwrap(this).getRoleArn()

    /**
     * Settings that apply only if the input is a pull type of input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-sources)
     */
    override fun sources(): Any? = unwrap(this).getSources()

    /**
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-srtsettings)
     */
    override fun srtSettings(): Any? = unwrap(this).getSrtSettings()

    /**
     * A collection of tags for this input.
     *
     * Each tag is a key-value pair.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-tags)
     */
    override fun tags(): Any? = unwrap(this).getTags()

    /**
     * The type for this input.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-type)
     */
    override fun type(): String? = unwrap(this).getType()

    /**
     * Settings that apply only if the input is an push input where the source is on Amazon VPC.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-medialive-input.html#cfn-medialive-input-vpc)
     */
    override fun vpc(): Any? = unwrap(this).getVpc()
  }

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy