UNPKG

@pulumi/digitalocean

Version:

A Pulumi package for creating and managing DigitalOcean cloud resources.

115 lines 4.51 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.SpacesKey = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("./utilities"); /** * Provides a key resource for Spaces, DigitalOcean's object storage product. * * The [Spaces API](https://docs.digitalocean.com/reference/api/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. * * As a Spaces owner, you limit others’ access to your buckets using Spaces access * keys. Access keys can provide several levels of permissions to create, destroy, * read, and write to specific associated buckets. However, access keys only limit * access to certain commands using the S3 API or CLI, not the control panel or * other DigitalOcean resources. * * ## Example Usage * * ### Create a New Key * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as digitalocean from "@pulumi/digitalocean"; * * const foobar = new digitalocean.SpacesKey("foobar", {name: "foobar"}); * ``` * * ### Create a New Key with Grants * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as digitalocean from "@pulumi/digitalocean"; * * const foobar = new digitalocean.SpacesKey("foobar", { * name: "foobar", * grants: [{ * bucket: "my-bucket", * permission: "read", * }], * }); * ``` * * ### Create a New Key with full access * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as digitalocean from "@pulumi/digitalocean"; * * const foobar = new digitalocean.SpacesKey("foobar", { * name: "foobar", * grants: [{ * bucket: "", * permission: "fullaccess", * }], * }); * ``` */ class SpacesKey extends pulumi.CustomResource { /** * Get an existing SpacesKey resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name, id, state, opts) { return new SpacesKey(name, state, Object.assign(Object.assign({}, opts), { id: id })); } /** * Returns true if the given object is an instance of SpacesKey. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj) { if (obj === undefined || obj === null) { return false; } return obj['__pulumiType'] === SpacesKey.__pulumiType; } constructor(name, argsOrState, opts) { let resourceInputs = {}; opts = opts || {}; if (opts.id) { const state = argsOrState; resourceInputs["accessKey"] = state ? state.accessKey : undefined; resourceInputs["createdAt"] = state ? state.createdAt : undefined; resourceInputs["grants"] = state ? state.grants : undefined; resourceInputs["name"] = state ? state.name : undefined; resourceInputs["secretKey"] = state ? state.secretKey : undefined; } else { const args = argsOrState; resourceInputs["grants"] = args ? args.grants : undefined; resourceInputs["name"] = args ? args.name : undefined; resourceInputs["accessKey"] = undefined /*out*/; resourceInputs["createdAt"] = undefined /*out*/; resourceInputs["secretKey"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); const secretOpts = { additionalSecretOutputs: ["secretKey"] }; opts = pulumi.mergeOptions(opts, secretOpts); super(SpacesKey.__pulumiType, name, resourceInputs, opts); } } exports.SpacesKey = SpacesKey; /** @internal */ SpacesKey.__pulumiType = 'digitalocean:index/spacesKey:SpacesKey'; //# sourceMappingURL=spacesKey.js.map