Equinix v0.11.2 published on Wednesday, Jun 26, 2024 by Equinix
equinix.metal.getOperatingSystem
Explore with Pulumi AI
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,
});
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"])
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
	})
}
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,
    });
});
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());
    }
}
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
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>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]func GetOperatingSystem(ctx *Context, args *GetOperatingSystemArgs, opts ...InvokeOption) (*GetOperatingSystemResult, error)
func GetOperatingSystemOutput(ctx *Context, args *GetOperatingSystemOutputArgs, opts ...InvokeOption) GetOperatingSystemResultOutput> 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)
}public static CompletableFuture<GetOperatingSystemResult> getOperatingSystem(GetOperatingSystemArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
  function: equinix:metal/getOperatingSystem:getOperatingSystem
  arguments:
    # arguments dictionaryThe following arguments are supported:
- Distro string
 - Name of the OS distribution.
 - Name string
 - Name or part of the name of the distribution. Case insensitive.
 - Provisionable
On 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.
 - Provisionable
On 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.
 - provisionable
On 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.
 - provisionable
On 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.
 - provisionable
On String - Plan name.
 - version String
 - Version of the distribution.
 
getOperatingSystem Result
The following output properties are available:
Package Details
- Repository
 - equinix equinix/pulumi-equinix
 - License
 - Apache-2.0
 - Notes
 - This Pulumi package is based on the 
equinixTerraform Provider.