1. Packages
  2. Equinix
Equinix v0.8.0 published on Tuesday, Apr 2, 2024 by Equinix

Equinix

equinix logo
Equinix v0.8.0 published on Tuesday, Apr 2, 2024 by Equinix

    The Equinix provider for Pulumi can be used to provision Equinix resources (Metal, Fabric, and Network Edge).

    The Equinix provider must be configured with credentials to create and update resources in Equinix.

    Example

    import * as pulumi from "@pulumi/pulumi";
    import * as equinix from "@equinix-labs/pulumi-equinix";
    
    const config = new pulumi.Config();
    const projectId = config.require("projectId");
    const web = new equinix.metal.Device("web", {
        hostname: "webserver1",
        plan: "c3.small.x86",
        operatingSystem: "ubuntu_20_04",
        metro: "sv",
        billingCycle: "hourly",
        projectId: projectId,
    });
    export const webPublicIp = pulumi.interpolate`http://${web.accessPublicIpv4}`;
    
    import pulumi
    import pulumi_equinix as equinix
    
    config = pulumi.Config()
    project_id = config.require("projectId")
    web = equinix.metal.Device("web",
        hostname="webserver1",
        plan="c3.small.x86",
        operating_system="ubuntu_20_04",
        metro="sv",
        billing_cycle="hourly",
        project_id=project_id)
    pulumi.export("webPublicIp", web.access_public_ipv4.apply(lambda access_public_ipv4: f"http://{access_public_ipv4}"))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		projectId := cfg.Require("projectId")
    		web, err := metal.NewDevice(ctx, "web", &metal.DeviceArgs{
    			Hostname:        pulumi.String("webserver1"),
    			Plan:            pulumi.String("c3.small.x86"),
    			OperatingSystem: pulumi.String("ubuntu_20_04"),
    			Metro:           pulumi.String("sv"),
    			BillingCycle:    pulumi.String("hourly"),
    			ProjectId:       pulumi.String(projectId),
    		})
    		if err != nil {
    			return err
    		}
    		ctx.Export("webPublicIp", web.AccessPublicIpv4.ApplyT(func(accessPublicIpv4 string) (string, error) {
    			return fmt.Sprintf("http://%v", accessPublicIpv4), nil
    		}).(pulumi.StringOutput))
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using Pulumi;
    using Equinix = Pulumi.Equinix;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var projectId = config.Require("projectId");
        var web = new Equinix.Metal.Device("web", new()
        {
            Hostname = "webserver1",
            Plan = "c3.small.x86",
            OperatingSystem = "ubuntu_20_04",
            Metro = "sv",
            BillingCycle = "hourly",
            ProjectId = projectId,
        });
    
        return new Dictionary<string, object?>
        {
            ["webPublicIp"] = web.AccessPublicIpv4.Apply(accessPublicIpv4 => $"http://{accessPublicIpv4}"),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.equinix.pulumi.metal.Device;
    import com.equinix.pulumi.metal.DeviceArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            final var config = ctx.config();
            final var projectId = config.get("projectId");
            var web = new Device("web", DeviceArgs.builder()        
                .hostname("webserver1")
                .plan("c3.small.x86")
                .operatingSystem("ubuntu_20_04")
                .metro("sv")
                .billingCycle("hourly")
                .projectId(projectId)
                .build());
    
            ctx.export("webPublicIp", web.accessPublicIpv4().applyValue(accessPublicIpv4 -> String.format("http://%s", accessPublicIpv4)));
        }
    }
    
    name: equinix-metal-device
    runtime: yaml
    description: An Equinix Metal Device resource
    config:
      projectId:
        type: string
    resources:
      web:
        type: equinix:metal:Device
        properties:
          hostname: webserver1
          plan: c3.small.x86
          operatingSystem: ubuntu_20_04
          metro: sv
          billingCycle: hourly
          projectId: ${projectId}
    outputs:
      webPublicIp: http://${web.accessPublicIpv4}
    
    equinix logo
    Equinix v0.8.0 published on Tuesday, Apr 2, 2024 by Equinix