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

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

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.sagemaker.kotlin

import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.awsnative.sagemaker.ModelPackageArgs.builder
import com.pulumi.awsnative.sagemaker.kotlin.enums.ModelPackageModelApprovalStatus
import com.pulumi.awsnative.sagemaker.kotlin.enums.ModelPackageSkipModelValidation
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageAdditionalInferenceSpecificationDefinitionArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageCustomerMetadataPropertiesArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageCustomerMetadataPropertiesArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageDriftCheckBaselinesArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageDriftCheckBaselinesArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageInferenceSpecificationArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageInferenceSpecificationArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageMetadataPropertiesArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageMetadataPropertiesArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageModelCardArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageModelCardArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageModelMetricsArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageModelMetricsArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageSecurityConfigArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageSecurityConfigArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageSourceAlgorithmSpecificationArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageSourceAlgorithmSpecificationArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageStatusDetailsArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageStatusDetailsArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageValidationSpecificationArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.ModelPackageValidationSpecificationArgsBuilder
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.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Resource Type definition for AWS::SageMaker::ModelPackage
 * @property additionalInferenceSpecifications An array of additional Inference Specification objects.
 * @property additionalInferenceSpecificationsToAdd An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
 * @property approvalDescription A description provided when the model approval is set.
 * @property certifyForMarketplace Whether the model package is to be certified to be listed on AWS Marketplace. For information about listing model packages on AWS Marketplace, see [List Your Algorithm or Model Package on AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html) .
 * @property clientToken A unique token that guarantees that the call to this API is idempotent.
 * @property customerMetadataProperties The metadata properties for the model package.
 * @property domain The machine learning domain of your model package and its components. Common machine learning domains include computer vision and natural language processing.
 * @property driftCheckBaselines Represents the drift check baselines that can be used when the model monitor is set using the model package.
 * @property inferenceSpecification Defines how to perform inference generation after a training job is run.
 * @property lastModifiedTime The last time the model package was modified.
 * @property metadataProperties Metadata properties of the tracking entity, trial, or trial component.
 * @property modelApprovalStatus The approval status of the model. This can be one of the following values.
 * - `APPROVED` - The model is approved
 * - `REJECTED` - The model is rejected.
 * - `PENDING_MANUAL_APPROVAL` - The model is waiting for manual approval.
 * @property modelCard An Amazon SageMaker Model Card.
 * @property modelMetrics Metrics for the model.
 * @property modelPackageDescription The description of the model package.
 * @property modelPackageGroupName The model group to which the model belongs.
 * @property modelPackageName The name of the model.
 * @property modelPackageStatusDetails Specifies the validation and image scan statuses of the model package.
 * @property modelPackageVersion The version number of a versioned model.
 * @property samplePayloadUrl The Amazon Simple Storage Service path where the sample payload are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).
 * @property securityConfig
 * @property skipModelValidation Indicates if you want to skip model validation.
 * @property sourceAlgorithmSpecification A list of algorithms that were used to create a model package.
 * @property sourceUri The URI of the source for the model package.
 * @property tags An array of key-value pairs to apply to this resource.
 * @property task The machine learning task your model package accomplishes. Common machine learning tasks include object detection and image classification.
 * @property validationSpecification Specifies batch transform jobs that SageMaker runs to validate your model package.
 */
public data class ModelPackageArgs(
    public val additionalInferenceSpecifications: Output>? = null,
    public val additionalInferenceSpecificationsToAdd: Output>? = null,
    public val approvalDescription: Output? = null,
    public val certifyForMarketplace: Output? = null,
    public val clientToken: Output? = null,
    public val customerMetadataProperties: Output? = null,
    public val domain: Output? = null,
    public val driftCheckBaselines: Output? = null,
    public val inferenceSpecification: Output? = null,
    public val lastModifiedTime: Output? = null,
    public val metadataProperties: Output? = null,
    public val modelApprovalStatus: Output? = null,
    public val modelCard: Output? = null,
    public val modelMetrics: Output? = null,
    public val modelPackageDescription: Output? = null,
    public val modelPackageGroupName: Output? = null,
    public val modelPackageName: Output? = null,
    public val modelPackageStatusDetails: Output? = null,
    public val modelPackageVersion: Output? = null,
    public val samplePayloadUrl: Output? = null,
    public val securityConfig: Output? = null,
    public val skipModelValidation: Output? = null,
    public val sourceAlgorithmSpecification: Output? =
        null,
    public val sourceUri: Output? = null,
    public val tags: Output>? = null,
    public val task: Output? = null,
    public val validationSpecification: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.sagemaker.ModelPackageArgs =
        com.pulumi.awsnative.sagemaker.ModelPackageArgs.builder()
            .additionalInferenceSpecifications(
                additionalInferenceSpecifications?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .additionalInferenceSpecificationsToAdd(
                additionalInferenceSpecificationsToAdd?.applyValue({ args0 ->
                    args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) })
                }),
            )
            .approvalDescription(approvalDescription?.applyValue({ args0 -> args0 }))
            .certifyForMarketplace(certifyForMarketplace?.applyValue({ args0 -> args0 }))
            .clientToken(clientToken?.applyValue({ args0 -> args0 }))
            .customerMetadataProperties(
                customerMetadataProperties?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .domain(domain?.applyValue({ args0 -> args0 }))
            .driftCheckBaselines(
                driftCheckBaselines?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .inferenceSpecification(
                inferenceSpecification?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .lastModifiedTime(lastModifiedTime?.applyValue({ args0 -> args0 }))
            .metadataProperties(
                metadataProperties?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .modelApprovalStatus(
                modelApprovalStatus?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .modelCard(modelCard?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .modelMetrics(modelMetrics?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .modelPackageDescription(modelPackageDescription?.applyValue({ args0 -> args0 }))
            .modelPackageGroupName(modelPackageGroupName?.applyValue({ args0 -> args0 }))
            .modelPackageName(modelPackageName?.applyValue({ args0 -> args0 }))
            .modelPackageStatusDetails(
                modelPackageStatusDetails?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .modelPackageVersion(modelPackageVersion?.applyValue({ args0 -> args0 }))
            .samplePayloadUrl(samplePayloadUrl?.applyValue({ args0 -> args0 }))
            .securityConfig(securityConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .skipModelValidation(
                skipModelValidation?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .sourceAlgorithmSpecification(
                sourceAlgorithmSpecification?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .sourceUri(sourceUri?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .task(task?.applyValue({ args0 -> args0 }))
            .validationSpecification(
                validationSpecification?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [ModelPackageArgs].
 */
@PulumiTagMarker
public class ModelPackageArgsBuilder internal constructor() {
    private var additionalInferenceSpecifications:
        Output>? = null

    private var additionalInferenceSpecificationsToAdd:
        Output>? = null

    private var approvalDescription: Output? = null

    private var certifyForMarketplace: Output? = null

    private var clientToken: Output? = null

    private var customerMetadataProperties: Output? = null

    private var domain: Output? = null

    private var driftCheckBaselines: Output? = null

    private var inferenceSpecification: Output? = null

    private var lastModifiedTime: Output? = null

    private var metadataProperties: Output? = null

    private var modelApprovalStatus: Output? = null

    private var modelCard: Output? = null

    private var modelMetrics: Output? = null

    private var modelPackageDescription: Output? = null

    private var modelPackageGroupName: Output? = null

    private var modelPackageName: Output? = null

    private var modelPackageStatusDetails: Output? = null

    private var modelPackageVersion: Output? = null

    private var samplePayloadUrl: Output? = null

    private var securityConfig: Output? = null

    private var skipModelValidation: Output? = null

    private var sourceAlgorithmSpecification: Output? =
        null

    private var sourceUri: Output? = null

    private var tags: Output>? = null

    private var task: Output? = null

    private var validationSpecification: Output? = null

    /**
     * @param value An array of additional Inference Specification objects.
     */
    @JvmName("eejkytmhaahboecr")
    public suspend fun additionalInferenceSpecifications(`value`: Output>) {
        this.additionalInferenceSpecifications = value
    }

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

    /**
     * @param values An array of additional Inference Specification objects.
     */
    @JvmName("aqlktjmtpjjdxoha")
    public suspend fun additionalInferenceSpecifications(values: List>) {
        this.additionalInferenceSpecifications = Output.all(values)
    }

    /**
     * @param value An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("xttinqrhqdptluwl")
    public suspend fun additionalInferenceSpecificationsToAdd(`value`: Output>) {
        this.additionalInferenceSpecificationsToAdd = value
    }

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

    /**
     * @param values An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("mbpormpucjahvvsl")
    public suspend fun additionalInferenceSpecificationsToAdd(values: List>) {
        this.additionalInferenceSpecificationsToAdd = Output.all(values)
    }

    /**
     * @param value A description provided when the model approval is set.
     */
    @JvmName("yubanfbeohuqrvsq")
    public suspend fun approvalDescription(`value`: Output) {
        this.approvalDescription = value
    }

    /**
     * @param value Whether the model package is to be certified to be listed on AWS Marketplace. For information about listing model packages on AWS Marketplace, see [List Your Algorithm or Model Package on AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html) .
     */
    @JvmName("qmqccvkxetvyrulv")
    public suspend fun certifyForMarketplace(`value`: Output) {
        this.certifyForMarketplace = value
    }

    /**
     * @param value A unique token that guarantees that the call to this API is idempotent.
     */
    @JvmName("ftqbbavbmbrgfgxa")
    public suspend fun clientToken(`value`: Output) {
        this.clientToken = value
    }

    /**
     * @param value The metadata properties for the model package.
     */
    @JvmName("hkqysjyiuwfwmspm")
    public suspend fun customerMetadataProperties(`value`: Output) {
        this.customerMetadataProperties = value
    }

    /**
     * @param value The machine learning domain of your model package and its components. Common machine learning domains include computer vision and natural language processing.
     */
    @JvmName("xnhutantmupwslet")
    public suspend fun domain(`value`: Output) {
        this.domain = value
    }

    /**
     * @param value Represents the drift check baselines that can be used when the model monitor is set using the model package.
     */
    @JvmName("xgkpprqxixuiowad")
    public suspend fun driftCheckBaselines(`value`: Output) {
        this.driftCheckBaselines = value
    }

    /**
     * @param value Defines how to perform inference generation after a training job is run.
     */
    @JvmName("laafyrenxglovryc")
    public suspend fun inferenceSpecification(`value`: Output) {
        this.inferenceSpecification = value
    }

    /**
     * @param value The last time the model package was modified.
     */
    @JvmName("mtgaeavgqetsgblf")
    public suspend fun lastModifiedTime(`value`: Output) {
        this.lastModifiedTime = value
    }

    /**
     * @param value Metadata properties of the tracking entity, trial, or trial component.
     */
    @JvmName("oxvtldsswdnbdykh")
    public suspend fun metadataProperties(`value`: Output) {
        this.metadataProperties = value
    }

    /**
     * @param value The approval status of the model. This can be one of the following values.
     * - `APPROVED` - The model is approved
     * - `REJECTED` - The model is rejected.
     * - `PENDING_MANUAL_APPROVAL` - The model is waiting for manual approval.
     */
    @JvmName("mbcwkstbvcojcrqy")
    public suspend fun modelApprovalStatus(`value`: Output) {
        this.modelApprovalStatus = value
    }

    /**
     * @param value An Amazon SageMaker Model Card.
     */
    @JvmName("kjtshgegnlpivbgs")
    public suspend fun modelCard(`value`: Output) {
        this.modelCard = value
    }

    /**
     * @param value Metrics for the model.
     */
    @JvmName("ugnpedrjgkhfyfvp")
    public suspend fun modelMetrics(`value`: Output) {
        this.modelMetrics = value
    }

    /**
     * @param value The description of the model package.
     */
    @JvmName("hsjrabjwcvtquntf")
    public suspend fun modelPackageDescription(`value`: Output) {
        this.modelPackageDescription = value
    }

    /**
     * @param value The model group to which the model belongs.
     */
    @JvmName("lnqpihlkxiftjlav")
    public suspend fun modelPackageGroupName(`value`: Output) {
        this.modelPackageGroupName = value
    }

    /**
     * @param value The name of the model.
     */
    @JvmName("qukotwpjqnohuonh")
    public suspend fun modelPackageName(`value`: Output) {
        this.modelPackageName = value
    }

    /**
     * @param value Specifies the validation and image scan statuses of the model package.
     */
    @JvmName("dlpfsnmexvowjevn")
    public suspend fun modelPackageStatusDetails(`value`: Output) {
        this.modelPackageStatusDetails = value
    }

    /**
     * @param value The version number of a versioned model.
     */
    @JvmName("imgyspkreftfbjkp")
    public suspend fun modelPackageVersion(`value`: Output) {
        this.modelPackageVersion = value
    }

    /**
     * @param value The Amazon Simple Storage Service path where the sample payload are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).
     */
    @JvmName("srcxxyigbdjokqyu")
    public suspend fun samplePayloadUrl(`value`: Output) {
        this.samplePayloadUrl = value
    }

    /**
     * @param value
     */
    @JvmName("komfwlnkgebowwiw")
    public suspend fun securityConfig(`value`: Output) {
        this.securityConfig = value
    }

    /**
     * @param value Indicates if you want to skip model validation.
     */
    @JvmName("uomrldalfwpmwflb")
    public suspend fun skipModelValidation(`value`: Output) {
        this.skipModelValidation = value
    }

    /**
     * @param value A list of algorithms that were used to create a model package.
     */
    @JvmName("hmbsauacvbpvmvwl")
    public suspend fun sourceAlgorithmSpecification(`value`: Output) {
        this.sourceAlgorithmSpecification = value
    }

    /**
     * @param value The URI of the source for the model package.
     */
    @JvmName("esshoyqjykqvrwhs")
    public suspend fun sourceUri(`value`: Output) {
        this.sourceUri = value
    }

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

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

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

    /**
     * @param value The machine learning task your model package accomplishes. Common machine learning tasks include object detection and image classification.
     */
    @JvmName("mrjgsxemfjhhlkhp")
    public suspend fun task(`value`: Output) {
        this.task = value
    }

    /**
     * @param value Specifies batch transform jobs that SageMaker runs to validate your model package.
     */
    @JvmName("gfogttcphbtmgmwc")
    public suspend fun validationSpecification(`value`: Output) {
        this.validationSpecification = value
    }

    /**
     * @param value An array of additional Inference Specification objects.
     */
    @JvmName("dtkajlstudcwcidm")
    public suspend fun additionalInferenceSpecifications(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalInferenceSpecifications = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects.
     */
    @JvmName("ybruporvotvolake")
    public suspend fun additionalInferenceSpecifications(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecifications = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects.
     */
    @JvmName("oqbmewfvourvggvd")
    public suspend fun additionalInferenceSpecifications(vararg argument: suspend ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecifications = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects.
     */
    @JvmName("xqixvatpjqonfsym")
    public suspend fun additionalInferenceSpecifications(argument: suspend ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecifications = mapped
    }

    /**
     * @param values An array of additional Inference Specification objects.
     */
    @JvmName("pcbfynubkmmmtwar")
    public suspend fun additionalInferenceSpecifications(vararg values: ModelPackageAdditionalInferenceSpecificationDefinitionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalInferenceSpecifications = mapped
    }

    /**
     * @param value An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("klahpyruvtmvlbrp")
    public suspend fun additionalInferenceSpecificationsToAdd(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalInferenceSpecificationsToAdd = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("coyhpkanyagcbrhs")
    public suspend fun additionalInferenceSpecificationsToAdd(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecificationsToAdd = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("qhfboiloywlloyiw")
    public suspend fun additionalInferenceSpecificationsToAdd(vararg argument: suspend ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecificationsToAdd = mapped
    }

    /**
     * @param argument An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("vpcmltsmygndllxi")
    public suspend fun additionalInferenceSpecificationsToAdd(argument: suspend ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder.() -> Unit) {
        val toBeMapped =
            listOf(
                ModelPackageAdditionalInferenceSpecificationDefinitionArgsBuilder().applySuspend {
                    argument()
                }.build(),
            )
        val mapped = of(toBeMapped)
        this.additionalInferenceSpecificationsToAdd = mapped
    }

    /**
     * @param values An array of additional Inference Specification objects to be added to the existing array. The total number of additional Inference Specification objects cannot exceed 15. Each additional Inference Specification object specifies artifacts based on this model package that can be used on inference endpoints. Generally used with SageMaker Neo to store the compiled artifacts.
     */
    @JvmName("ppftbuifhgogpiul")
    public suspend fun additionalInferenceSpecificationsToAdd(vararg values: ModelPackageAdditionalInferenceSpecificationDefinitionArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.additionalInferenceSpecificationsToAdd = mapped
    }

    /**
     * @param value A description provided when the model approval is set.
     */
    @JvmName("tderaypgxganroos")
    public suspend fun approvalDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.approvalDescription = mapped
    }

    /**
     * @param value Whether the model package is to be certified to be listed on AWS Marketplace. For information about listing model packages on AWS Marketplace, see [List Your Algorithm or Model Package on AWS Marketplace](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-mkt-list.html) .
     */
    @JvmName("phjriklljlldcqjp")
    public suspend fun certifyForMarketplace(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.certifyForMarketplace = mapped
    }

    /**
     * @param value A unique token that guarantees that the call to this API is idempotent.
     */
    @JvmName("yiimdnugevjuibyo")
    public suspend fun clientToken(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clientToken = mapped
    }

    /**
     * @param value The metadata properties for the model package.
     */
    @JvmName("xjvaqangehpebtym")
    public suspend fun customerMetadataProperties(`value`: ModelPackageCustomerMetadataPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customerMetadataProperties = mapped
    }

    /**
     * @param argument The metadata properties for the model package.
     */
    @JvmName("kniijwhxvksmmmpx")
    public suspend fun customerMetadataProperties(argument: suspend ModelPackageCustomerMetadataPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageCustomerMetadataPropertiesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.customerMetadataProperties = mapped
    }

    /**
     * @param value The machine learning domain of your model package and its components. Common machine learning domains include computer vision and natural language processing.
     */
    @JvmName("bhhybpjuhurkqbyt")
    public suspend fun domain(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domain = mapped
    }

    /**
     * @param value Represents the drift check baselines that can be used when the model monitor is set using the model package.
     */
    @JvmName("jqdutxkfqrhpbafq")
    public suspend fun driftCheckBaselines(`value`: ModelPackageDriftCheckBaselinesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.driftCheckBaselines = mapped
    }

    /**
     * @param argument Represents the drift check baselines that can be used when the model monitor is set using the model package.
     */
    @JvmName("uyohciyuklwhjlcy")
    public suspend fun driftCheckBaselines(argument: suspend ModelPackageDriftCheckBaselinesArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageDriftCheckBaselinesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.driftCheckBaselines = mapped
    }

    /**
     * @param value Defines how to perform inference generation after a training job is run.
     */
    @JvmName("bsncuwisvmeirmpk")
    public suspend fun inferenceSpecification(`value`: ModelPackageInferenceSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.inferenceSpecification = mapped
    }

    /**
     * @param argument Defines how to perform inference generation after a training job is run.
     */
    @JvmName("wjgjudyfbjpwiqqo")
    public suspend fun inferenceSpecification(argument: suspend ModelPackageInferenceSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageInferenceSpecificationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.inferenceSpecification = mapped
    }

    /**
     * @param value The last time the model package was modified.
     */
    @JvmName("jxfhbnawqwqaufvp")
    public suspend fun lastModifiedTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.lastModifiedTime = mapped
    }

    /**
     * @param value Metadata properties of the tracking entity, trial, or trial component.
     */
    @JvmName("ojsqrwynsqncuqjn")
    public suspend fun metadataProperties(`value`: ModelPackageMetadataPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.metadataProperties = mapped
    }

    /**
     * @param argument Metadata properties of the tracking entity, trial, or trial component.
     */
    @JvmName("kmsltffbgfhkggqw")
    public suspend fun metadataProperties(argument: suspend ModelPackageMetadataPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageMetadataPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.metadataProperties = mapped
    }

    /**
     * @param value The approval status of the model. This can be one of the following values.
     * - `APPROVED` - The model is approved
     * - `REJECTED` - The model is rejected.
     * - `PENDING_MANUAL_APPROVAL` - The model is waiting for manual approval.
     */
    @JvmName("alvllfuuvmvlpdhw")
    public suspend fun modelApprovalStatus(`value`: ModelPackageModelApprovalStatus?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelApprovalStatus = mapped
    }

    /**
     * @param value An Amazon SageMaker Model Card.
     */
    @JvmName("oxbmuncyfknjgbhj")
    public suspend fun modelCard(`value`: ModelPackageModelCardArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelCard = mapped
    }

    /**
     * @param argument An Amazon SageMaker Model Card.
     */
    @JvmName("resnncjlqngeukth")
    public suspend fun modelCard(argument: suspend ModelPackageModelCardArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageModelCardArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.modelCard = mapped
    }

    /**
     * @param value Metrics for the model.
     */
    @JvmName("defljltbdjmsbbkn")
    public suspend fun modelMetrics(`value`: ModelPackageModelMetricsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelMetrics = mapped
    }

    /**
     * @param argument Metrics for the model.
     */
    @JvmName("hdvovusrptjqjxcn")
    public suspend fun modelMetrics(argument: suspend ModelPackageModelMetricsArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageModelMetricsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.modelMetrics = mapped
    }

    /**
     * @param value The description of the model package.
     */
    @JvmName("kvihjxefjvnnjwfn")
    public suspend fun modelPackageDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelPackageDescription = mapped
    }

    /**
     * @param value The model group to which the model belongs.
     */
    @JvmName("ujhwnpopijxftbwu")
    public suspend fun modelPackageGroupName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelPackageGroupName = mapped
    }

    /**
     * @param value The name of the model.
     */
    @JvmName("trexhslbxcjoiqny")
    public suspend fun modelPackageName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelPackageName = mapped
    }

    /**
     * @param value Specifies the validation and image scan statuses of the model package.
     */
    @JvmName("ggegtvcjxbkouhcc")
    public suspend fun modelPackageStatusDetails(`value`: ModelPackageStatusDetailsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelPackageStatusDetails = mapped
    }

    /**
     * @param argument Specifies the validation and image scan statuses of the model package.
     */
    @JvmName("iuvjckuopcqpceef")
    public suspend fun modelPackageStatusDetails(argument: suspend ModelPackageStatusDetailsArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageStatusDetailsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.modelPackageStatusDetails = mapped
    }

    /**
     * @param value The version number of a versioned model.
     */
    @JvmName("ietqqdfraeyliahg")
    public suspend fun modelPackageVersion(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.modelPackageVersion = mapped
    }

    /**
     * @param value The Amazon Simple Storage Service path where the sample payload are stored. This path must point to a single gzip compressed tar archive (.tar.gz suffix).
     */
    @JvmName("yebhbjwfownbausc")
    public suspend fun samplePayloadUrl(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.samplePayloadUrl = mapped
    }

    /**
     * @param value
     */
    @JvmName("yjrxbuxdicglxysi")
    public suspend fun securityConfig(`value`: ModelPackageSecurityConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.securityConfig = mapped
    }

    /**
     * @param argument
     */
    @JvmName("ukdvktlfjrwunltw")
    public suspend fun securityConfig(argument: suspend ModelPackageSecurityConfigArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageSecurityConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.securityConfig = mapped
    }

    /**
     * @param value Indicates if you want to skip model validation.
     */
    @JvmName("dccrnmwkrxmkkxky")
    public suspend fun skipModelValidation(`value`: ModelPackageSkipModelValidation?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.skipModelValidation = mapped
    }

    /**
     * @param value A list of algorithms that were used to create a model package.
     */
    @JvmName("ruuryvrkfyiesowy")
    public suspend fun sourceAlgorithmSpecification(`value`: ModelPackageSourceAlgorithmSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceAlgorithmSpecification = mapped
    }

    /**
     * @param argument A list of algorithms that were used to create a model package.
     */
    @JvmName("shcdaajqdshoryfw")
    public suspend fun sourceAlgorithmSpecification(argument: suspend ModelPackageSourceAlgorithmSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageSourceAlgorithmSpecificationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.sourceAlgorithmSpecification = mapped
    }

    /**
     * @param value The URI of the source for the model package.
     */
    @JvmName("uvwqyrtdvytffvqi")
    public suspend fun sourceUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceUri = mapped
    }

    /**
     * @param value An array of key-value pairs to apply to this resource.
     */
    @JvmName("tsmpffkffnlgdfgg")
    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 pairs to apply to this resource.
     */
    @JvmName("atcptibmjrvvrxoh")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

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

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

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

    /**
     * @param value The machine learning task your model package accomplishes. Common machine learning tasks include object detection and image classification.
     */
    @JvmName("raowjkhfdfskiehc")
    public suspend fun task(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.task = mapped
    }

    /**
     * @param value Specifies batch transform jobs that SageMaker runs to validate your model package.
     */
    @JvmName("ewlxnbucvqowebdi")
    public suspend fun validationSpecification(`value`: ModelPackageValidationSpecificationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.validationSpecification = mapped
    }

    /**
     * @param argument Specifies batch transform jobs that SageMaker runs to validate your model package.
     */
    @JvmName("nurqxqwbtsctqsrt")
    public suspend fun validationSpecification(argument: suspend ModelPackageValidationSpecificationArgsBuilder.() -> Unit) {
        val toBeMapped = ModelPackageValidationSpecificationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.validationSpecification = mapped
    }

    internal fun build(): ModelPackageArgs = ModelPackageArgs(
        additionalInferenceSpecifications = additionalInferenceSpecifications,
        additionalInferenceSpecificationsToAdd = additionalInferenceSpecificationsToAdd,
        approvalDescription = approvalDescription,
        certifyForMarketplace = certifyForMarketplace,
        clientToken = clientToken,
        customerMetadataProperties = customerMetadataProperties,
        domain = domain,
        driftCheckBaselines = driftCheckBaselines,
        inferenceSpecification = inferenceSpecification,
        lastModifiedTime = lastModifiedTime,
        metadataProperties = metadataProperties,
        modelApprovalStatus = modelApprovalStatus,
        modelCard = modelCard,
        modelMetrics = modelMetrics,
        modelPackageDescription = modelPackageDescription,
        modelPackageGroupName = modelPackageGroupName,
        modelPackageName = modelPackageName,
        modelPackageStatusDetails = modelPackageStatusDetails,
        modelPackageVersion = modelPackageVersion,
        samplePayloadUrl = samplePayloadUrl,
        securityConfig = securityConfig,
        skipModelValidation = skipModelValidation,
        sourceAlgorithmSpecification = sourceAlgorithmSpecification,
        sourceUri = sourceUri,
        tags = tags,
        task = task,
        validationSpecification = validationSpecification,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy