@pulumiverse/scaleway
Version:
A Pulumi package for creating and managing Scaleway cloud resources.
279 lines • 10.3 kB
TypeScript
import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* Books and manages IPAM IPs.
*
* For more information about IPAM, see the main [documentation](https://www.scaleway.com/en/docs/vpc/concepts/#ipam).
*
* ## Example Usage
*
* ### Basic
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "my vpc"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* vpcId: vpc01.id,
* ipv4Subnet: {
* subnet: "172.16.32.0/22",
* },
* });
* const ip01 = new scaleway.ipam.Ip("ip01", {sources: [{
* privateNetworkId: pn01.id,
* }]});
* ```
*
* ### Request a specific IPv4 address
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "my vpc"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* vpcId: vpc01.id,
* ipv4Subnet: {
* subnet: "172.16.32.0/22",
* },
* });
* const ip01 = new scaleway.ipam.Ip("ip01", {
* address: "172.16.32.7",
* sources: [{
* privateNetworkId: pn01.id,
* }],
* });
* ```
*
* ### Request an IPv6 address
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "my vpc"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* vpcId: vpc01.id,
* ipv6Subnets: [{
* subnet: "fd46:78ab:30b8:177c::/64",
* }],
* });
* const ip01 = new scaleway.ipam.Ip("ip01", {
* isIpv6: true,
* sources: [{
* privateNetworkId: pn01.id,
* }],
* });
* ```
*
* ### Book an IP for a custom resource
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as scaleway from "@pulumiverse/scaleway";
*
* const vpc01 = new scaleway.network.Vpc("vpc01", {name: "my vpc"});
* const pn01 = new scaleway.network.PrivateNetwork("pn01", {
* vpcId: vpc01.id,
* ipv4Subnet: {
* subnet: "172.16.32.0/22",
* },
* });
* const ip01 = new scaleway.ipam.Ip("ip01", {
* address: "172.16.32.7",
* sources: [{
* privateNetworkId: pn01.id,
* }],
* customResources: [{
* macAddress: "bc:24:11:74:d0:6a",
* }],
* });
* ```
*
* ## Import
*
* IPAM IPs can be imported using `{region}/{id}`, e.g.
*
* ```sh
* $ pulumi import scaleway:index/ipamIp:IpamIp ip_demo fr-par/11111111-1111-1111-1111-111111111111
* ```
*
* @deprecated scaleway.index/ipamip.IpamIp has been deprecated in favor of scaleway.ipam/ip.Ip
*/
export declare class IpamIp extends pulumi.CustomResource {
/**
* Get an existing IpamIp 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?: IpamIpState, opts?: pulumi.CustomResourceOptions): IpamIp;
/**
* Returns true if the given object is an instance of IpamIp. 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 IpamIp;
/**
* Request a specific IP in the specified source pool.
*
* > **Important:** when requesting specific IP addresses, it is best ensure these are created before any other resource in the Private Network. This can be achieved by using `dependsOn` relations, or moving the declarations to another Terraform module. Otherwise, other resources may take the requested address first, blocking the whole Terraform setup. Static IPs should be avoided unless necessary, as we cannot guarantee full automation. We recommend to use DNS, or to not request a specific IP.
*/
readonly address: pulumi.Output<string>;
/**
* the IP address in CIDR notation.
*/
readonly addressCidr: pulumi.Output<string>;
/**
* Date and time of IP's creation (RFC 3339 format).
*/
readonly createdAt: pulumi.Output<string>;
/**
* The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.
*/
readonly customResources: pulumi.Output<outputs.IpamIpCustomResource[] | undefined>;
/**
* Defines whether to request an IPv6 address instead of IPv4.
*/
readonly isIpv6: pulumi.Output<boolean | undefined>;
/**
* `projectId`) The ID of the Project the IP is associated with.
*/
readonly projectId: pulumi.Output<string>;
/**
* `region`) The region of the IP.
*/
readonly region: pulumi.Output<string | undefined>;
/**
* The IP resource.
*/
readonly resources: pulumi.Output<outputs.IpamIpResource[]>;
/**
* The reverse DNS for this IP.
*/
readonly reverses: pulumi.Output<outputs.IpamIpReverse[]>;
/**
* The source in which to book the IP.
*/
readonly sources: pulumi.Output<outputs.IpamIpSource[]>;
/**
* The tags associated with the IP.
*/
readonly tags: pulumi.Output<string[] | undefined>;
/**
* Date and time of IP's last update (RFC 3339 format).
*/
readonly updatedAt: pulumi.Output<string>;
/**
* The zone of the IP.
*/
readonly zone: pulumi.Output<string>;
/**
* Create a IpamIp 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/ipamip.IpamIp has been deprecated in favor of scaleway.ipam/ip.Ip */
constructor(name: string, args: IpamIpArgs, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering IpamIp resources.
*/
export interface IpamIpState {
/**
* Request a specific IP in the specified source pool.
*
* > **Important:** when requesting specific IP addresses, it is best ensure these are created before any other resource in the Private Network. This can be achieved by using `dependsOn` relations, or moving the declarations to another Terraform module. Otherwise, other resources may take the requested address first, blocking the whole Terraform setup. Static IPs should be avoided unless necessary, as we cannot guarantee full automation. We recommend to use DNS, or to not request a specific IP.
*/
address?: pulumi.Input<string | undefined>;
/**
* the IP address in CIDR notation.
*/
addressCidr?: pulumi.Input<string | undefined>;
/**
* Date and time of IP's creation (RFC 3339 format).
*/
createdAt?: pulumi.Input<string | undefined>;
/**
* The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.
*/
customResources?: pulumi.Input<pulumi.Input<inputs.IpamIpCustomResource>[] | undefined>;
/**
* Defines whether to request an IPv6 address instead of IPv4.
*/
isIpv6?: pulumi.Input<boolean | undefined>;
/**
* `projectId`) The ID of the Project the IP is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* `region`) The region of the IP.
*/
region?: pulumi.Input<string | undefined>;
/**
* The IP resource.
*/
resources?: pulumi.Input<pulumi.Input<inputs.IpamIpResource>[] | undefined>;
/**
* The reverse DNS for this IP.
*/
reverses?: pulumi.Input<pulumi.Input<inputs.IpamIpReverse>[] | undefined>;
/**
* The source in which to book the IP.
*/
sources?: pulumi.Input<pulumi.Input<inputs.IpamIpSource>[] | undefined>;
/**
* The tags associated with the IP.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
/**
* Date and time of IP's last update (RFC 3339 format).
*/
updatedAt?: pulumi.Input<string | undefined>;
/**
* The zone of the IP.
*/
zone?: pulumi.Input<string | undefined>;
}
/**
* The set of arguments for constructing a IpamIp resource.
*/
export interface IpamIpArgs {
/**
* Request a specific IP in the specified source pool.
*
* > **Important:** when requesting specific IP addresses, it is best ensure these are created before any other resource in the Private Network. This can be achieved by using `dependsOn` relations, or moving the declarations to another Terraform module. Otherwise, other resources may take the requested address first, blocking the whole Terraform setup. Static IPs should be avoided unless necessary, as we cannot guarantee full automation. We recommend to use DNS, or to not request a specific IP.
*/
address?: pulumi.Input<string | undefined>;
/**
* The custom resource to attach to the IP being reserved. An example of a custom resource is a virtual machine hosted on an Elastic Metal server.
*/
customResources?: pulumi.Input<pulumi.Input<inputs.IpamIpCustomResource>[] | undefined>;
/**
* Defines whether to request an IPv6 address instead of IPv4.
*/
isIpv6?: pulumi.Input<boolean | undefined>;
/**
* `projectId`) The ID of the Project the IP is associated with.
*/
projectId?: pulumi.Input<string | undefined>;
/**
* `region`) The region of the IP.
*/
region?: pulumi.Input<string | undefined>;
/**
* The source in which to book the IP.
*/
sources: pulumi.Input<pulumi.Input<inputs.IpamIpSource>[]>;
/**
* The tags associated with the IP.
*/
tags?: pulumi.Input<pulumi.Input<string>[] | undefined>;
}
//# sourceMappingURL=ipamIp.d.ts.map