import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; 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?: pulumi.Input; /** * ID of the server you want to apply the firewall to (only one of `server` * and `labelSelector`can be applied in one block) */ server?: pulumi.Input; } export interface FirewallRule { /** * Description of the firewall rule */ description?: pulumi.Input; /** * List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction` * is `out`) */ destinationIps?: pulumi.Input[]>; /** * Direction of the Firewall Rule. `in` */ direction: pulumi.Input; /** * 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?: pulumi.Input; /** * Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp` */ protocol: pulumi.Input; /** * List of IPs or CIDRs that are allowed within this Firewall Rule (when `direction` * is `in`) */ sourceIps?: pulumi.Input[]>; } 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 GetFirewallApplyToArgs { /** * (string) Label Selector to select servers the firewall is applied to. Empty if a server is directly * referenced */ labelSelector?: pulumi.Input; /** * (int) ID of a server where the firewall is applied to. `0` if applied to a label_selector */ server?: pulumi.Input; } 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 GetFirewallRuleArgs { /** * (Optional, string) Description of the firewall rule */ description?: pulumi.Input; /** * (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `out`) */ destinationIps?: pulumi.Input[]>; /** * (Required, string) Direction of the Firewall Rule. `in`, `out` */ direction: pulumi.Input; /** * (Required, string) Port of the Firewall Rule. Required when `protocol` is `tcp` or `udp` */ port?: pulumi.Input; /** * (Required, string) Protocol of the Firewall Rule. `tcp`, `icmp`, `udp`, `gre`, `esp` */ protocol?: pulumi.Input; /** * (Required, List) List of CIDRs that are allowed within this Firewall Rule (when `direction` is `in`) */ sourceIps?: pulumi.Input[]>; } 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 GetServerNetworkArgs { /** * (list) A list of alias IP addresses assigned to the server in the network. */ aliasIps?: pulumi.Input[]>; /** * (string) The server's IP address within the network. */ ip?: pulumi.Input; /** * (string) The MAC address associated with the server's private network interface. */ macAddress?: pulumi.Input; /** * (int) The unique identifier for the network. */ networkId?: pulumi.Input; } export interface LoadBalancerAlgorithm { /** * Type of the Load Balancer Algorithm. `roundRobin` or `leastConnections` */ type?: pulumi.Input; } export interface LoadBalancerServiceHealthCheck { /** * HTTP configuration. Required if `protocol` is `http`. */ http?: pulumi.Input; /** * Interval how often the health check will be performed, in seconds. */ interval: pulumi.Input; /** * 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: pulumi.Input; /** * Protocol the health check uses. `http` or `tcp` */ protocol: pulumi.Input; /** * Number of tries a health check will be performed until a target will be listed as `unhealthy`. */ retries: pulumi.Input; /** * Timeout when a health check try will be canceled if there is no response, in seconds. */ timeout: pulumi.Input; } export interface LoadBalancerServiceHealthCheckHttp { /** * Domain we try to access when performing the Health Check. */ domain?: pulumi.Input; /** * Path we try to access when performing the Health Check. */ path?: pulumi.Input; /** * Response we expect to be included in the Target response when a Health Check was performed. */ response?: pulumi.Input; /** * We expect that the target answers with these status codes. If not the target is marked as `unhealthy`. */ statusCodes?: pulumi.Input[]>; /** * Enable TLS certificate checking. */ tls?: pulumi.Input; } export interface LoadBalancerServiceHttp { /** * List of IDs from certificates which the Load Balancer has. */ certificates?: pulumi.Input[]>; /** * Lifetime of the cookie for sticky session (in seconds). Default: `300` */ cookieLifetime?: pulumi.Input; /** * Name of the cookie for sticky session. Default: `HCLBSTICKY` */ cookieName?: pulumi.Input; /** * Redirect HTTP to HTTPS traffic. Only supported for services with `protocol` `https` using the default HTTP port `80`. */ redirectHttp?: pulumi.Input; /** * Enable sticky sessions */ stickySessions?: pulumi.Input; } export interface LoadBalancerTarget { serverId?: pulumi.Input; /** * (string) Type of the Load Balancer Algorithm. `roundRobin` or `leastConnections` */ type: pulumi.Input; /** * @deprecated Does not work. Use the hcloud.LoadBalancerTarget resource instead. */ usePrivateIp?: pulumi.Input; } 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?: pulumi.Input[]>; /** * Specify the IP the server should get in the network */ ip?: pulumi.Input; /** * (Optional, string) The MAC address the private interface of the server has */ macAddress?: pulumi.Input; /** * ID of the network */ networkId: pulumi.Input; } export interface ServerPublicNet { ipv4?: pulumi.Input; ipv4Enabled?: pulumi.Input; ipv6?: pulumi.Input; ipv6Enabled?: pulumi.Input; } export interface StorageBoxAccessSettings { /** * Whether access from outside the Hetzner network is allowed. */ reachableExternally?: pulumi.Input; /** * Whether the Samba subsystem is enabled. */ sambaEnabled?: pulumi.Input; /** * Whether the SSH subsystem is enabled. */ sshEnabled?: pulumi.Input; /** * Whether the WebDAV subsystem is enabled. */ webdavEnabled?: pulumi.Input; /** * Whether the ZFS snapshot folder is visible. */ zfsEnabled?: pulumi.Input; } export interface StorageBoxSnapshotPlan { /** * Day of the month when the Snapshot Plan is executed. Null means every day. */ dayOfMonth?: pulumi.Input; /** * 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?: pulumi.Input; /** * Hour when the Snapshot Plan is executed (UTC). */ hour: pulumi.Input; /** * Maximum amount of Snapshots that will be created by this Snapshot Plan. Older Snapshots will be deleted. */ maxSnapshots: pulumi.Input; /** * Minute when the Snapshot Plan is executed (UTC). */ minute: pulumi.Input; } export interface StorageBoxSubaccountAccessSettings { /** * Whether access from outside the Hetzner network is allowed. */ reachableExternally?: pulumi.Input; /** * Whether the Subaccount is read-only. */ readonly?: pulumi.Input; /** * Whether the Samba subsystem is enabled. */ sambaEnabled?: pulumi.Input; /** * Whether the SSH subsystem is enabled. */ sshEnabled?: pulumi.Input; /** * Whether the WebDAV subsystem is enabled. */ webdavEnabled?: pulumi.Input; } export interface ZoneAuthoritativeNameservers { /** * Authoritative Hetzner nameservers assigned to the Zone. */ assigneds?: pulumi.Input[]>; } export interface ZonePrimaryNameserver { /** * Public IPv4 or IPv6 address of the primary nameserver. */ address: pulumi.Input; /** * Port of the primary nameserver. */ port?: pulumi.Input; /** * Transaction signature (TSIG) algorithm used to generate the TSIG key. */ tsigAlgorithm?: pulumi.Input; /** * Transaction signature (TSIG) key */ tsigKey?: pulumi.Input; } export interface ZoneRrsetRecord { /** * Comment of the record. */ comment?: pulumi.Input; /** * Value of the record. */ value: pulumi.Input; }