com.pulumi.gcp.storage.kotlin.BucketArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-gcp-kotlin Show documentation
Show all versions of pulumi-gcp-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.gcp.storage.kotlin
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.storage.BucketArgs.builder
import com.pulumi.gcp.storage.kotlin.inputs.BucketAutoclassArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketAutoclassArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketCorArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketCorArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketCustomPlacementConfigArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketCustomPlacementConfigArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketEncryptionArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketEncryptionArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketLifecycleRuleArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketLifecycleRuleArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketLoggingArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketLoggingArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketRetentionPolicyArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketRetentionPolicyArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketSoftDeletePolicyArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketSoftDeletePolicyArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketVersioningArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketVersioningArgsBuilder
import com.pulumi.gcp.storage.kotlin.inputs.BucketWebsiteArgs
import com.pulumi.gcp.storage.kotlin.inputs.BucketWebsiteArgsBuilder
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 in Google cloud storage service (GCS).
* Once a bucket has been created, its location can't be changed.
* For more information see
* [the official documentation](https://cloud.google.com/storage/docs/overview)
* and
* [API](https://cloud.google.com/storage/docs/json_api/v1/buckets).
* **Note**: If the project id is not set on the resource or in the provider block it will be dynamically
* determined which will require enabling the compute api.
* ## Example Usage
* ### Creating A Private Bucket In Standard Storage, In The EU Region. Bucket Configured As Static Website And CORS Configurations
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
* const static_site = new gcp.storage.Bucket("static-site", {
* name: "image-store.com",
* location: "EU",
* forceDestroy: true,
* uniformBucketLevelAccess: true,
* website: {
* mainPageSuffix: "index.html",
* notFoundPage: "404.html",
* },
* cors: [{
* origins: ["http://image-store.com"],
* methods: [
* "GET",
* "HEAD",
* "PUT",
* "POST",
* "DELETE",
* ],
* responseHeaders: ["*"],
* maxAgeSeconds: 3600,
* }],
* });
* ```
* ```python
* import pulumi
* import pulumi_gcp as gcp
* static_site = gcp.storage.Bucket("static-site",
* name="image-store.com",
* location="EU",
* force_destroy=True,
* uniform_bucket_level_access=True,
* website=gcp.storage.BucketWebsiteArgs(
* main_page_suffix="index.html",
* not_found_page="404.html",
* ),
* cors=[gcp.storage.BucketCorArgs(
* origins=["http://image-store.com"],
* methods=[
* "GET",
* "HEAD",
* "PUT",
* "POST",
* "DELETE",
* ],
* response_headers=["*"],
* max_age_seconds=3600,
* )])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Gcp = Pulumi.Gcp;
* return await Deployment.RunAsync(() =>
* {
* var static_site = new Gcp.Storage.Bucket("static-site", new()
* {
* Name = "image-store.com",
* Location = "EU",
* ForceDestroy = true,
* UniformBucketLevelAccess = true,
* Website = new Gcp.Storage.Inputs.BucketWebsiteArgs
* {
* MainPageSuffix = "index.html",
* NotFoundPage = "404.html",
* },
* Cors = new[]
* {
* new Gcp.Storage.Inputs.BucketCorArgs
* {
* Origins = new[]
* {
* "http://image-store.com",
* },
* Methods = new[]
* {
* "GET",
* "HEAD",
* "PUT",
* "POST",
* "DELETE",
* },
* ResponseHeaders = new[]
* {
* "*",
* },
* MaxAgeSeconds = 3600,
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := storage.NewBucket(ctx, "static-site", &storage.BucketArgs{
* Name: pulumi.String("image-store.com"),
* Location: pulumi.String("EU"),
* ForceDestroy: pulumi.Bool(true),
* UniformBucketLevelAccess: pulumi.Bool(true),
* Website: &storage.BucketWebsiteArgs{
* MainPageSuffix: pulumi.String("index.html"),
* NotFoundPage: pulumi.String("404.html"),
* },
* Cors: storage.BucketCorArray{
* &storage.BucketCorArgs{
* Origins: pulumi.StringArray{
* pulumi.String("http://image-store.com"),
* },
* Methods: pulumi.StringArray{
* pulumi.String("GET"),
* pulumi.String("HEAD"),
* pulumi.String("PUT"),
* pulumi.String("POST"),
* pulumi.String("DELETE"),
* },
* ResponseHeaders: pulumi.StringArray{
* pulumi.String("*"),
* },
* MaxAgeSeconds: pulumi.Int(3600),
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.gcp.storage.Bucket;
* import com.pulumi.gcp.storage.BucketArgs;
* import com.pulumi.gcp.storage.inputs.BucketWebsiteArgs;
* import com.pulumi.gcp.storage.inputs.BucketCorArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var static_site = new Bucket("static-site", BucketArgs.builder()
* .name("image-store.com")
* .location("EU")
* .forceDestroy(true)
* .uniformBucketLevelAccess(true)
* .website(BucketWebsiteArgs.builder()
* .mainPageSuffix("index.html")
* .notFoundPage("404.html")
* .build())
* .cors(BucketCorArgs.builder()
* .origins("http://image-store.com")
* .methods(
* "GET",
* "HEAD",
* "PUT",
* "POST",
* "DELETE")
* .responseHeaders("*")
* .maxAgeSeconds(3600)
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* static-site:
* type: gcp:storage:Bucket
* properties:
* name: image-store.com
* location: EU
* forceDestroy: true
* uniformBucketLevelAccess: true
* website:
* mainPageSuffix: index.html
* notFoundPage: 404.html
* cors:
* - origins:
* - http://image-store.com
* methods:
* - GET
* - HEAD
* - PUT
* - POST
* - DELETE
* responseHeaders:
* - '*'
* maxAgeSeconds: 3600
* ```
*
* ### Life Cycle Settings For Storage Bucket Objects
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
* const auto_expire = new gcp.storage.Bucket("auto-expire", {
* name: "auto-expiring-bucket",
* location: "US",
* forceDestroy: true,
* lifecycleRules: [
* {
* condition: {
* age: 3,
* },
* action: {
* type: "Delete",
* },
* },
* {
* condition: {
* age: 1,
* },
* action: {
* type: "AbortIncompleteMultipartUpload",
* },
* },
* ],
* });
* ```
* ```python
* import pulumi
* import pulumi_gcp as gcp
* auto_expire = gcp.storage.Bucket("auto-expire",
* name="auto-expiring-bucket",
* location="US",
* force_destroy=True,
* lifecycle_rules=[
* gcp.storage.BucketLifecycleRuleArgs(
* condition=gcp.storage.BucketLifecycleRuleConditionArgs(
* age=3,
* ),
* action=gcp.storage.BucketLifecycleRuleActionArgs(
* type="Delete",
* ),
* ),
* gcp.storage.BucketLifecycleRuleArgs(
* condition=gcp.storage.BucketLifecycleRuleConditionArgs(
* age=1,
* ),
* action=gcp.storage.BucketLifecycleRuleActionArgs(
* type="AbortIncompleteMultipartUpload",
* ),
* ),
* ])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Gcp = Pulumi.Gcp;
* return await Deployment.RunAsync(() =>
* {
* var auto_expire = new Gcp.Storage.Bucket("auto-expire", new()
* {
* Name = "auto-expiring-bucket",
* Location = "US",
* ForceDestroy = true,
* LifecycleRules = new[]
* {
* new Gcp.Storage.Inputs.BucketLifecycleRuleArgs
* {
* Condition = new Gcp.Storage.Inputs.BucketLifecycleRuleConditionArgs
* {
* Age = 3,
* },
* Action = new Gcp.Storage.Inputs.BucketLifecycleRuleActionArgs
* {
* Type = "Delete",
* },
* },
* new Gcp.Storage.Inputs.BucketLifecycleRuleArgs
* {
* Condition = new Gcp.Storage.Inputs.BucketLifecycleRuleConditionArgs
* {
* Age = 1,
* },
* Action = new Gcp.Storage.Inputs.BucketLifecycleRuleActionArgs
* {
* Type = "AbortIncompleteMultipartUpload",
* },
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := storage.NewBucket(ctx, "auto-expire", &storage.BucketArgs{
* Name: pulumi.String("auto-expiring-bucket"),
* Location: pulumi.String("US"),
* ForceDestroy: pulumi.Bool(true),
* LifecycleRules: storage.BucketLifecycleRuleArray{
* &storage.BucketLifecycleRuleArgs{
* Condition: &storage.BucketLifecycleRuleConditionArgs{
* Age: pulumi.Int(3),
* },
* Action: &storage.BucketLifecycleRuleActionArgs{
* Type: pulumi.String("Delete"),
* },
* },
* &storage.BucketLifecycleRuleArgs{
* Condition: &storage.BucketLifecycleRuleConditionArgs{
* Age: pulumi.Int(1),
* },
* Action: &storage.BucketLifecycleRuleActionArgs{
* Type: pulumi.String("AbortIncompleteMultipartUpload"),
* },
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.gcp.storage.Bucket;
* import com.pulumi.gcp.storage.BucketArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleConditionArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleActionArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var auto_expire = new Bucket("auto-expire", BucketArgs.builder()
* .name("auto-expiring-bucket")
* .location("US")
* .forceDestroy(true)
* .lifecycleRules(
* BucketLifecycleRuleArgs.builder()
* .condition(BucketLifecycleRuleConditionArgs.builder()
* .age(3)
* .build())
* .action(BucketLifecycleRuleActionArgs.builder()
* .type("Delete")
* .build())
* .build(),
* BucketLifecycleRuleArgs.builder()
* .condition(BucketLifecycleRuleConditionArgs.builder()
* .age(1)
* .build())
* .action(BucketLifecycleRuleActionArgs.builder()
* .type("AbortIncompleteMultipartUpload")
* .build())
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* auto-expire:
* type: gcp:storage:Bucket
* properties:
* name: auto-expiring-bucket
* location: US
* forceDestroy: true
* lifecycleRules:
* - condition:
* age: 3
* action:
* type: Delete
* - condition:
* age: 1
* action:
* type: AbortIncompleteMultipartUpload
* ```
*
* ### Life Cycle Settings For Storage Bucket Objects With `No_age` Enabled
* When creating a life cycle condition that does not also include an `age` field, a default `age` of 0 will be set. Set the `no_age` flag to `true` to prevent this and avoid any potentially unintended interactions.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
* const no_age_enabled = new gcp.storage.Bucket("no-age-enabled", {
* name: "no-age-enabled-bucket",
* location: "US",
* forceDestroy: true,
* lifecycleRules: [{
* action: {
* type: "Delete",
* },
* condition: {
* daysSinceNoncurrentTime: 3,
* noAge: true,
* },
* }],
* });
* ```
* ```python
* import pulumi
* import pulumi_gcp as gcp
* no_age_enabled = gcp.storage.Bucket("no-age-enabled",
* name="no-age-enabled-bucket",
* location="US",
* force_destroy=True,
* lifecycle_rules=[gcp.storage.BucketLifecycleRuleArgs(
* action=gcp.storage.BucketLifecycleRuleActionArgs(
* type="Delete",
* ),
* condition=gcp.storage.BucketLifecycleRuleConditionArgs(
* days_since_noncurrent_time=3,
* no_age=True,
* ),
* )])
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Gcp = Pulumi.Gcp;
* return await Deployment.RunAsync(() =>
* {
* var no_age_enabled = new Gcp.Storage.Bucket("no-age-enabled", new()
* {
* Name = "no-age-enabled-bucket",
* Location = "US",
* ForceDestroy = true,
* LifecycleRules = new[]
* {
* new Gcp.Storage.Inputs.BucketLifecycleRuleArgs
* {
* Action = new Gcp.Storage.Inputs.BucketLifecycleRuleActionArgs
* {
* Type = "Delete",
* },
* Condition = new Gcp.Storage.Inputs.BucketLifecycleRuleConditionArgs
* {
* DaysSinceNoncurrentTime = 3,
* NoAge = true,
* },
* },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := storage.NewBucket(ctx, "no-age-enabled", &storage.BucketArgs{
* Name: pulumi.String("no-age-enabled-bucket"),
* Location: pulumi.String("US"),
* ForceDestroy: pulumi.Bool(true),
* LifecycleRules: storage.BucketLifecycleRuleArray{
* &storage.BucketLifecycleRuleArgs{
* Action: &storage.BucketLifecycleRuleActionArgs{
* Type: pulumi.String("Delete"),
* },
* Condition: &storage.BucketLifecycleRuleConditionArgs{
* DaysSinceNoncurrentTime: pulumi.Int(3),
* NoAge: pulumi.Bool(true),
* },
* },
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.gcp.storage.Bucket;
* import com.pulumi.gcp.storage.BucketArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleActionArgs;
* import com.pulumi.gcp.storage.inputs.BucketLifecycleRuleConditionArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var no_age_enabled = new Bucket("no-age-enabled", BucketArgs.builder()
* .name("no-age-enabled-bucket")
* .location("US")
* .forceDestroy(true)
* .lifecycleRules(BucketLifecycleRuleArgs.builder()
* .action(BucketLifecycleRuleActionArgs.builder()
* .type("Delete")
* .build())
* .condition(BucketLifecycleRuleConditionArgs.builder()
* .daysSinceNoncurrentTime(3)
* .noAge(true)
* .build())
* .build())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* no-age-enabled:
* type: gcp:storage:Bucket
* properties:
* name: no-age-enabled-bucket
* location: US
* forceDestroy: true
* lifecycleRules:
* - action:
* type: Delete
* condition:
* daysSinceNoncurrentTime: 3
* noAge: true
* ```
*
* ### Enabling Public Access Prevention
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
* const auto_expire = new gcp.storage.Bucket("auto-expire", {
* name: "no-public-access-bucket",
* location: "US",
* forceDestroy: true,
* publicAccessPrevention: "enforced",
* });
* ```
* ```python
* import pulumi
* import pulumi_gcp as gcp
* auto_expire = gcp.storage.Bucket("auto-expire",
* name="no-public-access-bucket",
* location="US",
* force_destroy=True,
* public_access_prevention="enforced")
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Gcp = Pulumi.Gcp;
* return await Deployment.RunAsync(() =>
* {
* var auto_expire = new Gcp.Storage.Bucket("auto-expire", new()
* {
* Name = "no-public-access-bucket",
* Location = "US",
* ForceDestroy = true,
* PublicAccessPrevention = "enforced",
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := storage.NewBucket(ctx, "auto-expire", &storage.BucketArgs{
* Name: pulumi.String("no-public-access-bucket"),
* Location: pulumi.String("US"),
* ForceDestroy: pulumi.Bool(true),
* PublicAccessPrevention: pulumi.String("enforced"),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.gcp.storage.Bucket;
* import com.pulumi.gcp.storage.BucketArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var auto_expire = new Bucket("auto-expire", BucketArgs.builder()
* .name("no-public-access-bucket")
* .location("US")
* .forceDestroy(true)
* .publicAccessPrevention("enforced")
* .build());
* }
* }
* ```
* ```yaml
* resources:
* auto-expire:
* type: gcp:storage:Bucket
* properties:
* name: no-public-access-bucket
* location: US
* forceDestroy: true
* publicAccessPrevention: enforced
* ```
*
* ## Import
* Storage buckets can be imported using the `name` or `project/name`. If the project is not
* passed to the import command it will be inferred from the provider block or environment variables.
* If it cannot be inferred it will be queried from the Compute API (this will fail if the API is
* not enabled).
* * `{{project_id}}/{{bucket}}`
* * `{{bucket}}`
* When using the `pulumi import` command, Storage buckets can be imported using one of the formats above. For example:
* ```sh
* $ pulumi import gcp:storage/bucket:Bucket default {{bucket}}
* ```
* ```sh
* $ pulumi import gcp:storage/bucket:Bucket default {{project_id}}/{{bucket}}
* ```
* `false` in state. If you've set it to `true` in config, run `pulumi up` to
* update the value set in state. If you delete this resource before updating the
* value, objects in the bucket will not be destroyed.
* @property autoclass The bucket's [Autoclass](https://cloud.google.com/storage/docs/autoclass) configuration. Structure is documented below.
* @property cors The bucket's [Cross-Origin Resource Sharing (CORS)](https://www.w3.org/TR/cors/) configuration. Multiple blocks of this type are permitted. Structure is documented below.
* @property customPlacementConfig The bucket's custom location configuration, which specifies the individual regions that comprise a dual-region bucket. If the bucket is designated a single or multi-region, the parameters are empty. Structure is documented below.
* @property defaultEventBasedHold Whether or not to automatically apply an eventBasedHold to new objects added to the bucket.
* @property enableObjectRetention Enables [object retention](https://cloud.google.com/storage/docs/object-lock) on a storage bucket.
* @property encryption The bucket's encryption configuration. Structure is documented below.
* @property forceDestroy When deleting a bucket, this
* boolean option will delete all contained objects. If you try to delete a
* bucket that contains objects, the provider will fail that run.
* @property labels A map of key/value label pairs to assign to the bucket.
* @property lifecycleRules The bucket's [Lifecycle Rules](https://cloud.google.com/storage/docs/lifecycle#configuration) configuration. Multiple blocks of this type are permitted. Structure is documented below.
* @property location The [GCS location](https://cloud.google.com/storage/docs/bucket-locations).
* - - -
* @property logging The bucket's [Access & Storage Logs](https://cloud.google.com/storage/docs/access-logs) configuration. Structure is documented below.
* @property name The name of the bucket.
* @property project The ID of the project in which the resource belongs. If it
* is not provided, the provider project is used.
* @property publicAccessPrevention Prevents public access to a bucket. Acceptable values are "inherited" or "enforced". If "inherited", the bucket uses [public access prevention](https://cloud.google.com/storage/docs/public-access-prevention). only if the bucket is subject to the public access prevention organization policy constraint. Defaults to "inherited".
* @property requesterPays Enables [Requester Pays](https://cloud.google.com/storage/docs/requester-pays) on a storage bucket.
* @property retentionPolicy Configuration of the bucket's data retention policy for how long objects in the bucket should be retained. Structure is documented below.
* @property rpo The recovery point objective for cross-region replication of the bucket. Applicable only for dual and multi-region buckets. `"DEFAULT"` sets default replication. `"ASYNC_TURBO"` value enables turbo replication, valid for dual-region buckets only. See [Turbo Replication](https://cloud.google.com/storage/docs/managing-turbo-replication) for more information. If rpo is not specified at bucket creation, it defaults to `"DEFAULT"` for dual and multi-region buckets. **NOTE** If used with single-region bucket, It will throw an error.
* @property softDeletePolicy The bucket's soft delete policy, which defines the period of time that soft-deleted objects will be retained, and cannot
* be permanently deleted. If it is not provided, by default Google Cloud Storage sets this to default soft delete policy
* @property storageClass The [Storage Class](https://cloud.google.com/storage/docs/storage-classes) of the new bucket. Supported values include: `STANDARD`, `MULTI_REGIONAL`, `REGIONAL`, `NEARLINE`, `COLDLINE`, `ARCHIVE`.
* @property uniformBucketLevelAccess Enables [Uniform bucket-level access](https://cloud.google.com/storage/docs/uniform-bucket-level-access) access to a bucket.
* @property versioning The bucket's [Versioning](https://cloud.google.com/storage/docs/object-versioning) configuration. Structure is documented below.
* @property website Configuration if the bucket acts as a website. Structure is documented below.
*/
public data class BucketArgs(
public val autoclass: Output? = null,
public val cors: Output>? = null,
public val customPlacementConfig: Output? = null,
public val defaultEventBasedHold: Output? = null,
public val enableObjectRetention: Output? = null,
public val encryption: Output? = null,
public val forceDestroy: Output? = null,
public val labels: Output
© 2015 - 2024 Weber Informatics LLC | Privacy Policy