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

commonMain.aws.sdk.kotlin.services.cleanrooms.model.CreatePrivacyBudgetTemplateRequest.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

public class CreatePrivacyBudgetTemplateRequest private constructor(builder: Builder) {
    /**
     * How often the privacy budget refreshes.
     *
     * If you plan to regularly bring new data into the collaboration, you can 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 queries 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? = builder.autoRefresh
    /**
     * A unique identifier for one of your memberships for a collaboration. The privacy budget template is created in the collaboration that this membership belongs to. Accepts a membership ID.
     */
    public val membershipIdentifier: kotlin.String? = builder.membershipIdentifier
    /**
     * Specifies your parameters for the privacy budget template.
     */
    public val parameters: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateParametersInput? = builder.parameters
    /**
     * Specifies the type of the privacy budget template.
     */
    public val privacyBudgetType: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetType? = builder.privacyBudgetType
    /**
     * An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.
     */
    public val tags: Map? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("CreatePrivacyBudgetTemplateRequest(")
        append("autoRefresh=$autoRefresh,")
        append("membershipIdentifier=$membershipIdentifier,")
        append("parameters=$parameters,")
        append("privacyBudgetType=$privacyBudgetType,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = autoRefresh?.hashCode() ?: 0
        result = 31 * result + (membershipIdentifier?.hashCode() ?: 0)
        result = 31 * result + (parameters?.hashCode() ?: 0)
        result = 31 * result + (privacyBudgetType?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 CreatePrivacyBudgetTemplateRequest

        if (autoRefresh != other.autoRefresh) return false
        if (membershipIdentifier != other.membershipIdentifier) return false
        if (parameters != other.parameters) return false
        if (privacyBudgetType != other.privacyBudgetType) return false
        if (tags != other.tags) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * How often the privacy budget refreshes.
         *
         * If you plan to regularly bring new data into the collaboration, you can 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 queries 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
        /**
         * A unique identifier for one of your memberships for a collaboration. The privacy budget template is created in the collaboration that this membership belongs to. Accepts a membership ID.
         */
        public var membershipIdentifier: kotlin.String? = null
        /**
         * Specifies your parameters for the privacy budget template.
         */
        public var parameters: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetTemplateParametersInput? = null
        /**
         * Specifies the type of the privacy budget template.
         */
        public var privacyBudgetType: aws.sdk.kotlin.services.cleanrooms.model.PrivacyBudgetType? = null
        /**
         * An optional label that you can assign to a resource when you create it. Each tag consists of a key and an optional value, both of which you define. When you use tagging, you can also use tag-based access control in IAM policies to control access to this resource.
         */
        public var tags: Map? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.cleanrooms.model.CreatePrivacyBudgetTemplateRequest) : this() {
            this.autoRefresh = x.autoRefresh
            this.membershipIdentifier = x.membershipIdentifier
            this.parameters = x.parameters
            this.privacyBudgetType = x.privacyBudgetType
            this.tags = x.tags
        }

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

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy