import * as pulumi from "@pulumi/pulumi"; /** * Provides a Hetzner Cloud Network Subnet to represent a Subnet in the Hetzner Cloud. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as hcloud from "@pulumi/hcloud"; * * const mynet = new hcloud.Network("mynet", { * name: "my-net", * ipRange: "10.0.0.0/8", * }); * const foonet = new hcloud.NetworkSubnet("foonet", { * networkId: mynet.id, * type: "cloud", * networkZone: "eu-central", * ipRange: "10.0.1.0/24", * }); * ``` * * ## Import * * Network Subnet entries can be imported using a compound ID with the following format: * `-` * * ```sh * $ pulumi import hcloud:index/networkSubnet:NetworkSubnet example "$NETWORK_ID-$IP_RANGE" * ``` */ export declare class NetworkSubnet extends pulumi.CustomResource { /** * Get an existing NetworkSubnet 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?: NetworkSubnetState, opts?: pulumi.CustomResourceOptions): NetworkSubnet; /** * Returns true if the given object is an instance of NetworkSubnet. 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 NetworkSubnet; readonly gateway: pulumi.Output; /** * Range to allocate IPs from. Must be a subnet of the ipRange of the Network and must not overlap with any other subnets or with any destinations in routes. */ readonly ipRange: pulumi.Output; /** * ID of the Network the subnet should be added to. */ readonly networkId: pulumi.Output; /** * Name of network zone. */ readonly networkZone: pulumi.Output; /** * Type of subnet. `server`, `cloud` or `vswitch` */ readonly type: pulumi.Output; /** * ID of the vswitch, Required if type is `vswitch` */ readonly vswitchId: pulumi.Output; /** * Create a NetworkSubnet 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: NetworkSubnetArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering NetworkSubnet resources. */ export interface NetworkSubnetState { gateway?: pulumi.Input; /** * Range to allocate IPs from. Must be a subnet of the ipRange of the Network and must not overlap with any other subnets or with any destinations in routes. */ ipRange?: pulumi.Input; /** * ID of the Network the subnet should be added to. */ networkId?: pulumi.Input; /** * Name of network zone. */ networkZone?: pulumi.Input; /** * Type of subnet. `server`, `cloud` or `vswitch` */ type?: pulumi.Input; /** * ID of the vswitch, Required if type is `vswitch` */ vswitchId?: pulumi.Input; } /** * The set of arguments for constructing a NetworkSubnet resource. */ export interface NetworkSubnetArgs { /** * Range to allocate IPs from. Must be a subnet of the ipRange of the Network and must not overlap with any other subnets or with any destinations in routes. */ ipRange: pulumi.Input; /** * ID of the Network the subnet should be added to. */ networkId: pulumi.Input; /** * Name of network zone. */ networkZone: pulumi.Input; /** * Type of subnet. `server`, `cloud` or `vswitch` */ type: pulumi.Input; /** * ID of the vswitch, Required if type is `vswitch` */ vswitchId?: pulumi.Input; }