vars/OUStructures.ps1

$SchemaConfigPath = $((get-adrootdse).configurationNamingContext)

#Region OU Struct definition
$OrgsOUStruct = @{
    Name = "Orgs"
    Description = "Business Units, Tenants, or Teams with a shared leadership"
    Path = $DomainBase
    Template = @{
        OUs = @(
            @{
                name = "Global"
                Description = "--- being created... ---"
            }
        )
        DefaultRights = @()
        DefaultRoles = @()
    }
}

$ComponentsOUStruct = @{
    Name = "Components"
    Description = "(Delegation,GPO) A complete application, project, or app stack with a common lifecycle and administrative ownership"
    Template = @{
        OUs = @()
        DefaultRights = @()
        DefaultRoles = @()
    }
}

$NetgroupName = "Netgroups"
$SudoRolesName = "SudoRoles"
$LinuxFeaturesOUStruct = @{
    Name="LinuxFeatures"
    Description="Linux-related objects such as sudoRoles supported by sssd-ad"
    Path="$domainbase"
    Template = @{
        OUs = @(
            @{
                Name=$NetgroupName
                Description="Netgroups that group multiple hosts together for assigning sudoRoles. Referenced by ldap_netgroup_search_base"
            }
            @{
                Name=$SudoRolesName
                Description="LDAP-based sudoers rules. Referenced by ldap_sudo_search_base. Host assignment is done via netgroups."
            }
        )
    }
}

$GlobalOUStruct = @{
    Name="Global"
    Description="Objects not specific to a business unit; users, global rights, etc"
    Path="OU=$($OrgsOUStruct.name),$domainbase"
}
#endregion