The Novell API defines a lot of structs and datatypes that's 
not directly supported by perl.

Therefore I've written this file to inform you about what
datatypes should be used when calling methods that 
require a parameter called "SyntaxId". I've tried to be consecuent
by using this variable-name(SyntaxId), but don't be surprised if you find
other var-names. All datatypes can be represented as Number(s) or String(s).

You can also read about the SYN_* constants in NWDSK.
Remember to use the NWSDK with same version number as this extension.
If extension version is xx.13.xx you should use NWSDK version 13 as
a reference to the methods in this package.

'Plain' datatypes.
SYN_BOOLEAN  7:
    ex.: $Val = 1;
	Allow Unlimited Credit
	Detect Intruder
	Locked By Intruder
	Lockout After Detection
	Login Disabled
	Password Allow Change
	Password Required
	Password Unique Required
SYN_CE_STRING  2: Use string
    ex. $Val = "MyName";
	(none) ???
SYN_CI_STRING  3
    ex. $Val = "YourName";
	C (Country)
	Cartridge
	CN (Common Name)
	Description
	Full Name
	Generational Qualifier
	Given Name
	Host Resource Name
	Initials
	L (Locality
	Mailbox ID
	Messaging Server Type
	NNS Domain
	O (Organization)
	OU (Organizational Unit)
	Physical Delivery Office Name
	Postal Code
	Postal Office Box
	Queue Directory	
	S (State or Province)
	SA (Street Address)
	SAP Name
	Supported Gateway
	Supported Services
	Supported Typefaces
	Surname
	Title
	Unknown Base Class
	Version
SYN_CLASS_NAME  20
    ex. $Val = "Username";
	Object Class 
SYN_COUNTER  22
    ex. $Val = 5;
	Account Balance
	Login Grace Remaining
	Login Intruder Attempts
	Revision
SYN_DIST_NAME  1
    ex. $Val = "MyServer"
	Aliased Object Name
	Default Queue
	Device
	Equivalent To Me
	Group Membership
	Higher Privileges
	Host Device
	Host Server
	Mailbox Location
	Member
	Message Routing Group
	Message Server
	Messaging Server
	Operator
	Owner
	Postmaster
	Profile
	Profile Membership
	Reference
	Resource
	Role Occupant
	Security Equals
	See Also
	Server
	User
	Volume
SYN_INTEGER  8
    ex. $Val = 23476; # Password Minimum Length :-)
	Bindery Object Restriction
	Convergence
	DS Revision
	GID (Group ID)
	Login Grace Limit
	Login Intruder Limit
	Login Maximum Simultaneous
	Memory
	Minimum Account Balance
	Password Minimum Length
	Security Flags
	Status
	Supported Connections
	UID (User ID)
SYN_INTERVAL  27 
    ex. $Val = 90;
	Certificate Validity Interval
	High Convergence Sync Interval
	Intruder Attempt Reset Interval
	Intruder Lockout Reset Interval
	Low Convergence Sync Interval
	Password Expiration Interval
SYN_NU_STRING  5
    ex. $Val = "Test";
	Bindery Type
SYN_PR_STRING  4
    ex. $Val = "What?";
	Page Description Language
	Serial Number	
SYN_TIME  24
    ex. $Val = 1233453; (secounds since 1 Jan. 1970)
	Last Login Time (Read only)
	Login Expiration Time
	Login Intruder Reset Time
	Login Time
	Low Convergence Reset Time
	Password Expiration Time
SYN_TEL_NUMBER  10
    ex. $Val = "+47-180"; #this must be between 1 and 32 chars long
        Fax-numbers have their own type. 
	Telephone Number


*********************************************
STRUCTS 
*********************************************
The datatypes below are represented in perl as multilined strings.
All these types are some kind of struct.
The \n char is newline.

Example: SYN_PATH is defined as 15
This datatype is used in attributtes is (from NWSDK): 
				Home Directory
				Messaging Database Location
				Path
The struct look like this i C:
typedef struct
{
   NWNAME_SPACE_TYPE   nameSpaceType;
   pnchar              volumeName;
   pnchar              path;
} Path_T;


and ex. like this in perl:
$Path = ("0\nCN=SRV_ACME_SYS.Corp.US\nSYSTEM")
When you want to read one of the datatypes below you should expect
to get a (multilined) string as value. See GetAttrVal().

If you want to insert values in NDS using datatypes below
you must create strings with \n between each value.
Ther should also be a \n at the end of the string.

Just remember that all these datatypes are NOT tested.
There is also a list of basic attributetypes which uses
the given SyntaxID. Based on clean NW4.11 install.


SYN_BACK_LINK 23:
         "RemoteID\nObjectName\n"
     ex. $MyBackLink = "12\nMyLoginName\n";
	Back Link

SYN_CI_LIST  6
         "String1\nString2\nString3\n...StringN\n"
     ex. $MyCIList = "FirstString\nSecoundString\n";
	Language

SYN_EMAIL_ADDRESS  14
         "Address\nAddressType\n"
     ex. $MyEmail = "Steinar.Kleven@ahs.hist.no\n2\n";
	EMail Address

SYN_FAX_NUMBER  11
         "FAX-number\n"
     ex. $MyFax = "+47-180\n";
     This realy have one more item, but I skip it.
	Facsimile Telephone Number

SYN_HOLD  26
         "ObjectName\nAmount\n"
     ex. $MyHold = "SRV_ACME\n12\n";
	Server Holds

SYN_NET_ADDRESS  12
        "AddressType\naddressLength\nAddress\n"
    ex. $NetAddr = "2\n\8\n11223344:AABBCCDDEEFF\n";
	Login Intruder Address
	Network Address
	Network Address Restriction

SYN_OBJECT_ACL  17
        READ ONLY as of version 0.13.03
        First line indicates the name of the specific attribute to be protected.
        Otherwise, should be null to protect the entire object.
        Second line indicates the name of the object receiving the rights to
        the protected object. [Root], [Public], [Inheritance Mask],
	[Creator] and [Self] are 'built in' objects. Any other valid NDS
        object can also be used.
        The last line is the rights.
        For [Entry Rights] you have:
		B -> Browse
		A -> Add
		D -> Delete
		R -> Rename
		S -> Supervisor
        For [SMS Rights] you have:
		S -> Scan
		B -> Backup
		R -> Restore
		C -> Rename
		D -> Delete
		A -> Admin
        For [All Attributes Rights] you have:
		C -> Compare
		R -> Read
		W -> Write
		A -> Self
		S -> Supervisor
	ex: "\n[S]\n[root]\n"
        [root] has Supervisor access to the entire object
	ex: "[All Attributes Rights]\n[CR]\n[Self]\n"
        [Self] has Compare & Read access to all it's attributes.
        ex: "\n[CRW]\n.everyone.Acme\n"
        .everyone.Acme has Read, Compare & Write rights to this object.
Used in:
	ACL
	Inherited ACL

SYN_PO_ADDRESS  18
    Can't be more than 6 lines.
    ex. $MyPOA = "First line\nSecond line\n....\nLast line\n";
	Postal Address

SYN_OCTET_LIST  13
        This may change.
    ex. $MyOL = "11\nSome String\n2\nkl\n";
	(none) ???

SYN_OCTET_STRING 9
    A serie of hexadecimal numbers, length as first number in decimal
    ex. $MyOS = "4\n2E\n45\n4F\n7B\n";
	Authority Revocation
	Bindery Property
	CA Private Key
	CA Public Key
	Certificate Revocation
	Cross Certificate Pair
	External Name
	External Synchronizer
	Login Allowed Time Map
	Obituary
	Passwords Used
	Printer Configuration
	Private Key
	Public Key
	Replica Up To

SYN_PATH  15
        "NameSpacetype\nVolumeName\nPath\n"
    ex. $MyPath = "1\nCN=SRV_ACME_VOL1.Acme.US\nHOME\\MyHome\n";
	Home Directory
	Messaging Database Location
	Path

SYN_STREAM  21
    This value is read/written like a file.
    Use Buf_T::OpenStream() to get a filehandle.
	Login scripts

SYN_REPLICA_POINTER   16
    This may change
        "ServerName\nReplicaType\nReplicaNumber\n"
    ex. $pRep = "SRV_ACME\n2\n1\n";
	Replica

SYN_TIMESTAMP  19
        "SecoundsSince1.1.70\nEventID\n"
    ex. $Tstamp = "2354453\n23\n";
	Replica Up To
	Partition Creation Time
	Received Up To
	Synchronized Up To

SYN_TYPED_NAME  25
        "ObjectName\nLevel\nInterval\n"
    ex. $TName = "MyName\n2\n30\n";
	Notify
	Partition Control
	Print Server
	Printer
	Queue

SYN_UNKNOWN  0
	Will return "\0"
	Unknown :-)
