UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

186 lines (185 loc) 7.55 kB
import * as pulumi from "@pulumi/pulumi"; /** * > **Important:** The resource `scaleway.network.PublicGatewayDhcpReservation` has been deprecated and will no longer be supported. * In 2023, DHCP functionality was moved from Public Gateways to Private Networks, DHCP resources are now no longer needed. * You can use IPAM to manage your IPs. For more information, please refer to the dedicated guide. * * Creates and manages [Scaleway DHCP Reservations](https://www.scaleway.com/en/docs/vpc/concepts/#dhcp). * * These static associations are used to assign IP addresses based on the MAC addresses of the resource. * * Statically assigned IP addresses should fall within the configured subnet, but be outside of the dynamic range. * * For more information, see the [API documentation](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-c05544). * * [DHCP reservations](https://www.scaleway.com/en/developers/api/public-gateway/#dhcp-entries-e40fb6) hold both dynamic DHCP leases (IP addresses dynamically assigned by the gateway to resources) and static user-created DHCP reservations. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.network.PrivateNetwork("main", {name: "your_private_network"}); * const mainServer = new scaleway.instance.Server("main", { * image: "ubuntu_jammy", * type: "DEV1-S", * zone: "fr-par-1", * privateNetworks: [{ * pnId: main.id, * }], * }); * const mainPublicGatewayIp = new scaleway.network.PublicGatewayIp("main", {}); * const mainPublicGatewayDhcp = new scaleway.network.PublicGatewayDhcp("main", {subnet: "192.168.1.0/24"}); * const mainPublicGateway = new scaleway.network.PublicGateway("main", { * name: "foobar", * type: "VPC-GW-S", * ipId: mainPublicGatewayIp.id, * }); * const mainGatewayNetwork = new scaleway.network.GatewayNetwork("main", { * gatewayId: mainPublicGateway.id, * privateNetworkId: main.id, * dhcpId: mainPublicGatewayDhcp.id, * cleanupDhcp: true, * enableMasquerade: true, * }, { * dependsOn: [ * mainPublicGatewayIp, * main, * ], * }); * const mainPublicGatewayDhcpReservation = new scaleway.network.PublicGatewayDhcpReservation("main", { * gatewayNetworkId: mainGatewayNetwork.id, * macAddress: mainServer.privateNetworks.apply(privateNetworks => privateNetworks?.[0]?.macAddress), * ipAddress: "192.168.1.1", * }); * ``` * * ## Import * * Public Gateway DHCP reservation configurations can be imported using `{zone}/{id}`, e.g. * * bash * * ```sh * $ pulumi import scaleway:index/vpcPublicGatewayDhcpReservation:VpcPublicGatewayDhcpReservation main fr-par-1/11111111-1111-1111-1111-111111111111 * ``` * * @deprecated scaleway.index/vpcpublicgatewaydhcpreservation.VpcPublicGatewayDhcpReservation has been deprecated in favor of scaleway.network/publicgatewaydhcpreservation.PublicGatewayDhcpReservation */ export declare class VpcPublicGatewayDhcpReservation extends pulumi.CustomResource { /** * Get an existing VpcPublicGatewayDhcpReservation 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<pulumi.ID>, state?: VpcPublicGatewayDhcpReservationState, opts?: pulumi.CustomResourceOptions): VpcPublicGatewayDhcpReservation; /** * Returns true if the given object is an instance of VpcPublicGatewayDhcpReservation. 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 VpcPublicGatewayDhcpReservation; /** * The date and time of the creation of the Public Gateway DHCP configuration. */ readonly createdAt: pulumi.Output<string>; /** * The ID of the owning GatewayNetwork. */ readonly gatewayNetworkId: pulumi.Output<string>; /** * The hostname of the client machine. */ readonly hostname: pulumi.Output<string>; /** * The IP address to give to the machine. */ readonly ipAddress: pulumi.Output<string>; /** * The MAC address for the static entry. */ readonly macAddress: pulumi.Output<string>; /** * The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are `reservation` and `lease`. */ readonly type: pulumi.Output<string>; /** * The date and time of the last update of the Public Gateway DHCP configuration. */ readonly updatedAt: pulumi.Output<string>; /** * `zone`) The zone in which the public gateway DHCP config should be created. */ readonly zone: pulumi.Output<string>; /** * Create a VpcPublicGatewayDhcpReservation 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. */ /** @deprecated scaleway.index/vpcpublicgatewaydhcpreservation.VpcPublicGatewayDhcpReservation has been deprecated in favor of scaleway.network/publicgatewaydhcpreservation.PublicGatewayDhcpReservation */ constructor(name: string, args: VpcPublicGatewayDhcpReservationArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering VpcPublicGatewayDhcpReservation resources. */ export interface VpcPublicGatewayDhcpReservationState { /** * The date and time of the creation of the Public Gateway DHCP configuration. */ createdAt?: pulumi.Input<string>; /** * The ID of the owning GatewayNetwork. */ gatewayNetworkId?: pulumi.Input<string>; /** * The hostname of the client machine. */ hostname?: pulumi.Input<string>; /** * The IP address to give to the machine. */ ipAddress?: pulumi.Input<string>; /** * The MAC address for the static entry. */ macAddress?: pulumi.Input<string>; /** * The reservation type, either static (DHCP reservation) or dynamic (DHCP lease). Possible values are `reservation` and `lease`. */ type?: pulumi.Input<string>; /** * The date and time of the last update of the Public Gateway DHCP configuration. */ updatedAt?: pulumi.Input<string>; /** * `zone`) The zone in which the public gateway DHCP config should be created. */ zone?: pulumi.Input<string>; } /** * The set of arguments for constructing a VpcPublicGatewayDhcpReservation resource. */ export interface VpcPublicGatewayDhcpReservationArgs { /** * The ID of the owning GatewayNetwork. */ gatewayNetworkId: pulumi.Input<string>; /** * The IP address to give to the machine. */ ipAddress: pulumi.Input<string>; /** * The MAC address for the static entry. */ macAddress: pulumi.Input<string>; /** * `zone`) The zone in which the public gateway DHCP config should be created. */ zone?: pulumi.Input<string>; }