1. Registry
  2. Packages
  3. stackit
  4. API Docs
  5. getMachineTypes
Viewing docs for stackit v0.0.8
published on Friday, Oct 16, 2026 by stackitcloud
stackit logo
Viewing docs for stackit v0.0.8
published on Friday, Oct 16, 2026 by stackitcloud

    Lists all available machine types in a project and region. Results are sorted by name.

    This datasource is in beta and may be subject to breaking changes in the future. Use with caution. See our guide for how to opt-in to use beta resources.

    Example Usage

    # List all available machine types in the provider region.
    data "stackit_machine_types" "all" {
      project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    }
    
    # Match exactly 1 vCPU and 1024 MB of RAM. All filters are combined with AND.
    data "stackit_machine_types" "small" {
      project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      filter = {
        vcpu = 1
        ram  = 1024
      }
    }
    
    # Filter by extra specs in an explicitly selected region.
    data "stackit_machine_types" "intel" {
      project_id = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
      region     = "eu01"
      filter = {
        vcpu = 2
        extra_specs = {
          cpu = "intel-icelake-generic"
        }
      }
    }
    
    output "small_machine_types" {
      value = data.stackit_machine_types.small.results
    }
    
    # Use HCL for more complex filtering, such as a minimum RAM size.
    output "high_memory_machine_types" {
      value = [
        for machine_type in data.stackit_machine_types.all.results : machine_type
        if machine_type.ram >= 4096
      ]
    }
    

    Using getMachineTypes

    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 getMachineTypes(args: GetMachineTypesArgs, opts?: InvokeOptions): Promise<GetMachineTypesResult>
    function getMachineTypesOutput(args: GetMachineTypesOutputArgs, opts?: InvokeOutputOptions): Output<GetMachineTypesResult>
    def get_machine_types(filter: Optional[GetMachineTypesFilter] = None,
                          project_id: Optional[str] = None,
                          region: Optional[str] = None,
                          timeouts: Optional[GetMachineTypesTimeouts] = None,
                          opts: Optional[InvokeOptions] = None) -> GetMachineTypesResult
    def get_machine_types_output(filter: pulumi.Input[Optional[GetMachineTypesFilterArgs]] = None,
                          project_id: pulumi.Input[Optional[str]] = None,
                          region: pulumi.Input[Optional[str]] = None,
                          timeouts: pulumi.Input[Optional[GetMachineTypesTimeoutsArgs]] = None,
                          opts: Optional[InvokeOutputOptions] = None) -> Output[GetMachineTypesResult]
    func LookupMachineTypes(ctx *Context, args *LookupMachineTypesArgs, opts ...InvokeOption) (*LookupMachineTypesResult, error)
    func LookupMachineTypesOutput(ctx *Context, args *LookupMachineTypesOutputArgs, opts ...InvokeOption) LookupMachineTypesResultOutput

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

    public static class GetMachineTypes 
    {
        public static Task<GetMachineTypesResult> InvokeAsync(GetMachineTypesArgs args, InvokeOptions? opts = null)
        public static Output<GetMachineTypesResult> Invoke(GetMachineTypesInvokeArgs args, InvokeOptions? opts = null)
        public static Output<GetMachineTypesResult> Invoke(GetMachineTypesInvokeArgs args, InvokeOutputOptions opts)
    }
    public static CompletableFuture<GetMachineTypesResult> getMachineTypes(GetMachineTypesArgs args, InvokeOptions options)
    public static Output<GetMachineTypesResult> getMachineTypes(GetMachineTypesArgs args, InvokeOptions options)
    public static Output<GetMachineTypesResult> getMachineTypes(GetMachineTypesArgs args, InvokeOutputOptions options)
    
    fn::invoke:
      function: stackit:index/getMachineTypes:getMachineTypes
      arguments:
        # arguments dictionary
    data "stackit_get_machine_types" "name" {
        # arguments
    }

    The following arguments are supported:

    ProjectId string
    STACKIT project ID.
    Filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    Region string
    Region override. Uses the provider region when omitted.
    Timeouts GetMachineTypesTimeouts
    ProjectId string
    STACKIT project ID.
    Filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    Region string
    Region override. Uses the provider region when omitted.
    Timeouts GetMachineTypesTimeouts
    project_id string
    STACKIT project ID.
    filter object
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region string
    Region override. Uses the provider region when omitted.
    timeouts object
    projectId String
    STACKIT project ID.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region String
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    projectId string
    STACKIT project ID.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region string
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    project_id str
    STACKIT project ID.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region str
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    projectId String
    STACKIT project ID.
    filter Property Map
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region String
    Region override. Uses the provider region when omitted.
    timeouts Property Map

    getMachineTypes Result

    The following output properties are available:

    Id string
    Stable Terraform ID, structured as "projectId,region".
    ProjectId string
    STACKIT project ID.
    Results List<GetMachineTypesResult>
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    Filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    Region string
    Region override. Uses the provider region when omitted.
    Timeouts GetMachineTypesTimeouts
    Id string
    Stable Terraform ID, structured as "projectId,region".
    ProjectId string
    STACKIT project ID.
    Results []GetMachineTypesResult
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    Filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    Region string
    Region override. Uses the provider region when omitted.
    Timeouts GetMachineTypesTimeouts
    id string
    Stable Terraform ID, structured as "projectId,region".
    project_id string
    STACKIT project ID.
    results list(object)
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    filter object
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region string
    Region override. Uses the provider region when omitted.
    timeouts object
    id String
    Stable Terraform ID, structured as "projectId,region".
    projectId String
    STACKIT project ID.
    results List<GetMachineTypesResult>
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region String
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    id string
    Stable Terraform ID, structured as "projectId,region".
    projectId string
    STACKIT project ID.
    results GetMachineTypesResult[]
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region string
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    id str
    Stable Terraform ID, structured as "projectId,region".
    project_id str
    STACKIT project ID.
    results Sequence[GetMachineTypesResult]
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    filter GetMachineTypesFilter
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region str
    Region override. Uses the provider region when omitted.
    timeouts GetMachineTypesTimeouts
    id String
    Stable Terraform ID, structured as "projectId,region".
    projectId String
    STACKIT project ID.
    results List<Property Map>
    All matching machine types, sorted by name ascending. Empty if no machine types match.
    filter Property Map
    Experimental API-side equality filters, which may be subject to breaking changes. All configured attributes and extra spec entries are combined with AND. Omit this object or use an empty object to list all machine types.
    region String
    Region override. Uses the provider region when omitted.
    timeouts Property Map

    Supporting Types

    GetMachineTypesFilter

    Disk int
    Exact disk size in GB to match.
    ExtraSpecs Dictionary<string, string>
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    Name string
    Exact machine type name to match.
    Ram int
    Exact RAM size in MB to match.
    Vcpu int
    Exact number of vCPUs to match.
    Disk int
    Exact disk size in GB to match.
    ExtraSpecs map[string]string
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    Name string
    Exact machine type name to match.
    Ram int
    Exact RAM size in MB to match.
    Vcpu int
    Exact number of vCPUs to match.
    disk number
    Exact disk size in GB to match.
    extra_specs map(string)
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    name string
    Exact machine type name to match.
    ram number
    Exact RAM size in MB to match.
    vcpu number
    Exact number of vCPUs to match.
    disk Integer
    Exact disk size in GB to match.
    extraSpecs Map<String,String>
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    name String
    Exact machine type name to match.
    ram Integer
    Exact RAM size in MB to match.
    vcpu Integer
    Exact number of vCPUs to match.
    disk number
    Exact disk size in GB to match.
    extraSpecs {[key: string]: string}
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    name string
    Exact machine type name to match.
    ram number
    Exact RAM size in MB to match.
    vcpu number
    Exact number of vCPUs to match.
    disk int
    Exact disk size in GB to match.
    extra_specs Mapping[str, str]
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    name str
    Exact machine type name to match.
    ram int
    Exact RAM size in MB to match.
    vcpu int
    Exact number of vCPUs to match.
    disk Number
    Exact disk size in GB to match.
    extraSpecs Map<String>
    Extra specs to match by key and exact value (e.g., cpu or overcommit).
    name String
    Exact machine type name to match.
    ram Number
    Exact RAM size in MB to match.
    vcpu Number
    Exact number of vCPUs to match.

    GetMachineTypesResult

    Description string
    Machine type description.
    Disk int
    Disk size in GB.
    ExtraSpecs Dictionary<string, string>
    Extra specs (e.g., CPU type or overcommit ratio).
    Name string
    Machine type name.
    Ram int
    RAM size in MB.
    Vcpus int
    Number of vCPUs.
    Description string
    Machine type description.
    Disk int
    Disk size in GB.
    ExtraSpecs map[string]string
    Extra specs (e.g., CPU type or overcommit ratio).
    Name string
    Machine type name.
    Ram int
    RAM size in MB.
    Vcpus int
    Number of vCPUs.
    description string
    Machine type description.
    disk number
    Disk size in GB.
    extra_specs map(string)
    Extra specs (e.g., CPU type or overcommit ratio).
    name string
    Machine type name.
    ram number
    RAM size in MB.
    vcpus number
    Number of vCPUs.
    description String
    Machine type description.
    disk Integer
    Disk size in GB.
    extraSpecs Map<String,String>
    Extra specs (e.g., CPU type or overcommit ratio).
    name String
    Machine type name.
    ram Integer
    RAM size in MB.
    vcpus Integer
    Number of vCPUs.
    description string
    Machine type description.
    disk number
    Disk size in GB.
    extraSpecs {[key: string]: string}
    Extra specs (e.g., CPU type or overcommit ratio).
    name string
    Machine type name.
    ram number
    RAM size in MB.
    vcpus number
    Number of vCPUs.
    description str
    Machine type description.
    disk int
    Disk size in GB.
    extra_specs Mapping[str, str]
    Extra specs (e.g., CPU type or overcommit ratio).
    name str
    Machine type name.
    ram int
    RAM size in MB.
    vcpus int
    Number of vCPUs.
    description String
    Machine type description.
    disk Number
    Disk size in GB.
    extraSpecs Map<String>
    Extra specs (e.g., CPU type or overcommit ratio).
    name String
    Machine type name.
    ram Number
    RAM size in MB.
    vcpus Number
    Number of vCPUs.

    GetMachineTypesTimeouts

    Read string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Read string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    read string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    read String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    read string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    read str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    read String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).

    Package Details

    Repository
    stackit stackitcloud/pulumi-stackit
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the stackit Terraform Provider.
    stackit logo
    Viewing docs for stackit v0.0.8
    published on Friday, Oct 16, 2026 by stackitcloud

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial