@pulumi/digitalocean
Version:
A Pulumi package for creating and managing DigitalOcean cloud resources.
181 lines (180 loc) • 6.61 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
/**
* The Spaces object data source allows access to the metadata and
* _optionally_ (see below) content of an object stored inside a Spaces bucket.
*
* > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable
* `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially
* downloading large amount of data which would be thrown away in favor of metadata.
*
* ## Example Usage
*
* The following example retrieves a text object (which must have a `Content-Type`
* value starting with `text/`) and uses it as the `userData` for a Droplet:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as digitalocean from "@pulumi/digitalocean";
*
* const bootstrapScript = digitalocean.getSpacesBucketObject({
* bucket: "ourcorp-deploy-config",
* region: "nyc3",
* key: "droplet-bootstrap-script.sh",
* });
* const web = new digitalocean.Droplet("web", {
* image: "ubuntu-18-04-x64",
* name: "web-1",
* region: digitalocean.Region.NYC2,
* size: digitalocean.DropletSlug.DropletS1VCPU1GB,
* userData: bootstrapScript.then(bootstrapScript => bootstrapScript.body),
* });
* ```
*/
export declare function getSpacesBucketObject(args: GetSpacesBucketObjectArgs, opts?: pulumi.InvokeOptions): Promise<GetSpacesBucketObjectResult>;
/**
* A collection of arguments for invoking getSpacesBucketObject.
*/
export interface GetSpacesBucketObjectArgs {
/**
* The name of the bucket to read the object from.
*/
bucket: string;
/**
* The full path to the object inside the bucket
*/
key: string;
range?: string;
/**
* The slug of the region where the bucket is stored.
*/
region: string;
/**
* Specific version ID of the object returned (defaults to latest version)
*/
versionId?: string;
}
/**
* A collection of values returned by getSpacesBucketObject.
*/
export interface GetSpacesBucketObjectResult {
/**
* Object data (see **limitations above** to understand cases in which this field is actually available)
*/
readonly body: string;
readonly bucket: string;
/**
* Specifies caching behavior along the request/reply chain.
*/
readonly cacheControl: string;
/**
* Specifies presentational information for the object.
*/
readonly contentDisposition: string;
/**
* Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field.
*/
readonly contentEncoding: string;
/**
* The language the content is in.
*/
readonly contentLanguage: string;
/**
* Size of the body in bytes.
*/
readonly contentLength: number;
/**
* A standard MIME type describing the format of the object data.
*/
readonly contentType: string;
/**
* [ETag](https://en.wikipedia.org/wiki/HTTP_ETag) generated for the object (an MD5 sum of the object content in case it's not encrypted)
*/
readonly etag: string;
/**
* If the object expiration is configured (see [object lifecycle management](http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html)), the field includes this header. It includes the expiry-date and rule-id key value pairs providing object expiration information. The value of the rule-id is URL encoded.
*/
readonly expiration: string;
/**
* The date and time at which the object is no longer cacheable.
*/
readonly expires: string;
/**
* The provider-assigned unique ID for this managed resource.
*/
readonly id: string;
readonly key: string;
/**
* Last modified date of the object in RFC1123 format (e.g. `Mon, 02 Jan 2006 15:04:05 MST`)
*/
readonly lastModified: string;
/**
* A map of metadata stored with the object in Spaces
*/
readonly metadata: {
[key: string]: string;
};
readonly range?: string;
readonly region: string;
/**
* The latest version ID of the object returned.
*/
readonly versionId: string;
/**
* If the bucket is configured as a website, redirects requests for this object to another object in the same bucket or to an external URL. Spaces stores the value of this header in the object metadata.
*/
readonly websiteRedirectLocation: string;
}
/**
* The Spaces object data source allows access to the metadata and
* _optionally_ (see below) content of an object stored inside a Spaces bucket.
*
* > **Note:** The content of an object (`body` field) is available only for objects which have a human-readable
* `Content-Type` (`text/*` and `application/json`). This is to prevent printing unsafe characters and potentially
* downloading large amount of data which would be thrown away in favor of metadata.
*
* ## Example Usage
*
* The following example retrieves a text object (which must have a `Content-Type`
* value starting with `text/`) and uses it as the `userData` for a Droplet:
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as digitalocean from "@pulumi/digitalocean";
*
* const bootstrapScript = digitalocean.getSpacesBucketObject({
* bucket: "ourcorp-deploy-config",
* region: "nyc3",
* key: "droplet-bootstrap-script.sh",
* });
* const web = new digitalocean.Droplet("web", {
* image: "ubuntu-18-04-x64",
* name: "web-1",
* region: digitalocean.Region.NYC2,
* size: digitalocean.DropletSlug.DropletS1VCPU1GB,
* userData: bootstrapScript.then(bootstrapScript => bootstrapScript.body),
* });
* ```
*/
export declare function getSpacesBucketObjectOutput(args: GetSpacesBucketObjectOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output<GetSpacesBucketObjectResult>;
/**
* A collection of arguments for invoking getSpacesBucketObject.
*/
export interface GetSpacesBucketObjectOutputArgs {
/**
* The name of the bucket to read the object from.
*/
bucket: pulumi.Input<string>;
/**
* The full path to the object inside the bucket
*/
key: pulumi.Input<string>;
range?: pulumi.Input<string>;
/**
* The slug of the region where the bucket is stored.
*/
region: pulumi.Input<string>;
/**
* Specific version ID of the object returned (defaults to latest version)
*/
versionId?: pulumi.Input<string>;
}