1. Packages
  2. Equinix
  3. API Docs
  4. metal
  5. getOperatingSystem
Equinix v0.21.0 published on Friday, Feb 28, 2025 by Equinix

equinix.metal.getOperatingSystem

Explore with Pulumi AI

Equinix v0.21.0 published on Friday, Feb 28, 2025 by Equinix

Use this data source to get Equinix Metal Operating System image.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as equinix from "@equinix-labs/pulumi-equinix";
import * as equinix from "@pulumi/equinix";

const example = equinix.metal.getOperatingSystem({
    distro: "ubuntu",
    version: "20.04",
    provisionableOn: "c3.medium.x86",
});
const server = new equinix.metal.Device("server", {
    hostname: "tf.ubuntu",
    plan: equinix.metal.Plan.C3MediumX86,
    metro: "ny",
    operatingSystem: example.then(example => example.id).apply((x) => equinix.metal.OperatingSystem[x]),
    billingCycle: equinix.metal.BillingCycle.Hourly,
    projectId: local.project_id,
});
Copy
import pulumi
import pulumi_equinix as equinix

example = equinix.metal.get_operating_system(distro="ubuntu",
    version="20.04",
    provisionable_on="c3.medium.x86")
server = equinix.metal.Device("server",
    hostname="tf.ubuntu",
    plan=equinix.metal.Plan.C3_MEDIUM_X86,
    metro="ny",
    operating_system=example.id.apply(lambda x: equinix.metal.OperatingSystem(x)),
    billing_cycle=equinix.metal.BillingCycle.HOURLY,
    project_id=local["project_id"])
Copy
package main

import (
	"github.com/equinix/pulumi-equinix/sdk/go/equinix/metal"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		example, err := metal.GetOperatingSystem(ctx, &metal.GetOperatingSystemArgs{
			Distro:          pulumi.StringRef("ubuntu"),
			Version:         pulumi.StringRef("20.04"),
			ProvisionableOn: pulumi.StringRef("c3.medium.x86"),
		}, nil)
		if err != nil {
			return err
		}
		_, err = metal.NewDevice(ctx, "server", &metal.DeviceArgs{
			Hostname:        pulumi.String("tf.ubuntu"),
			Plan:            pulumi.String(metal.PlanC3MediumX86),
			Metro:           pulumi.String("ny"),
			OperatingSystem: example.Id.ApplyT(func(x *string) metal.OperatingSystem { return metal.OperatingSystem(*x) }).(metal.OperatingSystemOutput),
			BillingCycle:    pulumi.String(metal.BillingCycleHourly),
			ProjectId:       pulumi.Any(local.Project_id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Equinix = Pulumi.Equinix;

return await Deployment.RunAsync(() => 
{
    var example = Equinix.Metal.GetOperatingSystem.Invoke(new()
    {
        Distro = "ubuntu",
        Version = "20.04",
        ProvisionableOn = "c3.medium.x86",
    });

    var server = new Equinix.Metal.Device("server", new()
    {
        Hostname = "tf.ubuntu",
        Plan = Equinix.Metal.Plan.C3MediumX86,
        Metro = "ny",
        OperatingSystem = example.Apply(getOperatingSystemResult => getOperatingSystemResult.Id).Apply(System.Enum.Parse<Equinix.Metal.OperatingSystem>),
        BillingCycle = Equinix.Metal.BillingCycle.Hourly,
        ProjectId = local.Project_id,
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.equinix.metal.MetalFunctions;
import com.pulumi.equinix.metal.inputs.GetOperatingSystemArgs;
import com.pulumi.equinix.metal.Device;
import com.pulumi.equinix.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 example = MetalFunctions.getOperatingSystem(GetOperatingSystemArgs.builder()
            .distro("ubuntu")
            .version("20.04")
            .provisionableOn("c3.medium.x86")
            .build());

        var server = new Device("server", DeviceArgs.builder()
            .hostname("tf.ubuntu")
            .plan("c3.medium.x86")
            .metro("ny")
            .operatingSystem(example.applyValue(getOperatingSystemResult -> getOperatingSystemResult.id()))
            .billingCycle("hourly")
            .projectId(local.project_id())
            .build());

    }
}
Copy
resources:
  server:
    type: equinix:metal:Device
    properties:
      hostname: tf.ubuntu
      plan: c3.medium.x86
      metro: ny
      operatingSystem: ${example.id}
      billingCycle: hourly
      projectId: ${local.project_id}
variables:
  example:
    fn::invoke:
      Function: equinix:metal:getOperatingSystem
      Arguments:
        distro: ubuntu
        version: '20.04'
        provisionableOn: c3.medium.x86
Copy

Using getOperatingSystem

Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

function getOperatingSystem(args: GetOperatingSystemArgs, opts?: InvokeOptions): Promise<GetOperatingSystemResult>
function getOperatingSystemOutput(args: GetOperatingSystemOutputArgs, opts?: InvokeOptions): Output<GetOperatingSystemResult>
Copy
def get_operating_system(distro: Optional[str] = None,
                         name: Optional[str] = None,
                         provisionable_on: Optional[str] = None,
                         version: Optional[str] = None,
                         opts: Optional[InvokeOptions] = None) -> GetOperatingSystemResult
def get_operating_system_output(distro: Optional[pulumi.Input[str]] = None,
                         name: Optional[pulumi.Input[str]] = None,
                         provisionable_on: Optional[pulumi.Input[str]] = None,
                         version: Optional[pulumi.Input[str]] = None,
                         opts: Optional[InvokeOptions] = None) -> Output[GetOperatingSystemResult]
Copy
func GetOperatingSystem(ctx *Context, args *GetOperatingSystemArgs, opts ...InvokeOption) (*GetOperatingSystemResult, error)
func GetOperatingSystemOutput(ctx *Context, args *GetOperatingSystemOutputArgs, opts ...InvokeOption) GetOperatingSystemResultOutput
Copy

> Note: This function is named GetOperatingSystem in the Go SDK.

public static class GetOperatingSystem 
{
    public static Task<GetOperatingSystemResult> InvokeAsync(GetOperatingSystemArgs args, InvokeOptions? opts = null)
    public static Output<GetOperatingSystemResult> Invoke(GetOperatingSystemInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetOperatingSystemResult> getOperatingSystem(GetOperatingSystemArgs args, InvokeOptions options)
public static Output<GetOperatingSystemResult> getOperatingSystem(GetOperatingSystemArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: equinix:metal/getOperatingSystem:getOperatingSystem
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

Distro string
Name of the OS distribution.
Name string
Name or part of the name of the distribution. Case insensitive.
ProvisionableOn string
Plan name.
Version string
Version of the distribution.
Distro string
Name of the OS distribution.
Name string
Name or part of the name of the distribution. Case insensitive.
ProvisionableOn string
Plan name.
Version string
Version of the distribution.
distro String
Name of the OS distribution.
name String
Name or part of the name of the distribution. Case insensitive.
provisionableOn String
Plan name.
version String
Version of the distribution.
distro string
Name of the OS distribution.
name string
Name or part of the name of the distribution. Case insensitive.
provisionableOn string
Plan name.
version string
Version of the distribution.
distro str
Name of the OS distribution.
name str
Name or part of the name of the distribution. Case insensitive.
provisionable_on str
Plan name.
version str
Version of the distribution.
distro String
Name of the OS distribution.
name String
Name or part of the name of the distribution. Case insensitive.
provisionableOn String
Plan name.
version String
Version of the distribution.

getOperatingSystem Result

The following output properties are available:

Id string
The provider-assigned unique ID for this managed resource.
Slug string
Operating system slug (same as id).
Distro string
Name string
ProvisionableOn string
Version string
Id string
The provider-assigned unique ID for this managed resource.
Slug string
Operating system slug (same as id).
Distro string
Name string
ProvisionableOn string
Version string
id String
The provider-assigned unique ID for this managed resource.
slug String
Operating system slug (same as id).
distro String
name String
provisionableOn String
version String
id string
The provider-assigned unique ID for this managed resource.
slug string
Operating system slug (same as id).
distro string
name string
provisionableOn string
version string
id str
The provider-assigned unique ID for this managed resource.
slug str
Operating system slug (same as id).
distro str
name str
provisionable_on str
version str
id String
The provider-assigned unique ID for this managed resource.
slug String
Operating system slug (same as id).
distro String
name String
provisionableOn String
version String

Package Details

Repository
equinix equinix/pulumi-equinix
License
Apache-2.0
Notes
This Pulumi package is based on the equinix Terraform Provider.
Equinix v0.21.0 published on Friday, Feb 28, 2025 by Equinix