1. Packages
  2. Nsxt Provider
  3. API Docs
  4. getNsGroups
nsxt 3.8.0 published on Monday, Apr 14, 2025 by vmware

nsxt.getNsGroups

Explore with Pulumi AI

nsxt 3.8.0 published on Monday, Apr 14, 2025 by vmware

This data source builds a “name to uuid” map of the whole NS Group table. Such map can be referenced in configuration to obtain object uuids by display name at a cost of single roudtrip to NSX, which improves apply and refresh time at scale, compared to multiple instances of nsxt.NsGroup data source.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as nsxt from "@pulumi/nsxt";

const map = nsxt.getNsGroups({});
const s1 = new nsxt.FirewallSection("s1", {
    displayName: "section1",
    appliedTos: [{
        targetType: "NSGroup",
        targetId: map.then(map => map.items?.group1),
    }],
    sectionType: "LAYER3",
});
Copy
import pulumi
import pulumi_nsxt as nsxt

map = nsxt.get_ns_groups()
s1 = nsxt.FirewallSection("s1",
    display_name="section1",
    applied_tos=[{
        "target_type": "NSGroup",
        "target_id": map.items["group1"],
    }],
    section_type="LAYER3")
Copy
package main

import (
	"github.com/pulumi/pulumi-terraform-provider/sdks/go/nsxt/v3/nsxt"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_map, err := nsxt.GetNsGroups(ctx, &nsxt.GetNsGroupsArgs{}, nil)
		if err != nil {
			return err
		}
		_, err = nsxt.NewFirewallSection(ctx, "s1", &nsxt.FirewallSectionArgs{
			DisplayName: pulumi.String("section1"),
			AppliedTos: nsxt.FirewallSectionAppliedToArray{
				&nsxt.FirewallSectionAppliedToArgs{
					TargetType: pulumi.String("NSGroup"),
					TargetId:   pulumi.String(_map.Items.Group1),
				},
			},
			SectionType: pulumi.String("LAYER3"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Nsxt = Pulumi.Nsxt;

return await Deployment.RunAsync(() => 
{
    var map = Nsxt.GetNsGroups.Invoke();

    var s1 = new Nsxt.FirewallSection("s1", new()
    {
        DisplayName = "section1",
        AppliedTos = new[]
        {
            new Nsxt.Inputs.FirewallSectionAppliedToArgs
            {
                TargetType = "NSGroup",
                TargetId = map.Apply(getNsGroupsResult => getNsGroupsResult.Items?.Group1),
            },
        },
        SectionType = "LAYER3",
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.nsxt.NsxtFunctions;
import com.pulumi.nsxt.inputs.GetNsGroupsArgs;
import com.pulumi.nsxt.FirewallSection;
import com.pulumi.nsxt.FirewallSectionArgs;
import com.pulumi.nsxt.inputs.FirewallSectionAppliedToArgs;
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 map = NsxtFunctions.getNsGroups();

        var s1 = new FirewallSection("s1", FirewallSectionArgs.builder()
            .displayName("section1")
            .appliedTos(FirewallSectionAppliedToArgs.builder()
                .targetType("NSGroup")
                .targetId(map.applyValue(getNsGroupsResult -> getNsGroupsResult.items().group1()))
                .build())
            .sectionType("LAYER3")
            .build());

    }
}
Copy
resources:
  s1:
    type: nsxt:FirewallSection
    properties:
      displayName: section1
      appliedTos:
        - targetType: NSGroup
          targetId: ${map.items.group1}
      sectionType: LAYER3
variables:
  map:
    fn::invoke:
      function: nsxt:getNsGroups
      arguments: {}
Copy

Using getNsGroups

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 getNsGroups(args: GetNsGroupsArgs, opts?: InvokeOptions): Promise<GetNsGroupsResult>
function getNsGroupsOutput(args: GetNsGroupsOutputArgs, opts?: InvokeOptions): Output<GetNsGroupsResult>
Copy
def get_ns_groups(id: Optional[str] = None,
                  opts: Optional[InvokeOptions] = None) -> GetNsGroupsResult
def get_ns_groups_output(id: Optional[pulumi.Input[str]] = None,
                  opts: Optional[InvokeOptions] = None) -> Output[GetNsGroupsResult]
Copy
func GetNsGroups(ctx *Context, args *GetNsGroupsArgs, opts ...InvokeOption) (*GetNsGroupsResult, error)
func GetNsGroupsOutput(ctx *Context, args *GetNsGroupsOutputArgs, opts ...InvokeOption) GetNsGroupsResultOutput
Copy

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

public static class GetNsGroups 
{
    public static Task<GetNsGroupsResult> InvokeAsync(GetNsGroupsArgs args, InvokeOptions? opts = null)
    public static Output<GetNsGroupsResult> Invoke(GetNsGroupsInvokeArgs args, InvokeOptions? opts = null)
}
Copy
public static CompletableFuture<GetNsGroupsResult> getNsGroups(GetNsGroupsArgs args, InvokeOptions options)
public static Output<GetNsGroupsResult> getNsGroups(GetNsGroupsArgs args, InvokeOptions options)
Copy
fn::invoke:
  function: nsxt:index/getNsGroups:getNsGroups
  arguments:
    # arguments dictionary
Copy

The following arguments are supported:

Id string
Id string
id String
id string
id str
id String

getNsGroups Result

The following output properties are available:

Id string
Items Dictionary<string, string>
Map of ns group uuids keyed by display name.
Id string
Items map[string]string
Map of ns group uuids keyed by display name.
id String
items Map<String,String>
Map of ns group uuids keyed by display name.
id string
items {[key: string]: string}
Map of ns group uuids keyed by display name.
id str
items Mapping[str, str]
Map of ns group uuids keyed by display name.
id String
items Map<String>
Map of ns group uuids keyed by display name.

Package Details

Repository
nsxt vmware/terraform-provider-nsxt
License
Notes
This Pulumi package is based on the nsxt Terraform Provider.
nsxt 3.8.0 published on Monday, Apr 14, 2025 by vmware