SpacesBucketArgs

data class SpacesBucketArgs(val acl: Output<String>? = null, val corsRules: Output<List<SpacesBucketCorsRuleArgs>>? = null, val forceDestroy: Output<Boolean>? = null, val lifecycleRules: Output<List<SpacesBucketLifecycleRuleArgs>>? = null, val name: Output<String>? = null, val region: Output<Either<String, Region>>? = null, val versioning: Output<SpacesBucketVersioningArgs>? = null) : ConvertibleToJava<SpacesBucketArgs>

Provides a bucket resource for Spaces, DigitalOcean's object storage product. The Spaces API was designed to be interoperable with Amazon's AWS S3 API. This allows users to interact with the service while using the tools they already know. Spaces mirrors S3's authentication framework and requests to Spaces require a key pair similar to Amazon's Access ID and Secret Key. The authentication requirement can be met by either setting the SPACES_ACCESS_KEY_ID and SPACES_SECRET_ACCESS_KEY environment variables or the provider's spaces_access_id and spaces_secret_key arguments to the access ID and secret you generate via the DigitalOcean control panel. For example:

import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const static_assets = new digitalocean.SpacesBucket("static-assets", {});
import pulumi
import pulumi_digitalocean as digitalocean
static_assets = digitalocean.SpacesBucket("static-assets")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DigitalOcean = Pulumi.DigitalOcean;
return await Deployment.RunAsync(() =>
{
var static_assets = new DigitalOcean.SpacesBucket("static-assets");
});
package main
import (
"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := digitalocean.NewSpacesBucket(ctx, "static-assets", nil)
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.SpacesBucket;
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_assets = new SpacesBucket("static-assets");
}
}
resources:
static-assets:
type: digitalocean:SpacesBucket

For more information, See An Introduction to DigitalOcean Spaces

Example Usage

Create a New Bucket

import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const foobar = new digitalocean.SpacesBucket("foobar", {
name: "foobar",
region: digitalocean.Region.NYC3,
});
import pulumi
import pulumi_digitalocean as digitalocean
foobar = digitalocean.SpacesBucket("foobar",
name="foobar",
region=digitalocean.Region.NYC3)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DigitalOcean = Pulumi.DigitalOcean;
return await Deployment.RunAsync(() =>
{
var foobar = new DigitalOcean.SpacesBucket("foobar", new()
{
Name = "foobar",
Region = DigitalOcean.Region.NYC3,
});
});
package main
import (
"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := digitalocean.NewSpacesBucket(ctx, "foobar", &digitalocean.SpacesBucketArgs{
Name: pulumi.String("foobar"),
Region: pulumi.String(digitalocean.RegionNYC3),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.SpacesBucket;
import com.pulumi.digitalocean.SpacesBucketArgs;
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 foobar = new SpacesBucket("foobar", SpacesBucketArgs.builder()
.name("foobar")
.region("nyc3")
.build());
}
}
resources:
foobar:
type: digitalocean:SpacesBucket
properties:
name: foobar
region: nyc3

Create a New Bucket With CORS Rules

import * as pulumi from "@pulumi/pulumi";
import * as digitalocean from "@pulumi/digitalocean";
const foobar = new digitalocean.SpacesBucket("foobar", {
name: "foobar",
region: digitalocean.Region.NYC3,
corsRules: [
{
allowedHeaders: ["*"],
allowedMethods: ["GET"],
allowedOrigins: ["*"],
maxAgeSeconds: 3000,
},
{
allowedHeaders: ["*"],
allowedMethods: [
"PUT",
"POST",
"DELETE",
],
allowedOrigins: ["https://www&#46;example&#46;com"],
maxAgeSeconds: 3000,
},
],
});
import pulumi
import pulumi_digitalocean as digitalocean
foobar = digitalocean.SpacesBucket("foobar",
name="foobar",
region=digitalocean.Region.NYC3,
cors_rules=[
{
"allowed_headers": ["*"],
"allowed_methods": ["GET"],
"allowed_origins": ["*"],
"max_age_seconds": 3000,
},
{
"allowed_headers": ["*"],
"allowed_methods": [
"PUT",
"POST",
"DELETE",
],
"allowed_origins": ["https://www&#46;example&#46;com"],
"max_age_seconds": 3000,
},
])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using DigitalOcean = Pulumi.DigitalOcean;
return await Deployment.RunAsync(() =>
{
var foobar = new DigitalOcean.SpacesBucket("foobar", new()
{
Name = "foobar",
Region = DigitalOcean.Region.NYC3,
CorsRules = new[]
{
new DigitalOcean.Inputs.SpacesBucketCorsRuleArgs
{
AllowedHeaders = new[]
{
"*",
},
AllowedMethods = new[]
{
"GET",
},
AllowedOrigins = new[]
{
"*",
},
MaxAgeSeconds = 3000,
},
new DigitalOcean.Inputs.SpacesBucketCorsRuleArgs
{
AllowedHeaders = new[]
{
"*",
},
AllowedMethods = new[]
{
"PUT",
"POST",
"DELETE",
},
AllowedOrigins = new[]
{
"https://www.example.com",
},
MaxAgeSeconds = 3000,
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := digitalocean.NewSpacesBucket(ctx, "foobar", &digitalocean.SpacesBucketArgs{
Name: pulumi.String("foobar"),
Region: pulumi.String(digitalocean.RegionNYC3),
CorsRules: digitalocean.SpacesBucketCorsRuleArray{
&digitalocean.SpacesBucketCorsRuleArgs{
AllowedHeaders: pulumi.StringArray{
pulumi.String("*"),
},
AllowedMethods: pulumi.StringArray{
pulumi.String("GET"),
},
AllowedOrigins: pulumi.StringArray{
pulumi.String("*"),
},
MaxAgeSeconds: pulumi.Int(3000),
},
&digitalocean.SpacesBucketCorsRuleArgs{
AllowedHeaders: pulumi.StringArray{
pulumi.String("*"),
},
AllowedMethods: pulumi.StringArray{
pulumi.String("PUT"),
pulumi.String("POST"),
pulumi.String("DELETE"),
},
AllowedOrigins: pulumi.StringArray{
pulumi.String("https://www.example.com"),
},
MaxAgeSeconds: pulumi.Int(3000),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.digitalocean.SpacesBucket;
import com.pulumi.digitalocean.SpacesBucketArgs;
import com.pulumi.digitalocean.inputs.SpacesBucketCorsRuleArgs;
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 foobar = new SpacesBucket("foobar", SpacesBucketArgs.builder()
.name("foobar")
.region("nyc3")
.corsRules(
SpacesBucketCorsRuleArgs.builder()
.allowedHeaders("*")
.allowedMethods("GET")
.allowedOrigins("*")
.maxAgeSeconds(3000)
.build(),
SpacesBucketCorsRuleArgs.builder()
.allowedHeaders("*")
.allowedMethods(
"PUT",
"POST",
"DELETE")
.allowedOrigins("https://www.example.com")
.maxAgeSeconds(3000)
.build())
.build());
}
}
resources:
foobar:
type: digitalocean:SpacesBucket
properties:
name: foobar
region: nyc3
corsRules:
- allowedHeaders:
- '*'
allowedMethods:
- GET
allowedOrigins:
- '*'
maxAgeSeconds: 3000
- allowedHeaders:
- '*'
allowedMethods:
- PUT
- POST
- DELETE
allowedOrigins:
- https://www.example.com
maxAgeSeconds: 3000

Import

Buckets can be imported using the region and name attributes (delimited by a comma):

$ pulumi import digitalocean:index/spacesBucket:SpacesBucket foobar `region`,`name`

Constructors

Link copied to clipboard
constructor(acl: Output<String>? = null, corsRules: Output<List<SpacesBucketCorsRuleArgs>>? = null, forceDestroy: Output<Boolean>? = null, lifecycleRules: Output<List<SpacesBucketLifecycleRuleArgs>>? = null, name: Output<String>? = null, region: Output<Either<String, Region>>? = null, versioning: Output<SpacesBucketVersioningArgs>? = null)

Properties

Link copied to clipboard
val acl: Output<String>? = null

Canned ACL applied on bucket creation: private or public-read (Defaults to private)

Link copied to clipboard

A rule of Cross-Origin Resource Sharing (documented below).

Link copied to clipboard
val forceDestroy: Output<Boolean>? = null

Unless true, the bucket will only be destroyed if empty (Defaults to false)

Link copied to clipboard

A configuration of object lifecycle management (documented below).

Link copied to clipboard
val name: Output<String>? = null

The name of the bucket

Link copied to clipboard
val region: Output<Either<String, Region>>? = null

The region where the bucket resides (Defaults to nyc3)

Link copied to clipboard

A state of versioning (documented below)

Functions

Link copied to clipboard
open override fun toJava(): SpacesBucketArgs