import * as pulumi from "@pulumi/pulumi"; /** * Manages UpCloud storage templates. The storage templates are stored in the system as storages with `template` type. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as upcloud from "@upcloud/pulumi-upcloud"; * * const template = new upcloud.StorageTemplate("template", { * sourceStorage: "e0328f8a-9944-406b-99c3-656dcc03e671", * title: "custom-storage-template", * labels: { * os: "linux", * usage: "example", * }, * }); * ``` */ export declare class StorageTemplate extends pulumi.CustomResource { /** * Get an existing StorageTemplate 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?: StorageTemplateState, opts?: pulumi.CustomResourceOptions): StorageTemplate; /** * Returns true if the given object is an instance of StorageTemplate. 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 StorageTemplate; /** * Sets if the storage is encrypted at rest. */ readonly encrypt: 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; /** * The source storage that is used as a base for this storage template. */ readonly sourceStorage: 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`. */ readonly zone: pulumi.Output; /** * Create a StorageTemplate 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: StorageTemplateArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering StorageTemplate resources. */ export interface StorageTemplateState { /** * Sets if the storage is encrypted at rest. */ encrypt?: 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 source storage that is used as a base for this storage template. */ sourceStorage?: 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`. */ zone?: pulumi.Input; } /** * The set of arguments for constructing a StorageTemplate resource. */ export interface StorageTemplateArgs { /** * User defined key-value pairs to classify the storage. */ labels?: pulumi.Input<{ [key: string]: pulumi.Input; }>; /** * The source storage that is used as a base for this storage template. */ sourceStorage: pulumi.Input; /** * The title of the storage. */ title: pulumi.Input; }