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

io.cloudshiftdev.awscdk.services.osis.CfnPipelineProps.kt Maven / Gradle / Ivy

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

package io.cloudshiftdev.awscdk.services.osis

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.jvm.JvmName

/**
 * Properties for defining a `CfnPipeline`.
 *
 * 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.osis.*;
 * CfnPipelineProps cfnPipelineProps = CfnPipelineProps.builder()
 * .maxUnits(123)
 * .minUnits(123)
 * .pipelineConfigurationBody("pipelineConfigurationBody")
 * .pipelineName("pipelineName")
 * // the properties below are optional
 * .bufferOptions(BufferOptionsProperty.builder()
 * .persistentBufferEnabled(false)
 * .build())
 * .encryptionAtRestOptions(EncryptionAtRestOptionsProperty.builder()
 * .kmsKeyArn("kmsKeyArn")
 * .build())
 * .logPublishingOptions(LogPublishingOptionsProperty.builder()
 * .cloudWatchLogDestination(CloudWatchLogDestinationProperty.builder()
 * .logGroup("logGroup")
 * .build())
 * .isLoggingEnabled(false)
 * .build())
 * .tags(List.of(CfnTag.builder()
 * .key("key")
 * .value("value")
 * .build()))
 * .vpcOptions(VpcOptionsProperty.builder()
 * .subnetIds(List.of("subnetIds"))
 * // the properties below are optional
 * .securityGroupIds(List.of("securityGroupIds"))
 * .vpcAttachmentOptions(VpcAttachmentOptionsProperty.builder()
 * .attachToVpc(false)
 * .cidrBlock("cidrBlock")
 * .build())
 * .vpcEndpointManagement("vpcEndpointManagement")
 * .build())
 * .build();
 * ```
 *
 * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html)
 */
public interface CfnPipelineProps {
  /**
   * Options that specify the configuration of a persistent buffer.
   *
   * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
   * For more information, see [Persistent
   * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
   * .
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-bufferoptions)
   */
  public fun bufferOptions(): Any? = unwrap(this).getBufferOptions()

  /**
   * Options to control how OpenSearch encrypts buffer data.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-encryptionatrestoptions)
   */
  public fun encryptionAtRestOptions(): Any? = unwrap(this).getEncryptionAtRestOptions()

  /**
   * Key-value pairs that represent log publishing settings.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-logpublishingoptions)
   */
  public fun logPublishingOptions(): Any? = unwrap(this).getLogPublishingOptions()

  /**
   * The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-maxunits)
   */
  public fun maxUnits(): Number

  /**
   * The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-minunits)
   */
  public fun minUnits(): Number

  /**
   * The Data Prepper pipeline configuration in YAML format.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelineconfigurationbody)
   */
  public fun pipelineConfigurationBody(): String

  /**
   * The name of the pipeline.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelinename)
   */
  public fun pipelineName(): String

  /**
   * List of tags to add to the pipeline upon creation.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-tags)
   */
  public fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

  /**
   * Options that specify the subnets and security groups for an OpenSearch Ingestion VPC endpoint.
   *
   * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-vpcoptions)
   */
  public fun vpcOptions(): Any? = unwrap(this).getVpcOptions()

  /**
   * A builder for [CfnPipelineProps]
   */
  @CdkDslMarker
  public interface Builder {
    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    public fun bufferOptions(bufferOptions: IResolvable)

    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    public fun bufferOptions(bufferOptions: CfnPipeline.BufferOptionsProperty)

    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("9d0de03db58e944840acf56075fb0773f9a2fdac31c30644359a057675c2ce6a")
    public fun bufferOptions(bufferOptions: CfnPipeline.BufferOptionsProperty.Builder.() -> Unit)

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    public fun encryptionAtRestOptions(encryptionAtRestOptions: IResolvable)

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    public
        fun encryptionAtRestOptions(encryptionAtRestOptions: CfnPipeline.EncryptionAtRestOptionsProperty)

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("32ce6e1481f6149d47367b7798633f7b4788e228f5426242098072216524bf18")
    public
        fun encryptionAtRestOptions(encryptionAtRestOptions: CfnPipeline.EncryptionAtRestOptionsProperty.Builder.() -> Unit)

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    public fun logPublishingOptions(logPublishingOptions: IResolvable)

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    public fun logPublishingOptions(logPublishingOptions: CfnPipeline.LogPublishingOptionsProperty)

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("fa9dc3615523662a1844974ce19047e63b9254ba594714dd88be3d14ab667364")
    public
        fun logPublishingOptions(logPublishingOptions: CfnPipeline.LogPublishingOptionsProperty.Builder.() -> Unit)

    /**
     * @param maxUnits The maximum pipeline capacity, in Ingestion Compute Units (ICUs). 
     */
    public fun maxUnits(maxUnits: Number)

    /**
     * @param minUnits The minimum pipeline capacity, in Ingestion Compute Units (ICUs). 
     */
    public fun minUnits(minUnits: Number)

    /**
     * @param pipelineConfigurationBody The Data Prepper pipeline configuration in YAML format. 
     */
    public fun pipelineConfigurationBody(pipelineConfigurationBody: String)

    /**
     * @param pipelineName The name of the pipeline. 
     */
    public fun pipelineName(pipelineName: String)

    /**
     * @param tags List of tags to add to the pipeline upon creation.
     */
    public fun tags(tags: List)

    /**
     * @param tags List of tags to add to the pipeline upon creation.
     */
    public fun tags(vararg tags: CfnTag)

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    public fun vpcOptions(vpcOptions: IResolvable)

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    public fun vpcOptions(vpcOptions: CfnPipeline.VpcOptionsProperty)

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("284a05bce2e7d218f7ae32de2ef72aaf0dc3a594e59cdbdbd810d3df701f1ffc")
    public fun vpcOptions(vpcOptions: CfnPipeline.VpcOptionsProperty.Builder.() -> Unit)
  }

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

    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    override fun bufferOptions(bufferOptions: IResolvable) {
      cdkBuilder.bufferOptions(bufferOptions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    override fun bufferOptions(bufferOptions: CfnPipeline.BufferOptionsProperty) {
      cdkBuilder.bufferOptions(bufferOptions.let(CfnPipeline.BufferOptionsProperty.Companion::unwrap))
    }

    /**
     * @param bufferOptions Options that specify the configuration of a persistent buffer.
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("9d0de03db58e944840acf56075fb0773f9a2fdac31c30644359a057675c2ce6a")
    override fun bufferOptions(bufferOptions: CfnPipeline.BufferOptionsProperty.Builder.() -> Unit):
        Unit = bufferOptions(CfnPipeline.BufferOptionsProperty(bufferOptions))

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    override fun encryptionAtRestOptions(encryptionAtRestOptions: IResolvable) {
      cdkBuilder.encryptionAtRestOptions(encryptionAtRestOptions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    override
        fun encryptionAtRestOptions(encryptionAtRestOptions: CfnPipeline.EncryptionAtRestOptionsProperty) {
      cdkBuilder.encryptionAtRestOptions(encryptionAtRestOptions.let(CfnPipeline.EncryptionAtRestOptionsProperty.Companion::unwrap))
    }

    /**
     * @param encryptionAtRestOptions Options to control how OpenSearch encrypts buffer data.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("32ce6e1481f6149d47367b7798633f7b4788e228f5426242098072216524bf18")
    override
        fun encryptionAtRestOptions(encryptionAtRestOptions: CfnPipeline.EncryptionAtRestOptionsProperty.Builder.() -> Unit):
        Unit =
        encryptionAtRestOptions(CfnPipeline.EncryptionAtRestOptionsProperty(encryptionAtRestOptions))

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    override fun logPublishingOptions(logPublishingOptions: IResolvable) {
      cdkBuilder.logPublishingOptions(logPublishingOptions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    override
        fun logPublishingOptions(logPublishingOptions: CfnPipeline.LogPublishingOptionsProperty) {
      cdkBuilder.logPublishingOptions(logPublishingOptions.let(CfnPipeline.LogPublishingOptionsProperty.Companion::unwrap))
    }

    /**
     * @param logPublishingOptions Key-value pairs that represent log publishing settings.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("fa9dc3615523662a1844974ce19047e63b9254ba594714dd88be3d14ab667364")
    override
        fun logPublishingOptions(logPublishingOptions: CfnPipeline.LogPublishingOptionsProperty.Builder.() -> Unit):
        Unit = logPublishingOptions(CfnPipeline.LogPublishingOptionsProperty(logPublishingOptions))

    /**
     * @param maxUnits The maximum pipeline capacity, in Ingestion Compute Units (ICUs). 
     */
    override fun maxUnits(maxUnits: Number) {
      cdkBuilder.maxUnits(maxUnits)
    }

    /**
     * @param minUnits The minimum pipeline capacity, in Ingestion Compute Units (ICUs). 
     */
    override fun minUnits(minUnits: Number) {
      cdkBuilder.minUnits(minUnits)
    }

    /**
     * @param pipelineConfigurationBody The Data Prepper pipeline configuration in YAML format. 
     */
    override fun pipelineConfigurationBody(pipelineConfigurationBody: String) {
      cdkBuilder.pipelineConfigurationBody(pipelineConfigurationBody)
    }

    /**
     * @param pipelineName The name of the pipeline. 
     */
    override fun pipelineName(pipelineName: String) {
      cdkBuilder.pipelineName(pipelineName)
    }

    /**
     * @param tags List of tags to add to the pipeline upon creation.
     */
    override fun tags(tags: List) {
      cdkBuilder.tags(tags.map(CfnTag.Companion::unwrap))
    }

    /**
     * @param tags List of tags to add to the pipeline upon creation.
     */
    override fun tags(vararg tags: CfnTag): Unit = tags(tags.toList())

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    override fun vpcOptions(vpcOptions: IResolvable) {
      cdkBuilder.vpcOptions(vpcOptions.let(IResolvable.Companion::unwrap))
    }

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    override fun vpcOptions(vpcOptions: CfnPipeline.VpcOptionsProperty) {
      cdkBuilder.vpcOptions(vpcOptions.let(CfnPipeline.VpcOptionsProperty.Companion::unwrap))
    }

    /**
     * @param vpcOptions Options that specify the subnets and security groups for an OpenSearch
     * Ingestion VPC endpoint.
     */
    @kotlin.Suppress("INAPPLICABLE_JVM_NAME")
    @JvmName("284a05bce2e7d218f7ae32de2ef72aaf0dc3a594e59cdbdbd810d3df701f1ffc")
    override fun vpcOptions(vpcOptions: CfnPipeline.VpcOptionsProperty.Builder.() -> Unit): Unit =
        vpcOptions(CfnPipeline.VpcOptionsProperty(vpcOptions))

    public fun build(): software.amazon.awscdk.services.osis.CfnPipelineProps = cdkBuilder.build()
  }

  private class Wrapper(
    cdkObject: software.amazon.awscdk.services.osis.CfnPipelineProps,
  ) : CdkObject(cdkObject),
      CfnPipelineProps {
    /**
     * Options that specify the configuration of a persistent buffer.
     *
     * To configure how OpenSearch Ingestion encrypts this data, set the `EncryptionAtRestOptions` .
     * For more information, see [Persistent
     * buffering](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/osis-features-overview.html#persistent-buffering)
     * .
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-bufferoptions)
     */
    override fun bufferOptions(): Any? = unwrap(this).getBufferOptions()

    /**
     * Options to control how OpenSearch encrypts buffer data.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-encryptionatrestoptions)
     */
    override fun encryptionAtRestOptions(): Any? = unwrap(this).getEncryptionAtRestOptions()

    /**
     * Key-value pairs that represent log publishing settings.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-logpublishingoptions)
     */
    override fun logPublishingOptions(): Any? = unwrap(this).getLogPublishingOptions()

    /**
     * The maximum pipeline capacity, in Ingestion Compute Units (ICUs).
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-maxunits)
     */
    override fun maxUnits(): Number = unwrap(this).getMaxUnits()

    /**
     * The minimum pipeline capacity, in Ingestion Compute Units (ICUs).
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-minunits)
     */
    override fun minUnits(): Number = unwrap(this).getMinUnits()

    /**
     * The Data Prepper pipeline configuration in YAML format.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelineconfigurationbody)
     */
    override fun pipelineConfigurationBody(): String = unwrap(this).getPipelineConfigurationBody()

    /**
     * The name of the pipeline.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-pipelinename)
     */
    override fun pipelineName(): String = unwrap(this).getPipelineName()

    /**
     * List of tags to add to the pipeline upon creation.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-tags)
     */
    override fun tags(): List = unwrap(this).getTags()?.map(CfnTag::wrap) ?: emptyList()

    /**
     * Options that specify the subnets and security groups for an OpenSearch Ingestion VPC
     * endpoint.
     *
     * [Documentation](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-osis-pipeline.html#cfn-osis-pipeline-vpcoptions)
     */
    override fun vpcOptions(): Any? = unwrap(this).getVpcOptions()
  }

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

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy