import * as pulumi from "@pulumi/pulumi"; import * as inputs from "./types/input"; import * as outputs from "./types/output"; /** * Manages UpCloud [Block Storage](https://upcloud.com/products/block-storage) devices. * * ## Import * * The `pulumi import` command can be used, for example: * * ```sh * $ pulumi import upcloud:index/storage:Storage example_storage 0128ae5a-91dd-4ebf-bd1e-304c47f2c652 * ``` */ export declare class Storage extends pulumi.CustomResource { /** * Get an existing Storage 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, state?: StorageState, opts?: pulumi.CustomResourceOptions): Storage; /** * Returns true if the given object is an instance of Storage. 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 Storage; readonly backupRule: pulumi.Output; /** * Block defining another storage/template to clone to storage. */ readonly clone: pulumi.Output; /** * If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. */ readonly deleteAutoresizeBackup: pulumi.Output; /** * Sets if the storage is encrypted at rest. */ readonly encrypt: pulumi.Output; /** * If set to true, provider will attempt to resize partition and filesystem when the size of the storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless `deleteAutoresizeBackup` option is set to true). * Taking and keeping backups incure costs. */ readonly filesystemAutoresize: pulumi.Output; /** * Block defining external data to import to storage */ readonly import: pulumi.Output; /** * User defined key-value pairs to classify the storage. */ readonly labels: pulumi.Output<{ [key: string]: string; }>; /** * The size of the storage in gigabytes. */ readonly size: pulumi.Output; /** * System defined key-value pairs to classify the storage. The keys of system defined labels are prefixed with underscore and can not be modified by the user. */ readonly systemLabels: pulumi.Output<{ [key: string]: string; }>; /** * The tier of the storage. */ readonly tier: pulumi.Output; /** * The title of the storage. */ readonly title: pulumi.Output; /** * The type of the storage. */ readonly type: pulumi.Output; /** * The zone the storage is in, e.g. `de-fra1`. You can list available zones with `upctl zone list`. */ readonly zone: pulumi.Output; /** * Create a Storage 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: StorageArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Storage resources. */ export interface StorageState { backupRule?: pulumi.Input; /** * Block defining another storage/template to clone to storage. */ clone?: pulumi.Input; /** * If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. */ deleteAutoresizeBackup?: pulumi.Input; /** * Sets if the storage is encrypted at rest. */ encrypt?: pulumi.Input; /** * If set to true, provider will attempt to resize partition and filesystem when the size of the storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless `deleteAutoresizeBackup` option is set to true). * Taking and keeping backups incure costs. */ filesystemAutoresize?: pulumi.Input; /** * Block defining external data to import to storage */ import?: pulumi.Input; /** * User defined key-value pairs to classify the storage. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The size of the storage in gigabytes. */ size?: pulumi.Input; /** * System defined key-value pairs to classify the storage. The keys of system defined labels are prefixed with underscore and can not be modified by the user. */ systemLabels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The tier of the storage. */ tier?: pulumi.Input; /** * The title of the storage. */ title?: pulumi.Input; /** * The type of the storage. */ type?: pulumi.Input; /** * The zone the storage is in, e.g. `de-fra1`. You can list available zones with `upctl zone list`. */ zone?: pulumi.Input; } /** * The set of arguments for constructing a Storage resource. */ export interface StorageArgs { backupRule?: pulumi.Input; /** * Block defining another storage/template to clone to storage. */ clone?: pulumi.Input; /** * If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success. */ deleteAutoresizeBackup?: pulumi.Input; /** * Sets if the storage is encrypted at rest. */ encrypt?: pulumi.Input; /** * If set to true, provider will attempt to resize partition and filesystem when the size of the storage changes. Please note that before the resize attempt is made, backup of the storage will be taken. If the resize attempt fails, the backup will be used to restore the storage and then deleted. If the resize attempt succeeds, backup will be kept (unless `deleteAutoresizeBackup` option is set to true). * Taking and keeping backups incure costs. */ filesystemAutoresize?: pulumi.Input; /** * Block defining external data to import to storage */ import?: pulumi.Input; /** * User defined key-value pairs to classify the storage. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The size of the storage in gigabytes. */ size: pulumi.Input; /** * The tier of the storage. */ tier?: pulumi.Input; /** * The title of the storage. */ title: pulumi.Input; /** * The zone the storage is in, e.g. `de-fra1`. You can list available zones with `upctl zone list`. */ zone: pulumi.Input; }