directoryservice

package
v0.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Rendered for darwin/amd64

Overview

Package directoryservice provides purego-based Go bindings for the macOS DirectoryService framework.

Apple documentation: https://developer.apple.com/documentation/directoryservice

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DsAllocStringsFromList

func DsAllocStringsFromList(inDirRef uint, inDataList *TDataList) string

@function dsAllocStringsFromList @discussion Provides a char** of the strings contained within a tDataList. C function: dsAllocStringsFromList

func DsCopyDirStatusName

func DsCopyDirStatusName(inDirStatus int) string

@function dsCopyDirStatusName Pass in the tDirStatus enum and receive the string of the enum name. Memory for the char* is the responsibility of the client and can be cleaned up using free(). C function: dsCopyDirStatusName

func DsDataListGetNodeCount

func DsDataListGetNodeCount(inDataList *TDataList) uint

@function dsDataListGetNodeCount C function: dsDataListGetNodeCount

func DsDataNodeGetLength

func DsDataNodeGetLength(inDataNodePtr *TDataBuffer) uint

@function dsDataNodeGetLength C function: dsDataNodeGetLength

func DsDataNodeGetSize

func DsDataNodeGetSize(inDataNodePtr *TDataBuffer) uint

@function dsDataNodeGetSize C function: dsDataNodeGetSize

func DsGetDataLength

func DsGetDataLength(inDataList *TDataList) uint

@function dsGetDataLength C function: dsGetDataLength

func DsGetPathFromList

func DsGetPathFromList(inDirReference uint, inDataList *TDataList, inDelimiter string) string

@function dsGetPathFromList C function: dsGetPathFromList

func SymbolAvailable

func SymbolAvailable(symbol string) bool

SymbolAvailable reports whether the named C symbol was bound when the library loaded. Calling a generated wrapper whose symbol is unavailable dereferences a nil function variable and panics.

Types

type Acl_entry_id_t

type Acl_entry_id_t int64
const (
	ACL_FIRST_ENTRY Acl_entry_id_t = 0
	ACL_NEXT_ENTRY  Acl_entry_id_t = -1
	ACL_LAST_ENTRY  Acl_entry_id_t = -2
)

func (Acl_entry_id_t) String

func (e Acl_entry_id_t) String() string

type Acl_flag_t

type Acl_flag_t int64
const (
	ACL_FLAG_DEFER_INHERIT      Acl_flag_t = 1
	ACL_FLAG_NO_INHERIT         Acl_flag_t = 131072
	ACL_ENTRY_INHERITED         Acl_flag_t = 16
	ACL_ENTRY_FILE_INHERIT      Acl_flag_t = 32
	ACL_ENTRY_DIRECTORY_INHERIT Acl_flag_t = 64
	ACL_ENTRY_LIMIT_INHERIT     Acl_flag_t = 128
	ACL_ENTRY_ONLY_INHERIT      Acl_flag_t = 256
)

func (Acl_flag_t) String

func (e Acl_flag_t) String() string

type Acl_perm_t

type Acl_perm_t int64
const (
	ACL_READ_DATA           Acl_perm_t = 2
	ACL_LIST_DIRECTORY      Acl_perm_t = 2
	ACL_WRITE_DATA          Acl_perm_t = 4
	ACL_ADD_FILE            Acl_perm_t = 4
	ACL_EXECUTE             Acl_perm_t = 8
	ACL_SEARCH              Acl_perm_t = 8
	ACL_DELETE              Acl_perm_t = 16
	ACL_APPEND_DATA         Acl_perm_t = 32
	ACL_ADD_SUBDIRECTORY    Acl_perm_t = 32
	ACL_DELETE_CHILD        Acl_perm_t = 64
	ACL_READ_ATTRIBUTES     Acl_perm_t = 128
	ACL_WRITE_ATTRIBUTES    Acl_perm_t = 256
	ACL_READ_EXTATTRIBUTES  Acl_perm_t = 512
	ACL_WRITE_EXTATTRIBUTES Acl_perm_t = 1024
	ACL_READ_SECURITY       Acl_perm_t = 2048
	ACL_WRITE_SECURITY      Acl_perm_t = 4096
	ACL_CHANGE_OWNER        Acl_perm_t = 8192
	ACL_SYNCHRONIZE         Acl_perm_t = 1048576
)

func (Acl_perm_t) String

func (e Acl_perm_t) String() string

type Acl_tag_t

type Acl_tag_t int64
const (
	ACL_UNDEFINED_TAG  Acl_tag_t = 0
	ACL_EXTENDED_ALLOW Acl_tag_t = 1
	ACL_EXTENDED_DENY  Acl_tag_t = 2
)

func (Acl_tag_t) String

func (e Acl_tag_t) String() string

type Acl_type_t

type Acl_type_t int64
const (
	ACL_TYPE_EXTENDED Acl_type_t = 256
	ACL_TYPE_ACCESS   Acl_type_t = 0
	ACL_TYPE_DEFAULT  Acl_type_t = 1
	ACL_TYPE_AFS      Acl_type_t = 2
	ACL_TYPE_CODA     Acl_type_t = 3
	ACL_TYPE_NTFS     Acl_type_t = 4
	ACL_TYPE_NWFS     Acl_type_t = 5
)

func (Acl_type_t) String

func (e Acl_type_t) String() string

type Clockid_t

type Clockid_t int64

func (Clockid_t) String

func (e Clockid_t) String() string

type Dispatch_autorelease_frequency_t

type Dispatch_autorelease_frequency_t uint64
const (
	DISPATCH_AUTORELEASE_FREQUENCY_INHERIT   Dispatch_autorelease_frequency_t = 0
	DISPATCH_AUTORELEASE_FREQUENCY_WORK_ITEM Dispatch_autorelease_frequency_t = 1
	DISPATCH_AUTORELEASE_FREQUENCY_NEVER     Dispatch_autorelease_frequency_t = 2
)

func (Dispatch_autorelease_frequency_t) String

type Dispatch_block_flags_t

type Dispatch_block_flags_t uint64
const (
	DISPATCH_BLOCK_BARRIER           Dispatch_block_flags_t = 1
	DISPATCH_BLOCK_DETACHED          Dispatch_block_flags_t = 2
	DISPATCH_BLOCK_ASSIGN_CURRENT    Dispatch_block_flags_t = 4
	DISPATCH_BLOCK_NO_QOS_CLASS      Dispatch_block_flags_t = 8
	DISPATCH_BLOCK_INHERIT_QOS_CLASS Dispatch_block_flags_t = 16
	DISPATCH_BLOCK_ENFORCE_QOS_CLASS Dispatch_block_flags_t = 32
)

func (Dispatch_block_flags_t) String

func (e Dispatch_block_flags_t) String() string

type Filesec_property_t

type Filesec_property_t int64
const (
	FILESEC_OWNER         Filesec_property_t = 1
	FILESEC_GROUP         Filesec_property_t = 2
	FILESEC_UUID          Filesec_property_t = 3
	FILESEC_MODE          Filesec_property_t = 4
	FILESEC_ACL           Filesec_property_t = 5
	FILESEC_GRPUUID       Filesec_property_t = 6
	FILESEC_ACL_RAW       Filesec_property_t = 100
	FILESEC_ACL_ALLOCSIZE Filesec_property_t = 101
)

func (Filesec_property_t) String

func (e Filesec_property_t) String() string

type Idtype_t

type Idtype_t int64
const (
	P_ALL  Idtype_t = 0
	P_PID  Idtype_t = 1
	P_PGID Idtype_t = 2
)

func (Idtype_t) String

func (e Idtype_t) String() string

type Mpo_flags_t

type Mpo_flags_t int64
const (
	MPO_PORT                            Mpo_flags_t = 0
	MPO_SERVICE_PORT                    Mpo_flags_t = 1024
	MPO_CONNECTION_PORT                 Mpo_flags_t = 2048
	MPO_REPLY_PORT                      Mpo_flags_t = 4096
	MPO_WEAK_REPLY_PORT                 Mpo_flags_t = 16384
	MPO_NOTIFICATION_PORT               Mpo_flags_t = 17408
	MPO_EXCEPTION_PORT                  Mpo_flags_t = 32768
	MPO_CONNECTION_PORT_WITH_PORT_ARRAY Mpo_flags_t = 65536
)

func (Mpo_flags_t) String

func (e Mpo_flags_t) String() string

type Os_clockid_t

type Os_clockid_t int64
const (
	OS_CLOCK_MACH_ABSOLUTE_TIME Os_clockid_t = 32
)

func (Os_clockid_t) String

func (e Os_clockid_t) String() string

type Ptrauth_key

type Ptrauth_key int64
const (
	Ptrauth_key_none                     Ptrauth_key = -1
	Ptrauth_key_asia                     Ptrauth_key = 0
	Ptrauth_key_asib                     Ptrauth_key = 1
	Ptrauth_key_asda                     Ptrauth_key = 2
	Ptrauth_key_asdb                     Ptrauth_key = 3
	Ptrauth_key_process_independent_code Ptrauth_key = 0
	Ptrauth_key_process_dependent_code   Ptrauth_key = 1
	Ptrauth_key_process_independent_data Ptrauth_key = 2
	Ptrauth_key_process_dependent_data   Ptrauth_key = 3
	Ptrauth_key_return_address           Ptrauth_key = 1
	Ptrauth_key_frame_pointer            Ptrauth_key = 3
	Ptrauth_key_function_pointer         Ptrauth_key = 0
	Ptrauth_key_block_function           Ptrauth_key = 0
	Ptrauth_key_cxx_vtable_pointer       Ptrauth_key = 2
	Ptrauth_key_method_list_pointer      Ptrauth_key = 2
	Ptrauth_key_objc_isa_pointer         Ptrauth_key = 2
	Ptrauth_key_objc_super_pointer       Ptrauth_key = 2
	Ptrauth_key_objc_sel_pointer         Ptrauth_key = 3
	Ptrauth_key_objc_class_ro_pointer    Ptrauth_key = 2
	Ptrauth_key_block_descriptor_pointer Ptrauth_key = 2
	Ptrauth_key_init_fini_pointer        Ptrauth_key = 0
)

func (Ptrauth_key) String

func (e Ptrauth_key) String() string

type Qos_class_t

type Qos_class_t uint32
const (
	QOS_CLASS_USER_INTERACTIVE Qos_class_t = 33
	QOS_CLASS_USER_INITIATED   Qos_class_t = 25
	QOS_CLASS_DEFAULT          Qos_class_t = 21
	QOS_CLASS_UTILITY          Qos_class_t = 17
	QOS_CLASS_BACKGROUND       Qos_class_t = 9
	QOS_CLASS_UNSPECIFIED      Qos_class_t = 0
)

func (Qos_class_t) String

func (e Qos_class_t) String() string

type TAccessControlEntry

type TAccessControlEntry struct {
	FGuestAccessFlags   uint
	FDirMemberFlags     uint
	FDirNodeMemberFlags uint
	FOwnerFlags         uint
	FAdministratorFlags uint
}

C struct: tAccessControlEntry

type TAttributeEntry

type TAttributeEntry struct {
	FReserved1             uint
	FReserved2             TAccessControlEntry
	FAttributeValueCount   uint
	FAttributeDataSize     uint
	FAttributeValueMaxSize uint
	FAttributeSignature    TDataBuffer
}

C struct: tAttributeEntry

type TAttributeValueEntry

type TAttributeValueEntry struct {
	FAttributeValueID   uint
	FAttributeValueData TDataBuffer
}

C struct: tAttributeValueEntry

func DsAllocAttributeValueEntry

func DsAllocAttributeValueEntry(inDirRef uint, inAttrValueID uint, inAttrValueData unsafe.Pointer, inAttrValueDataLen uint) *TAttributeValueEntry

@function dsAllocAttributeValueEntry C function: dsAllocAttributeValueEntry

type TDataBuffer

type TDataBuffer struct {
	FBufferSize   uint
	FBufferLength uint
	FBufferData   [1]int8
}

C struct: tDataBuffer

func DsDataBufferAllocate

func DsDataBufferAllocate(inDirReference uint, inBufferSize uint) *TDataBuffer

@function dsDataBufferAllocate C function: dsDataBufferAllocate

func DsDataNodeAllocateBlock

func DsDataNodeAllocateBlock(inDirReference uint, inDataNodeSize uint, inDataNodeLength uint, inDataNodeBuffer unsafe.Pointer) *TDataBuffer

@function dsDataNodeAllocateBlock C function: dsDataNodeAllocateBlock

func DsDataNodeAllocateString

func DsDataNodeAllocateString(inDirReference uint, inCString string) *TDataBuffer

@function dsDataNodeAllocateString C function: dsDataNodeAllocateString

type TDataList

type TDataList struct {
	FDataNodeCount uint
	FDataListHead  *TDataBuffer
}

C struct: tDataList

func DsBuildFromPath

func DsBuildFromPath(inDirReference uint, inPathCString string, inPathSeparatorCString string) *TDataList

@function dsBuildFromPath C function: dsBuildFromPath

func DsDataListAllocate

func DsDataListAllocate(inDirReference uint) *TDataList

@function dsDataListAllocate C function: dsDataListAllocate

func DsDataListCopyList

func DsDataListCopyList(inDirReference uint, inDataListSource *TDataList) *TDataList

@function dsDataListCopyList C function: dsDataListCopyList

type TDirPatternMatch

type TDirPatternMatch int64
const (
	EDSNoMatch1                     TDirPatternMatch = 0
	EDSAnyMatch                     TDirPatternMatch = 1
	EDSBeginAppleReserve1           TDirPatternMatch = 2
	EDSEndAppleReserve1             TDirPatternMatch = 8191
	EDSExact                        TDirPatternMatch = 8193
	EDSStartsWith                   TDirPatternMatch = 8194
	EDSEndsWith                     TDirPatternMatch = 8195
	EDSContains                     TDirPatternMatch = 8196
	EDSLessThan                     TDirPatternMatch = 8197
	EDSGreaterThan                  TDirPatternMatch = 8198
	EDSLessEqual                    TDirPatternMatch = 8199
	EDSGreaterEqual                 TDirPatternMatch = 8200
	EDSWildCardPattern              TDirPatternMatch = 8201
	EDSRegularExpression            TDirPatternMatch = 8202
	EDSCompoundExpression           TDirPatternMatch = 8203
	EDSiExact                       TDirPatternMatch = 8449
	EDSiStartsWith                  TDirPatternMatch = 8450
	EDSiEndsWith                    TDirPatternMatch = 8451
	EDSiContains                    TDirPatternMatch = 8452
	EDSiLessThan                    TDirPatternMatch = 8453
	EDSiGreaterThan                 TDirPatternMatch = 8454
	EDSiLessEqual                   TDirPatternMatch = 8455
	EDSiGreaterEqual                TDirPatternMatch = 8456
	EDSiWildCardPattern             TDirPatternMatch = 8457
	EDSiRegularExpression           TDirPatternMatch = 8458
	EDSiCompoundExpression          TDirPatternMatch = 8459
	EDSLocalNodeNames               TDirPatternMatch = 8704
	EDSSearchNodeName               TDirPatternMatch = 8705
	EDSConfigNodeName               TDirPatternMatch = 8706
	EDSLocalHostedNodes             TDirPatternMatch = 8707
	EDSAuthenticationSearchNodeName TDirPatternMatch = 8705
	EDSContactsSearchNodeName       TDirPatternMatch = 8708
	EDSNetworkSearchNodeName        TDirPatternMatch = 8709
	EDSDefaultNetworkNodes          TDirPatternMatch = 8710
	EDSCacheNodeName                TDirPatternMatch = 8711
	DDSBeginPlugInCustom            TDirPatternMatch = 12288
	EDSEndPlugInCustom              TDirPatternMatch = 20479
	EDSBeginAppleReserve2           TDirPatternMatch = 20480
	EDSEndAppleReserve2             TDirPatternMatch = 65534
	EDSNoMatch2                     TDirPatternMatch = 65535
)

func (TDirPatternMatch) String

func (e TDirPatternMatch) String() string

type TDirStatus

type TDirStatus int64

@enum tDirStatus @discussion Error codes returned from the Directory Services API. @constant eDSSchemaError The write operation failed because the result would conflict with the server's schema. For example, trying to remove a required attribute would return this error. @constant eDSAttributeValueNotFound When using dsSetAttributeValue, dsRemoveAttributeValue, or dsGetAttributeValueByID the value with the specified ID was not found. @constant eDSVersionMismatch A configuration file version is not compatible with this version of Directory Services or the plug-in that loaded it. @constant eDSAuthNewPasswordRequired The administrator set a flag to force a password reset on the next login. @constant eDSAuthPasswordExpired The password expiration date has passed so it must be reset. @constant eDSAuthPasswordQualityCheckFailed New password rejected because it did not meet the password server�s quality requirements (for example, it was too short). This error only comes back when changing or setting the password, not when authenticating. @constant eDSAuthPasswordTooShort New password rejected because it did not meet the password server�s minimum length requirements. This error only comes back when changing or setting the password, not when authenticating. @constant eDSAuthPasswordTooLong New password rejected because it exceeded the password server�s maximum length limit. This error only comes back when changing or setting the password, not when authenticating. @constant eDSAuthPasswordNeedsLetter New password rejected because it did not meet the password server�s quality requirements (did not contain a letter). This error only comes back when changing or setting the password, not when authenticating. @constant eDSAuthPasswordNeedsDigit New password rejected because it did not meet the password server�s quality requirements (did not contain a digit). This error only comes back when changing or setting the password, not when authenticating. @constant eDSAuthAccountDisabled The administrator set a flag to disable the account. @constant eDSAuthAccountExpired The expiration date/time of the account passed so it is automatically disabled. @constant eDSAuthAccountInactive The account was unused for a preset amount of time so it was automatically disabled. @constant eDSAuthPrimaryUnreachable Unable to authenticate to make changes because the prmary server is unreachable.

const (
	EDSNoErr                           TDirStatus = 0
	EDSOpenFailed                      TDirStatus = -14000
	EDSCloseFailed                     TDirStatus = -14001
	EDSOpenNodeFailed                  TDirStatus = -14002
	EDSBadDirRefences                  TDirStatus = -14003
	EDSNullRecordReference             TDirStatus = -14004
	EDSMaxSessionsOpen                 TDirStatus = -14005
	EDSCannotAccessSession             TDirStatus = -14006
	EDSDirSrvcNotOpened                TDirStatus = -14007
	EDSNodeNotFound                    TDirStatus = -14008
	EDSUnknownNodeName                 TDirStatus = -14009
	EDSRegisterCustomFailed            TDirStatus = -14010
	EDSGetCustomFailed                 TDirStatus = -14011
	EDSUnRegisterFailed                TDirStatus = -14012
	EDSLocalDSDaemonInUse              TDirStatus = -14015
	EDSNormalDSDaemonInUse             TDirStatus = -14016
	EDSAllocationFailed                TDirStatus = -14050
	EDSDeAllocateFailed                TDirStatus = -14051
	EDSCustomBlockFailed               TDirStatus = -14052
	EDSCustomUnblockFailed             TDirStatus = -14053
	EDSCustomYieldFailed               TDirStatus = -14054
	EDSCorruptBuffer                   TDirStatus = -14060
	EDSInvalidIndex                    TDirStatus = -14061
	EDSIndexOutOfRange                 TDirStatus = -14062
	EDSIndexNotFound                   TDirStatus = -14063
	EDSCorruptRecEntryData             TDirStatus = -14065
	EDSRefSpaceFull                    TDirStatus = -14069
	EDSRefTableAllocError              TDirStatus = -14070
	EDSInvalidReference                TDirStatus = -14071
	EDSInvalidRefType                  TDirStatus = -14072
	EDSInvalidDirRef                   TDirStatus = -14073
	EDSInvalidNodeRef                  TDirStatus = -14074
	EDSInvalidRecordRef                TDirStatus = -14075
	EDSInvalidAttrListRef              TDirStatus = -14076
	EDSInvalidAttrValueRef             TDirStatus = -14077
	EDSInvalidContinueData             TDirStatus = -14078
	EDSInvalidBuffFormat               TDirStatus = -14079
	EDSInvalidPatternMatchType         TDirStatus = -14080
	EDSRefTableError                   TDirStatus = -14081
	EDSRefTableNilError                TDirStatus = -14082
	EDSRefTableIndexOutOfBoundsError   TDirStatus = -14083
	EDSRefTableEntryNilError           TDirStatus = -14084
	EDSRefTableCSBPAllocError          TDirStatus = -14085
	EDSRefTableFWAllocError            TDirStatus = -14086
	EDSAuthFailed                      TDirStatus = -14090
	EDSAuthMethodNotSupported          TDirStatus = -14091
	EDSAuthResponseBufTooSmall         TDirStatus = -14092
	EDSAuthParameterError              TDirStatus = -14093
	EDSAuthInBuffFormatError           TDirStatus = -14094
	EDSAuthNoSuchEntity                TDirStatus = -14095
	EDSAuthBadPassword                 TDirStatus = -14096
	EDSAuthContinueDataBad             TDirStatus = -14097
	EDSAuthUnknownUser                 TDirStatus = -14098
	EDSAuthInvalidUserName             TDirStatus = -14099
	EDSAuthCannotRecoverPasswd         TDirStatus = -14100
	EDSAuthFailedClearTextOnly         TDirStatus = -14101
	EDSAuthNoAuthServerFound           TDirStatus = -14102
	EDSAuthServerError                 TDirStatus = -14103
	EDSInvalidContext                  TDirStatus = -14104
	EDSBadContextData                  TDirStatus = -14105
	EDSPermissionError                 TDirStatus = -14120
	EDSReadOnly                        TDirStatus = -14121
	EDSInvalidDomain                   TDirStatus = -14122
	ENetInfoError                      TDirStatus = -14123
	EDSInvalidRecordType               TDirStatus = -14130
	EDSInvalidAttributeType            TDirStatus = -14131
	EDSInvalidRecordName               TDirStatus = -14133
	EDSAttributeNotFound               TDirStatus = -14134
	EDSRecordAlreadyExists             TDirStatus = -14135
	EDSRecordNotFound                  TDirStatus = -14136
	EDSAttributeDoesNotExist           TDirStatus = -14137
	EDSRecordTypeDisabled              TDirStatus = -14138
	EDSNoStdMappingAvailable           TDirStatus = -14140
	EDSInvalidNativeMapping            TDirStatus = -14141
	EDSSchemaError                     TDirStatus = -14142
	EDSAttributeValueNotFound          TDirStatus = -14143
	EDSVersionMismatch                 TDirStatus = -14149
	EDSPlugInConfigFileError           TDirStatus = -14150
	EDSInvalidPlugInConfigData         TDirStatus = -14151
	EDSAuthNewPasswordRequired         TDirStatus = -14161
	EDSAuthPasswordExpired             TDirStatus = -14162
	EDSAuthPasswordQualityCheckFailed  TDirStatus = -14165
	EDSAuthAccountDisabled             TDirStatus = -14167
	EDSAuthAccountExpired              TDirStatus = -14168
	EDSAuthAccountInactive             TDirStatus = -14169
	EDSAuthPasswordTooShort            TDirStatus = -14170
	EDSAuthPasswordTooLong             TDirStatus = -14171
	EDSAuthPasswordNeedsLetter         TDirStatus = -14172
	EDSAuthPasswordNeedsDigit          TDirStatus = -14173
	EDSAuthPasswordChangeTooSoon       TDirStatus = -14174
	EDSAuthInvalidLogonHours           TDirStatus = -14175
	EDSAuthInvalidComputer             TDirStatus = -14176
	EDSAuthPrimaryUnreachable          TDirStatus = -14177
	EDSAuthMasterUnreachable           TDirStatus = -14177
	EDSNullParameter                   TDirStatus = -14200
	EDSNullDataBuff                    TDirStatus = -14201
	EDSNullNodeName                    TDirStatus = -14202
	EDSNullRecEntryPtr                 TDirStatus = -14203
	EDSNullRecName                     TDirStatus = -14204
	EDSNullRecNameList                 TDirStatus = -14205
	EDSNullRecType                     TDirStatus = -14206
	EDSNullRecTypeList                 TDirStatus = -14207
	EDSNullAttribute                   TDirStatus = -14208
	EDSNullAttributeAccess             TDirStatus = -14209
	EDSNullAttributeValue              TDirStatus = -14210
	EDSNullAttributeType               TDirStatus = -14211
	EDSNullAttributeTypeList           TDirStatus = -14212
	EDSNullAttributeControlPtr         TDirStatus = -14213
	EDSNullAttributeRequestList        TDirStatus = -14214
	EDSNullDataList                    TDirStatus = -14215
	EDSNullDirNodeTypeList             TDirStatus = -14216
	EDSNullAutMethod                   TDirStatus = -14217
	EDSNullAuthStepData                TDirStatus = -14218
	EDSNullAuthStepDataResp            TDirStatus = -14219
	EDSNullNodeInfoTypeList            TDirStatus = -14220
	EDSNullPatternMatch                TDirStatus = -14221
	EDSNullNodeNamePattern             TDirStatus = -14222
	EDSNullTargetArgument              TDirStatus = -14223
	EDSEmptyParameter                  TDirStatus = -14230
	EDSEmptyBuffer                     TDirStatus = -14231
	EDSEmptyNodeName                   TDirStatus = -14232
	EDSEmptyRecordName                 TDirStatus = -14233
	EDSEmptyRecordNameList             TDirStatus = -14234
	EDSEmptyRecordType                 TDirStatus = -14235
	EDSEmptyRecordTypeList             TDirStatus = -14236
	EDSEmptyRecordEntry                TDirStatus = -14237
	EDSEmptyPatternMatch               TDirStatus = -14238
	EDSEmptyNodeNamePattern            TDirStatus = -14239
	EDSEmptyAttribute                  TDirStatus = -14240
	EDSEmptyAttributeType              TDirStatus = -14241
	EDSEmptyAttributeTypeList          TDirStatus = -14242
	EDSEmptyAttributeValue             TDirStatus = -14243
	EDSEmptyAttributeRequestList       TDirStatus = -14244
	EDSEmptyDataList                   TDirStatus = -14245
	EDSEmptyNodeInfoTypeList           TDirStatus = -14246
	EDSEmptyAuthMethod                 TDirStatus = -14247
	EDSEmptyAuthStepData               TDirStatus = -14248
	EDSEmptyAuthStepDataResp           TDirStatus = -14249
	EDSEmptyPattern2Match              TDirStatus = -14250
	EDSBadDataNodeLength               TDirStatus = -14255
	EDSBadDataNodeFormat               TDirStatus = -14256
	EDSBadSourceDataNode               TDirStatus = -14257
	EDSBadTargetDataNode               TDirStatus = -14258
	EDSBufferTooSmall                  TDirStatus = -14260
	EDSUnknownMatchType                TDirStatus = -14261
	EDSUnSupportedMatchType            TDirStatus = -14262
	EDSInvalDataList                   TDirStatus = -14263
	EDSAttrListError                   TDirStatus = -14264
	EServerNotRunning                  TDirStatus = -14270
	EUnknownAPICall                    TDirStatus = -14271
	EUnknownServerError                TDirStatus = -14272
	EUnknownPlugIn                     TDirStatus = -14273
	EPlugInDataError                   TDirStatus = -14274
	EPlugInNotFound                    TDirStatus = -14275
	EPlugInError                       TDirStatus = -14276
	EPlugInInitError                   TDirStatus = -14277
	EPlugInNotActive                   TDirStatus = -14278
	EPlugInFailedToInitialize          TDirStatus = -14279
	EPlugInCallTimedOut                TDirStatus = -14280
	ENoSearchNodesFound                TDirStatus = -14290
	ESearchPathNotDefined              TDirStatus = -14291
	ENotHandledByThisNode              TDirStatus = -14292
	EIPCSendError                      TDirStatus = -14330
	EIPCReceiveError                   TDirStatus = -14331
	EServerReplyError                  TDirStatus = -14332
	EDSTCPSendError                    TDirStatus = -14350
	EDSTCPReceiveError                 TDirStatus = -14351
	EDSTCPVersionMismatch              TDirStatus = -14352
	EDSIPUnreachable                   TDirStatus = -14353
	EDSUnknownHost                     TDirStatus = -14354
	EPluginHandlerNotLoaded            TDirStatus = -14400
	ENoPluginsLoaded                   TDirStatus = -14402
	EPluginAlreadyLoaded               TDirStatus = -14404
	EPluginVersionNotFound             TDirStatus = -14406
	EPluginNameNotFound                TDirStatus = -14408
	ENoPluginFactoriesFound            TDirStatus = -14410
	EPluginConfigAvailNotFound         TDirStatus = -14412
	EPluginConfigFileNotFound          TDirStatus = -14414
	ECFMGetFileSysRepErr               TDirStatus = -14450
	ECFPlugInGetBundleErr              TDirStatus = -14452
	ECFBndleGetInfoDictErr             TDirStatus = -14454
	ECFDictGetValueErr                 TDirStatus = -14456
	EDSServerTimeout                   TDirStatus = -14470
	EDSContinue                        TDirStatus = -14471
	EDSInvalidHandle                   TDirStatus = -14472
	EDSSendFailed                      TDirStatus = -14473
	EDSReceiveFailed                   TDirStatus = -14474
	EDSBadPacket                       TDirStatus = -14475
	EDSInvalidTag                      TDirStatus = -14476
	EDSInvalidSession                  TDirStatus = -14477
	EDSInvalidName                     TDirStatus = -14478
	EDSUserUnknown                     TDirStatus = -14479
	EDSUnrecoverablePassword           TDirStatus = -14480
	EDSAuthenticationFailed            TDirStatus = -14481
	EDSBogusServer                     TDirStatus = -14482
	EDSOperationFailed                 TDirStatus = -14483
	EDSNotAuthorized                   TDirStatus = -14484
	EDSNetInfoError                    TDirStatus = -14485
	EDSContactPrimary                  TDirStatus = -14486
	EDSContactMaster                   TDirStatus = -14486
	EDSServiceUnavailable              TDirStatus = -14487
	EDSInvalidFilePath                 TDirStatus = -14488
	EDSOperationTimeout                TDirStatus = -14489
	EFWGetDirNodeNameErr1              TDirStatus = -14501
	EFWGetDirNodeNameErr2              TDirStatus = -14502
	EFWGetDirNodeNameErr3              TDirStatus = -14503
	EFWGetDirNodeNameErr4              TDirStatus = -14504
	EParameterSendError                TDirStatus = -14700
	EParameterReceiveError             TDirStatus = -14720
	EServerSendError                   TDirStatus = -14740
	EServerReceiveError                TDirStatus = -14760
	EMemoryError                       TDirStatus = -14900
	EMemoryAllocError                  TDirStatus = -14901
	EServerError                       TDirStatus = -14910
	EParameterError                    TDirStatus = -14915
	EDataReceiveErr_NoDirRef           TDirStatus = -14950
	EDataReceiveErr_NoRecRef           TDirStatus = -14951
	EDataReceiveErr_NoAttrListRef      TDirStatus = -14952
	EDataReceiveErr_NoAttrValueListRef TDirStatus = -14953
	EDataReceiveErr_NoAttrEntry        TDirStatus = -14954
	EDataReceiveErr_NoAttrValueEntry   TDirStatus = -14955
	EDataReceiveErr_NoNodeCount        TDirStatus = -14956
	EDataReceiveErr_NoAttrCount        TDirStatus = -14957
	EDataReceiveErr_NoRecEntry         TDirStatus = -14958
	EDataReceiveErr_NoRecEntryCount    TDirStatus = -14959
	EDataReceiveErr_NoRecMatchCount    TDirStatus = -14960
	EDataReceiveErr_NoDataBuff         TDirStatus = -14961
	EDataReceiveErr_NoContinueData     TDirStatus = -14962
	EDataReceiveErr_NoNodeChangeToken  TDirStatus = -14963
	ENoLongerSupported                 TDirStatus = -14986
	EUndefinedError                    TDirStatus = -14987
	ENotYetImplemented                 TDirStatus = -14988
	EDSLastValue                       TDirStatus = -14999
)

func DsAddAttribute

func DsAddAttribute(inRecordReference uint, inNewAttribute *TDataBuffer, inNewAttributeAccess *TAccessControlEntry, inFirstAttributeValue *TDataBuffer) TDirStatus

@function dsAddAttribute @discussion Add an attribute type to a record. C function: dsAddAttribute

func DsAddAttributeValue

func DsAddAttributeValue(inRecordReference uint, inAttributeType *TDataBuffer, inAttributeValue *TDataBuffer) TDirStatus

@function dsAddAttributeValue @discussion Add data to a record. C function: dsAddAttributeValue

func DsAddChildPIDToReference

func DsAddChildPIDToReference(inDirRef uint, inValidChildPID int, inValidAPIReferenceToGrantChild uint) TDirStatus

@function dsAddChildPIDToReference C function: dsAddChildPIDToReference

func DsAppendAuthBufferWithAuthorityAttribute

func DsAppendAuthBufferWithAuthorityAttribute(inNodeRef uint, inRecordListBuffPtr *TDataBuffer, inAttributePtr *TAttributeEntry, inValueRef uint, inUserName string, inOutAuthBuffer *TDataBuffer) TDirStatus

@function dsAppendAuthBufferWithAuthorityAttribute @abstract Inserts a user name with authentication authority data into an existing buffer. @discussion Use this function for authentication methods that contain user or authenticator names and the authentication authority attribute has already been retrieved. @param inNodeRef a node reference for the record to parse @param inRecordListBuffPtr the data returned from dsGetDataList @param inAttributePtr an attribute with authentication authority data @param inValueRef the reference for the kDSNAttrAuthenticationAuthority attribute. @param inUserName the name of the user to authenticate @param inOutAuthBuffer pass in a preallocated buffer, returns with the user data appended. @result tDirStatus code C function: dsAppendAuthBufferWithAuthorityAttribute

func DsAppendAuthBufferWithAuthorityStrings

func DsAppendAuthBufferWithAuthorityStrings(inUserName string, inAuthAuthority string, inOutAuthBuffer *TDataBuffer) TDirStatus

C function: dsAppendAuthBufferWithAuthorityStrings

func DsAppendStringToList

func DsAppendStringToList(inDataList *TDataList, inCString string) TDirStatus

@function dsAppendStringToList @discussion Included only for backward compatibility. C function: dsAppendStringToList

func DsAppendStringToListAlloc

func DsAppendStringToListAlloc(inDirReferences uint, inDataList *TDataList, inCString string) TDirStatus

@function dsAppendStringToListAlloc C function: dsAppendStringToListAlloc

func DsBuildListFromPathAlloc

func DsBuildListFromPathAlloc(inDirReference uint, inDataList *TDataList, inPathCString string, inPathSeparatorCString string) TDirStatus

@function dsBuildListFromPathAlloc C function: dsBuildListFromPathAlloc

func DsBuildListFromStringsAllocV

func DsBuildListFromStringsAllocV(inDirRef uint, inDataList *TDataList, in1stCString string, args string) TDirStatus

@function dsBuildListFromStringsAllocV C function: dsBuildListFromStringsAllocV

func DsCloseAttributeList

func DsCloseAttributeList(inAttributeListRef uint) TDirStatus

@function dsCloseAttributeList C function: dsCloseAttributeList

func DsCloseAttributeValueList

func DsCloseAttributeValueList(inAttributeValueListRef uint) TDirStatus

@function dsCloseAttributeValueList C function: dsCloseAttributeValueList

func DsCloseDirNode

func DsCloseDirNode(inDirNodeReference uint) TDirStatus

@function dsCloseDirNode @discussion Tear down a directory node session. @param inDirNodeReference Directory node reference obtained from dsOpenDirNode C function: dsCloseDirNode

func DsCloseDirService

func DsCloseDirService(inDirReference uint) TDirStatus

@function dsCloseDirService @param inDirReference Directory Services API reference to be closed C function: dsCloseDirService

func DsCloseRecord

func DsCloseRecord(inRecordReference uint) TDirStatus

@function dsCloseRecord C function: dsCloseRecord

func DsCreateRecord

func DsCreateRecord(inDirNodeReference uint, inRecordType *TDataBuffer, inRecordName *TDataBuffer) TDirStatus

@function dsCreateRecord C function: dsCreateRecord

func DsCreateRecordAndOpen

func DsCreateRecordAndOpen(inDirNodeReference uint, inRecordType *TDataBuffer, inRecordName *TDataBuffer, outRecordReference *uint) TDirStatus

@function dsCreateRecordAndOpen C function: dsCreateRecordAndOpen

func DsDataBufferDeAllocate

func DsDataBufferDeAllocate(inDirReference uint, inDataBufferPtr *TDataBuffer) TDirStatus

@function dsDataBufferDeAllocate C function: dsDataBufferDeAllocate

func DsDataListDeAllocate

func DsDataListDeAllocate(inDirReference uint, inDataList *TDataList, inDeAllocateNodesFlag int) TDirStatus

@function dsDataListDeAllocate @discussion Included only for backward compatibility. Equivalent to dsDataListDeallocate. C function: dsDataListDeAllocate

func DsDataListDeallocate

func DsDataListDeallocate(inDirReference uint, inDataList *TDataList) TDirStatus

@function dsDataListDeallocate @discussion Note that if the tDataListPtr is a heap based tDataList rather than stack based, that you must also call free() to release the memory for the head of the list after calling dsDataListDeallocate(). C function: dsDataListDeallocate

func DsDataListDeleteThisNode

func DsDataListDeleteThisNode(inDirReference uint, inDataList *TDataList, inNodeIndex uint) TDirStatus

@function dsDataListDeleteThisNode C function: dsDataListDeleteThisNode

func DsDataListGetNode

func DsDataListGetNode(inDataListPtr *TDataList, inNodeIndex uint, outDataNode **TDataBuffer) TDirStatus

@function dsDataListGetNode @discussion Included only for backward compatibility. C function: dsDataListGetNode

func DsDataListGetNodeAlloc

func DsDataListGetNodeAlloc(inDirReference uint, inDataListPtr *TDataList, inNodeIndex uint, outDataNode **TDataBuffer) TDirStatus

@function dsDataListGetNodeAlloc C function: dsDataListGetNodeAlloc

func DsDataListInsertAfter

func DsDataListInsertAfter(inDirReferences uint, inDataList *TDataList, inInsertDataNode *TDataBuffer, inNodeIndex uint) TDirStatus

@function dsDataListInsertAfter @param inNodeIndex One-based index of the existing node to insert the new node after. If inNodeIndex is 0, then it is inserted at the head of the list. @discussion The datanode is copied into the datalist. The caller owns the original datanode, therefore must deallocate after adding to the list. C function: dsDataListInsertAfter

func DsDataListInsertNode

func DsDataListInsertNode(inDataList *TDataList, inAfterDataNode *TDataBuffer, inInsertDataNode *TDataBuffer) TDirStatus

@function dsDataListInsertNode @discussion Included only for backward compatibility. C function: dsDataListInsertNode

func DsDataListMergeList

func DsDataListMergeList(inDataList *TDataList, inAfterDataNode *TDataBuffer, inMergeDataList *TDataList) TDirStatus

@function dsDataListMergeList @discussion Included only for backward compatibility. C function: dsDataListMergeList

func DsDataListMergeListAfter

func DsDataListMergeListAfter(inTargetList *TDataList, inSourceList *TDataList, inNodeIndex uint) TDirStatus

@function dsDataListMergeListAfter C function: dsDataListMergeListAfter

func DsDataListRemoveNodes

func DsDataListRemoveNodes(inDataList *TDataList, in1stDataNode *TDataBuffer, inDeleteCount uint) TDirStatus

@function dsDataListRemoveNodes @discussion Included only for backward compatibility. C function: dsDataListRemoveNodes

func DsDataListRemoveThisNode

func DsDataListRemoveThisNode(inDataList *TDataList, inNodeIndex uint, inDeleteCount uint) TDirStatus

@function dsDataListRemoveThisNode @discussion Included only for backward compatibility. C function: dsDataListRemoveThisNode

func DsDataNodeDeAllocate

func DsDataNodeDeAllocate(inDirReference uint, inDataNodePtr *TDataBuffer) TDirStatus

@function dsDataNodeDeAllocate C function: dsDataNodeDeAllocate

func DsDataNodeSetLength

func DsDataNodeSetLength(inDataNodePtr *TDataBuffer, inDataNodeLength uint) TDirStatus

@function dsDataNodeSetLength C function: dsDataNodeSetLength

func DsDeallocAttributeEntry

func DsDeallocAttributeEntry(inDirRef uint, inAttrEntry *TAttributeEntry) TDirStatus

@function dsDeallocAttributeEntry C function: dsDeallocAttributeEntry

func DsDeallocAttributeValueEntry

func DsDeallocAttributeValueEntry(inDirRef uint, inAttrValueEntry *TAttributeValueEntry) TDirStatus

@function dsDeallocAttributeValueEntry C function: dsDeallocAttributeValueEntry

func DsDeallocRecordEntry

func DsDeallocRecordEntry(inDirRef uint, inRecEntry *TRecordEntry) TDirStatus

@function dsDeallocRecordEntry C function: dsDeallocRecordEntry

func DsDeleteRecord

func DsDeleteRecord(inRecordReference uint) TDirStatus

@function dsDeleteRecord C function: dsDeleteRecord

func DsDoAttributeValueSearch

func DsDoAttributeValueSearch(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordTypeList *TDataList, inAttributeType *TDataBuffer, inPatternMatchType TDirPatternMatch, inPattern2Match *TDataBuffer, inOutMatchRecordCount *uint, inOutContinueData *uint) TDirStatus

@function dsDoAttributeValueSearch @discussion Use dsGetRecordEntry, dsGetAttributeEntry, and dsGetAttributeValue to parse the inOutDataBuffer parameter for results. @param inDirNodeReference Directory node reference obtained from dsOpenDirNode. @param inOutDataBuffer A client-allocated buffer to hold the data results. @param inRecordTypeList The list of record types to search over. @param inAttributeType Which attribute type we are to match on. @param inPatternMatchType The matching criteria used. @param inPattern2Match Value to match for the above attribute type. @param inOutMatchRecordCount How many records we found that met the match criteria. However, also a limit of the maximum records returned as provided by the client. If zero or less, then assuming no limit on number of records to be returned. @param inOutContinueData Pointer to a tContextData variable. If (*inOutCountinueData == 0) there is no more data. Otherwise can be used in the next call to the same routine to get the remainder of the information. If client does not use non-NULL continue data, then dsReleaseContinueData should be called to clean up. C function: dsDoAttributeValueSearch

func DsDoAttributeValueSearchWithData

func DsDoAttributeValueSearchWithData(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordTypeList *TDataList, inAttributeMatchType *TDataBuffer, inPatternMatchType TDirPatternMatch, inPatternToMatch *TDataBuffer, inAttributeTypeRequestList *TDataList, inAttributeInfoOnly int, inOutMatchRecordCount *uint, inOutContinueData *uint) TDirStatus

@function dsDoAttributeValueSearchWithData @param inOutDataBuffer A client-allocated buffer to hold the data results. @param inRecordTypeList The list of record types to search over. @param inAttributeMatchType Which attribute type we are to match on. @param inPatternMatchType The matching criteria used. @param inPatternToMatch Value to match for the above attribute type. @param inAttributeTypeRequestList What type of attributes do we want for each record. @param inAttributeInfoOnly Do we want attribute information only, or values too. @param inOutMatchRecordCount How many records we found that met the match criteria. However, also a limit of the maximum records returned as provided by the client. If zero or less, then assuming no limit on number of records to be returned. C function: dsDoAttributeValueSearchWithData

func DsDoDirNodeAuth

func DsDoDirNodeAuth(inDirNodeReference uint, inDirNodeAuthName *TDataBuffer, inDirNodeAuthOnlyFlag int, inAuthStepData *TDataBuffer, outAuthStepDataResponse *TDataBuffer, inOutContinueData *uint) TDirStatus

@function dsDoDirNodeAuth @discussion Do an authentication session with the given authentication type. When a authentication is successful the error code 'eDSNoErr' is returned and the outAuthStepDataResponse parameter will contain a correctly formed kDS1AttrAuthCredential value. This AuthCredential can be used for future authentications for this and other directory nodes in the directory system. Not all directory nodes will support authenticating in this manner, but most should. In addition the current kDS1AttrAuthCredential value can always be obtained via dsGetDirNodeInfo call with kDS1AttrAuthCredential as one of the requested attributes. Directory Nodes that support using a kDS1AttrAuthCredential will list DSAuthCredential as a support authentication method. Support authentication methods can be determined by calling dsGetDirNodeInfo and requesting the kDSNAttrAuthMethod attribute for that directory node. NOTE: it is important to note that while some Directory Nodes may support the attempt of using a kDS1AttrAuthCredential to authenticate, when the Directory Node plug-in decodes the Credential the authentication attempt may still fail for plug-in specific reasons (the plug-in may find the level of original authentication insufficient for it's requirements or configuration, or the credential may have expired and is no longer valid). In addition when using a kDS1AttrAuthCredential to authentication to a different directory node than the original kDS1AttrAuthCredential was generated, the level of access granted by the directory node plug-in may not match the level in the original directory node. Access granted to the contents of a directory node is entirely at the descretion of the directory node plug-in and the directory system it represents. @param inDirNodeAuthOnlyFlag Indicates if the client wishes to use the results of this authentication process as their identity for this directory session (inDirNodeReference) for directory node access authorization. If the flag value is "false", then at the completion of the auth process both the Directory Services API and the Plug-in should use this "identity" to grant or deny access for all future directory service calls. If the flag value is "true", then at the completion of of the auth process no identity information will be used by the directory services or Plug-in for authorization purposes. A file server just wishing to authenticate a user, but not change how/who it is accessing the directory as would set this parameter to "true". C function: dsDoDirNodeAuth

func DsDoDirNodeAuthOnRecordType

func DsDoDirNodeAuthOnRecordType(inDirNodeReference uint, inDirNodeAuthName *TDataBuffer, inDirNodeAuthOnlyFlag int, inAuthStepData *TDataBuffer, outAuthStepDataResponse *TDataBuffer, inOutContinueData *uint, inRecordType *TDataBuffer) TDirStatus

@function dsDoDirNodeAuthOnRecordType @discussion Do an authentication session with the given authentication type on the specified record type. When a authentication is successful the error code 'eDSNoErr' is returned and the outAuthStepDataResponse parameter will contain a correctly formed kDS1AttrAuthCredential value. This AuthCredential can be used for future authentications for this and other directory nodes in the directory system. Not all directory nodes will support authenticating in this manner, but most should. In addition the current kDS1AttrAuthCredential value can always be obtained via dsGetDirNodeInfo call with kDS1AttrAuthCredential as one of the requested attributes. Directory Nodes that support using a kDS1AttrAuthCredential will list DSAuthCredential as a supported authentication method. Support authentication methods can be determined by calling dsGetDirNodeInfo and requesting the kDSNAttrAuthMethod attribute for that directory node. NOTE: it is important to note that while some Directory Nodes may support the attempt of using a kDS1AttrAuthCredential to authenticate, when the Directory Node plug-in decodes the Credential the authentication attempt may still fail for plug-in specific reasons (the plug-in may find the level of original authentication insufficient for it's requirements or configuration, or the credential may have expired and is no longer valid). In addition when using a kDS1AttrAuthCredential to authentication to a different directory node than the original kDS1AttrAuthCredential was generated, the level of access granted by the directory node plug-in may not match the level in the original directory node. Access granted to the contents of a directory node is entirely at the descretion of the directory node plug-in and the directory system it represents. @param inDirNodeAuthOnlyFlag Indicates if the client wishes to use the results of this authentication process as their identity for this directory session (inDirNodeReference) for directory node access authorization. If the flag value is "false", then at the completion of the auth process both the Directory Services API and the Plug-in should use this "identity" to grant or deny access for all future directory service calls. If the flag value is "true", then at the completion of of the auth process no identity information will be used by the directory services or Plug-in for authorization purposes. A file server just wishing to authenticate a user, but not change how/who it is accessing the directory as would set this parameter to "true". @param inRecordType The record type to perform the auth against for the inDirNodeAuthName. If this is passed in as NULL then call will be routed as dsDoDirNodeAuth() which assumes a record type of kDSStdRecordTypeUsers. C function: dsDoDirNodeAuthOnRecordType

func DsDoMultipleAttributeValueSearch

func DsDoMultipleAttributeValueSearch(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordTypeList *TDataList, inAttributeType *TDataBuffer, inPatternMatchType TDirPatternMatch, inPatterns2Match *TDataList, inOutMatchRecordCount *uint, inOutContinueData *uint) TDirStatus

@function dsDoMultipleAttributeValueSearch @discussion Use dsGetRecordEntry, dsGetAttributeEntry, and dsGetAttributeValue to parse the inOutDataBuffer parameter for results. @param inOutDataBuffer A client-allocated buffer to hold the data results. @param inRecordTypeList The list of record types to search over. @param inAttributeType Which attribute type we are to match on. @param inPatternMatchType The matching criteria used. @param inPatterns2Match The list of values to match for the above attribute type. @param inOutMatchRecordCount How many records we found that met the match criteria. However, also a limit of the maximum records returned as provided by the client. If zero or less, then assuming no limit on number of records to be returned. C function: dsDoMultipleAttributeValueSearch

func DsDoMultipleAttributeValueSearchWithData

func DsDoMultipleAttributeValueSearchWithData(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordTypeList *TDataList, inAttributeMatchType *TDataBuffer, inPatternMatchType TDirPatternMatch, inPatternsToMatch *TDataList, inAttributeTypeRequestList *TDataList, inAttributeInfoOnly int, inOutMatchRecordCount *uint, inOutContinueData *uint) TDirStatus

@function dsDoMultipleAttributeValueSearchWithData @param inOutDataBuffer A client-allocated buffer to hold the data results. @param inRecordTypeList The list of record types to search over. @param inAttributeMatchType Which attribute type we are to match on. @param inPatternMatchType The matching criteria used. @param inPatternsToMatch The list of values to match for the above attribute type. @param inAttributeTypeRequestList What type of attributes do we want for each record. @param inAttributeInfoOnly Do we want attribute information only, or values too. @param inOutMatchRecordCount How many records we found that met the match criteria. However, also a limit of the maximum records returned as provided by the client. If zero or less, then assuming no limit on number of records to be returned. C function: dsDoMultipleAttributeValueSearchWithData

func DsDoPlugInCustomCall

func DsDoPlugInCustomCall(inDirNodeReference uint, inCustomRequestCode uint, inCustomRequestData *TDataBuffer, outCustomRequestResponse *TDataBuffer) TDirStatus

@function dsDoPlugInCustomCall @discussion Used for custom direct communications with plugs-ins. C function: dsDoPlugInCustomCall

func DsFindDirNodes

func DsFindDirNodes(inDirReference uint, inOutDataBufferPtr *TDataBuffer, inNodeNamePattern *TDataList, inPatternMatchType TDirPatternMatch, outDirNodeCount *uint, inOutContinueData *uint) TDirStatus

@function dsFindDirNodes @discussion Find directory nodes matching a certain pattern. @param inDirReference Directory reference established with dsOpenDirService @param inOutDataBufferPtr Contains a client allocated buffer to store results. Data is extracted with dsGetDirNodeName. @param inNodeNamePattern A tDataList pointer, which contains the pattern to be matched. @param inPatternMatchType What type of match to perform on inNodeNamePattern. Valid values for this are: eDSExact, eDSStartsWith, eDSEndsWith, eDSContains. Other match types will return an error. @param outDirNodeCount Number of items in the client buffer. @param inOutContinueData Pointer to a tContextData variable, if (*inOutCountinueData == 0) there is no more data otherwise can be used in a 2nd call to the same routine to get the remainder of the directory node list. if client does not use if (*inOutCountinueData != 0) and the client doesn't wish to continue then dsReleaseContinueData should be called to clean up. C function: dsFindDirNodes

func DsFlushRecord

func DsFlushRecord(inRecordReference uint) TDirStatus

@function dsFlushRecord C function: dsFlushRecord

func DsGetAttributeEntry

func DsGetAttributeEntry(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inAttributeListRef uint, inAttributeInfoIndex uint, outAttributeValueListRef *uint, outAttributeInfoPtr **TAttributeEntry) TDirStatus

@function dsGetAttributeEntry @discussion Get an attribute entry from a buffer. C function: dsGetAttributeEntry

func DsGetAttributeValue

func DsGetAttributeValue(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inAttributeValueIndex uint, inAttributeValueListRef uint, outAttributeValue **TAttributeValueEntry) TDirStatus

@function dsGetAttributeValue @discussion Get an attribute value from a buffer. C function: dsGetAttributeValue

func DsGetDirNodeCount

func DsGetDirNodeCount(inDirReference uint, outDirectoryNodeCount *uint) TDirStatus

@function dsGetDirNodeCount @discussion Get the count of the total number of directory nodes in the system. @param inDirReference Directory reference established with dsOpenDirService. @param outDirectoryNodeCount Contains count of the total number of directory nodes. C function: dsGetDirNodeCount

func DsGetDirNodeCountWithInfo

func DsGetDirNodeCountWithInfo(inDirReference uint, outDirectoryNodeCount *uint, outDirectoryNodeChangeToken *uint) TDirStatus

@function dsGetDirNodeCountWithInfo @discussion Get the count of the total number of DirNodes in the Directory System with change information ie. a token gets returned with a different value if there has been a change in the registered nodes so the client can retain the first token and compare with the second to see if any registered nodes have changed @param inDirReference Directory Reference Established with dsOpenDirService @param outDirectoryNodeCount Contains count of the total number of nodes in the directory @param outDirectoryNodeChangeToken Contains token that changes upon any registered node changes. C function: dsGetDirNodeCountWithInfo

func DsGetDirNodeInfo

func DsGetDirNodeInfo(inDirNodeReference uint, inDirNodeInfoTypeList *TDataList, inOutDataBuffer *TDataBuffer, inAttributeInfoOnly int, outAttributeInfoCount *uint, outAttributeListRef *uint, inOutContinueData *uint) TDirStatus

@function dsGetDirNodeInfo @discussion Get information about a directory node: authentication methods, unique ID's, ICON information, access controls, record types contained in this node, plug-in information, directory node/type/signature. @param inDirNodeReference Directory node reference obtained from dsOpenDirNode. @param inDirNodeInfoTypeList tDataList containing the types of requested data. @param inOutDataBuffer Client-allocated buffer to hold the data results. @param inAttributeInfoOnly This flag is set to true if the client wants attribute info only, not attribute values. @param outAttributeInfoCount A count of the number of data types present in the DataBuffer. @param inOutContinueData Pointer to a tContextData variable. If (*inOutCountinueData == 0) there is no more data. Otherwise can be used in the next call to the same routine to get the remainder of the information. If client does not use non-NULL continue data, then dsReleaseContinueData should be called to clean up. C function: dsGetDirNodeInfo

func DsGetDirNodeList

func DsGetDirNodeList(inDirReference uint, inOutDataBufferPtr *TDataBuffer, outDirNodeCount *uint, inOutContinueData *uint) TDirStatus

@function dsGetDirNodeList @discussion Fill a buffer with the names of all the directory nodes. @param inDirReference Directory reference established with dsOpenDirService @param inOutDataBufferPtr Contains a client allocated buffer to store results..data is extracted with dsGetDirNodeName @param outDirNodeCount Number of directory node names contained in dataBuffer @param inOutContinueData Pointer to a tContextData variable, if (*inOutCountinueData == 0) there is no more data otherwise can be used in a 2nd call to the same routine to get the remainder of the directory node list. if client does not use if (*inOutCountinueData != 0) and the client doesn't wish to continue then dsReleaseContinueData should be called to clean up.. C function: dsGetDirNodeList

func DsGetDirNodeName

func DsGetDirNodeName(inDirReference uint, inOutDataBuffer *TDataBuffer, inDirNodeIndex uint, inOutDataList **TDataList) TDirStatus

@function dsGetDirNodeName @discussion Parse the return Buffer from dsFindDirNodes or dsGetDirNodeList and build a tDataList representing the directory node's name. @param inDirReference Directory reference established with dsOpenDirService @param inOutDataBuffer A buffer containing all the directory node names from dsGetDirNodeList or dsFindDirNodes @param inDirNodeIndex One-based index of directory node name to fetch/build. @param inOutDataList Address of tDataListPtr that is built by this call. The client is responsible for disposing of it with dsDataListDeAllocate. C function: dsGetDirNodeName

func DsGetNextAttributeEntry

func DsGetNextAttributeEntry(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inAttributeListRef uint, inAttributeInfoIndex uint, inOutAttributeOffset *int, outAttributeValueListRef *uint, outAttributeInfoPtr **TAttributeEntry) TDirStatus

@function dsGetNextAttributeEntry @discussion Get the next attribute entry from a buffer. Optimized buffer extraction with offset value. Intent is to only service this call in the FW unless falling through to old call. C function: dsGetNextAttributeEntry

func DsGetNextAttributeValue

func DsGetNextAttributeValue(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inAttributeValueIndex uint, inOutAttributeValueOffset *int, inAttributeValueListRef uint, outAttributeValue **TAttributeValueEntry) TDirStatus

@function dsGetNextAttributeValue @discussion Get the next attribute value from a buffer. Optimized buffer extraction with offset value. Intent is to only service this call in the FW unless falling through to old call. C function: dsGetNextAttributeValue

func DsGetRecordAttributeInfo

func DsGetRecordAttributeInfo(inRecordReference uint, inAttributeType *TDataBuffer, outAttributeInfoPtr **TAttributeEntry) TDirStatus

@function dsGetRecordAttributeInfo C function: dsGetRecordAttributeInfo

func DsGetRecordAttributeValueByID

func DsGetRecordAttributeValueByID(inRecordReference uint, inAttributeType *TDataBuffer, inValueID uint, outEntryPtr **TAttributeValueEntry) TDirStatus

@function dsGetRecordAttributeValueByID C function: dsGetRecordAttributeValueByID

func DsGetRecordAttributeValueByIndex

func DsGetRecordAttributeValueByIndex(inRecordReference uint, inAttributeType *TDataBuffer, inValueIndex uint, outEntryPtr **TAttributeValueEntry) TDirStatus

@function dsGetRecordAttributeValueByIndex C function: dsGetRecordAttributeValueByIndex

func DsGetRecordAttributeValueByValue

func DsGetRecordAttributeValueByValue(inRecordReference uint, inAttributeType *TDataBuffer, inAttributeValue *TDataBuffer, outEntryPtr **TAttributeValueEntry) TDirStatus

@function dsGetRecordAttributeValueByValue @param inRecordReference Record reference from an opened record. @param inAttributeType Attribute type to retrieve. @param inAttributeValue Attribute value whose existence is to be confirmed. @param outEntryPtr Output data structure. @discussion This routine verifies the existence of an attribute value within a record. C function: dsGetRecordAttributeValueByValue

func DsGetRecordEntry

func DsGetRecordEntry(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordEntryIndex uint, outAttributeListRef *uint, outRecordEntryPtr **TRecordEntry) TDirStatus

@function dsGetRecordEntry @discussion Get a record entry from a buffer. @param inDirNodeReference Directory node reference obtained from dsOpenDirNode. @param inOutDataBuffer A client-allocated buffer to hold the data results. C function: dsGetRecordEntry

func DsGetRecordList

func DsGetRecordList(inDirNodeReference uint, inOutDataBuffer *TDataBuffer, inRecordNameList *TDataList, inPatternMatchType TDirPatternMatch, inRecordTypeList *TDataList, inAttributeTypeList *TDataList, inAttributeInfoOnly int, inOutRecordEntryCount *uint, inOutContinueData *uint) TDirStatus

@function dsGetRecordList @discussion Get a list of records, optionally: by name, by type, with or without attribute info, with or without attribute value data. @param inDirNodeReference Directory node reference obtained from dsOpenDirNode. @param inOutDataBuffer A client-allocated buffer to hold the data results. @param inRecordNameList A tDataList of Record names to be matched. @param inPatternMatchType How is the pattern matched for the inRecordNameList. @param inRecordTypeList What record types do we want returned? @param inAttributeTypeList What type of attributes do we want for each record. @param inAttributeInfoOnly Do we want attribute information only, or do we also want attribute values. @param inOutRecordEntryCount How many record entries are there in the client buffer. However, also a limit of the maximum records returned as provided by the client. If zero or less, then assuming no limit on number of records to be returned. @param inOutContinueData Pointer to a tContextData variable. If (*inOutCountinueData == 0) there is no more data. Otherwise can be used in the next call to the same routine to get the remainder of the information. If client does not use and continue data is non-NULL then dsReleaseContinueData should be called to clean up. C function: dsGetRecordList

func DsGetRecordNameFromEntry

func DsGetRecordNameFromEntry(inRecEntryPtr *TRecordEntry, outRecName string) TDirStatus

@function dsGetRecordNameFromEntry @param outRecName Used to return the record name to the client. Client is responsible for freeing the resulting string. C function: dsGetRecordNameFromEntry

func DsGetRecordReferenceInfo

func DsGetRecordReferenceInfo(inRecordReference uint, outRecordInfo **TRecordEntry) TDirStatus

@function dsGetRecordReferenceInfo C function: dsGetRecordReferenceInfo

func DsGetRecordTypeFromEntry

func DsGetRecordTypeFromEntry(inRecEntryPtr *TRecordEntry, outRecType string) TDirStatus

@function dsGetRecordTypeFromEntry @param outRecType Used to return the record name to the client. Client is responsible for freeing the resulting string. C function: dsGetRecordTypeFromEntry

func DsIsDirServiceLocalRunning

func DsIsDirServiceLocalRunning() TDirStatus

@function dsIsDirServiceLocalRunning C function: dsIsDirServiceLocalRunning

func DsIsDirServiceRunning

func DsIsDirServiceRunning() TDirStatus

@function dsIsDirServiceRunning C function: dsIsDirServiceRunning

func DsOpenDirNode

func DsOpenDirNode(inDirReference uint, inDirNodeName *TDataList, outDirNodeReference *uint) TDirStatus

@function dsOpenDirNode @discussion Establish a session for a particular directory node. @param inDirReference Directory reference established with dsOpenDirService. @param inDirNodeName Directory node name to open. Should be split into path components, for example as a result of dsBuildListFromPath @param outDirNodeReference Valid call with eDSNoErr, results in a directory node session reference. This reference represents the client's session context for the contents of the given directory node. C function: dsOpenDirNode

func DsOpenDirService

func DsOpenDirService(outDirReference *uint) TDirStatus

@function dsOpenDirService @discussion Opens Directory Services API reference. Must be called before any other Directory Services API calls because this reference is needed for any other call. @param outDirReference reference to use in subsequent Directory Services API calls C function: dsOpenDirService

func DsOpenDirServiceLocal

func DsOpenDirServiceLocal(outDirRef *uint, inFilePath string) TDirStatus

@function dsOpenDirServiceLocal @discussion Opens Directory Services API reference to Local Access only daemon. Must be called before any other Directory Services API calls because this reference is needed for any other call. @param outDirRef reference to use in subsequent Directory Services API calls @param inFilePath unix file path for a ds local node database [if either NULL or "Default" input then the default node is used] C function: dsOpenDirServiceLocal

func DsOpenDirServiceProxy

func DsOpenDirServiceProxy(outDirRef *uint, inHostOrIPAddress string, inIPPort uint, inAuthMethod *TDataBuffer, inAuthStepData *TDataBuffer, outAuthStepDataResponse *TDataBuffer, ioContinueData *uint) TDirStatus

C function: dsOpenDirServiceProxy

func DsOpenRecord

func DsOpenRecord(inDirNodeReference uint, inRecordType *TDataBuffer, inRecordName *TDataBuffer, outRecordReference *uint) TDirStatus

@function dsOpenRecord C function: dsOpenRecord

func DsParseAuthAuthority

func DsParseAuthAuthority(inAuthAuthority string, outVersion string, outAuthTag string, outAuthData string) TDirStatus

@function dsParseAuthAuthority Pass in a complete authentication authority attribute format is version;tag;data retrieve version, tag, and data as separate strings Memory for the char** parameters is the responsibility of the client and can be cleaned up using free(). C function: dsParseAuthAuthority

func DsReleaseContinueData

func DsReleaseContinueData(inDirReference uint, inContinueData uint) TDirStatus

@function dsReleaseContinueData @discussion If continue data from dsGetDirNodeList or any other Directory Services function is non-NULL, then call this routine to release the continue data if the client chooses not to continue the directory node listing or other operation. @param inDirReference Directory reference established with dsOpenDirService if inContinueData was returned by dsGetDirNodeList or dsFindDirNodes, node reference (type tDirNodeReference) established with dsOpenDirNode if inContinueData was returned by a node specific API such as dsGetRecordList, dsDoAttributeValueSearch, dsDoAttributeValueSearchWithData, dsDoMultipleAttributeValueSearch, dsDoMultipleAttributeValueSearchWithData, dsGetDirNodeInfo, dsDoDirNodeAuth, or dsDoDirNodeAuthOnRecordType. @param inContinueData Pointer to a tContextData variable which will be cleaned up by Directory Services C function: dsReleaseContinueData

func DsRemoveAttribute

func DsRemoveAttribute(inRecordReference uint, inAttribute *TDataBuffer) TDirStatus

@function dsRemoveAttribute C function: dsRemoveAttribute

func DsRemoveAttributeValue

func DsRemoveAttributeValue(inRecordReference uint, inAttributeType *TDataBuffer, inAttributeValueID uint) TDirStatus

@function dsRemoveAttributeValue C function: dsRemoveAttributeValue

func DsServiceInformationAllocate

func DsServiceInformationAllocate(inServiceInfo unsafe.Pointer, inBufferSize uint, outPackedServiceInfo **TDataBuffer) TDirStatus

C function: dsServiceInformationAllocate

func DsSetAttributeValue

func DsSetAttributeValue(inRecordReference uint, inAttributeType *TDataBuffer, inAttributeValuePtr *TAttributeValueEntry) TDirStatus

@function dsSetAttributeValue C function: dsSetAttributeValue

func DsSetAttributeValues

func DsSetAttributeValues(inRecordReference uint, inAttributeType *TDataBuffer, inAttributeValuesPtr *TDataList) TDirStatus

@function dsSetAttributeValues @discussion sets an attribute to have the given list of values @param inRecordReference the record reference of the record to modify @param inAttributeType the attribute type to set values for @param inAttributeValuesPtr the list of all values for the attribute C function: dsSetAttributeValues

func DsSetRecordName

func DsSetRecordName(inRecordReference uint, inNewRecordName *TDataBuffer) TDirStatus

@function dsSetRecordName C function: dsSetRecordName

func DsSetRecordType

func DsSetRecordType(inRecordReference uint, inNewRecordType *TDataBuffer) TDirStatus

@function dsSetRecordType C function: dsSetRecordType

func DsVerifyDirRefNum

func DsVerifyDirRefNum(inDirReference uint) TDirStatus

@function dsVerifyDirRefNum @discussion Verify an existing tDirReference. C function: dsVerifyDirRefNum

func (TDirStatus) String

func (e TDirStatus) String() string

type TRecordEntry

type TRecordEntry struct {
	FReserved1            uint
	FReserved2            TAccessControlEntry
	FRecordAttributeCount uint
	FRecordNameAndType    TDataBuffer
}

C struct: tRecordEntry

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL