1. Packages
  2. Linode
  3. API Docs
  4. getPlacementGroups
Linode v4.22.0 published on Tuesday, Jun 25, 2024 by Pulumi

linode.getPlacementGroups

Explore with Pulumi AI

linode logo
Linode v4.22.0 published on Tuesday, Jun 25, 2024 by Pulumi

    NOTE: Placement Groups may not currently be available to all users.

    Provides information about a list of Linode Placement Groups that match a set of filters.

    Example Usage

    The following example shows how one might use this data source to list Placement Groups.

    import * as pulumi from "@pulumi/pulumi";
    import * as linode from "@pulumi/linode";
    
    export = async () => {
        const all = await linode.getPlacementGroups({});
        const filtered = await linode.getPlacementGroups({
            filters: [{
                name: "label",
                values: ["my-label"],
            }],
        });
        return {
            "all-pgs": all.placementGroups,
            "filtered-pgs": filtered.placementGroups,
        };
    }
    
    import pulumi
    import pulumi_linode as linode
    
    all = linode.get_placement_groups()
    filtered = linode.get_placement_groups(filters=[linode.GetPlacementGroupsFilterArgs(
        name="label",
        values=["my-label"],
    )])
    pulumi.export("all-pgs", all.placement_groups)
    pulumi.export("filtered-pgs", filtered.placement_groups)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-linode/sdk/v4/go/linode"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		all, err := linode.GetPlacementGroups(ctx, nil, nil)
    		if err != nil {
    			return err
    		}
    		filtered, err := linode.GetPlacementGroups(ctx, &linode.GetPlacementGroupsArgs{
    			Filters: []linode.GetPlacementGroupsFilter{
    				{
    					Name: "label",
    					Values: []string{
    						"my-label",
    					},
    				},
    			},
    		}, nil)
    		if err != nil {
    			return err
    		}
    		ctx.Export("all-pgs", all.PlacementGroups)
    		ctx.Export("filtered-pgs", filtered.PlacementGroups)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Linode = Pulumi.Linode;
    
    return await Deployment.RunAsync(() => 
    {
        var all = Linode.GetPlacementGroups.Invoke();
    
        var filtered = Linode.GetPlacementGroups.Invoke(new()
        {
            Filters = new[]
            {
                new Linode.Inputs.GetPlacementGroupsFilterInputArgs
                {
                    Name = "label",
                    Values = new[]
                    {
                        "my-label",
                    },
                },
            },
        });
    
        return new Dictionary<string, object?>
        {
            ["all-pgs"] = all.Apply(getPlacementGroupsResult => getPlacementGroupsResult.PlacementGroups),
            ["filtered-pgs"] = filtered.Apply(getPlacementGroupsResult => getPlacementGroupsResult.PlacementGroups),
        };
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.linode.LinodeFunctions;
    import com.pulumi.linode.inputs.GetPlacementGroupsArgs;
    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 all = LinodeFunctions.getPlacementGroups();
    
            final var filtered = LinodeFunctions.getPlacementGroups(GetPlacementGroupsArgs.builder()
                .filters(GetPlacementGroupsFilterArgs.builder()
                    .name("label")
                    .values("my-label")
                    .build())
                .build());
    
            ctx.export("all-pgs", all.applyValue(getPlacementGroupsResult -> getPlacementGroupsResult.placementGroups()));
            ctx.export("filtered-pgs", filtered.applyValue(getPlacementGroupsResult -> getPlacementGroupsResult.placementGroups()));
        }
    }
    
    variables:
      all:
        fn::invoke:
          Function: linode:getPlacementGroups
          Arguments: {}
      filtered:
        fn::invoke:
          Function: linode:getPlacementGroups
          Arguments:
            filters:
              - name: label
                values:
                  - my-label
    outputs:
      all-pgs: ${all.placementGroups}
      filtered-pgs: ${filtered.placementGroups}
    

    Filterable Fields

    • id

    • label

    • region

    • affinity_type

    • is_strict

    • is_compliant

    Using getPlacementGroups

    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 getPlacementGroups(args: GetPlacementGroupsArgs, opts?: InvokeOptions): Promise<GetPlacementGroupsResult>
    function getPlacementGroupsOutput(args: GetPlacementGroupsOutputArgs, opts?: InvokeOptions): Output<GetPlacementGroupsResult>
    def get_placement_groups(filters: Optional[Sequence[GetPlacementGroupsFilter]] = None,
                             order: Optional[str] = None,
                             order_by: Optional[str] = None,
                             placement_groups: Optional[Sequence[GetPlacementGroupsPlacementGroup]] = None,
                             opts: Optional[InvokeOptions] = None) -> GetPlacementGroupsResult
    def get_placement_groups_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetPlacementGroupsFilterArgs]]]] = None,
                             order: Optional[pulumi.Input[str]] = None,
                             order_by: Optional[pulumi.Input[str]] = None,
                             placement_groups: Optional[pulumi.Input[Sequence[pulumi.Input[GetPlacementGroupsPlacementGroupArgs]]]] = None,
                             opts: Optional[InvokeOptions] = None) -> Output[GetPlacementGroupsResult]
    func GetPlacementGroups(ctx *Context, args *GetPlacementGroupsArgs, opts ...InvokeOption) (*GetPlacementGroupsResult, error)
    func GetPlacementGroupsOutput(ctx *Context, args *GetPlacementGroupsOutputArgs, opts ...InvokeOption) GetPlacementGroupsResultOutput

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

    public static class GetPlacementGroups 
    {
        public static Task<GetPlacementGroupsResult> InvokeAsync(GetPlacementGroupsArgs args, InvokeOptions? opts = null)
        public static Output<GetPlacementGroupsResult> Invoke(GetPlacementGroupsInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetPlacementGroupsResult> getPlacementGroups(GetPlacementGroupsArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: linode:index/getPlacementGroups:getPlacementGroups
      arguments:
        # arguments dictionary

    The following arguments are supported:

    getPlacementGroups Result

    The following output properties are available:

    Supporting Types

    GetPlacementGroupsFilter

    Name string
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    Values List<string>
    A list of values for the filter to allow. These values should all be in string form.
    MatchBy string
    The method to match the field by. (exact, regex, substring; default exact)
    Name string
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    Values []string
    A list of values for the filter to allow. These values should all be in string form.
    MatchBy string
    The method to match the field by. (exact, regex, substring; default exact)
    name String
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    values List<String>
    A list of values for the filter to allow. These values should all be in string form.
    matchBy String
    The method to match the field by. (exact, regex, substring; default exact)
    name string
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    values string[]
    A list of values for the filter to allow. These values should all be in string form.
    matchBy string
    The method to match the field by. (exact, regex, substring; default exact)
    name str
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    values Sequence[str]
    A list of values for the filter to allow. These values should all be in string form.
    match_by str
    The method to match the field by. (exact, regex, substring; default exact)
    name String
    The name of the field to filter by. See the Filterable Fields section for a complete list of filterable fields.
    values List<String>
    A list of values for the filter to allow. These values should all be in string form.
    matchBy String
    The method to match the field by. (exact, regex, substring; default exact)

    GetPlacementGroupsPlacementGroup

    AffinityType string
    The affinity policy to use when placing Linodes in this group.
    Id int
    The ID of the placement group.
    IsCompliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    IsStrict bool
    Whether Linodes must be able to become compliant during assignment. (Default true)
    Label string
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    Region string
    The region of the Placement Group.
    Members List<GetPlacementGroupsPlacementGroupMember>
    A set of Linodes currently assigned to this Placement Group.
    AffinityType string
    The affinity policy to use when placing Linodes in this group.
    Id int
    The ID of the placement group.
    IsCompliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    IsStrict bool
    Whether Linodes must be able to become compliant during assignment. (Default true)
    Label string
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    Region string
    The region of the Placement Group.
    Members []GetPlacementGroupsPlacementGroupMember
    A set of Linodes currently assigned to this Placement Group.
    affinityType String
    The affinity policy to use when placing Linodes in this group.
    id Integer
    The ID of the placement group.
    isCompliant Boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    isStrict Boolean
    Whether Linodes must be able to become compliant during assignment. (Default true)
    label String
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    region String
    The region of the Placement Group.
    members List<GetPlacementGroupsPlacementGroupMember>
    A set of Linodes currently assigned to this Placement Group.
    affinityType string
    The affinity policy to use when placing Linodes in this group.
    id number
    The ID of the placement group.
    isCompliant boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    isStrict boolean
    Whether Linodes must be able to become compliant during assignment. (Default true)
    label string
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    region string
    The region of the Placement Group.
    members GetPlacementGroupsPlacementGroupMember[]
    A set of Linodes currently assigned to this Placement Group.
    affinity_type str
    The affinity policy to use when placing Linodes in this group.
    id int
    The ID of the placement group.
    is_compliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    is_strict bool
    Whether Linodes must be able to become compliant during assignment. (Default true)
    label str
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    region str
    The region of the Placement Group.
    members Sequence[GetPlacementGroupsPlacementGroupMember]
    A set of Linodes currently assigned to this Placement Group.
    affinityType String
    The affinity policy to use when placing Linodes in this group.
    id Number
    The ID of the placement group.
    isCompliant Boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    isStrict Boolean
    Whether Linodes must be able to become compliant during assignment. (Default true)
    label String
    The label of the Placement Group. This field can only contain ASCII letters, digits and dashes.
    region String
    The region of the Placement Group.
    members List<Property Map>
    A set of Linodes currently assigned to this Placement Group.

    GetPlacementGroupsPlacementGroupMember

    IsCompliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    LinodeId int
    The ID of the Linode.
    IsCompliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    LinodeId int
    The ID of the Linode.
    isCompliant Boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    linodeId Integer
    The ID of the Linode.
    isCompliant boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    linodeId number
    The ID of the Linode.
    is_compliant bool
    Whether this Linode is currently compliant with the group's affinity policy.
    linode_id int
    The ID of the Linode.
    isCompliant Boolean
    Whether this Linode is currently compliant with the group's affinity policy.
    linodeId Number
    The ID of the Linode.

    Package Details

    Repository
    Linode pulumi/pulumi-linode
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the linode Terraform Provider.
    linode logo
    Linode v4.22.0 published on Tuesday, Jun 25, 2024 by Pulumi