Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.googlenative.storage.v1.kotlin.BucketArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.googlenative.storage.v1.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.googlenative.storage.v1.BucketArgs.builder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketAccessControlArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketAccessControlArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketAutoclassArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketAutoclassArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketBillingArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketBillingArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketCorsItemArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketCorsItemArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketCustomPlacementConfigArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketCustomPlacementConfigArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketEncryptionArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketEncryptionArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketIamConfigurationArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketIamConfigurationArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketLifecycleArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketLifecycleArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketLoggingArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketLoggingArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketOwnerArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketOwnerArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketRetentionPolicyArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketRetentionPolicyArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketVersioningArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketVersioningArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketWebsiteArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.BucketWebsiteArgsBuilder
import com.pulumi.googlenative.storage.v1.kotlin.inputs.ObjectAccessControlArgs
import com.pulumi.googlenative.storage.v1.kotlin.inputs.ObjectAccessControlArgsBuilder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Creates a new bucket.
* @property acl Access controls on the bucket.
* @property autoclass The bucket's Autoclass configuration.
* @property billing The bucket's billing configuration.
* @property cors The bucket's Cross-Origin Resource Sharing (CORS) configuration.
* @property customPlacementConfig The bucket's custom placement configuration for Custom Dual Regions.
* @property defaultEventBasedHold The default value for event-based hold on newly created objects in this bucket. Event-based hold is a way to retain objects indefinitely until an event occurs, signified by the hold's release. After being released, such objects will be subject to bucket-level retention (if any). One sample use case of this flag is for banks to hold loan documents for at least 3 years after loan is paid in full. Here, bucket-level retention is 3 years and the event is loan being paid in full. In this example, these objects will be held intact for any number of years until the event has occurred (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed.
* @property defaultObjectAcl Default access controls to apply to new objects when no ACL is provided.
* @property encryption Encryption configuration for a bucket.
* @property etag HTTP 1.1 Entity tag for the bucket.
* @property iamConfiguration The bucket's IAM configuration.
* @property id The ID of the bucket. For buckets, the id and name properties are the same.
* @property kind The kind of item this is. For buckets, this is always storage#bucket.
* @property labels User-provided labels, in key/value pairs.
* @property lifecycle The bucket's lifecycle configuration. See lifecycle management for more information.
* @property location The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.
* @property locationType The type of the bucket location.
* @property logging The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
* @property metageneration The metadata generation of this bucket.
* @property name The name of the bucket.
* @property owner The owner of the bucket. This is always the project team's owner group.
* @property predefinedAcl Apply a predefined set of access controls to this bucket.
* @property predefinedDefaultObjectAcl Apply a predefined set of default object access controls to this bucket.
* @property project A valid API project identifier.
* @property projectNumber The project number of the project the bucket belongs to.
* @property projection Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
* @property retentionPolicy The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage.buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error.
* @property rpo The Recovery Point Objective (RPO) of this bucket. Set to ASYNC_TURBO to turn on Turbo Replication on a bucket.
* @property satisfiesPZS Reserved for future use.
* @property selfLink The URI of this bucket.
* @property storageClass The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
* @property timeCreated The creation time of the bucket in RFC 3339 format.
* @property updated The modification time of the bucket in RFC 3339 format.
* @property userProject The project to be billed for this request.
* @property versioning The bucket's versioning configuration.
* @property website The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information.
*/
public data class BucketArgs(
public val acl: Output>? = null,
public val autoclass: Output? = null,
public val billing: Output? = null,
public val cors: Output>? = null,
public val customPlacementConfig: Output? = null,
public val defaultEventBasedHold: Output? = null,
public val defaultObjectAcl: Output>? = null,
public val encryption: Output? = null,
public val etag: Output? = null,
public val iamConfiguration: Output? = null,
public val id: Output? = null,
public val kind: Output? = null,
public val labels: Output>? = null,
public val lifecycle: Output? = null,
public val location: Output? = null,
public val locationType: Output? = null,
public val logging: Output? = null,
public val metageneration: Output? = null,
public val name: Output? = null,
public val owner: Output? = null,
public val predefinedAcl: Output? = null,
public val predefinedDefaultObjectAcl: Output? = null,
public val project: Output? = null,
public val projectNumber: Output? = null,
public val projection: Output? = null,
public val retentionPolicy: Output? = null,
public val rpo: Output? = null,
public val satisfiesPZS: Output? = null,
public val selfLink: Output? = null,
public val storageClass: Output? = null,
public val timeCreated: Output? = null,
public val updated: Output? = null,
public val userProject: Output? = null,
public val versioning: Output? = null,
public val website: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.googlenative.storage.v1.BucketArgs =
com.pulumi.googlenative.storage.v1.BucketArgs.builder()
.acl(acl?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.autoclass(autoclass?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.billing(billing?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.cors(cors?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
.customPlacementConfig(
customPlacementConfig?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.defaultEventBasedHold(defaultEventBasedHold?.applyValue({ args0 -> args0 }))
.defaultObjectAcl(
defaultObjectAcl?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.encryption(encryption?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.etag(etag?.applyValue({ args0 -> args0 }))
.iamConfiguration(iamConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.id(id?.applyValue({ args0 -> args0 }))
.kind(kind?.applyValue({ args0 -> args0 }))
.labels(labels?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.lifecycle(lifecycle?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.location(location?.applyValue({ args0 -> args0 }))
.locationType(locationType?.applyValue({ args0 -> args0 }))
.logging(logging?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.metageneration(metageneration?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.owner(owner?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.predefinedAcl(predefinedAcl?.applyValue({ args0 -> args0 }))
.predefinedDefaultObjectAcl(predefinedDefaultObjectAcl?.applyValue({ args0 -> args0 }))
.project(project?.applyValue({ args0 -> args0 }))
.projectNumber(projectNumber?.applyValue({ args0 -> args0 }))
.projection(projection?.applyValue({ args0 -> args0 }))
.retentionPolicy(retentionPolicy?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.rpo(rpo?.applyValue({ args0 -> args0 }))
.satisfiesPZS(satisfiesPZS?.applyValue({ args0 -> args0 }))
.selfLink(selfLink?.applyValue({ args0 -> args0 }))
.storageClass(storageClass?.applyValue({ args0 -> args0 }))
.timeCreated(timeCreated?.applyValue({ args0 -> args0 }))
.updated(updated?.applyValue({ args0 -> args0 }))
.userProject(userProject?.applyValue({ args0 -> args0 }))
.versioning(versioning?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.website(website?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [BucketArgs].
*/
@PulumiTagMarker
public class BucketArgsBuilder internal constructor() {
private var acl: Output>? = null
private var autoclass: Output? = null
private var billing: Output? = null
private var cors: Output>? = null
private var customPlacementConfig: Output? = null
private var defaultEventBasedHold: Output? = null
private var defaultObjectAcl: Output>? = null
private var encryption: Output? = null
private var etag: Output? = null
private var iamConfiguration: Output? = null
private var id: Output? = null
private var kind: Output? = null
private var labels: Output>? = null
private var lifecycle: Output? = null
private var location: Output? = null
private var locationType: Output? = null
private var logging: Output? = null
private var metageneration: Output? = null
private var name: Output? = null
private var owner: Output? = null
private var predefinedAcl: Output? = null
private var predefinedDefaultObjectAcl: Output? = null
private var project: Output? = null
private var projectNumber: Output? = null
private var projection: Output? = null
private var retentionPolicy: Output? = null
private var rpo: Output? = null
private var satisfiesPZS: Output? = null
private var selfLink: Output? = null
private var storageClass: Output? = null
private var timeCreated: Output? = null
private var updated: Output? = null
private var userProject: Output? = null
private var versioning: Output? = null
private var website: Output? = null
/**
* @param value Access controls on the bucket.
*/
@JvmName("kegjqlpmmrxgamws")
public suspend fun acl(`value`: Output>) {
this.acl = value
}
@JvmName("nujohuwdhxblpggg")
public suspend fun acl(vararg values: Output) {
this.acl = Output.all(values.asList())
}
/**
* @param values Access controls on the bucket.
*/
@JvmName("ushdfueraprmiyvf")
public suspend fun acl(values: List>) {
this.acl = Output.all(values)
}
/**
* @param value The bucket's Autoclass configuration.
*/
@JvmName("wrdwcagynllbvxnj")
public suspend fun autoclass(`value`: Output) {
this.autoclass = value
}
/**
* @param value The bucket's billing configuration.
*/
@JvmName("ftbgpthdflwrvtcv")
public suspend fun billing(`value`: Output) {
this.billing = value
}
/**
* @param value The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("hcobhmqdhtomrbdw")
public suspend fun cors(`value`: Output>) {
this.cors = value
}
@JvmName("lrdapfhgvfvxdpgc")
public suspend fun cors(vararg values: Output) {
this.cors = Output.all(values.asList())
}
/**
* @param values The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("wrfodkrjwjtwpcpw")
public suspend fun cors(values: List>) {
this.cors = Output.all(values)
}
/**
* @param value The bucket's custom placement configuration for Custom Dual Regions.
*/
@JvmName("jrhwqwwighdolxxe")
public suspend fun customPlacementConfig(`value`: Output) {
this.customPlacementConfig = value
}
/**
* @param value The default value for event-based hold on newly created objects in this bucket. Event-based hold is a way to retain objects indefinitely until an event occurs, signified by the hold's release. After being released, such objects will be subject to bucket-level retention (if any). One sample use case of this flag is for banks to hold loan documents for at least 3 years after loan is paid in full. Here, bucket-level retention is 3 years and the event is loan being paid in full. In this example, these objects will be held intact for any number of years until the event has occurred (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed.
*/
@JvmName("ixpobairrrmbdaka")
public suspend fun defaultEventBasedHold(`value`: Output) {
this.defaultEventBasedHold = value
}
/**
* @param value Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("tpwjfjyeqsegbuth")
public suspend fun defaultObjectAcl(`value`: Output>) {
this.defaultObjectAcl = value
}
@JvmName("nycjexpehrisibhi")
public suspend fun defaultObjectAcl(vararg values: Output) {
this.defaultObjectAcl = Output.all(values.asList())
}
/**
* @param values Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("tovmwpcblngytfwx")
public suspend fun defaultObjectAcl(values: List>) {
this.defaultObjectAcl = Output.all(values)
}
/**
* @param value Encryption configuration for a bucket.
*/
@JvmName("yyitppcbmibbxccv")
public suspend fun encryption(`value`: Output) {
this.encryption = value
}
/**
* @param value HTTP 1.1 Entity tag for the bucket.
*/
@JvmName("juywpiqynfbnobew")
public suspend fun etag(`value`: Output) {
this.etag = value
}
/**
* @param value The bucket's IAM configuration.
*/
@JvmName("sxerhqvwanpkablr")
public suspend fun iamConfiguration(`value`: Output) {
this.iamConfiguration = value
}
/**
* @param value The ID of the bucket. For buckets, the id and name properties are the same.
*/
@JvmName("wgfanxcrswwknich")
public suspend fun id(`value`: Output) {
this.id = value
}
/**
* @param value The kind of item this is. For buckets, this is always storage#bucket.
*/
@JvmName("llpcpoknivpsdpdb")
public suspend fun kind(`value`: Output) {
this.kind = value
}
/**
* @param value User-provided labels, in key/value pairs.
*/
@JvmName("afsgpgcsluswkfkw")
public suspend fun labels(`value`: Output>) {
this.labels = value
}
/**
* @param value The bucket's lifecycle configuration. See lifecycle management for more information.
*/
@JvmName("sbibgfwybnhhgwqa")
public suspend fun lifecycle(`value`: Output) {
this.lifecycle = value
}
/**
* @param value The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.
*/
@JvmName("bvtigdyrkreoglgh")
public suspend fun location(`value`: Output) {
this.location = value
}
/**
* @param value The type of the bucket location.
*/
@JvmName("klxywkdueixegbcl")
public suspend fun locationType(`value`: Output) {
this.locationType = value
}
/**
* @param value The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
*/
@JvmName("jymvcyhanhpxntra")
public suspend fun logging(`value`: Output) {
this.logging = value
}
/**
* @param value The metadata generation of this bucket.
*/
@JvmName("ynomnftxolmeryvn")
public suspend fun metageneration(`value`: Output) {
this.metageneration = value
}
/**
* @param value The name of the bucket.
*/
@JvmName("sbxlsahkycvpggkl")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value The owner of the bucket. This is always the project team's owner group.
*/
@JvmName("wdulnfhvtvjyldkw")
public suspend fun owner(`value`: Output) {
this.owner = value
}
/**
* @param value Apply a predefined set of access controls to this bucket.
*/
@JvmName("ygrkmwpmufgmqfic")
public suspend fun predefinedAcl(`value`: Output) {
this.predefinedAcl = value
}
/**
* @param value Apply a predefined set of default object access controls to this bucket.
*/
@JvmName("mgfhmdlagguyopap")
public suspend fun predefinedDefaultObjectAcl(`value`: Output) {
this.predefinedDefaultObjectAcl = value
}
/**
* @param value A valid API project identifier.
*/
@JvmName("ioutffiwfsvbxmvg")
public suspend fun project(`value`: Output) {
this.project = value
}
/**
* @param value The project number of the project the bucket belongs to.
*/
@JvmName("ypniotncdvuetbmg")
public suspend fun projectNumber(`value`: Output) {
this.projectNumber = value
}
/**
* @param value Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
*/
@JvmName("dqgcynyrwuanldde")
public suspend fun projection(`value`: Output) {
this.projection = value
}
/**
* @param value The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage.buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error.
*/
@JvmName("bpcfphmropavjbpl")
public suspend fun retentionPolicy(`value`: Output) {
this.retentionPolicy = value
}
/**
* @param value The Recovery Point Objective (RPO) of this bucket. Set to ASYNC_TURBO to turn on Turbo Replication on a bucket.
*/
@JvmName("rlecpgyemntnyrii")
public suspend fun rpo(`value`: Output) {
this.rpo = value
}
/**
* @param value Reserved for future use.
*/
@JvmName("ncamtytmyrlnllrw")
public suspend fun satisfiesPZS(`value`: Output) {
this.satisfiesPZS = value
}
/**
* @param value The URI of this bucket.
*/
@JvmName("iwrlgqkdokyiqneq")
public suspend fun selfLink(`value`: Output) {
this.selfLink = value
}
/**
* @param value The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
*/
@JvmName("euucsmaoveotuqvi")
public suspend fun storageClass(`value`: Output) {
this.storageClass = value
}
/**
* @param value The creation time of the bucket in RFC 3339 format.
*/
@JvmName("tbmatejtsarcujak")
public suspend fun timeCreated(`value`: Output) {
this.timeCreated = value
}
/**
* @param value The modification time of the bucket in RFC 3339 format.
*/
@JvmName("qpnigixoyhatfbce")
public suspend fun updated(`value`: Output) {
this.updated = value
}
/**
* @param value The project to be billed for this request.
*/
@JvmName("thwdahffneytmccx")
public suspend fun userProject(`value`: Output) {
this.userProject = value
}
/**
* @param value The bucket's versioning configuration.
*/
@JvmName("cesgxjiiqinhldgh")
public suspend fun versioning(`value`: Output) {
this.versioning = value
}
/**
* @param value The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information.
*/
@JvmName("jkdpcwfxjiveghmw")
public suspend fun website(`value`: Output) {
this.website = value
}
/**
* @param value Access controls on the bucket.
*/
@JvmName("vewwtadgmmimxmth")
public suspend fun acl(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.acl = mapped
}
/**
* @param argument Access controls on the bucket.
*/
@JvmName("ddjtcndigaxunaei")
public suspend fun acl(argument: List Unit>) {
val toBeMapped = argument.toList().map {
BucketAccessControlArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.acl = mapped
}
/**
* @param argument Access controls on the bucket.
*/
@JvmName("oldyselasfomxxlm")
public suspend fun acl(vararg argument: suspend BucketAccessControlArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
BucketAccessControlArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.acl = mapped
}
/**
* @param argument Access controls on the bucket.
*/
@JvmName("tydfeqnjoxxoauim")
public suspend fun acl(argument: suspend BucketAccessControlArgsBuilder.() -> Unit) {
val toBeMapped = listOf(BucketAccessControlArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.acl = mapped
}
/**
* @param values Access controls on the bucket.
*/
@JvmName("ayjqdmaxrtrvtxqs")
public suspend fun acl(vararg values: BucketAccessControlArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.acl = mapped
}
/**
* @param value The bucket's Autoclass configuration.
*/
@JvmName("vjyhlqgrqfvoqruw")
public suspend fun autoclass(`value`: BucketAutoclassArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.autoclass = mapped
}
/**
* @param argument The bucket's Autoclass configuration.
*/
@JvmName("qwkjxhsevrgdfcea")
public suspend fun autoclass(argument: suspend BucketAutoclassArgsBuilder.() -> Unit) {
val toBeMapped = BucketAutoclassArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.autoclass = mapped
}
/**
* @param value The bucket's billing configuration.
*/
@JvmName("iepurybsphwxqkpo")
public suspend fun billing(`value`: BucketBillingArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.billing = mapped
}
/**
* @param argument The bucket's billing configuration.
*/
@JvmName("nxeousmsbpnhciay")
public suspend fun billing(argument: suspend BucketBillingArgsBuilder.() -> Unit) {
val toBeMapped = BucketBillingArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.billing = mapped
}
/**
* @param value The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("jjqspbvowqwykxpl")
public suspend fun cors(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.cors = mapped
}
/**
* @param argument The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("kmlitlhwddkoxduc")
public suspend fun cors(argument: List Unit>) {
val toBeMapped = argument.toList().map {
BucketCorsItemArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.cors = mapped
}
/**
* @param argument The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("ajwstpuyqqjxqgff")
public suspend fun cors(vararg argument: suspend BucketCorsItemArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
BucketCorsItemArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.cors = mapped
}
/**
* @param argument The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("yqpraukbdrtxdxti")
public suspend fun cors(argument: suspend BucketCorsItemArgsBuilder.() -> Unit) {
val toBeMapped = listOf(BucketCorsItemArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.cors = mapped
}
/**
* @param values The bucket's Cross-Origin Resource Sharing (CORS) configuration.
*/
@JvmName("uufebxqqcnqpdrcv")
public suspend fun cors(vararg values: BucketCorsItemArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.cors = mapped
}
/**
* @param value The bucket's custom placement configuration for Custom Dual Regions.
*/
@JvmName("kqpgcwgjveaqcrbd")
public suspend fun customPlacementConfig(`value`: BucketCustomPlacementConfigArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.customPlacementConfig = mapped
}
/**
* @param argument The bucket's custom placement configuration for Custom Dual Regions.
*/
@JvmName("ktqnbwhrklekslfg")
public suspend fun customPlacementConfig(argument: suspend BucketCustomPlacementConfigArgsBuilder.() -> Unit) {
val toBeMapped = BucketCustomPlacementConfigArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.customPlacementConfig = mapped
}
/**
* @param value The default value for event-based hold on newly created objects in this bucket. Event-based hold is a way to retain objects indefinitely until an event occurs, signified by the hold's release. After being released, such objects will be subject to bucket-level retention (if any). One sample use case of this flag is for banks to hold loan documents for at least 3 years after loan is paid in full. Here, bucket-level retention is 3 years and the event is loan being paid in full. In this example, these objects will be held intact for any number of years until the event has occurred (event-based hold on the object is released) and then 3 more years after that. That means retention duration of the objects begins from the moment event-based hold transitioned from true to false. Objects under event-based hold cannot be deleted, overwritten or archived until the hold is removed.
*/
@JvmName("dopgkkplksytyaae")
public suspend fun defaultEventBasedHold(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.defaultEventBasedHold = mapped
}
/**
* @param value Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("aeidaiykgrsxdnex")
public suspend fun defaultObjectAcl(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.defaultObjectAcl = mapped
}
/**
* @param argument Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("bpkjdjrpdurhrper")
public suspend fun defaultObjectAcl(argument: List Unit>) {
val toBeMapped = argument.toList().map {
ObjectAccessControlArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.defaultObjectAcl = mapped
}
/**
* @param argument Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("oomryoahdpufsdyt")
public suspend fun defaultObjectAcl(vararg argument: suspend ObjectAccessControlArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
ObjectAccessControlArgsBuilder().applySuspend {
it()
}.build()
}
val mapped = of(toBeMapped)
this.defaultObjectAcl = mapped
}
/**
* @param argument Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("yuowutofgfwisawx")
public suspend fun defaultObjectAcl(argument: suspend ObjectAccessControlArgsBuilder.() -> Unit) {
val toBeMapped = listOf(ObjectAccessControlArgsBuilder().applySuspend { argument() }.build())
val mapped = of(toBeMapped)
this.defaultObjectAcl = mapped
}
/**
* @param values Default access controls to apply to new objects when no ACL is provided.
*/
@JvmName("ddkwwvdyphfukkot")
public suspend fun defaultObjectAcl(vararg values: ObjectAccessControlArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.defaultObjectAcl = mapped
}
/**
* @param value Encryption configuration for a bucket.
*/
@JvmName("hftyojhmwvkusxlq")
public suspend fun encryption(`value`: BucketEncryptionArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.encryption = mapped
}
/**
* @param argument Encryption configuration for a bucket.
*/
@JvmName("sdjmvpigtlnjhbyy")
public suspend fun encryption(argument: suspend BucketEncryptionArgsBuilder.() -> Unit) {
val toBeMapped = BucketEncryptionArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.encryption = mapped
}
/**
* @param value HTTP 1.1 Entity tag for the bucket.
*/
@JvmName("hvecwpmonufocmbt")
public suspend fun etag(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.etag = mapped
}
/**
* @param value The bucket's IAM configuration.
*/
@JvmName("qlyhytfejwfcbenx")
public suspend fun iamConfiguration(`value`: BucketIamConfigurationArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.iamConfiguration = mapped
}
/**
* @param argument The bucket's IAM configuration.
*/
@JvmName("jfkrgxjiivjpbkxy")
public suspend fun iamConfiguration(argument: suspend BucketIamConfigurationArgsBuilder.() -> Unit) {
val toBeMapped = BucketIamConfigurationArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.iamConfiguration = mapped
}
/**
* @param value The ID of the bucket. For buckets, the id and name properties are the same.
*/
@JvmName("entbajnnsdudaqpe")
public suspend fun id(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.id = mapped
}
/**
* @param value The kind of item this is. For buckets, this is always storage#bucket.
*/
@JvmName("jixawemcqdvkbyik")
public suspend fun kind(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kind = mapped
}
/**
* @param value User-provided labels, in key/value pairs.
*/
@JvmName("vxrxcqqjwinfsyjr")
public suspend fun labels(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.labels = mapped
}
/**
* @param values User-provided labels, in key/value pairs.
*/
@JvmName("unsoqqbtjtimtsti")
public fun labels(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.labels = mapped
}
/**
* @param value The bucket's lifecycle configuration. See lifecycle management for more information.
*/
@JvmName("grocnqedkcbcyvgt")
public suspend fun lifecycle(`value`: BucketLifecycleArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.lifecycle = mapped
}
/**
* @param argument The bucket's lifecycle configuration. See lifecycle management for more information.
*/
@JvmName("hoobpaaflwvjnbfy")
public suspend fun lifecycle(argument: suspend BucketLifecycleArgsBuilder.() -> Unit) {
val toBeMapped = BucketLifecycleArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.lifecycle = mapped
}
/**
* @param value The location of the bucket. Object data for objects in the bucket resides in physical storage within this region. Defaults to US. See the developer's guide for the authoritative list.
*/
@JvmName("kwcddlknskmwrdwd")
public suspend fun location(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.location = mapped
}
/**
* @param value The type of the bucket location.
*/
@JvmName("etarwlnonlcsdqmr")
public suspend fun locationType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.locationType = mapped
}
/**
* @param value The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
*/
@JvmName("oabnlefjwluxkica")
public suspend fun logging(`value`: BucketLoggingArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.logging = mapped
}
/**
* @param argument The bucket's logging configuration, which defines the destination bucket and optional name prefix for the current bucket's logs.
*/
@JvmName("yxtnjhruvdsglcrc")
public suspend fun logging(argument: suspend BucketLoggingArgsBuilder.() -> Unit) {
val toBeMapped = BucketLoggingArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.logging = mapped
}
/**
* @param value The metadata generation of this bucket.
*/
@JvmName("rqjrmcsfhifpvxuq")
public suspend fun metageneration(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.metageneration = mapped
}
/**
* @param value The name of the bucket.
*/
@JvmName("hrqrisxtlqjjrjsi")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value The owner of the bucket. This is always the project team's owner group.
*/
@JvmName("whnsdckjgkbpglfj")
public suspend fun owner(`value`: BucketOwnerArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.owner = mapped
}
/**
* @param argument The owner of the bucket. This is always the project team's owner group.
*/
@JvmName("lwipknjsbpkdiyvu")
public suspend fun owner(argument: suspend BucketOwnerArgsBuilder.() -> Unit) {
val toBeMapped = BucketOwnerArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.owner = mapped
}
/**
* @param value Apply a predefined set of access controls to this bucket.
*/
@JvmName("povjrckenwyaxjmv")
public suspend fun predefinedAcl(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.predefinedAcl = mapped
}
/**
* @param value Apply a predefined set of default object access controls to this bucket.
*/
@JvmName("ycaxttrngwruyehr")
public suspend fun predefinedDefaultObjectAcl(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.predefinedDefaultObjectAcl = mapped
}
/**
* @param value A valid API project identifier.
*/
@JvmName("oduecqoxiuprrwsi")
public suspend fun project(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.project = mapped
}
/**
* @param value The project number of the project the bucket belongs to.
*/
@JvmName("ljaugjphxsrmnblm")
public suspend fun projectNumber(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.projectNumber = mapped
}
/**
* @param value Set of properties to return. Defaults to noAcl, unless the bucket resource specifies acl or defaultObjectAcl properties, when it defaults to full.
*/
@JvmName("javqacvviqwcdewn")
public suspend fun projection(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.projection = mapped
}
/**
* @param value The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage.buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error.
*/
@JvmName("cfxejujbmrokqyqc")
public suspend fun retentionPolicy(`value`: BucketRetentionPolicyArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.retentionPolicy = mapped
}
/**
* @param argument The bucket's retention policy. The retention policy enforces a minimum retention time for all objects contained in the bucket, based on their creation time. Any attempt to overwrite or delete objects younger than the retention period will result in a PERMISSION_DENIED error. An unlocked retention policy can be modified or removed from the bucket via a storage.buckets.update operation. A locked retention policy cannot be removed or shortened in duration for the lifetime of the bucket. Attempting to remove or decrease period of a locked retention policy will result in a PERMISSION_DENIED error.
*/
@JvmName("hwhiwtymhouevfii")
public suspend fun retentionPolicy(argument: suspend BucketRetentionPolicyArgsBuilder.() -> Unit) {
val toBeMapped = BucketRetentionPolicyArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.retentionPolicy = mapped
}
/**
* @param value The Recovery Point Objective (RPO) of this bucket. Set to ASYNC_TURBO to turn on Turbo Replication on a bucket.
*/
@JvmName("ijkeusemimhrnwag")
public suspend fun rpo(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.rpo = mapped
}
/**
* @param value Reserved for future use.
*/
@JvmName("piglycjbmeiyotop")
public suspend fun satisfiesPZS(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.satisfiesPZS = mapped
}
/**
* @param value The URI of this bucket.
*/
@JvmName("xufdarnncsuqobrv")
public suspend fun selfLink(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.selfLink = mapped
}
/**
* @param value The bucket's default storage class, used whenever no storageClass is specified for a newly-created object. This defines how objects in the bucket are stored and determines the SLA and the cost of storage. Values include MULTI_REGIONAL, REGIONAL, STANDARD, NEARLINE, COLDLINE, ARCHIVE, and DURABLE_REDUCED_AVAILABILITY. If this value is not specified when the bucket is created, it will default to STANDARD. For more information, see storage classes.
*/
@JvmName("bgwthiahmxuvruob")
public suspend fun storageClass(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.storageClass = mapped
}
/**
* @param value The creation time of the bucket in RFC 3339 format.
*/
@JvmName("koquocerrogtqkqk")
public suspend fun timeCreated(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.timeCreated = mapped
}
/**
* @param value The modification time of the bucket in RFC 3339 format.
*/
@JvmName("epgboekrmscueims")
public suspend fun updated(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.updated = mapped
}
/**
* @param value The project to be billed for this request.
*/
@JvmName("emcgwmohefwtdwek")
public suspend fun userProject(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.userProject = mapped
}
/**
* @param value The bucket's versioning configuration.
*/
@JvmName("tiejictmfyhcskkk")
public suspend fun versioning(`value`: BucketVersioningArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.versioning = mapped
}
/**
* @param argument The bucket's versioning configuration.
*/
@JvmName("bpnoknbhosarxmml")
public suspend fun versioning(argument: suspend BucketVersioningArgsBuilder.() -> Unit) {
val toBeMapped = BucketVersioningArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.versioning = mapped
}
/**
* @param value The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information.
*/
@JvmName("osoptwionurbygyu")
public suspend fun website(`value`: BucketWebsiteArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.website = mapped
}
/**
* @param argument The bucket's website configuration, controlling how the service behaves when accessing bucket contents as a web site. See the Static Website Examples for more information.
*/
@JvmName("mjrokgoqlhquedwl")
public suspend fun website(argument: suspend BucketWebsiteArgsBuilder.() -> Unit) {
val toBeMapped = BucketWebsiteArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.website = mapped
}
internal fun build(): BucketArgs = BucketArgs(
acl = acl,
autoclass = autoclass,
billing = billing,
cors = cors,
customPlacementConfig = customPlacementConfig,
defaultEventBasedHold = defaultEventBasedHold,
defaultObjectAcl = defaultObjectAcl,
encryption = encryption,
etag = etag,
iamConfiguration = iamConfiguration,
id = id,
kind = kind,
labels = labels,
lifecycle = lifecycle,
location = location,
locationType = locationType,
logging = logging,
metageneration = metageneration,
name = name,
owner = owner,
predefinedAcl = predefinedAcl,
predefinedDefaultObjectAcl = predefinedDefaultObjectAcl,
project = project,
projectNumber = projectNumber,
projection = projection,
retentionPolicy = retentionPolicy,
rpo = rpo,
satisfiesPZS = satisfiesPZS,
selfLink = selfLink,
storageClass = storageClass,
timeCreated = timeCreated,
updated = updated,
userProject = userProject,
versioning = versioning,
website = website,
)
}