UNPKG

@pulumi/linode

Version:

A Pulumi package for creating and managing linode cloud resources.

368 lines (367 loc) 16.6 kB
import * as pulumi from "@pulumi/pulumi"; /** * Provides a Linode Object Storage Object resource. This can be used to create, modify, and delete Linodes Object Storage Objects for Buckets. * * ## Example Usage * * ### Uploading a file to a bucket * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as linode from "@pulumi/linode"; * import * as std from "@pulumi/std"; * * const object = new linode.ObjectStorageObject("object", { * bucket: "my-bucket", * region: "us-mia", * key: "my-object", * secretKey: myKey.secretKey, * accessKey: myKey.accessKey, * source: std.pathexpand({ * input: "~/files/log.txt", * }).then(invoke => invoke.result), * }); * ``` * * ### Uploading plaintext to a bucket * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as linode from "@pulumi/linode"; * * const object = new linode.ObjectStorageObject("object", { * bucket: "my-bucket", * region: "us-mia", * key: "my-object", * secretKey: myKey.secretKey, * accessKey: myKey.accessKey, * content: "This is the content of the Object...", * contentType: "text/plain", * contentLanguage: "en", * }); * ``` * * ### Creating an object using implicitly created object credentials * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as linode from "@pulumi/linode"; * import * as std from "@pulumi/std"; * * const object = new linode.ObjectStorageObject("object", { * bucket: "my-bucket", * region: "us-mia", * key: "my-object", * source: std.pathexpand({ * input: "~/files/log.txt", * }).then(invoke => invoke.result), * }); * ``` */ export declare class ObjectStorageObject extends pulumi.CustomResource { /** * Get an existing ObjectStorageObject 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: string, id: pulumi.Input<pulumi.ID>, state?: ObjectStorageObjectState, opts?: pulumi.CustomResourceOptions): ObjectStorageObject; /** * Returns true if the given object is an instance of ObjectStorageObject. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is ObjectStorageObject; /** * The REQUIRED access key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objAccessKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ readonly accessKey: pulumi.Output<string | undefined>; /** * The canned ACL to apply. (`private`, `public-read`, `authenticated-read`, `public-read-write`, `custom`) (defaults to `private`). */ readonly acl: pulumi.Output<string>; /** * The name of the bucket to put the object in. */ readonly bucket: pulumi.Output<string>; /** * Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. */ readonly cacheControl: pulumi.Output<string | undefined>; /** * The cluster the bucket is in. Required if `region` is not configured. Deprecated in favor of `region`. * * @deprecated The cluster attribute has been deprecated, please consider switching to the region attribute. For example, a cluster value of `us-mia-1` can be translated to a region value of `us-mia`. */ readonly cluster: pulumi.Output<string | undefined>; /** * Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. */ readonly content: pulumi.Output<string | undefined>; /** * Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. */ readonly contentBase64: pulumi.Output<string | undefined>; /** * Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. */ readonly contentDisposition: pulumi.Output<string | undefined>; /** * 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. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. */ readonly contentEncoding: pulumi.Output<string | undefined>; /** * The language the content is in e.g. en-US or en-GB. */ readonly contentLanguage: pulumi.Output<string | undefined>; /** * A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. */ readonly contentType: pulumi.Output<string>; /** * Used with the s3 client to make bucket changes and will be computed automatically if left blank, override for testing/debug purposes. */ readonly endpoint: pulumi.Output<string>; /** * The specific version of this object. */ readonly etag: pulumi.Output<string>; /** * Allow the object to be deleted regardless of any legal hold or object lock (defaults to `false`). */ readonly forceDestroy: pulumi.Output<boolean>; /** * They name of the object once it is in the bucket. */ readonly key: pulumi.Output<string>; /** * A map of keys/values to provision metadata. */ readonly metadata: pulumi.Output<{ [key: string]: string; }>; /** * The cluster the bucket is in. Required if `cluster` is not configured. */ readonly region: pulumi.Output<string | undefined>; /** * The REQUIRED secret key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objSecretKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ readonly secretKey: pulumi.Output<string | undefined>; /** * The path to a file that will be read and uploaded as raw bytes for the object content. The path must either be relative to the root module or absolute. */ readonly source: pulumi.Output<string | undefined>; /** * A unique version ID value for the object. */ readonly versionId: pulumi.Output<string>; /** * Specifies a target URL for website redirect. */ readonly websiteRedirect: pulumi.Output<string | undefined>; /** * Create a ObjectStorageObject resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: ObjectStorageObjectArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering ObjectStorageObject resources. */ export interface ObjectStorageObjectState { /** * The REQUIRED access key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objAccessKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ accessKey?: pulumi.Input<string>; /** * The canned ACL to apply. (`private`, `public-read`, `authenticated-read`, `public-read-write`, `custom`) (defaults to `private`). */ acl?: pulumi.Input<string>; /** * The name of the bucket to put the object in. */ bucket?: pulumi.Input<string>; /** * Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. */ cacheControl?: pulumi.Input<string>; /** * The cluster the bucket is in. Required if `region` is not configured. Deprecated in favor of `region`. * * @deprecated The cluster attribute has been deprecated, please consider switching to the region attribute. For example, a cluster value of `us-mia-1` can be translated to a region value of `us-mia`. */ cluster?: pulumi.Input<string>; /** * Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. */ content?: pulumi.Input<string>; /** * Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. */ contentBase64?: pulumi.Input<string>; /** * Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. */ contentDisposition?: pulumi.Input<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. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. */ contentEncoding?: pulumi.Input<string>; /** * The language the content is in e.g. en-US or en-GB. */ contentLanguage?: pulumi.Input<string>; /** * A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. */ contentType?: pulumi.Input<string>; /** * Used with the s3 client to make bucket changes and will be computed automatically if left blank, override for testing/debug purposes. */ endpoint?: pulumi.Input<string>; /** * The specific version of this object. */ etag?: pulumi.Input<string>; /** * Allow the object to be deleted regardless of any legal hold or object lock (defaults to `false`). */ forceDestroy?: pulumi.Input<boolean>; /** * They name of the object once it is in the bucket. */ key?: pulumi.Input<string>; /** * A map of keys/values to provision metadata. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The cluster the bucket is in. Required if `cluster` is not configured. */ region?: pulumi.Input<string>; /** * The REQUIRED secret key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objSecretKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ secretKey?: pulumi.Input<string>; /** * The path to a file that will be read and uploaded as raw bytes for the object content. The path must either be relative to the root module or absolute. */ source?: pulumi.Input<string>; /** * A unique version ID value for the object. */ versionId?: pulumi.Input<string>; /** * Specifies a target URL for website redirect. */ websiteRedirect?: pulumi.Input<string>; } /** * The set of arguments for constructing a ObjectStorageObject resource. */ export interface ObjectStorageObjectArgs { /** * The REQUIRED access key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objAccessKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ accessKey?: pulumi.Input<string>; /** * The canned ACL to apply. (`private`, `public-read`, `authenticated-read`, `public-read-write`, `custom`) (defaults to `private`). */ acl?: pulumi.Input<string>; /** * The name of the bucket to put the object in. */ bucket: pulumi.Input<string>; /** * Specifies caching behavior along the request/reply chain Read [w3c cacheControl](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9) for further details. */ cacheControl?: pulumi.Input<string>; /** * The cluster the bucket is in. Required if `region` is not configured. Deprecated in favor of `region`. * * @deprecated The cluster attribute has been deprecated, please consider switching to the region attribute. For example, a cluster value of `us-mia-1` can be translated to a region value of `us-mia`. */ cluster?: pulumi.Input<string>; /** * Literal string value to use as the object content, which will be uploaded as UTF-8-encoded text. */ content?: pulumi.Input<string>; /** * Base64-encoded data that will be decoded and uploaded as raw bytes for the object content. This allows safely uploading non-UTF8 binary data, but is recommended only for small content such as the result of the `gzipbase64` function with small text strings. For larger objects, use `source` to stream the content from a disk file. */ contentBase64?: pulumi.Input<string>; /** * Specifies presentational information for the object. Read [w3c contentDisposition](http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1) for further information. */ contentDisposition?: pulumi.Input<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. Read [w3c content encoding](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11) for further information. */ contentEncoding?: pulumi.Input<string>; /** * The language the content is in e.g. en-US or en-GB. */ contentLanguage?: pulumi.Input<string>; /** * A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. */ contentType?: pulumi.Input<string>; /** * Used with the s3 client to make bucket changes and will be computed automatically if left blank, override for testing/debug purposes. */ endpoint?: pulumi.Input<string>; /** * The specific version of this object. */ etag?: pulumi.Input<string>; /** * Allow the object to be deleted regardless of any legal hold or object lock (defaults to `false`). */ forceDestroy?: pulumi.Input<boolean>; /** * They name of the object once it is in the bucket. */ key: pulumi.Input<string>; /** * A map of keys/values to provision metadata. */ metadata?: pulumi.Input<{ [key: string]: pulumi.Input<string>; }>; /** * The cluster the bucket is in. Required if `cluster` is not configured. */ region?: pulumi.Input<string>; /** * The REQUIRED secret key to authenticate with. If it's not specified with the resource, you must provide its value by * * configuring the `objSecretKey` in the provider configuration; * * or, opting-in generating it implicitly at apply-time using `objUseTempKeys` at provider-level. */ secretKey?: pulumi.Input<string>; /** * The path to a file that will be read and uploaded as raw bytes for the object content. The path must either be relative to the root module or absolute. */ source?: pulumi.Input<string>; /** * Specifies a target URL for website redirect. */ websiteRedirect?: pulumi.Input<string>; }