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

com.pulumi.awsnative.sagemaker.kotlin.FeatureGroupArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.sagemaker.kotlin

import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgs
import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgsBuilder
import com.pulumi.awsnative.sagemaker.FeatureGroupArgs.builder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.FeatureGroupFeatureDefinitionArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.FeatureGroupFeatureDefinitionArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.FeatureGroupThroughputConfigArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.FeatureGroupThroughputConfigArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.OfflineStoreConfigPropertiesArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.OfflineStoreConfigPropertiesArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.OnlineStoreConfigPropertiesArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.OnlineStoreConfigPropertiesArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::SageMaker::FeatureGroup
 * @property description Description about the FeatureGroup.
 * @property eventTimeFeatureName The Event Time Feature Name.
 * @property featureDefinitions An Array of Feature Definition
 * @property featureGroupName The Name of the FeatureGroup.
 * @property offlineStoreConfig The configuration of an `OfflineStore` .
 * @property onlineStoreConfig The configuration of an `OnlineStore` .
 * @property recordIdentifierFeatureName The Record Identifier Feature Name.
 * @property roleArn Role Arn
 * @property tags An array of key-value pair to apply to this resource.
 * @property throughputConfig Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED` . With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.
 * Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [`Standard`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store.
 */
public data class FeatureGroupArgs(
    public val description: Output? = null,
    public val eventTimeFeatureName: Output? = null,
    public val featureDefinitions: Output>? = null,
    public val featureGroupName: Output? = null,
    public val offlineStoreConfig: Output? = null,
    public val onlineStoreConfig: Output? = null,
    public val recordIdentifierFeatureName: Output? = null,
    public val roleArn: Output? = null,
    public val tags: Output>? = null,
    public val throughputConfig: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.sagemaker.FeatureGroupArgs =
        com.pulumi.awsnative.sagemaker.FeatureGroupArgs.builder()
            .description(description?.applyValue({ args0 -> args0 }))
            .eventTimeFeatureName(eventTimeFeatureName?.applyValue({ args0 -> args0 }))
            .featureDefinitions(
                featureDefinitions?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .featureGroupName(featureGroupName?.applyValue({ args0 -> args0 }))
            .offlineStoreConfig(
                offlineStoreConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .onlineStoreConfig(onlineStoreConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .recordIdentifierFeatureName(recordIdentifierFeatureName?.applyValue({ args0 -> args0 }))
            .roleArn(roleArn?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .throughputConfig(
                throughputConfig?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [FeatureGroupArgs].
 */
@PulumiTagMarker
public class FeatureGroupArgsBuilder internal constructor() {
    private var description: Output? = null

    private var eventTimeFeatureName: Output? = null

    private var featureDefinitions: Output>? = null

    private var featureGroupName: Output? = null

    private var offlineStoreConfig: Output? = null

    private var onlineStoreConfig: Output? = null

    private var recordIdentifierFeatureName: Output? = null

    private var roleArn: Output? = null

    private var tags: Output>? = null

    private var throughputConfig: Output? = null

    /**
     * @param value Description about the FeatureGroup.
     */
    @JvmName("vqxeolqwwqbivnuf")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The Event Time Feature Name.
     */
    @JvmName("eoldcvfvooqxxsmh")
    public suspend fun eventTimeFeatureName(`value`: Output) {
        this.eventTimeFeatureName = value
    }

    /**
     * @param value An Array of Feature Definition
     */
    @JvmName("htlxlayhfhhoyera")
    public suspend fun featureDefinitions(`value`: Output>) {
        this.featureDefinitions = value
    }

    @JvmName("gljmixhsxildqnra")
    public suspend fun featureDefinitions(vararg values: Output) {
        this.featureDefinitions = Output.all(values.asList())
    }

    /**
     * @param values An Array of Feature Definition
     */
    @JvmName("ikqojgonsdfmilpt")
    public suspend fun featureDefinitions(values: List>) {
        this.featureDefinitions = Output.all(values)
    }

    /**
     * @param value The Name of the FeatureGroup.
     */
    @JvmName("spbbnkfjxllcoisb")
    public suspend fun featureGroupName(`value`: Output) {
        this.featureGroupName = value
    }

    /**
     * @param value The configuration of an `OfflineStore` .
     */
    @JvmName("mgiwaruntjwsqidi")
    public suspend fun offlineStoreConfig(`value`: Output) {
        this.offlineStoreConfig = value
    }

    /**
     * @param value The configuration of an `OnlineStore` .
     */
    @JvmName("dxeeitqwcwswxdef")
    public suspend fun onlineStoreConfig(`value`: Output) {
        this.onlineStoreConfig = value
    }

    /**
     * @param value The Record Identifier Feature Name.
     */
    @JvmName("flcvdpwnwhyfqilq")
    public suspend fun recordIdentifierFeatureName(`value`: Output) {
        this.recordIdentifierFeatureName = value
    }

    /**
     * @param value Role Arn
     */
    @JvmName("dicwqydhnitkxijx")
    public suspend fun roleArn(`value`: Output) {
        this.roleArn = value
    }

    /**
     * @param value An array of key-value pair to apply to this resource.
     */
    @JvmName("ltrgcfbxgbfqhtuo")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("ilopfxtoxlfdeghv")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values An array of key-value pair to apply to this resource.
     */
    @JvmName("orfwsbiluljvterh")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED` . With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.
     * Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [`Standard`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store.
     */
    @JvmName("qjrwtbjugslbavgd")
    public suspend fun throughputConfig(`value`: Output) {
        this.throughputConfig = value
    }

    /**
     * @param value Description about the FeatureGroup.
     */
    @JvmName("fuswkivswgxgheac")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The Event Time Feature Name.
     */
    @JvmName("ixpvrdryxbihaeqq")
    public suspend fun eventTimeFeatureName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventTimeFeatureName = mapped
    }

    /**
     * @param value An Array of Feature Definition
     */
    @JvmName("hmwqvmqctqfabtgx")
    public suspend fun featureDefinitions(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.featureDefinitions = mapped
    }

    /**
     * @param argument An Array of Feature Definition
     */
    @JvmName("vhklplghrvpyrpat")
    public suspend fun featureDefinitions(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            FeatureGroupFeatureDefinitionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.featureDefinitions = mapped
    }

    /**
     * @param argument An Array of Feature Definition
     */
    @JvmName("ghjhtkhuqpqjkjgh")
    public suspend fun featureDefinitions(vararg argument: suspend FeatureGroupFeatureDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            FeatureGroupFeatureDefinitionArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.featureDefinitions = mapped
    }

    /**
     * @param argument An Array of Feature Definition
     */
    @JvmName("okhjdtwjugqevlqs")
    public suspend fun featureDefinitions(argument: suspend FeatureGroupFeatureDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            FeatureGroupFeatureDefinitionArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.featureDefinitions = mapped
    }

    /**
     * @param values An Array of Feature Definition
     */
    @JvmName("qatdcqldpxhnwgxa")
    public suspend fun featureDefinitions(vararg values: FeatureGroupFeatureDefinitionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.featureDefinitions = mapped
    }

    /**
     * @param value The Name of the FeatureGroup.
     */
    @JvmName("fugtqknvjuohgbsc")
    public suspend fun featureGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.featureGroupName = mapped
    }

    /**
     * @param value The configuration of an `OfflineStore` .
     */
    @JvmName("fhdjenuifmssivjl")
    public suspend fun offlineStoreConfig(`value`: OfflineStoreConfigPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.offlineStoreConfig = mapped
    }

    /**
     * @param argument The configuration of an `OfflineStore` .
     */
    @JvmName("mkdyupdojtrhtirx")
    public suspend fun offlineStoreConfig(argument: suspend OfflineStoreConfigPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = OfflineStoreConfigPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.offlineStoreConfig = mapped
    }

    /**
     * @param value The configuration of an `OnlineStore` .
     */
    @JvmName("wqwwfsbogtfmiylm")
    public suspend fun onlineStoreConfig(`value`: OnlineStoreConfigPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.onlineStoreConfig = mapped
    }

    /**
     * @param argument The configuration of an `OnlineStore` .
     */
    @JvmName("gluvwndnqelvjefe")
    public suspend fun onlineStoreConfig(argument: suspend OnlineStoreConfigPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = OnlineStoreConfigPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.onlineStoreConfig = mapped
    }

    /**
     * @param value The Record Identifier Feature Name.
     */
    @JvmName("msfcsalkbmbgcjgk")
    public suspend fun recordIdentifierFeatureName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.recordIdentifierFeatureName = mapped
    }

    /**
     * @param value Role Arn
     */
    @JvmName("vqtevotbakkiwebj")
    public suspend fun roleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.roleArn = mapped
    }

    /**
     * @param value An array of key-value pair to apply to this resource.
     */
    @JvmName("cupsakakumyyuodt")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pair to apply to this resource.
     */
    @JvmName("wsivhnjylbahytgf")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pair to apply to this resource.
     */
    @JvmName("bxequchkcbdynolf")
    public suspend fun tags(vararg argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An array of key-value pair to apply to this resource.
     */
    @JvmName("fordbgledcmnwocx")
    public suspend fun tags(argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(CreateOnlyTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An array of key-value pair to apply to this resource.
     */
    @JvmName("duunqqbnqkgpqvpk")
    public suspend fun tags(vararg values: CreateOnlyTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED` . With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.
     * Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [`Standard`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store.
     */
    @JvmName("huswcxvmntfmmikq")
    public suspend fun throughputConfig(`value`: FeatureGroupThroughputConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.throughputConfig = mapped
    }

    /**
     * @param argument Used to set feature group throughput configuration. There are two modes: `ON_DEMAND` and `PROVISIONED` . With on-demand mode, you are charged for data reads and writes that your application performs on your feature group. You do not need to specify read and write throughput because Feature Store accommodates your workloads as they ramp up and down. You can switch a feature group to on-demand only once in a 24 hour period. With provisioned throughput mode, you specify the read and write capacity per second that you expect your application to require, and you are billed based on those limits. Exceeding provisioned throughput will result in your requests being throttled.
     * Note: `PROVISIONED` throughput mode is supported only for feature groups that are offline-only, or use the [`Standard`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_OnlineStoreConfig.html#sagemaker-Type-OnlineStoreConfig-StorageType) tier online store.
     */
    @JvmName("wmhyfkmhmfeqcxbb")
    public suspend fun throughputConfig(argument: suspend FeatureGroupThroughputConfigArgsBuilder.() -> Unit) {
        val toBeMapped = FeatureGroupThroughputConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.throughputConfig = mapped
    }

    internal fun build(): FeatureGroupArgs = FeatureGroupArgs(
        description = description,
        eventTimeFeatureName = eventTimeFeatureName,
        featureDefinitions = featureDefinitions,
        featureGroupName = featureGroupName,
        offlineStoreConfig = offlineStoreConfig,
        onlineStoreConfig = onlineStoreConfig,
        recordIdentifierFeatureName = recordIdentifierFeatureName,
        roleArn = roleArn,
        tags = tags,
        throughputConfig = throughputConfig,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy