1. Registry
  2. Packages
  3. Vsphere Provider
  4. API Docs
  5. SsoGroup
Viewing docs for vSphere v4.18.0
published on Wednesday, Sep 2, 2026 by Pulumi
vsphere logo vsphere logo
Viewing docs for vSphere v4.18.0
published on Wednesday, Sep 2, 2026 by Pulumi

    The vsphere.SsoGroup resource can be used to create and manage groups in the vCenter Single Sign-On local (system) domain, including the users and nested groups that belong to the group.

    NOTE: Groups are always created in the local (system) domain. Group membership, however, may include users from any identity source (see memberUser).

    NOTE: Membership is authoritative. The principals listed in memberUser and memberGroup are the complete set of members.

    NOTE: The connecting user must hold vCenter Single Sign-On administrator privileges.

    Example Usage

    This example creates a local user and a group that contains that local user, a user from an external identity source, and a nested local group.

    import * as pulumi from "@pulumi/pulumi";
    import * as vsphere from "@pulumi/vsphere";
    
    const example = new vsphere.SsoUser("example", {
        name: "local.user",
        password: "P@ssw0rd123!",
    });
    const nested = new vsphere.SsoGroup("nested", {name: "engineering-leads"});
    const exampleSsoGroup = new vsphere.SsoGroup("example", {
        name: "engineering",
        description: "Managed by Pulumi",
        memberUsers: [
            {
                name: example.name,
                domain: example.domain,
            },
            {
                name: "john.doe",
                domain: "example.com",
            },
        ],
        memberGroups: [{
            name: nested.name,
            domain: nested.domain,
        }],
    });
    
    import pulumi
    import pulumi_vsphere as vsphere
    
    example = vsphere.SsoUser("example",
        name="local.user",
        password="P@ssw0rd123!")
    nested = vsphere.SsoGroup("nested", name="engineering-leads")
    example_sso_group = vsphere.SsoGroup("example",
        name="engineering",
        description="Managed by Pulumi",
        member_users=[
            {
                "name": example.name,
                "domain": example.domain,
            },
            {
                "name": "john.doe",
                "domain": "example.com",
            },
        ],
        member_groups=[{
            "name": nested.name,
            "domain": nested.domain,
        }])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-vsphere/sdk/v4/go/vsphere"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := vsphere.NewSsoUser(ctx, "example", &vsphere.SsoUserArgs{
    			Name:     pulumi.String("local.user"),
    			Password: pulumi.String("P@ssw0rd123!"),
    		})
    		if err != nil {
    			return err
    		}
    		nested, err := vsphere.NewSsoGroup(ctx, "nested", &vsphere.SsoGroupArgs{
    			Name: pulumi.String("engineering-leads"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = vsphere.NewSsoGroup(ctx, "example", &vsphere.SsoGroupArgs{
    			Name:        pulumi.String("engineering"),
    			Description: pulumi.String("Managed by Pulumi"),
    			MemberUsers: vsphere.SsoGroupMemberUserArray{
    				&vsphere.SsoGroupMemberUserArgs{
    					Name:   example.Name,
    					Domain: example.Domain,
    				},
    				&vsphere.SsoGroupMemberUserArgs{
    					Name:   pulumi.String("john.doe"),
    					Domain: pulumi.String("example.com"),
    				},
    			},
    			MemberGroups: vsphere.SsoGroupMemberGroupArray{
    				&vsphere.SsoGroupMemberGroupArgs{
    					Name:   nested.Name,
    					Domain: nested.Domain,
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using VSphere = Pulumi.VSphere;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new VSphere.SsoUser("example", new()
        {
            Name = "local.user",
            Password = "P@ssw0rd123!",
        });
    
        var nested = new VSphere.SsoGroup("nested", new()
        {
            Name = "engineering-leads",
        });
    
        var exampleSsoGroup = new VSphere.SsoGroup("example", new()
        {
            Name = "engineering",
            Description = "Managed by Pulumi",
            MemberUsers = new[]
            {
                new VSphere.Inputs.SsoGroupMemberUserArgs
                {
                    Name = example.Name,
                    Domain = example.Domain,
                },
                new VSphere.Inputs.SsoGroupMemberUserArgs
                {
                    Name = "john.doe",
                    Domain = "example.com",
                },
            },
            MemberGroups = new[]
            {
                new VSphere.Inputs.SsoGroupMemberGroupArgs
                {
                    Name = nested.Name,
                    Domain = nested.Domain,
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.vsphere.SsoUser;
    import com.pulumi.vsphere.SsoUserArgs;
    import com.pulumi.vsphere.SsoGroup;
    import com.pulumi.vsphere.SsoGroupArgs;
    import com.pulumi.vsphere.inputs.SsoGroupMemberUserArgs;
    import com.pulumi.vsphere.inputs.SsoGroupMemberGroupArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    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) {
            var example = new SsoUser("example", SsoUserArgs.builder()
                .name("local.user")
                .password("P@ssw0rd123!")
                .build());
    
            var nested = new SsoGroup("nested", SsoGroupArgs.builder()
                .name("engineering-leads")
                .build());
    
            var exampleSsoGroup = new SsoGroup("exampleSsoGroup", SsoGroupArgs.builder()
                .name("engineering")
                .description("Managed by Pulumi")
                .memberUsers(            
                    SsoGroupMemberUserArgs.builder()
                        .name(example.name())
                        .domain(example.domain())
                        .build(),
                    SsoGroupMemberUserArgs.builder()
                        .name("john.doe")
                        .domain("example.com")
                        .build())
                .memberGroups(SsoGroupMemberGroupArgs.builder()
                    .name(nested.name())
                    .domain(nested.domain())
                    .build())
                .build());
    
        }
    }
    
    resources:
      example:
        type: vsphere:SsoUser
        properties:
          name: local.user
          password: P@ssw0rd123!
      nested:
        type: vsphere:SsoGroup
        properties:
          name: engineering-leads
      exampleSsoGroup:
        type: vsphere:SsoGroup
        name: example
        properties:
          name: engineering
          description: Managed by Pulumi
          memberUsers:
            - name: ${example.name}
              domain: ${example.domain}
            - name: john.doe
              domain: example.com
          memberGroups:
            - name: ${nested.name}
              domain: ${nested.domain}
    
    pulumi {
      required_providers {
        vsphere = {
          source = "pulumi/vsphere"
        }
      }
    }
    
    resource "vsphere_ssouser" "example" {
      name     = "local.user"
      password = "P@ssw0rd123!"
    }
    resource "vsphere_ssogroup" "nested" {
      name = "engineering-leads"
    }
    resource "vsphere_ssogroup" "example" {
      name        = "engineering"
      description = "Managed by Pulumi"
      member_users {
        name   = vsphere_ssouser.example.name
        domain = vsphere_ssouser.example.domain
      }
      member_users {
        name   = "john.doe"
        domain = "example.com"
      }
      member_groups {
        name   = vsphere_ssogroup.nested.name
        domain = vsphere_ssogroup.nested.domain
      }
    }
    

    Create SsoGroup Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new SsoGroup(name: string, args?: SsoGroupArgs, opts?: CustomResourceOptions);
    @overload
    def SsoGroup(resource_name: str,
                 args: Optional[SsoGroupArgs] = None,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def SsoGroup(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 description: Optional[str] = None,
                 member_groups: Optional[Sequence[SsoGroupMemberGroupArgs]] = None,
                 member_users: Optional[Sequence[SsoGroupMemberUserArgs]] = None,
                 name: Optional[str] = None)
    func NewSsoGroup(ctx *Context, name string, args *SsoGroupArgs, opts ...ResourceOption) (*SsoGroup, error)
    public SsoGroup(string name, SsoGroupArgs? args = null, CustomResourceOptions? opts = null)
    public SsoGroup(String name, SsoGroupArgs args)
    public SsoGroup(String name, SsoGroupArgs args, CustomResourceOptions options)
    
    type: vsphere:SsoGroup
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "vsphere_sso_group" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args SsoGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args SsoGroupArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args SsoGroupArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args SsoGroupArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args SsoGroupArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var ssoGroupResource = new VSphere.SsoGroup("ssoGroupResource", new()
    {
        Description = "string",
        MemberGroups = new[]
        {
            new VSphere.Inputs.SsoGroupMemberGroupArgs
            {
                Domain = "string",
                Name = "string",
            },
        },
        MemberUsers = new[]
        {
            new VSphere.Inputs.SsoGroupMemberUserArgs
            {
                Domain = "string",
                Name = "string",
            },
        },
        Name = "string",
    });
    
    example, err := vsphere.NewSsoGroup(ctx, "ssoGroupResource", &vsphere.SsoGroupArgs{
    	Description: pulumi.String("string"),
    	MemberGroups: vsphere.SsoGroupMemberGroupArray{
    		&vsphere.SsoGroupMemberGroupArgs{
    			Domain: pulumi.String("string"),
    			Name:   pulumi.String("string"),
    		},
    	},
    	MemberUsers: vsphere.SsoGroupMemberUserArray{
    		&vsphere.SsoGroupMemberUserArgs{
    			Domain: pulumi.String("string"),
    			Name:   pulumi.String("string"),
    		},
    	},
    	Name: pulumi.String("string"),
    })
    
    resource "vsphere_sso_group" "ssoGroupResource" {
      lifecycle {
        create_before_destroy = true
      }
      description = "string"
      member_groups {
        domain = "string"
        name   = "string"
      }
      member_users {
        domain = "string"
        name   = "string"
      }
      name = "string"
    }
    
    var ssoGroupResource = new SsoGroup("ssoGroupResource", SsoGroupArgs.builder()
        .description("string")
        .memberGroups(SsoGroupMemberGroupArgs.builder()
            .domain("string")
            .name("string")
            .build())
        .memberUsers(SsoGroupMemberUserArgs.builder()
            .domain("string")
            .name("string")
            .build())
        .name("string")
        .build());
    
    sso_group_resource = vsphere.SsoGroup("ssoGroupResource",
        description="string",
        member_groups=[{
            "domain": "string",
            "name": "string",
        }],
        member_users=[{
            "domain": "string",
            "name": "string",
        }],
        name="string")
    
    const ssoGroupResource = new vsphere.SsoGroup("ssoGroupResource", {
        description: "string",
        memberGroups: [{
            domain: "string",
            name: "string",
        }],
        memberUsers: [{
            domain: "string",
            name: "string",
        }],
        name: "string",
    });
    
    type: vsphere:SsoGroup
    properties:
        description: string
        memberGroups:
            - domain: string
              name: string
        memberUsers:
            - domain: string
              name: string
        name: string
    

    SsoGroup Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The SsoGroup resource accepts the following input properties:

    Description string
    A description of the group.
    MemberGroups List<Pulumi.VSphere.Inputs.SsoGroupMemberGroup>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    MemberUsers List<Pulumi.VSphere.Inputs.SsoGroupMemberUser>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    Name string
    The name of the group. Forces a new resource if changed.
    Description string
    A description of the group.
    MemberGroups []SsoGroupMemberGroupArgs
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    MemberUsers []SsoGroupMemberUserArgs
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    Name string
    The name of the group. Forces a new resource if changed.
    description string
    A description of the group.
    member_groups list(object)
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    member_users list(object)
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name string
    The name of the group. Forces a new resource if changed.
    description String
    A description of the group.
    memberGroups List<SsoGroupMemberGroup>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers List<SsoGroupMemberUser>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name String
    The name of the group. Forces a new resource if changed.
    description string
    A description of the group.
    memberGroups SsoGroupMemberGroup[]
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers SsoGroupMemberUser[]
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name string
    The name of the group. Forces a new resource if changed.
    description str
    A description of the group.
    member_groups Sequence[SsoGroupMemberGroupArgs]
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    member_users Sequence[SsoGroupMemberUserArgs]
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name str
    The name of the group. Forces a new resource if changed.
    description String
    A description of the group.
    memberGroups List<Property Map>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers List<Property Map>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name String
    The name of the group. Forces a new resource if changed.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the SsoGroup resource produces the following output properties:

    Domain string
    The identity source domain the group belongs to (the local/system domain).
    Id string
    The provider-assigned unique ID for this managed resource.
    Domain string
    The identity source domain the group belongs to (the local/system domain).
    Id string
    The provider-assigned unique ID for this managed resource.
    domain string
    The identity source domain the group belongs to (the local/system domain).
    id string
    The provider-assigned unique ID for this managed resource.
    domain String
    The identity source domain the group belongs to (the local/system domain).
    id String
    The provider-assigned unique ID for this managed resource.
    domain string
    The identity source domain the group belongs to (the local/system domain).
    id string
    The provider-assigned unique ID for this managed resource.
    domain str
    The identity source domain the group belongs to (the local/system domain).
    id str
    The provider-assigned unique ID for this managed resource.
    domain String
    The identity source domain the group belongs to (the local/system domain).
    id String
    The provider-assigned unique ID for this managed resource.

    Look up Existing SsoGroup Resource

    Get an existing SsoGroup resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: SsoGroupState, opts?: CustomResourceOptions): SsoGroup
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            description: Optional[str] = None,
            domain: Optional[str] = None,
            member_groups: Optional[Sequence[SsoGroupMemberGroupArgs]] = None,
            member_users: Optional[Sequence[SsoGroupMemberUserArgs]] = None,
            name: Optional[str] = None) -> SsoGroup
    func GetSsoGroup(ctx *Context, name string, id IDInput, state *SsoGroupState, opts ...ResourceOption) (*SsoGroup, error)
    public static SsoGroup Get(string name, Input<string> id, SsoGroupState? state, CustomResourceOptions? opts = null)
    public static SsoGroup get(String name, Output<String> id, SsoGroupState state, CustomResourceOptions options)
    resources:  _:    type: vsphere:SsoGroup    get:      id: ${id}
    import {
      to = vsphere_sso_group.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Description string
    A description of the group.
    Domain string
    The identity source domain the group belongs to (the local/system domain).
    MemberGroups List<Pulumi.VSphere.Inputs.SsoGroupMemberGroup>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    MemberUsers List<Pulumi.VSphere.Inputs.SsoGroupMemberUser>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    Name string
    The name of the group. Forces a new resource if changed.
    Description string
    A description of the group.
    Domain string
    The identity source domain the group belongs to (the local/system domain).
    MemberGroups []SsoGroupMemberGroupArgs
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    MemberUsers []SsoGroupMemberUserArgs
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    Name string
    The name of the group. Forces a new resource if changed.
    description string
    A description of the group.
    domain string
    The identity source domain the group belongs to (the local/system domain).
    member_groups list(object)
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    member_users list(object)
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name string
    The name of the group. Forces a new resource if changed.
    description String
    A description of the group.
    domain String
    The identity source domain the group belongs to (the local/system domain).
    memberGroups List<SsoGroupMemberGroup>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers List<SsoGroupMemberUser>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name String
    The name of the group. Forces a new resource if changed.
    description string
    A description of the group.
    domain string
    The identity source domain the group belongs to (the local/system domain).
    memberGroups SsoGroupMemberGroup[]
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers SsoGroupMemberUser[]
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name string
    The name of the group. Forces a new resource if changed.
    description str
    A description of the group.
    domain str
    The identity source domain the group belongs to (the local/system domain).
    member_groups Sequence[SsoGroupMemberGroupArgs]
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    member_users Sequence[SsoGroupMemberUserArgs]
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name str
    The name of the group. Forces a new resource if changed.
    description String
    A description of the group.
    domain String
    The identity source domain the group belongs to (the local/system domain).
    memberGroups List<Property Map>
    The set of groups that are nested members of this group. Members may come from any identity source. Each memberGroup block
    memberUsers List<Property Map>
    The set of users that are members of this group. Members may come from any identity source. Each memberUser block supports the following:
    name String
    The name of the group. Forces a new resource if changed.

    Supporting Types

    SsoGroupMemberGroup, SsoGroupMemberGroupArgs

    Domain string
    The identity source domain the nested group belongs to.
    Name string
    The name of the nested group.
    Domain string
    The identity source domain the nested group belongs to.
    Name string
    The name of the nested group.
    domain string
    The identity source domain the nested group belongs to.
    name string
    The name of the nested group.
    domain String
    The identity source domain the nested group belongs to.
    name String
    The name of the nested group.
    domain string
    The identity source domain the nested group belongs to.
    name string
    The name of the nested group.
    domain str
    The identity source domain the nested group belongs to.
    name str
    The name of the nested group.
    domain String
    The identity source domain the nested group belongs to.
    name String
    The name of the nested group.

    SsoGroupMemberUser, SsoGroupMemberUserArgs

    Domain string
    The identity source domain the member belongs to.
    Name string
    The username of the member.
    Domain string
    The identity source domain the member belongs to.
    Name string
    The username of the member.
    domain string
    The identity source domain the member belongs to.
    name string
    The username of the member.
    domain String
    The identity source domain the member belongs to.
    name String
    The username of the member.
    domain string
    The identity source domain the member belongs to.
    name string
    The username of the member.
    domain str
    The identity source domain the member belongs to.
    name str
    The username of the member.
    domain String
    The identity source domain the member belongs to.
    name String
    The username of the member.

    Import

    An existing group can be imported into this resource by supplying its name@domain identifier. An example is below:

    $ pulumi import vsphere:index/ssoGroup:SsoGroup example engineering@vsphere.local
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    vSphere pulumi/pulumi-vsphere
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the vsphere Terraform Provider.
    vsphere logo vsphere logo
    Viewing docs for vSphere v4.18.0
    published on Wednesday, Sep 2, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial