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

commonMain.aws.sdk.kotlin.services.quicksight.model.UpdateAnalysisRequest.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.quicksight.model



class UpdateAnalysisRequest private constructor(builder: Builder) {
    /**
     * The ID for the analysis that you're updating. This ID displays in the URL of the analysis.
     */
    val analysisId: kotlin.String? = builder.analysisId
    /**
     * The ID of the Amazon Web Services account that contains the analysis that you're updating.
     */
    val awsAccountId: kotlin.String? = builder.awsAccountId
    /**
     * A descriptive name for the analysis that you're updating. This name displays for the analysis in the Amazon QuickSight console.
     */
    val name: kotlin.String? = builder.name
    /**
     * The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.
     */
    val parameters: aws.sdk.kotlin.services.quicksight.model.Parameters? = builder.parameters
    /**
     * A source entity to use for the analysis that you're updating. This metadata structure contains details that describe a source template and one or more datasets.
     */
    val sourceEntity: aws.sdk.kotlin.services.quicksight.model.AnalysisSourceEntity? = builder.sourceEntity
    /**
     * The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.
     */
    val themeArn: kotlin.String? = builder.themeArn

    companion object {
        operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.quicksight.model.UpdateAnalysisRequest = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("UpdateAnalysisRequest(")
        append("analysisId=$analysisId,")
        append("awsAccountId=$awsAccountId,")
        append("name=$name,")
        append("parameters=$parameters,")
        append("sourceEntity=$sourceEntity,")
        append("themeArn=$themeArn)")
    }

    override fun hashCode(): kotlin.Int {
        var result = analysisId?.hashCode() ?: 0
        result = 31 * result + (awsAccountId?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (parameters?.hashCode() ?: 0)
        result = 31 * result + (sourceEntity?.hashCode() ?: 0)
        result = 31 * result + (themeArn?.hashCode() ?: 0)
        return result
    }

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

        other as UpdateAnalysisRequest

        if (analysisId != other.analysisId) return false
        if (awsAccountId != other.awsAccountId) return false
        if (name != other.name) return false
        if (parameters != other.parameters) return false
        if (sourceEntity != other.sourceEntity) return false
        if (themeArn != other.themeArn) return false

        return true
    }

    inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.quicksight.model.UpdateAnalysisRequest = Builder(this).apply(block).build()

    class Builder {
        /**
         * The ID for the analysis that you're updating. This ID displays in the URL of the analysis.
         */
        var analysisId: kotlin.String? = null
        /**
         * The ID of the Amazon Web Services account that contains the analysis that you're updating.
         */
        var awsAccountId: kotlin.String? = null
        /**
         * A descriptive name for the analysis that you're updating. This name displays for the analysis in the Amazon QuickSight console.
         */
        var name: kotlin.String? = null
        /**
         * The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.
         */
        var parameters: aws.sdk.kotlin.services.quicksight.model.Parameters? = null
        /**
         * A source entity to use for the analysis that you're updating. This metadata structure contains details that describe a source template and one or more datasets.
         */
        var sourceEntity: aws.sdk.kotlin.services.quicksight.model.AnalysisSourceEntity? = null
        /**
         * The Amazon Resource Name (ARN) for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.
         */
        var themeArn: kotlin.String? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.quicksight.model.UpdateAnalysisRequest) : this() {
            this.analysisId = x.analysisId
            this.awsAccountId = x.awsAccountId
            this.name = x.name
            this.parameters = x.parameters
            this.sourceEntity = x.sourceEntity
            this.themeArn = x.themeArn
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.quicksight.model.UpdateAnalysisRequest = UpdateAnalysisRequest(this)

        /**
         * construct an [aws.sdk.kotlin.services.quicksight.model.Parameters] inside the given [block]
         */
        fun parameters(block: aws.sdk.kotlin.services.quicksight.model.Parameters.Builder.() -> kotlin.Unit) {
            this.parameters = aws.sdk.kotlin.services.quicksight.model.Parameters.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.quicksight.model.AnalysisSourceEntity] inside the given [block]
         */
        fun sourceEntity(block: aws.sdk.kotlin.services.quicksight.model.AnalysisSourceEntity.Builder.() -> kotlin.Unit) {
            this.sourceEntity = aws.sdk.kotlin.services.quicksight.model.AnalysisSourceEntity.invoke(block)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy