@cdktf/provider-upcloud
Version:
Prebuilt upcloud Provider for Terraform CDK (cdktf)
894 lines (893 loc) • 42.7 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface ServerConfig extends cdktf.TerraformMetaArguments {
/**
* The boot device order, `cdrom`|`disk`|`network` or comma separated combination of those values. Defaults to `disk`
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#boot_order Server#boot_order}
*/
readonly bootOrder?: string;
/**
* The number of CPU cores for the server
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#cpu Server#cpu}
*/
readonly cpu?: number;
/**
* Are firewall rules active for the server
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#firewall Server#firewall}
*/
readonly firewall?: boolean | cdktf.IResolvable;
/**
* Use this to start the VM on a specific host. Refers to value from host -attribute. Only available for private cloud hosts
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#host Server#host}
*/
readonly host?: number;
/**
* The hostname of the server.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#hostname Server#hostname}
*/
readonly hostname: string;
/**
* If set to true, allows changing the server plan without requiring a reboot. This enables hot resizing of the server. If hot resizing fails, the apply operation will fail.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#hot_resize Server#hot_resize}
*/
readonly hotResize?: boolean | cdktf.IResolvable;
/**
* User defined key-value pairs to classify the server.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#labels Server#labels}
*/
readonly labels?: {
[key: string]: string;
};
/**
* The amount of memory for the server (in megabytes)
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#mem Server#mem}
*/
readonly mem?: number;
/**
* Is metadata service active for the server
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#metadata Server#metadata}
*/
readonly metadata?: boolean | cdktf.IResolvable;
/**
* The model of the server's network interfaces
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#nic_model Server#nic_model}
*/
readonly nicModel?: string;
/**
* The pricing plan used for the server. You can list available server plans with `upctl server plans`
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#plan Server#plan}
*/
readonly plan?: string;
/**
* The UUID of a server group to attach this server to. Note that the server can also be attached to a server group via the `members` property of `upcloud_server_group`. Only one of the these should be defined at a time. This value is only updated if it has been set to non-zero value.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#server_group Server#server_group}
*/
readonly serverGroup?: string;
/**
* The server related tags
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#tags Server#tags}
*/
readonly tags?: string[];
/**
* The timezone of the server. The timezone must be a valid timezone string, e.g. `Europe/Helsinki`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#timezone Server#timezone}
*/
readonly timezone?: string;
/**
* A short, informational description of the server.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#title Server#title}
*/
readonly title?: string;
/**
* Defines URL for a server setup script, or the script body itself
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#user_data Server#user_data}
*/
readonly userData?: string;
/**
* The model of the server's video interface
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#video_model Server#video_model}
*/
readonly videoModel?: string;
/**
* The zone in which the server will be hosted, e.g. `de-fra1`. You can list available zones with `upctl zone list`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#zone Server#zone}
*/
readonly zone: string;
/**
* login block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#login Server#login}
*/
readonly login?: ServerLogin[] | cdktf.IResolvable;
/**
* network_interface block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#network_interface Server#network_interface}
*/
readonly networkInterface?: ServerNetworkInterface[] | cdktf.IResolvable;
/**
* simple_backup block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#simple_backup Server#simple_backup}
*/
readonly simpleBackup?: ServerSimpleBackup[] | cdktf.IResolvable;
/**
* storage_devices block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#storage_devices Server#storage_devices}
*/
readonly storageDevices?: ServerStorageDevices[] | cdktf.IResolvable;
/**
* template block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#template Server#template}
*/
readonly template?: ServerTemplate[] | cdktf.IResolvable;
}
export interface ServerLogin {
/**
* Indicates a password should be create to allow access
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#create_password Server#create_password}
*/
readonly createPassword?: boolean | cdktf.IResolvable;
/**
* A list of ssh keys to access the server
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#keys Server#keys}
*/
readonly keys?: string[];
/**
* The delivery method for the server's root password (one of `none`, `email` or `sms`)
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#password_delivery Server#password_delivery}
*/
readonly passwordDelivery?: string;
/**
* Username to be create to access the server
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#user Server#user}
*/
readonly user?: string;
}
export declare function serverLoginToTerraform(struct?: ServerLogin | cdktf.IResolvable): any;
export declare function serverLoginToHclTerraform(struct?: ServerLogin | cdktf.IResolvable): any;
export declare class ServerLoginOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerLogin | cdktf.IResolvable | undefined;
set internalValue(value: ServerLogin | cdktf.IResolvable | undefined);
private _createPassword?;
get createPassword(): boolean | cdktf.IResolvable;
set createPassword(value: boolean | cdktf.IResolvable);
resetCreatePassword(): void;
get createPasswordInput(): boolean | cdktf.IResolvable | undefined;
private _keys?;
get keys(): string[];
set keys(value: string[]);
resetKeys(): void;
get keysInput(): string[] | undefined;
private _passwordDelivery?;
get passwordDelivery(): string;
set passwordDelivery(value: string);
resetPasswordDelivery(): void;
get passwordDeliveryInput(): string | undefined;
private _user?;
get user(): string;
set user(value: string);
resetUser(): void;
get userInput(): string | undefined;
}
export declare class ServerLoginList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerLogin[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerLoginOutputReference;
}
export interface ServerNetworkInterfaceAdditionalIpAddress {
/**
* An additional IP address for this interface.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#ip_address Server#ip_address}
*/
readonly ipAddress?: string;
/**
* The type of the additional IP address of this interface (one of `IPv4` or `IPv6`).
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#ip_address_family Server#ip_address_family}
*/
readonly ipAddressFamily?: string;
}
export declare function serverNetworkInterfaceAdditionalIpAddressToTerraform(struct?: ServerNetworkInterfaceAdditionalIpAddress | cdktf.IResolvable): any;
export declare function serverNetworkInterfaceAdditionalIpAddressToHclTerraform(struct?: ServerNetworkInterfaceAdditionalIpAddress | cdktf.IResolvable): any;
export declare class ServerNetworkInterfaceAdditionalIpAddressOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerNetworkInterfaceAdditionalIpAddress | cdktf.IResolvable | undefined;
set internalValue(value: ServerNetworkInterfaceAdditionalIpAddress | cdktf.IResolvable | undefined);
private _ipAddress?;
get ipAddress(): string;
set ipAddress(value: string);
resetIpAddress(): void;
get ipAddressInput(): string | undefined;
private _ipAddressFamily?;
get ipAddressFamily(): string;
set ipAddressFamily(value: string);
resetIpAddressFamily(): void;
get ipAddressFamilyInput(): string | undefined;
get ipAddressFloating(): cdktf.IResolvable;
}
export declare class ServerNetworkInterfaceAdditionalIpAddressList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerNetworkInterfaceAdditionalIpAddress[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerNetworkInterfaceAdditionalIpAddressOutputReference;
}
export interface ServerNetworkInterface {
/**
* `true` if this interface should be used for network booting.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#bootable Server#bootable}
*/
readonly bootable?: boolean | cdktf.IResolvable;
/**
* The interface index.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#index Server#index}
*/
readonly index?: number;
/**
* The primary IP address of this interface.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#ip_address Server#ip_address}
*/
readonly ipAddress?: string;
/**
* The type of the primary IP address of this interface (one of `IPv4` or `IPv6`).
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#ip_address_family Server#ip_address_family}
*/
readonly ipAddressFamily?: string;
/**
* The UUID of the network to attach this interface to. Required for private network interfaces.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#network Server#network}
*/
readonly network?: string;
/**
* `true` if source IP should be filtered.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#source_ip_filtering Server#source_ip_filtering}
*/
readonly sourceIpFiltering?: boolean | cdktf.IResolvable;
/**
* Network interface type. For private network interfaces, a network must be specified with an existing network id.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#type Server#type}
*/
readonly type: string;
/**
* additional_ip_address block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#additional_ip_address Server#additional_ip_address}
*/
readonly additionalIpAddress?: ServerNetworkInterfaceAdditionalIpAddress[] | cdktf.IResolvable;
}
export declare function serverNetworkInterfaceToTerraform(struct?: ServerNetworkInterface | cdktf.IResolvable): any;
export declare function serverNetworkInterfaceToHclTerraform(struct?: ServerNetworkInterface | cdktf.IResolvable): any;
export declare class ServerNetworkInterfaceOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerNetworkInterface | cdktf.IResolvable | undefined;
set internalValue(value: ServerNetworkInterface | cdktf.IResolvable | undefined);
private _bootable?;
get bootable(): boolean | cdktf.IResolvable;
set bootable(value: boolean | cdktf.IResolvable);
resetBootable(): void;
get bootableInput(): boolean | cdktf.IResolvable | undefined;
private _index?;
get index(): number;
set index(value: number);
resetIndex(): void;
get indexInput(): number | undefined;
private _ipAddress?;
get ipAddress(): string;
set ipAddress(value: string);
resetIpAddress(): void;
get ipAddressInput(): string | undefined;
private _ipAddressFamily?;
get ipAddressFamily(): string;
set ipAddressFamily(value: string);
resetIpAddressFamily(): void;
get ipAddressFamilyInput(): string | undefined;
get ipAddressFloating(): cdktf.IResolvable;
get macAddress(): string;
private _network?;
get network(): string;
set network(value: string);
resetNetwork(): void;
get networkInput(): string | undefined;
private _sourceIpFiltering?;
get sourceIpFiltering(): boolean | cdktf.IResolvable;
set sourceIpFiltering(value: boolean | cdktf.IResolvable);
resetSourceIpFiltering(): void;
get sourceIpFilteringInput(): boolean | cdktf.IResolvable | undefined;
private _type?;
get type(): string;
set type(value: string);
get typeInput(): string | undefined;
private _additionalIpAddress;
get additionalIpAddress(): ServerNetworkInterfaceAdditionalIpAddressList;
putAdditionalIpAddress(value: ServerNetworkInterfaceAdditionalIpAddress[] | cdktf.IResolvable): void;
resetAdditionalIpAddress(): void;
get additionalIpAddressInput(): cdktf.IResolvable | ServerNetworkInterfaceAdditionalIpAddress[] | undefined;
}
export declare class ServerNetworkInterfaceList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerNetworkInterface[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerNetworkInterfaceOutputReference;
}
export interface ServerSimpleBackup {
/**
* Simple backup plan. Accepted values: daily, dailies, weeklies, monthlies.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#plan Server#plan}
*/
readonly plan?: string;
/**
* Time of the day at which backup will be taken. Should be provided in a hhmm format (e.g. 2230).
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#time Server#time}
*/
readonly time?: string;
}
export declare function serverSimpleBackupToTerraform(struct?: ServerSimpleBackup | cdktf.IResolvable): any;
export declare function serverSimpleBackupToHclTerraform(struct?: ServerSimpleBackup | cdktf.IResolvable): any;
export declare class ServerSimpleBackupOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerSimpleBackup | cdktf.IResolvable | undefined;
set internalValue(value: ServerSimpleBackup | cdktf.IResolvable | undefined);
private _plan?;
get plan(): string;
set plan(value: string);
resetPlan(): void;
get planInput(): string | undefined;
private _time?;
get time(): string;
set time(value: string);
resetTime(): void;
get timeInput(): string | undefined;
}
export declare class ServerSimpleBackupList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerSimpleBackup[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerSimpleBackupOutputReference;
}
export interface ServerStorageDevices {
/**
* The device address the storage will be attached to (`scsi`|`virtio`|`ide`). Leave `address_position` field empty to auto-select next available address from that bus.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#address Server#address}
*/
readonly address?: string;
/**
* The device position in the given bus (defined via field `address`). Valid values for address `virtio` are `0-15` (`0`, for example). Valid values for `scsi` or `ide` are `0-1:0-1` (`0:0`, for example). Leave empty to auto-select next available address in the given bus.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#address_position Server#address_position}
*/
readonly addressPosition?: string;
/**
* The UUID of the storage to attach to the server.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#storage Server#storage}
*/
readonly storage?: string;
/**
* The device type the storage will be attached as
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#type Server#type}
*/
readonly type?: string;
}
export declare function serverStorageDevicesToTerraform(struct?: ServerStorageDevices | cdktf.IResolvable): any;
export declare function serverStorageDevicesToHclTerraform(struct?: ServerStorageDevices | cdktf.IResolvable): any;
export declare class ServerStorageDevicesOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerStorageDevices | cdktf.IResolvable | undefined;
set internalValue(value: ServerStorageDevices | cdktf.IResolvable | undefined);
private _address?;
get address(): string;
set address(value: string);
resetAddress(): void;
get addressInput(): string | undefined;
private _addressPosition?;
get addressPosition(): string;
set addressPosition(value: string);
resetAddressPosition(): void;
get addressPositionInput(): string | undefined;
private _storage?;
get storage(): string;
set storage(value: string);
resetStorage(): void;
get storageInput(): string | undefined;
private _type?;
get type(): string;
set type(value: string);
resetType(): void;
get typeInput(): string | undefined;
}
export declare class ServerStorageDevicesList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerStorageDevices[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerStorageDevicesOutputReference;
}
export interface ServerTemplateBackupRule {
/**
* The weekday when the backup is created
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#interval Server#interval}
*/
readonly interval: string;
/**
* The number of days before a backup is automatically deleted
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#retention Server#retention}
*/
readonly retention: number;
/**
* The time of day (UTC) when the backup is created
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#time Server#time}
*/
readonly time: string;
}
export declare function serverTemplateBackupRuleToTerraform(struct?: ServerTemplateBackupRule | cdktf.IResolvable): any;
export declare function serverTemplateBackupRuleToHclTerraform(struct?: ServerTemplateBackupRule | cdktf.IResolvable): any;
export declare class ServerTemplateBackupRuleOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerTemplateBackupRule | cdktf.IResolvable | undefined;
set internalValue(value: ServerTemplateBackupRule | cdktf.IResolvable | undefined);
private _interval?;
get interval(): string;
set interval(value: string);
get intervalInput(): string | undefined;
private _retention?;
get retention(): number;
set retention(value: number);
get retentionInput(): number | undefined;
private _time?;
get time(): string;
set time(value: string);
get timeInput(): string | undefined;
}
export declare class ServerTemplateBackupRuleList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerTemplateBackupRule[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerTemplateBackupRuleOutputReference;
}
export interface ServerTemplate {
/**
* The device address the storage will be attached to (`scsi`|`virtio`|`ide`). Leave `address_position` field empty to auto-select next available address from that bus.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#address Server#address}
*/
readonly address?: string;
/**
* The device position in the given bus (defined via field `address`). For example `0:0`, or `0`. Leave empty to auto-select next available address in the given bus.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#address_position Server#address_position}
*/
readonly addressPosition?: string;
/**
* If set to true, the backup taken before the partition and filesystem resize attempt will be deleted immediately after success.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#delete_autoresize_backup Server#delete_autoresize_backup}
*/
readonly deleteAutoresizeBackup?: boolean | cdktf.IResolvable;
/**
* Sets if the storage is encrypted at rest
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#encrypt Server#encrypt}
*/
readonly encrypt?: boolean | cdktf.IResolvable;
/**
* If set to true, provider will attempt to resize partition and filesystem when the size of template 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 delete_autoresize_backup option is set to true).
* Taking and keeping backups incure costs.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#filesystem_autoresize Server#filesystem_autoresize}
*/
readonly filesystemAutoresize?: boolean | cdktf.IResolvable;
/**
* The size of the storage in gigabytes
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#size Server#size}
*/
readonly size?: number;
/**
* A valid storage UUID or template name. You can list available public templates with `upctl storage list --public --template` and available private templates with `upctl storage list --template`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#storage Server#storage}
*/
readonly storage?: string;
/**
* The storage tier to use.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#tier Server#tier}
*/
readonly tier?: string;
/**
* A short, informative description
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#title Server#title}
*/
readonly title?: string;
/**
* backup_rule block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#backup_rule Server#backup_rule}
*/
readonly backupRule?: ServerTemplateBackupRule[] | cdktf.IResolvable;
}
export declare function serverTemplateToTerraform(struct?: ServerTemplate | cdktf.IResolvable): any;
export declare function serverTemplateToHclTerraform(struct?: ServerTemplate | cdktf.IResolvable): any;
export declare class ServerTemplateOutputReference extends cdktf.ComplexObject {
private isEmptyObject;
private resolvableValue?;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param complexObjectIndex the index of this item in the list
* @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean);
get internalValue(): ServerTemplate | cdktf.IResolvable | undefined;
set internalValue(value: ServerTemplate | cdktf.IResolvable | undefined);
private _address?;
get address(): string;
set address(value: string);
resetAddress(): void;
get addressInput(): string | undefined;
private _addressPosition?;
get addressPosition(): string;
set addressPosition(value: string);
resetAddressPosition(): void;
get addressPositionInput(): string | undefined;
private _deleteAutoresizeBackup?;
get deleteAutoresizeBackup(): boolean | cdktf.IResolvable;
set deleteAutoresizeBackup(value: boolean | cdktf.IResolvable);
resetDeleteAutoresizeBackup(): void;
get deleteAutoresizeBackupInput(): boolean | cdktf.IResolvable | undefined;
private _encrypt?;
get encrypt(): boolean | cdktf.IResolvable;
set encrypt(value: boolean | cdktf.IResolvable);
resetEncrypt(): void;
get encryptInput(): boolean | cdktf.IResolvable | undefined;
private _filesystemAutoresize?;
get filesystemAutoresize(): boolean | cdktf.IResolvable;
set filesystemAutoresize(value: boolean | cdktf.IResolvable);
resetFilesystemAutoresize(): void;
get filesystemAutoresizeInput(): boolean | cdktf.IResolvable | undefined;
get id(): string;
private _size?;
get size(): number;
set size(value: number);
resetSize(): void;
get sizeInput(): number | undefined;
private _storage?;
get storage(): string;
set storage(value: string);
resetStorage(): void;
get storageInput(): string | undefined;
private _tier?;
get tier(): string;
set tier(value: string);
resetTier(): void;
get tierInput(): string | undefined;
private _title?;
get title(): string;
set title(value: string);
resetTitle(): void;
get titleInput(): string | undefined;
private _backupRule;
get backupRule(): ServerTemplateBackupRuleList;
putBackupRule(value: ServerTemplateBackupRule[] | cdktf.IResolvable): void;
resetBackupRule(): void;
get backupRuleInput(): cdktf.IResolvable | ServerTemplateBackupRule[] | undefined;
}
export declare class ServerTemplateList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: ServerTemplate[] | cdktf.IResolvable;
/**
* @param terraformResource The parent resource
* @param terraformAttribute The attribute on the parent resource this class is referencing
* @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index)
*/
constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean);
/**
* @param index the index of the item to return
*/
get(index: number): ServerTemplateOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server upcloud_server}
*/
export declare class Server extends cdktf.TerraformResource {
static readonly tfResourceType = "upcloud_server";
/**
* Generates CDKTF code for importing a Server resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the Server to import
* @param importFromId The id of the existing Server that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the Server to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.23.3/docs/resources/server upcloud_server} Resource
*
* @param scope The scope in which to define this construct
* @param id The scoped construct ID. Must be unique amongst siblings in the same scope
* @param options ServerConfig
*/
constructor(scope: Construct, id: string, config: ServerConfig);
private _bootOrder?;
get bootOrder(): string;
set bootOrder(value: string);
resetBootOrder(): void;
get bootOrderInput(): string | undefined;
private _cpu?;
get cpu(): number;
set cpu(value: number);
resetCpu(): void;
get cpuInput(): number | undefined;
private _firewall?;
get firewall(): boolean | cdktf.IResolvable;
set firewall(value: boolean | cdktf.IResolvable);
resetFirewall(): void;
get firewallInput(): boolean | cdktf.IResolvable | undefined;
private _host?;
get host(): number;
set host(value: number);
resetHost(): void;
get hostInput(): number | undefined;
private _hostname?;
get hostname(): string;
set hostname(value: string);
get hostnameInput(): string | undefined;
private _hotResize?;
get hotResize(): boolean | cdktf.IResolvable;
set hotResize(value: boolean | cdktf.IResolvable);
resetHotResize(): void;
get hotResizeInput(): boolean | cdktf.IResolvable | undefined;
get id(): string;
private _labels?;
get labels(): {
[key: string]: string;
};
set labels(value: {
[key: string]: string;
});
resetLabels(): void;
get labelsInput(): {
[key: string]: string;
} | undefined;
private _mem?;
get mem(): number;
set mem(value: number);
resetMem(): void;
get memInput(): number | undefined;
private _metadata?;
get metadata(): boolean | cdktf.IResolvable;
set metadata(value: boolean | cdktf.IResolvable);
resetMetadata(): void;
get metadataInput(): boolean | cdktf.IResolvable | undefined;
private _nicModel?;
get nicModel(): string;
set nicModel(value: string);
resetNicModel(): void;
get nicModelInput(): string | undefined;
private _plan?;
get plan(): string;
set plan(value: string);
resetPlan(): void;
get planInput(): string | undefined;
private _serverGroup?;
get serverGroup(): string;
set serverGroup(value: string);
resetServerGroup(): void;
get serverGroupInput(): string | undefined;
private _tags?;
get tags(): string[];
set tags(value: string[]);
resetTags(): void;
get tagsInput(): string[] | undefined;
private _timezone?;
get timezone(): string;
set timezone(value: string);
resetTimezone(): void;
get timezoneInput(): string | undefined;
private _title?;
get title(): string;
set title(value: string);
resetTitle(): void;
get titleInput(): string | undefined;
private _userData?;
get userData(): string;
set userData(value: string);
resetUserData(): void;
get userDataInput(): string | undefined;
private _videoModel?;
get videoModel(): string;
set videoModel(value: string);
resetVideoModel(): void;
get videoModelInput(): string | undefined;
private _zone?;
get zone(): string;
set zone(value: string);
get zoneInput(): string | undefined;
private _login;
get login(): ServerLoginList;
putLogin(value: ServerLogin[] | cdktf.IResolvable): void;
resetLogin(): void;
get loginInput(): cdktf.IResolvable | ServerLogin[] | undefined;
private _networkInterface;
get networkInterface(): ServerNetworkInterfaceList;
putNetworkInterface(value: ServerNetworkInterface[] | cdktf.IResolvable): void;
resetNetworkInterface(): void;
get networkInterfaceInput(): cdktf.IResolvable | ServerNetworkInterface[] | undefined;
private _simpleBackup;
get simpleBackup(): ServerSimpleBackupList;
putSimpleBackup(value: ServerSimpleBackup[] | cdktf.IResolvable): void;
resetSimpleBackup(): void;
get simpleBackupInput(): cdktf.IResolvable | ServerSimpleBackup[] | undefined;
private _storageDevices;
get storageDevices(): ServerStorageDevicesList;
putStorageDevices(value: ServerStorageDevices[] | cdktf.IResolvable): void;
resetStorageDevices(): void;
get storageDevicesInput(): cdktf.IResolvable | ServerStorageDevices[] | undefined;
private _template;
get template(): ServerTemplateList;
putTemplate(value: ServerTemplate[] | cdktf.IResolvable): void;
resetTemplate(): void;
get templateInput(): cdktf.IResolvable | ServerTemplate[] | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}