UNPKG

@pulumi/digitalocean

Version:

A Pulumi package for creating and managing DigitalOcean cloud resources.

181 lines (180 loc) 6.61 kB
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>; }