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

aws.sdk.kotlin.services.sagemaker.model.ServiceCatalogProvisioningDetails.kt Maven / Gradle / Ivy

There is a newer version: 1.3.99
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.sagemaker.model



/**
 * Details that you specify to provision a service catalog product. For information about
 * service catalog, see What is Amazon Web Services Service
 * Catalog.
 */
class ServiceCatalogProvisioningDetails private constructor(builder: BuilderImpl) {
    /**
     * The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path.
     */
    val pathId: String? = builder.pathId
    /**
     * The ID of the product to provision.
     */
    val productId: String? = builder.productId
    /**
     * The ID of the provisioning artifact.
     */
    val provisioningArtifactId: String? = builder.provisioningArtifactId
    /**
     * A list of key value pairs that you specify when you provision a product.
     */
    val provisioningParameters: List? = builder.provisioningParameters

    companion object {
        @JvmStatic
        fun fluentBuilder(): FluentBuilder = BuilderImpl()

        internal fun builder(): DslBuilder = BuilderImpl()

        operator fun invoke(block: DslBuilder.() -> kotlin.Unit): ServiceCatalogProvisioningDetails = BuilderImpl().apply(block).build()

    }

    override fun toString(): kotlin.String = buildString {
        append("ServiceCatalogProvisioningDetails(")
        append("pathId=$pathId,")
        append("productId=$productId,")
        append("provisioningArtifactId=$provisioningArtifactId,")
        append("provisioningParameters=$provisioningParameters)")
    }

    override fun hashCode(): kotlin.Int {
        var result = pathId?.hashCode() ?: 0
        result = 31 * result + (productId?.hashCode() ?: 0)
        result = 31 * result + (provisioningArtifactId?.hashCode() ?: 0)
        result = 31 * result + (provisioningParameters?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (javaClass != other?.javaClass) return false

        other as ServiceCatalogProvisioningDetails

        if (pathId != other.pathId) return false
        if (productId != other.productId) return false
        if (provisioningArtifactId != other.provisioningArtifactId) return false
        if (provisioningParameters != other.provisioningParameters) return false

        return true
    }

    fun copy(block: DslBuilder.() -> kotlin.Unit = {}): ServiceCatalogProvisioningDetails = BuilderImpl(this).apply(block).build()

    interface FluentBuilder {
        fun build(): ServiceCatalogProvisioningDetails
        /**
         * The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path.
         */
        fun pathId(pathId: String): FluentBuilder
        /**
         * The ID of the product to provision.
         */
        fun productId(productId: String): FluentBuilder
        /**
         * The ID of the provisioning artifact.
         */
        fun provisioningArtifactId(provisioningArtifactId: String): FluentBuilder
        /**
         * A list of key value pairs that you specify when you provision a product.
         */
        fun provisioningParameters(provisioningParameters: List): FluentBuilder
    }

    interface DslBuilder {
        /**
         * The path identifier of the product. This value is optional if the product has a default path, and required if the product has more than one path.
         */
        var pathId: String?
        /**
         * The ID of the product to provision.
         */
        var productId: String?
        /**
         * The ID of the provisioning artifact.
         */
        var provisioningArtifactId: String?
        /**
         * A list of key value pairs that you specify when you provision a product.
         */
        var provisioningParameters: List?

        fun build(): ServiceCatalogProvisioningDetails
    }

    private class BuilderImpl() : FluentBuilder, DslBuilder {
        override var pathId: String? = null
        override var productId: String? = null
        override var provisioningArtifactId: String? = null
        override var provisioningParameters: List? = null

        constructor(x: ServiceCatalogProvisioningDetails) : this() {
            this.pathId = x.pathId
            this.productId = x.productId
            this.provisioningArtifactId = x.provisioningArtifactId
            this.provisioningParameters = x.provisioningParameters
        }

        override fun build(): ServiceCatalogProvisioningDetails = ServiceCatalogProvisioningDetails(this)
        override fun pathId(pathId: String): FluentBuilder = apply { this.pathId = pathId }
        override fun productId(productId: String): FluentBuilder = apply { this.productId = productId }
        override fun provisioningArtifactId(provisioningArtifactId: String): FluentBuilder = apply { this.provisioningArtifactId = provisioningArtifactId }
        override fun provisioningParameters(provisioningParameters: List): FluentBuilder = apply { this.provisioningParameters = provisioningParameters }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy