import * as pulumi from "@pulumi/pulumi"; /** * Gets information about a DHCP entry. For further information, please see the * API [documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries)/ * * ## Example Dynamic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * import * as scaleway from "@pulumi/scaleway"; * * const mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork", {}); * const mainInstanceServer = new scaleway.InstanceServer("mainInstanceServer", { * image: "ubuntu_jammy", * type: "DEV1-S", * zone: "fr-par-1", * }); * const mainInstancePrivateNic = new scaleway.InstancePrivateNic("mainInstancePrivateNic", { * serverId: mainInstanceServer.id, * privateNetworkId: mainVpcPrivateNetwork.id, * }); * const mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp", {}); * const mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", {subnet: "192.168.1.0/24"}); * const mainVpcPublicGateway = new scaleway.VpcPublicGateway("mainVpcPublicGateway", { * type: "VPC-GW-S", * ipId: mainVpcPublicGatewayIp.id, * }); * const mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", { * gatewayId: mainVpcPublicGateway.id, * privateNetworkId: mainVpcPrivateNetwork.id, * dhcpId: mainVpcPublicGatewayDhcp.id, * cleanupDhcp: true, * enableMasquerade: true, * }); * const byMacAddressAndGwNetwork = scaleway.getVpcPublicGatewayDhcpReservationOutput({ * macAddress: mainInstancePrivateNic.macAddress, * gatewayNetworkId: mainVpcGatewayNetwork.id, * }); * ``` * * ## Example Static and PAT Rule * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * import * as scaleway from "@pulumi/scaleway"; * * const mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork", {}); * const mainInstanceSecurityGroup = new scaleway.InstanceSecurityGroup("mainInstanceSecurityGroup", { * inboundDefaultPolicy: "drop", * outboundDefaultPolicy: "accept", * inboundRules: [{ * action: "accept", * port: 22, * }], * }); * const mainInstanceServer = new scaleway.InstanceServer("mainInstanceServer", { * image: "ubuntu_jammy", * type: "DEV1-S", * zone: "fr-par-1", * securityGroupId: mainInstanceSecurityGroup.id, * }); * const mainInstancePrivateNic = new scaleway.InstancePrivateNic("mainInstancePrivateNic", { * serverId: mainInstanceServer.id, * privateNetworkId: mainVpcPrivateNetwork.id, * }); * const mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp", {}); * const mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", {subnet: "192.168.1.0/24"}); * const mainVpcPublicGateway = new scaleway.VpcPublicGateway("mainVpcPublicGateway", { * type: "VPC-GW-S", * ipId: mainVpcPublicGatewayIp.id, * }); * const mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", { * gatewayId: mainVpcPublicGateway.id, * privateNetworkId: mainVpcPrivateNetwork.id, * dhcpId: mainVpcPublicGatewayDhcp.id, * cleanupDhcp: true, * enableMasquerade: true, * }); * const mainVpcPublicGatewayDhcpReservation = new scaleway.VpcPublicGatewayDhcpReservation("mainVpcPublicGatewayDhcpReservation", { * gatewayNetworkId: mainVpcGatewayNetwork.id, * macAddress: mainInstancePrivateNic.macAddress, * ipAddress: "192.168.1.4", * }); * //## VPC PAT RULE * const mainVpcPublicGatewayPatRule = new scaleway.VpcPublicGatewayPatRule("mainVpcPublicGatewayPatRule", { * gatewayId: mainVpcPublicGateway.id, * privateIp: mainVpcPublicGatewayDhcpReservation.ipAddress, * privatePort: 22, * publicPort: 2222, * protocol: "tcp", * }); * const byId = scaleway.getVpcPublicGatewayDhcpReservationOutput({ * reservationId: mainVpcPublicGatewayDhcpReservation.id, * }); * ``` */ export declare function getVpcPublicGatewayDhcpReservation(args?: GetVpcPublicGatewayDhcpReservationArgs, opts?: pulumi.InvokeOptions): Promise; /** * A collection of arguments for invoking getVpcPublicGatewayDhcpReservation. */ export interface GetVpcPublicGatewayDhcpReservationArgs { /** * The ID of the owning GatewayNetwork. * * > Only one of `reservationId` or `macAddress` with `gatewayNetworkId` should be specified. */ gatewayNetworkId?: string; /** * The MAC address of the reservation to retrieve. */ macAddress?: string; /** * The ID of the reservation (DHCP entry) to retrieve. */ reservationId?: string; /** * Whether to wait for `macAddress` to exist in DHCP. */ waitForDhcp?: boolean; /** * `zone`). The zone in which the reservation exists. */ zone?: string; } /** * A collection of values returned by getVpcPublicGatewayDhcpReservation. */ export interface GetVpcPublicGatewayDhcpReservationResult { readonly createdAt: string; readonly gatewayNetworkId?: string; readonly hostname: string; /** * The provider-assigned unique ID for this managed resource. */ readonly id: string; readonly ipAddress: string; readonly macAddress?: string; readonly reservationId?: string; readonly type: string; readonly updatedAt: string; readonly waitForDhcp?: boolean; readonly zone?: string; } /** * Gets information about a DHCP entry. For further information, please see the * API [documentation](https://www.scaleway.com/en/developers/api/public-gateway/#path-dhcp-entries-list-dhcp-entries)/ * * ## Example Dynamic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * import * as scaleway from "@pulumi/scaleway"; * * const mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork", {}); * const mainInstanceServer = new scaleway.InstanceServer("mainInstanceServer", { * image: "ubuntu_jammy", * type: "DEV1-S", * zone: "fr-par-1", * }); * const mainInstancePrivateNic = new scaleway.InstancePrivateNic("mainInstancePrivateNic", { * serverId: mainInstanceServer.id, * privateNetworkId: mainVpcPrivateNetwork.id, * }); * const mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp", {}); * const mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", {subnet: "192.168.1.0/24"}); * const mainVpcPublicGateway = new scaleway.VpcPublicGateway("mainVpcPublicGateway", { * type: "VPC-GW-S", * ipId: mainVpcPublicGatewayIp.id, * }); * const mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", { * gatewayId: mainVpcPublicGateway.id, * privateNetworkId: mainVpcPrivateNetwork.id, * dhcpId: mainVpcPublicGatewayDhcp.id, * cleanupDhcp: true, * enableMasquerade: true, * }); * const byMacAddressAndGwNetwork = scaleway.getVpcPublicGatewayDhcpReservationOutput({ * macAddress: mainInstancePrivateNic.macAddress, * gatewayNetworkId: mainVpcGatewayNetwork.id, * }); * ``` * * ## Example Static and PAT Rule * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@ediri/scaleway"; * import * as scaleway from "@pulumi/scaleway"; * * const mainVpcPrivateNetwork = new scaleway.VpcPrivateNetwork("mainVpcPrivateNetwork", {}); * const mainInstanceSecurityGroup = new scaleway.InstanceSecurityGroup("mainInstanceSecurityGroup", { * inboundDefaultPolicy: "drop", * outboundDefaultPolicy: "accept", * inboundRules: [{ * action: "accept", * port: 22, * }], * }); * const mainInstanceServer = new scaleway.InstanceServer("mainInstanceServer", { * image: "ubuntu_jammy", * type: "DEV1-S", * zone: "fr-par-1", * securityGroupId: mainInstanceSecurityGroup.id, * }); * const mainInstancePrivateNic = new scaleway.InstancePrivateNic("mainInstancePrivateNic", { * serverId: mainInstanceServer.id, * privateNetworkId: mainVpcPrivateNetwork.id, * }); * const mainVpcPublicGatewayIp = new scaleway.VpcPublicGatewayIp("mainVpcPublicGatewayIp", {}); * const mainVpcPublicGatewayDhcp = new scaleway.VpcPublicGatewayDhcp("mainVpcPublicGatewayDhcp", {subnet: "192.168.1.0/24"}); * const mainVpcPublicGateway = new scaleway.VpcPublicGateway("mainVpcPublicGateway", { * type: "VPC-GW-S", * ipId: mainVpcPublicGatewayIp.id, * }); * const mainVpcGatewayNetwork = new scaleway.VpcGatewayNetwork("mainVpcGatewayNetwork", { * gatewayId: mainVpcPublicGateway.id, * privateNetworkId: mainVpcPrivateNetwork.id, * dhcpId: mainVpcPublicGatewayDhcp.id, * cleanupDhcp: true, * enableMasquerade: true, * }); * const mainVpcPublicGatewayDhcpReservation = new scaleway.VpcPublicGatewayDhcpReservation("mainVpcPublicGatewayDhcpReservation", { * gatewayNetworkId: mainVpcGatewayNetwork.id, * macAddress: mainInstancePrivateNic.macAddress, * ipAddress: "192.168.1.4", * }); * //## VPC PAT RULE * const mainVpcPublicGatewayPatRule = new scaleway.VpcPublicGatewayPatRule("mainVpcPublicGatewayPatRule", { * gatewayId: mainVpcPublicGateway.id, * privateIp: mainVpcPublicGatewayDhcpReservation.ipAddress, * privatePort: 22, * publicPort: 2222, * protocol: "tcp", * }); * const byId = scaleway.getVpcPublicGatewayDhcpReservationOutput({ * reservationId: mainVpcPublicGatewayDhcpReservation.id, * }); * ``` */ export declare function getVpcPublicGatewayDhcpReservationOutput(args?: GetVpcPublicGatewayDhcpReservationOutputArgs, opts?: pulumi.InvokeOutputOptions): pulumi.Output; /** * A collection of arguments for invoking getVpcPublicGatewayDhcpReservation. */ export interface GetVpcPublicGatewayDhcpReservationOutputArgs { /** * The ID of the owning GatewayNetwork. * * > Only one of `reservationId` or `macAddress` with `gatewayNetworkId` should be specified. */ gatewayNetworkId?: pulumi.Input; /** * The MAC address of the reservation to retrieve. */ macAddress?: pulumi.Input; /** * The ID of the reservation (DHCP entry) to retrieve. */ reservationId?: pulumi.Input; /** * Whether to wait for `macAddress` to exist in DHCP. */ waitForDhcp?: pulumi.Input; /** * `zone`). The zone in which the reservation exists. */ zone?: pulumi.Input; }