commonMain.aws.sdk.kotlin.services.cleanrooms.model.CollaborationPrivacyBudgetTemplate.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cleanrooms-jvm Show documentation
Show all versions of cleanrooms-jvm Show documentation
The AWS SDK for Kotlin client for CleanRooms
// 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
}
}
}