@pulumi/hcloud
Version:
A Pulumi package for creating and managing hcloud cloud resources.
1,418 lines • 37.5 kB
TypeScript
import * as outputs from "../types/output";
export interface FirewallApplyTo {
/**
* Label Selector to select servers the firewall should be applied to (only one
* of `server` and `labelSelector`can be applied in one block)
*/
labelSelector: string;
/**
* ID of the server you want to apply the firewall to (only one of `server`
* and `labelSelector`can be applied in one block)
*/
server: number;
}
export interface FirewallRule {
/**
* Description of the firewall rule
*/
description?: string;
/**
* List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
* is `out`)
*/
destinationIps?: string[];
/**
* Direction of the Firewall Rule. `in`
*/
direction: string;
/**
* Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`. You can use `any`
* to allow all ports for the specific protocol. Port ranges are also possible: `80-85` allows all ports between 80 and 85.
*/
port?: string;
/**
* Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
*/
protocol: string;
/**
* List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction`
* is `in`)
*/
sourceIps?: string[];
}
export interface GetCertificatesCertificate {
certificate: string;
created: string;
domainNames: string[];
fingerprint: string;
id: number;
labels: {
[]: string;
};
name?: string;
notValidAfter: string;
notValidBefore: string;
type: string;
}
export interface GetDatacentersDatacenter {
/**
* List of currently available Server Types in the Datacenter.
*
* @deprecated This attribute is deprecated and will be dropped after 2026-10-01. Use hcloud_server_types[].locations[].available instead.
*/
availableServerTypeIds: number[];
/**
* Description of the Datacenter.
*/
description: string;
/**
* ID of the Datacenter.
*/
id: number;
/**
* Location of the Datacenter. See the [Hetzner Docs](https://docs.hetzner.com/cloud/general/locations/#what-locations-are-there) for more details about locations.
*/
location: {
[]: string;
};
/**
* Name of the Datacenter.
*/
name: string;
/**
* List of supported Server Types in the Datacenter.
*
* @deprecated This attribute is deprecated and will be dropped after 2026-10-01. Use hcloud_server_types[].locations[] instead.
*/
supportedServerTypeIds: number[];
}
export interface GetFirewallApplyTo {
/**
* (string) Label Selector to select servers the firewall is applied to. Empty if a server is directly
* referenced
*/
labelSelector: string;
/**
* (int) ID of a server where the firewall is applied to. `0` if applied to a label_selector
*/
server: number;
}
export interface GetFirewallRule {
/**
* (Optional, string) Description of the firewall rule
*/
description?: string;
/**
* (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `out`)
*/
destinationIps?: string[];
/**
* (Required, string) Direction of the Firewall Rule. `in`, `out`
*/
direction: string;
/**
* (Required, string) Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp`
*/
port?: string;
/**
* (Required, string) Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp`
*/
protocol?: string;
/**
* (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `in`)
*/
sourceIps?: string[];
}
export interface GetFirewallsFirewall {
applyTos?: outputs.GetFirewallsFirewallApplyTo[];
id?: number;
labels?: {
[]: string;
};
name: string;
rules?: outputs.GetFirewallsFirewallRule[];
}
export interface GetFirewallsFirewallApplyTo {
labelSelector: string;
server: number;
}
export interface GetFirewallsFirewallRule {
description?: string;
destinationIps?: string[];
direction: string;
port?: string;
protocol?: string;
sourceIps?: string[];
}
export interface GetFloatingIpsFloatingIp {
deleteProtection: boolean;
description: string;
homeLocation: string;
id: number;
ipAddress: string;
ipNetwork: string;
labels: {
[]: string;
};
name?: string;
serverId: number;
type: string;
}
export interface GetImagesImage {
/**
* CPU architecture compatible with the Image.
*/
architecture: string;
/**
* Point in time when the Image was created (in RFC3339 format).
*/
created: string;
/**
* Point in time when the Image was marked as deprecated (in RFC3339 format).
*/
deprecated: string;
/**
* Description of the Image.
*/
description: string;
/**
* ID of the Image.
*/
id: number;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Image, only present when the type is `system`.
*/
name: string;
/**
* Flavor of the operating system contained in the Image.
*/
osFlavor: string;
/**
* Version of the operating system contained in the Image.
*/
osVersion: string;
/**
* Whether the Image is optimized for a rapid deployment.
*/
rapidDeploy: boolean;
/**
* Type of the Image, for example `system`, `backup` or `snapshot`.
*/
type: string;
}
export interface GetLoadBalancerAlgorithm {
/**
* (string) Type of the target. `server` or `labelSelector`
*/
type: string;
}
export interface GetLoadBalancerService {
/**
* (int) Port the service connects to the targets on. Can be everything between `1` and `65535`.
*/
destinationPort: number;
/**
* (list) List of http configurations when `protocol` is `http` or `https`.
*/
healthChecks: outputs.GetLoadBalancerServiceHealthCheck[];
/**
* (list) List of http configurations when `protocol` is `http` or `https`.
*/
https: outputs.GetLoadBalancerServiceHttp[];
/**
* (int) Port the service listen on. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
*/
listenPort: number;
/**
* (string) Protocol the health check uses. `http`, `https` or `tcp`
*/
protocol: string;
/**
* (bool) Enable proxyprotocol.
*/
proxyprotocol: boolean;
}
export interface GetLoadBalancerServiceHealthCheck {
/**
* (list) List of http configurations when `protocol` is `http` or `https`.
*/
https: outputs.GetLoadBalancerServiceHealthCheckHttp[];
/**
* (int) Interval how often the health check will be performed, in seconds.
*/
interval: number;
/**
* (int) Port the health check tries to connect to. Can be everything between `1` and `65535`.
*/
port: number;
/**
* (string) Protocol the health check uses. `http`, `https` or `tcp`
*/
protocol: string;
/**
* (int) Number of tries a health check will be performed until a target will be listed as `unhealthy`.
*/
retries: number;
/**
* (int) Timeout when a health check try will be canceled if there is no response, in seconds.
*/
timeout: number;
}
export interface GetLoadBalancerServiceHealthCheckHttp {
/**
* string) Domain we try to access when performing the Health Check.
*/
domain: string;
/**
* (string) Path we try to access when performing the Health Check.
*/
path: string;
/**
* (string) Response we expect to be included in the Target response when a Health Check was performed.
*/
response: string;
/**
* (list[int]) We expect that the target answers with these status codes. If not the target is marked as `unhealthy`.
*/
statusCodes: number[];
/**
* (bool) Enable TLS certificate checking.
*/
tls: boolean;
}
export interface GetLoadBalancerServiceHttp {
/**
* (list[int]) List of IDs from certificates which the Load Balancer has.
*/
certificates: string[];
/**
* (int) Lifetime of the cookie for sticky session (in seconds).
*/
cookieLifetime: number;
/**
* (string) Name of the cookie for sticky session.
*/
cookieName: string;
/**
* (string) Determine if all requests from port 80 should be redirected to port 443.
*/
redirectHttp: boolean;
/**
* (string) Determine if sticky sessions are enabled or not.
*/
stickySessions: boolean;
timeoutIdle: number;
}
export interface GetLoadBalancerTarget {
/**
* (string) Label Selector to add a group of resources based on the label.
*/
labelSelector: string;
/**
* (int) ID of the server which should be a target for this Load Balancer.
*/
serverId: number;
/**
* (string) Type of the target. `server` or `labelSelector`
*/
type: string;
}
export interface GetLoadBalancerTypesLoadBalancerType {
/**
* Description of the Load Balancer Type.
*/
description: string;
/**
* ID of the Load Balancer Type.
*/
id: number;
/**
* Maximum number of certificates that can be assigned for the Load Balancer of this type.
*/
maxAssignedCertificates: number;
/**
* Maximum number of simultaneous open connections for the Load Balancer of this type.
*/
maxConnections: number;
/**
* Maximum number of services for the Load Balancer of this type.
*/
maxServices: number;
/**
* Maximum number of targets for the Load Balancer of this type.
*/
maxTargets: number;
/**
* Name of the Load Balancer Type.
*/
name: string;
}
export interface GetLoadBalancersLoadBalancer {
algorithms: outputs.GetLoadBalancersLoadBalancerAlgorithm[];
deleteProtection: boolean;
id: number;
ipv4: string;
ipv6: string;
labels: {
[]: string;
};
loadBalancerType: string;
location: string;
name?: string;
networkId: number;
networkIp: string;
networkZone: string;
services: outputs.GetLoadBalancersLoadBalancerService[];
targets: outputs.GetLoadBalancersLoadBalancerTarget[];
}
export interface GetLoadBalancersLoadBalancerAlgorithm {
type: string;
}
export interface GetLoadBalancersLoadBalancerService {
destinationPort: number;
healthChecks: outputs.GetLoadBalancersLoadBalancerServiceHealthCheck[];
https: outputs.GetLoadBalancersLoadBalancerServiceHttp[];
listenPort: number;
protocol: string;
proxyprotocol: boolean;
}
export interface GetLoadBalancersLoadBalancerServiceHealthCheck {
https: outputs.GetLoadBalancersLoadBalancerServiceHealthCheckHttp[];
interval: number;
port: number;
protocol: string;
retries: number;
timeout: number;
}
export interface GetLoadBalancersLoadBalancerServiceHealthCheckHttp {
domain: string;
path: string;
response: string;
statusCodes: number[];
tls: boolean;
}
export interface GetLoadBalancersLoadBalancerServiceHttp {
certificates: string[];
cookieLifetime: number;
cookieName: string;
redirectHttp: boolean;
stickySessions: boolean;
timeoutIdle: number;
}
export interface GetLoadBalancersLoadBalancerTarget {
labelSelector: string;
serverId: number;
type: string;
}
export interface GetLocationsLocation {
/**
* Name of the closest city to the Location. City name and optionally state in short form.
*/
city: string;
/**
* Country the Location resides in. ISO 3166-1 alpha-2 code of the country.
*/
country: string;
/**
* Description of the Location.
*/
description: string;
/**
* ID of the Location.
*/
id: number;
/**
* Latitude of the city closest to the Location.
*/
latitude: number;
/**
* Longitude of the city closest to the Location.
*/
longitude: number;
/**
* Name of the Location.
*/
name: string;
/**
* Name of the Network Zone this Location resides in.
*/
networkZone: string;
}
export interface GetNetworksNetwork {
deleteProtection: boolean;
/**
* Indicates if the routes from this network should be exposed to the vSwitch connection. The exposing only takes effect if a vSwitch connection is active.
*/
exposeRoutesToVswitch: boolean;
id: number;
ipRange: string;
labels: {
[]: string;
};
name: string;
}
export interface GetPlacementGroupsPlacementGroup {
id: number;
labels: {
[]: string;
};
name: string;
servers: number[];
type: string;
}
export interface GetPrimaryIpsPrimaryIp {
/**
* ID of the resource the Primary IP is assigned to.
*/
assigneeId: number;
/**
* Type of the resource the Primary IP is assigned to.
*/
assigneeType: string;
/**
* Whether auto delete is enabled.
*/
autoDelete: boolean;
/**
* Name of the Datacenter of the Primary IP.
*
* @deprecated The datacenter attribute is deprecated and will be removed after 1 July 2026. Please use the location attribute instead. See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters.
*/
datacenter: string;
/**
* Whether delete protection is enabled.
*/
deleteProtection: boolean;
/**
* ID of the Primary IP.
*/
id: number;
/**
* IP address of the Primary IP.
*/
ipAddress: string;
/**
* IP network of the Primary IP for IPv6 addresses. Only set if `type` is `ipv6`.
*/
ipNetwork: string;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Location of the Primary IP.
*/
location: string;
/**
* Name of the Primary IP.
*/
name: string;
/**
* Type of the Primary IP (`ipv4` or `ipv6`).
*/
type: string;
}
export interface GetServerNetwork {
/**
* (list) A list of alias IP addresses assigned to the server in the network.
*/
aliasIps: string[];
/**
* (string) The server's IP address within the network.
*/
ip: string;
/**
* (string) The MAC address associated with the server's private network interface.
*/
macAddress: string;
/**
* (int) The unique identifier for the network.
*/
networkId: number;
}
export interface GetServerTypeLocation {
/**
* Whether the Server Type is temporarily unavailable in this Location.
*/
available: boolean;
/**
* Date of the Server Type deprecation announcement.
*/
deprecationAnnounced: string;
/**
* ID of the Location.
*/
id: number;
/**
* Whether the Server Type is deprecated.
*/
isDeprecated: boolean;
/**
* Name of the Location.
*/
name: string;
/**
* Whether the Server Type is recommended in this Location.
*/
recommended: boolean;
/**
* Date of the Server Type removal. After this date, the Server Type cannot be used anymore.
*/
unavailableAfter: string;
}
export interface GetServerTypesServerType {
/**
* Architecture of the cpu for a Server of this type.
*/
architecture: string;
/**
* Category of the Server Type.
*/
category: string;
/**
* Number of cpu cores for a Server of this type.
*/
cores: number;
/**
* Type of cpu for a Server of this type.
*/
cpuType: string;
/**
* Date of the Server Type deprecation announcement.
*
* @deprecated The field is deprecated and will gradually be phased out starting 2025-09-24. Use the deprecation in the locations list instead.
*/
deprecationAnnounced: string;
/**
* Description of the Server Type.
*/
description: string;
/**
* Disk size in GB for a Server of this type.
*/
disk: number;
/**
* ID of the Server Type.
*/
id: number;
/**
* @deprecated The field is deprecated and will always report 0 after 2024-08-05.
*/
includedTraffic: number;
/**
* Whether the Server Type is deprecated.
*
* @deprecated The field is deprecated and will gradually be phased out starting 2025-09-24. Use the deprecation in the locations list instead.
*/
isDeprecated: boolean;
/**
* List of supported Locations for this Server Type.
*/
locations: outputs.GetServerTypesServerTypeLocation[];
/**
* Memory in GB for a Server of this type.
*/
memory: number;
/**
* Name of the Server Type.
*/
name: string;
/**
* Type of boot drive for a Server of this type.
*/
storageType: string;
/**
* Date of the Server Type removal. After this date, the Server Type cannot be used anymore.
*
* @deprecated The field is deprecated and will gradually be phased out starting 2025-09-24. Use the deprecation in the locations list instead.
*/
unavailableAfter: string;
}
export interface GetServerTypesServerTypeLocation {
/**
* Whether the Server Type is temporarily unavailable in this Location.
*/
available: boolean;
/**
* Date of the Server Type deprecation announcement.
*/
deprecationAnnounced: string;
/**
* ID of the Location.
*/
id: number;
/**
* Whether the Server Type is deprecated.
*/
isDeprecated: boolean;
/**
* Name of the Location.
*/
name: string;
/**
* Whether the Server Type is recommended in this Location.
*/
recommended: boolean;
/**
* Date of the Server Type removal. After this date, the Server Type cannot be used anymore.
*/
unavailableAfter: string;
}
export interface GetServersServer {
backupWindow: string;
backups: boolean;
/**
* @deprecated The datacenter attribute is deprecated and will be removed after 1 July 2026. Please use the location attribute instead. See https://docs.hetzner.cloud/changelog#2025-12-16-phasing-out-datacenters.
*/
datacenter: string;
deleteProtection: boolean;
firewallIds: number[];
id: number;
image: string;
ipv4Address: string;
ipv6Address: string;
ipv6Network: string;
iso: string;
labels: {
[]: string;
};
location: string;
name: string;
networks?: outputs.GetServersServerNetwork[];
placementGroupId?: number;
primaryDiskSize: number;
rebuildProtection: boolean;
rescue: string;
serverType: string;
status: string;
}
export interface GetServersServerNetwork {
aliasIps: string[];
ip: string;
macAddress: string;
networkId: number;
}
export interface GetSshKeysSshKey {
/**
* Fingerprint of the SSH Key.
*/
fingerprint: string;
/**
* ID of the SSH Key.
*/
id: number;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the SSH Key.
*/
name: string;
/**
* Public key of the SSH Key pair.
*/
publicKey: string;
}
export interface GetStorageBoxAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
/**
* Whether the ZFS snapshot folder is visible.
*/
zfsEnabled: boolean;
}
export interface GetStorageBoxSnapshotPlan {
/**
* Day of the month when the Snapshot Plan is executed. Null means every day.
*/
dayOfMonth: number;
/**
* Day of the week when the Snapshot Plan is executed. Starts at 0 for Sunday til 6 for Saturday. Note that this differs from the API, which uses 1 (Monday) through 7 (Sunday). Null means every day.
*/
dayOfWeek: number;
/**
* Hour when the Snapshot Plan is executed (UTC).
*/
hour: number;
/**
* Maximum amount of Snapshots that will be created by this Snapshot Plan. Older Snapshots will be deleted.
*/
maxSnapshots: number;
/**
* Minute when the Snapshot Plan is executed (UTC).
*/
minute: number;
}
export interface GetStorageBoxSnapshotStats {
/**
* Current storage requirements of the Snapshot in bytes.
*/
size: number;
/**
* Size of the compressed file system contained in the Snapshot in bytes.
*/
sizeFilesystem: number;
}
export interface GetStorageBoxSnapshotsSnapshot {
/**
* Description of the Storage Box Snapshot.
*/
description: string;
/**
* ID of the Storage Box Snapshot.
*/
id: number;
/**
* Whether the Storage Box Snapshot was created automatically.
*/
isAutomatic: boolean;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Storage Box Snapshot.
*/
name: string;
/**
* Statistics of the Storage Box Snapshot.
*/
stats: outputs.GetStorageBoxSnapshotsSnapshotStats;
/**
* ID of the Storage Box.
*/
storageBoxId: number;
}
export interface GetStorageBoxSnapshotsSnapshotStats {
/**
* Current storage requirements of the Snapshot in bytes.
*/
size: number;
/**
* Size of the compressed file system contained in the Snapshot in bytes.
*/
sizeFilesystem: number;
}
export interface GetStorageBoxSubaccountAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Subaccount is read-only.
*/
readonly: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
}
export interface GetStorageBoxSubaccountsSubaccount {
/**
* Access settings for the Subaccount.
*/
accessSettings: outputs.GetStorageBoxSubaccountsSubaccountAccessSettings;
/**
* Description of the Storage Box Subaccount.
*/
description: string;
/**
* Home directory of the Storage Box Subaccount.
*/
homeDirectory: string;
/**
* ID of the Storage Box Subaccount.
*/
id: number;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Storage Box Subaccount.
*/
name: string;
/**
* FQDN of the Storage Box Subaccount.
*/
server: string;
/**
* ID of the Storage Box.
*/
storageBoxId: number;
/**
* Username of the Storage Box Subaccount.
*/
username: string;
}
export interface GetStorageBoxSubaccountsSubaccountAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Subaccount is read-only.
*/
readonly: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
}
export interface GetStorageBoxTypesStorageBoxType {
/**
* Maximum number of snapshots created automatically by a snapshot plan.
*/
automaticSnapshotLimit: number;
/**
* Date of the Storage Box Type deprecation announcement.
*/
deprecationAnnounced: string;
/**
* Description of the Storage Box Type.
*/
description: string;
/**
* ID of the Storage Box Type.
*/
id: number;
/**
* Whether the Storage Box Type is deprecated.
*/
isDeprecated: boolean;
/**
* Name of the Storage Box Type.
*/
name: string;
/**
* Available storage in bytes.
*/
size: number;
/**
* Maximum number of allowed manual snapshots.
*/
snapshotLimit: number;
/**
* Maximum number of subaccounts.
*/
subaccountsLimit: number;
/**
* Date of the Storage Box Type removal. After this date, the Storage Box Type cannot be used anymore.
*/
unavailableAfter: string;
}
export interface GetStorageBoxesStorageBox {
/**
* Access settings of the Storage Box.
*/
accessSettings: outputs.GetStorageBoxesStorageBoxAccessSettings;
/**
* Whether delete protection is enabled.
*/
deleteProtection: boolean;
/**
* ID of the Storage Box.
*/
id: number;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Location.
*/
location: string;
/**
* Name of the Storage Box.
*/
name: string;
/**
* FQDN of the Storage Box.
*/
server: string;
/**
* Details of the active snapshot plan.
*/
snapshotPlan: outputs.GetStorageBoxesStorageBoxSnapshotPlan;
/**
* Name of the Storage Box Type.
*/
storageBoxType: string;
/**
* Host system of the Storage Box.
*/
system: string;
/**
* Primary username of the Storage Box.
*/
username: string;
}
export interface GetStorageBoxesStorageBoxAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
/**
* Whether the ZFS snapshot folder is visible.
*/
zfsEnabled: boolean;
}
export interface GetStorageBoxesStorageBoxSnapshotPlan {
/**
* Day of the month when the Snapshot Plan is executed. Null means every day.
*/
dayOfMonth: number;
/**
* Day of the week when the Snapshot Plan is executed. Starts at 0 for Sunday til 6 for Saturday. Note that this differs from the API, which uses 1 (Monday) through 7 (Sunday). Null means every day.
*/
dayOfWeek: number;
/**
* Hour when the Snapshot Plan is executed (UTC).
*/
hour: number;
/**
* Maximum amount of Snapshots that will be created by this Snapshot Plan. Older Snapshots will be deleted.
*/
maxSnapshots: number;
/**
* Minute when the Snapshot Plan is executed (UTC).
*/
minute: number;
}
export interface GetVolumesVolume {
deleteProtection: boolean;
id: number;
labels: {
[]: string;
};
linuxDevice: string;
location?: string;
name: string;
serverId?: number;
size: number;
}
export interface GetZoneAuthoritativeNameservers {
/**
* Authoritative Hetzner nameservers assigned to the Zone.
*/
assigneds: string[];
}
export interface GetZonePrimaryNameserver {
/**
* Public IPv4 or IPv6 address of the primary nameserver.
*/
address: string;
/**
* Port of the primary nameserver.
*/
port: number;
/**
* Transaction signature (TSIG) algorithm used to generate the TSIG key.
*/
tsigAlgorithm: string;
/**
* Transaction signature (TSIG) key
*/
tsigKey: string;
}
export interface GetZoneRrsetRecord {
/**
* Comment of the record.
*/
comment: string;
/**
* Value of the record.
*/
value: string;
}
export interface GetZoneRrsetsRrset {
/**
* Whether change protection is enabled.
*/
changeProtection: boolean;
/**
* ID of the Zone RRSet.
*/
id: string;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Name of the Zone RRSet.
*/
name: string;
/**
* Records of the Zone RRSet.
*/
records: outputs.GetZoneRrsetsRrsetRecord[];
/**
* Time To Live (TTL) of the Zone RRSet.
*/
ttl: number;
/**
* Type of the Zone RRSet.
*/
type: string;
/**
* ID or Name of the parent Zone.
*/
zone: string;
}
export interface GetZoneRrsetsRrsetRecord {
/**
* Comment of the record.
*/
comment: string;
/**
* Value of the record.
*/
value: string;
}
export interface GetZonesZone {
/**
* Authoritative nameservers of the Zone.
*/
authoritativeNameservers: outputs.GetZonesZoneAuthoritativeNameservers;
/**
* Whether delete protection is enabled.
*/
deleteProtection: boolean;
/**
* ID of the Zone.
*/
id: number;
/**
* User-defined [labels](https://docs.hetzner.cloud/reference/cloud#labels) (key-value pairs) for the resource.
*/
labels: {
[]: string;
};
/**
* Mode of the Zone.
*/
mode: string;
/**
* Name of the Zone.
*/
name: string;
/**
* Primary nameservers of the Zone.
*/
primaryNameservers: outputs.GetZonesZonePrimaryNameserver[];
/**
* Registrar of the Zone.
*/
registrar: string;
/**
* Default Time To Live (TTL) of the Zone.
*/
ttl: number;
}
export interface GetZonesZoneAuthoritativeNameservers {
/**
* Authoritative Hetzner nameservers assigned to the Zone.
*/
assigneds: string[];
}
export interface GetZonesZonePrimaryNameserver {
/**
* Public IPv4 or IPv6 address of the primary nameserver.
*/
address: string;
/**
* Port of the primary nameserver.
*/
port: number;
/**
* Transaction signature (TSIG) algorithm used to generate the TSIG key.
*/
tsigAlgorithm: string;
/**
* Transaction signature (TSIG) key
*/
tsigKey: string;
}
export interface LoadBalancerAlgorithm {
/**
* Type of the Load Balancer Algorithm. `roundRobin` or `leastConnections`
*/
type: string;
}
export interface LoadBalancerServiceHealthCheck {
/**
* HTTP configuration. Required if `protocol` is `http`.
*/
http: outputs.LoadBalancerServiceHealthCheckHttp;
/**
* Interval how often the health check will be performed, in seconds.
*/
interval: number;
/**
* Port the health check tries to connect to, required if protocol is `tcp`. Can be everything between `1` and `65535`. Must be unique per Load Balancer.
*/
port: number;
/**
* Protocol the health check uses. `http` or `tcp`
*/
protocol: string;
/**
* Number of tries a health check will be performed until a target will be listed as `unhealthy`.
*/
retries: number;
/**
* Timeout when a health check try will be canceled if there is no response, in seconds.
*/
timeout: number;
}
export interface LoadBalancerServiceHealthCheckHttp {
/**
* Domain we try to access when performing the Health Check.
*/
domain?: string;
/**
* Path we try to access when performing the Health Check.
*/
path?: string;
/**
* Response we expect to be included in the Target response when a Health Check was performed.
*/
response?: string;
/**
* We expect that the target answers with these status codes. If not the target is marked as `unhealthy`.
*/
statusCodes?: string[];
/**
* Enable TLS certificate checking.
*/
tls?: boolean;
}
export interface LoadBalancerServiceHttp {
/**
* List of IDs from certificates which the Load Balancer has.
*/
certificates: number[];
/**
* Lifetime of the cookie for sticky session (in seconds). Default: `300`
*/
cookieLifetime: number;
/**
* Name of the cookie for sticky session. Default: `HCLBSTICKY`
*/
cookieName: string;
/**
* Redirect HTTP to HTTPS traffic. Only supported for services with `protocol` `https` using the default HTTP port `80`.
*/
redirectHttp: boolean;
/**
* Enable sticky sessions
*/
stickySessions: boolean;
/**
* Idle timeout for HTTP connections in seconds. Must be between `30` and `300`.
*/
timeoutIdle: number;
}
export interface LoadBalancerTarget {
serverId?: number;
/**
* (string) Type of the Load Balancer Algorithm. `roundRobin` or `leastConnections`
*/
type: string;
/**
* @deprecated Does not work. Use the hcloud.LoadBalancerTarget resource instead.
*/
usePrivateIp?: boolean;
}
export interface ServerNetwork {
/**
* Alias IPs the server should have in the Network.
*
* There is a bug with Terraform `1.4+` which causes the network to be detached & attached on every apply. Set `aliasIps = []` to avoid this. See #650 for details.
*/
aliasIps: string[];
/**
* Specify the IP the server should get in the network
*/
ip: string;
/**
* (Optional, string) The MAC address the private interface of the server has
*/
macAddress: string;
/**
* ID of the network to attach the server to. Using `subnetId` is preferred. When used alone without `subnetId`, the server will be attached to the last subnet (ordered by `ipRange`), which may be unpredictable.
*/
networkId: number;
/**
* ID of the network subnet to attach the server to.
*/
subnetId: string;
}
export interface ServerPublicNet {
ipv4: number;
ipv4Enabled?: boolean;
ipv6: number;
ipv6Enabled?: boolean;
}
export interface StorageBoxAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
/**
* Whether the ZFS snapshot folder is visible.
*/
zfsEnabled: boolean;
}
export interface StorageBoxSnapshotPlan {
/**
* Day of the month when the Snapshot Plan is executed. Null means every day.
*/
dayOfMonth?: number;
/**
* Day of the week when the Snapshot Plan is executed. Starts at 0 for Sunday til 6 for Saturday. Note that this differs from the API, which uses 1 (Monday) through 7 (Sunday). Null means every day.
*/
dayOfWeek?: number;
/**
* Hour when the Snapshot Plan is executed (UTC).
*/
hour: number;
/**
* Maximum amount of Snapshots that will be created by this Snapshot Plan. Older Snapshots will be deleted.
*/
maxSnapshots: number;
/**
* Minute when the Snapshot Plan is executed (UTC).
*/
minute: number;
}
export interface StorageBoxSubaccountAccessSettings {
/**
* Whether access from outside the Hetzner network is allowed.
*/
reachableExternally: boolean;
/**
* Whether the Subaccount is read-only.
*/
readonly: boolean;
/**
* Whether the Samba subsystem is enabled.
*/
sambaEnabled: boolean;
/**
* Whether the SSH subsystem is enabled.
*/
sshEnabled: boolean;
/**
* Whether the WebDAV subsystem is enabled.
*/
webdavEnabled: boolean;
}
export interface ZoneAuthoritativeNameservers {
/**
* Authoritative Hetzner nameservers assigned to the Zone.
*/
assigneds: string[];
}
export interface ZonePrimaryNameserver {
/**
* Public IPv4 or IPv6 address of the primary nameserver.
*/
address: string;
/**
* Port of the primary nameserver.
*/
port: number;
/**
* Transaction signature (TSIG) algorithm used to generate the TSIG key.
*/
tsigAlgorithm?: string;
/**
* Transaction signature (TSIG) key
*/
tsigKey?: string;
}
export interface ZoneRrsetRecord {
/**
* Comment of the record.
*/
comment?: string;
/**
* Value of the record.
*/
value: string;
}
//# sourceMappingURL=output.d.ts.map