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

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

There is a newer version: 1.3.31
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 object that defines the privacy budget template.
 */
public class PrivacyBudgetTemplate private constructor(builder: Builder) {
    /**
     * The ARN of the 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 contains this privacy budget template.
     */
    public val collaborationArn: kotlin.String = requireNotNull(builder.collaborationArn) { "A non-null value must be provided for collaborationArn" }
    /**
     * The unique ID of the collaboration that contains this 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 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 privacy budget template.
     */
    public val id: kotlin.String = requireNotNull(builder.id) { "A non-null value must be provided for id" }
    /**
     * The Amazon Resource Name (ARN) of the member who created the privacy budget template.
     */
    public val membershipArn: kotlin.String = requireNotNull(builder.membershipArn) { "A non-null value must be provided for membershipArn" }
    /**
     * The identifier for a membership resource.
     */
    public val membershipId: kotlin.String = requireNotNull(builder.membershipId) { "A non-null value must be provided for membershipId" }
    /**
     * Specifies the epsilon and noise parameters for the privacy budget template.
     */
    public val parameters: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateParametersOutput? = builder.parameters
    /**
     * Specifies the type of the 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 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.PrivacyBudgetTemplate = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("PrivacyBudgetTemplate(")
        append("arn=$arn,")
        append("autoRefresh=$autoRefresh,")
        append("collaborationArn=$collaborationArn,")
        append("collaborationId=$collaborationId,")
        append("createTime=$createTime,")
        append("id=$id,")
        append("membershipArn=$membershipArn,")
        append("membershipId=$membershipId,")
        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 + (id.hashCode())
        result = 31 * result + (membershipArn.hashCode())
        result = 31 * result + (membershipId.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 PrivacyBudgetTemplate

        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 (id != other.id) return false
        if (membershipArn != other.membershipArn) return false
        if (membershipId != other.membershipId) 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.PrivacyBudgetTemplate = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * The ARN of the 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 contains this privacy budget template.
         */
        public var collaborationArn: kotlin.String? = null
        /**
         * The unique ID of the collaboration that contains this privacy budget template.
         */
        public var collaborationId: kotlin.String? = null
        /**
         * The time at which the privacy budget template was created.
         */
        public var createTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The unique identifier of the privacy budget template.
         */
        public var id: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the member who created the privacy budget template.
         */
        public var membershipArn: kotlin.String? = null
        /**
         * The identifier for a membership resource.
         */
        public var membershipId: 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
        /**
         * Specifies the type of the privacy budget template.
         */
        public var privacyBudgetType: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetType? = null
        /**
         * The most recent time at which the 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.PrivacyBudgetTemplate) : this() {
            this.arn = x.arn
            this.autoRefresh = x.autoRefresh
            this.collaborationArn = x.collaborationArn
            this.collaborationId = x.collaborationId
            this.createTime = x.createTime
            this.id = x.id
            this.membershipArn = x.membershipArn
            this.membershipId = x.membershipId
            this.parameters = x.parameters
            this.privacyBudgetType = x.privacyBudgetType
            this.updateTime = x.updateTime
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplate = PrivacyBudgetTemplate(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 (id == null) id = ""
            if (membershipArn == null) membershipArn = ""
            if (membershipId == null) membershipId = ""
            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