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

commonMain.aws.sdk.kotlin.services.cleanrooms.model.CollaborationPrivacyBudgetTemplate.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.cleanrooms.model

import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant

/**
 * An array that specifies the information for a collaboration's privacy budget template.
 */
public class CollaborationPrivacyBudgetTemplate private constructor(builder: Builder) {
    /**
     * The ARN of the collaboration privacy budget template.
     */
    public val arn: kotlin.String = requireNotNull(builder.arn) { "A non-null value must be provided for arn" }
    /**
     * How often the privacy budget refreshes.
     *
     * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.
     */
    public val autoRefresh: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateAutoRefresh = requireNotNull(builder.autoRefresh) { "A non-null value must be provided for autoRefresh" }
    /**
     * The ARN of the collaboration that includes this collaboration privacy budget template.
     */
    public val collaborationArn: kotlin.String = requireNotNull(builder.collaborationArn) { "A non-null value must be provided for collaborationArn" }
    /**
     * The unique identifier of the collaboration that includes this collaboration privacy budget template.
     */
    public val collaborationId: kotlin.String = requireNotNull(builder.collaborationId) { "A non-null value must be provided for collaborationId" }
    /**
     * The time at which the collaboration privacy budget template was created.
     */
    public val createTime: aws.smithy.kotlin.runtime.time.Instant = requireNotNull(builder.createTime) { "A non-null value must be provided for createTime" }
    /**
     * The unique identifier of the account that created this collaboration privacy budget template.
     */
    public val creatorAccountId: kotlin.String = requireNotNull(builder.creatorAccountId) { "A non-null value must be provided for creatorAccountId" }
    /**
     * The unique identifier of the collaboration privacy budget template.
     */
    public val id: kotlin.String = requireNotNull(builder.id) { "A non-null value must be provided for id" }
    /**
     * Specifies the epsilon and noise parameters for the privacy budget template.
     */
    public val parameters: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateParametersOutput? = builder.parameters
    /**
     * The type of privacy budget template.
     */
    public val privacyBudgetType: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetType = requireNotNull(builder.privacyBudgetType) { "A non-null value must be provided for privacyBudgetType" }
    /**
     * The most recent time at which the collaboration privacy budget template was updated.
     */
    public val updateTime: aws.smithy.kotlin.runtime.time.Instant = requireNotNull(builder.updateTime) { "A non-null value must be provided for updateTime" }

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

    override fun toString(): kotlin.String = buildString {
        append("CollaborationPrivacyBudgetTemplate(")
        append("arn=$arn,")
        append("autoRefresh=$autoRefresh,")
        append("collaborationArn=$collaborationArn,")
        append("collaborationId=$collaborationId,")
        append("createTime=$createTime,")
        append("creatorAccountId=$creatorAccountId,")
        append("id=$id,")
        append("parameters=$parameters,")
        append("privacyBudgetType=$privacyBudgetType,")
        append("updateTime=$updateTime")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = arn.hashCode()
        result = 31 * result + (autoRefresh.hashCode())
        result = 31 * result + (collaborationArn.hashCode())
        result = 31 * result + (collaborationId.hashCode())
        result = 31 * result + (createTime.hashCode())
        result = 31 * result + (creatorAccountId.hashCode())
        result = 31 * result + (id.hashCode())
        result = 31 * result + (parameters?.hashCode() ?: 0)
        result = 31 * result + (privacyBudgetType.hashCode())
        result = 31 * result + (updateTime.hashCode())
        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 CollaborationPrivacyBudgetTemplate

        if (arn != other.arn) return false
        if (autoRefresh != other.autoRefresh) return false
        if (collaborationArn != other.collaborationArn) return false
        if (collaborationId != other.collaborationId) return false
        if (createTime != other.createTime) return false
        if (creatorAccountId != other.creatorAccountId) return false
        if (id != other.id) return false
        if (parameters != other.parameters) return false
        if (privacyBudgetType != other.privacyBudgetType) return false
        if (updateTime != other.updateTime) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ARN of the collaboration privacy budget template.
         */
        public var arn: kotlin.String? = null
        /**
         * How often the privacy budget refreshes.
         *
         * If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.
         */
        public var autoRefresh: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateAutoRefresh? = null
        /**
         * The ARN of the collaboration that includes this collaboration privacy budget template.
         */
        public var collaborationArn: kotlin.String? = null
        /**
         * The unique identifier of the collaboration that includes this collaboration privacy budget template.
         */
        public var collaborationId: kotlin.String? = null
        /**
         * The time at which the collaboration privacy budget template was created.
         */
        public var createTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The unique identifier of the account that created this collaboration privacy budget template.
         */
        public var creatorAccountId: kotlin.String? = null
        /**
         * The unique identifier of the collaboration privacy budget template.
         */
        public var id: kotlin.String? = null
        /**
         * Specifies the epsilon and noise parameters for the privacy budget template.
         */
        public var parameters: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateParametersOutput? = null
        /**
         * The type of privacy budget template.
         */
        public var privacyBudgetType: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetType? = null
        /**
         * The most recent time at which the collaboration privacy budget template was updated.
         */
        public var updateTime: aws.smithy.kotlin.runtime.time.Instant? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.cleanrooms.model.CollaborationPrivacyBudgetTemplate) : this() {
            this.arn = x.arn
            this.autoRefresh = x.autoRefresh
            this.collaborationArn = x.collaborationArn
            this.collaborationId = x.collaborationId
            this.createTime = x.createTime
            this.creatorAccountId = x.creatorAccountId
            this.id = x.id
            this.parameters = x.parameters
            this.privacyBudgetType = x.privacyBudgetType
            this.updateTime = x.updateTime
        }

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

        internal fun correctErrors(): Builder {
            if (arn == null) arn = ""
            if (autoRefresh == null) autoRefresh = PrivacyBudgetTemplateAutoRefresh.SdkUnknown("no value provided")
            if (collaborationArn == null) collaborationArn = ""
            if (collaborationId == null) collaborationId = ""
            if (createTime == null) createTime = Instant.fromEpochSeconds(0)
            if (creatorAccountId == null) creatorAccountId = ""
            if (id == null) id = ""
            if (privacyBudgetType == null) privacyBudgetType = PrivacyBudgetType.SdkUnknown("no value provided")
            if (updateTime == null) updateTime = Instant.fromEpochSeconds(0)
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy