published on Wednesday, Sep 2, 2026 by Pulumi
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
memberUserandmemberGroupare 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.
- Member
Groups List<Pulumi.VSphere. Inputs. Sso Group Member Group> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - Member
Users List<Pulumi.VSphere. Inputs. Sso Group Member User> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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 []SsoGroup Member Group Args - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - Member
Users []SsoGroup Member User Args - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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
memberGroupblock - member_
users list(object) - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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<SsoGroup Member Group> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users List<SsoGroup Member User> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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 SsoGroup Member Group[] - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users SsoGroup Member User[] - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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[SsoGroup Member Group Args] - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member_
users Sequence[SsoGroup Member User Args] - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock supports the following: - name str
- The name of the group. Forces a new resource if changed.
- description String
- A description of the group.
- member
Groups List<Property Map> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users List<Property Map> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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:
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) -> SsoGroupfunc 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.
- Description string
- A description of the group.
- Domain string
- The identity source domain the group belongs to (the local/system domain).
- Member
Groups List<Pulumi.VSphere. Inputs. Sso Group Member Group> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - Member
Users List<Pulumi.VSphere. Inputs. Sso Group Member User> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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 []SsoGroup Member Group Args - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - Member
Users []SsoGroup Member User Args - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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
memberGroupblock - member_
users list(object) - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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<SsoGroup Member Group> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users List<SsoGroup Member User> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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 SsoGroup Member Group[] - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users SsoGroup Member User[] - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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[SsoGroup Member Group Args] - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member_
users Sequence[SsoGroup Member User Args] - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock 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).
- member
Groups List<Property Map> - The set of groups that are nested members of this
group. Members may come from any identity source. Each
memberGroupblock - member
Users List<Property Map> - The set of users that are members of this group.
Members may come from any identity source. Each
memberUserblock supports the following: - name String
- The name of the group. Forces a new resource if changed.
Supporting Types
SsoGroupMemberGroup, SsoGroupMemberGroupArgs
SsoGroupMemberUser, SsoGroupMemberUserArgs
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
vsphereTerraform Provider.
published on Wednesday, Sep 2, 2026 by Pulumi