package schema // registerObjectClasses registers all 45 GoSec LDAP objectClass definitions. func (r *Registry) registerObjectClasses() { // ── AUXILIARY user objectClasses (21) ──────────────────────── r.addObjectClass("gscTenantUser", "AUXILIARY", []string{"gscTenantId"}, []string{"gscTenantName", "gscTenantDomain", "gscTenantStatus", "gscUserTenantHash", "gscUserTenantHashSalt", "gscUserTenantHashVersion", "gscUserTenantHashCreatedAt", "gscUserTenantHashVerifiedAt", "gscCustomerId", "gscSID", "gscSIDCustomerPart", "gscSIDTenantPart", "gscSIDSpecial1", "gscSIDSpecial2", "gscSIDUserPart", "gscCreatedAt", "gscModifiedAt", "gscCreatedBy", "gscModifiedBy"}, "tenant") r.addObjectClass("gscMailUser", "AUXILIARY", []string{"gscMailEnabled"}, []string{"gscMailQuota", "gscMailAlias", "gscMailForward", "gscMailAutoReply", "gscMailAutoReplyMessage", "gscMailTransport", "gscMailDomain"}, "mail") r.addObjectClass("gscConfUser", "AUXILIARY", []string{"gscConfEnabled"}, []string{"gscConfRole", "gscConfMaxParticipants", "gscConfRecordingEnabled", "gscConfDefaultRoom"}, "conf") r.addObjectClass("gscFtpUser", "AUXILIARY", []string{"gscFtpEnabled"}, []string{"gscFtpQuota", "gscFtpHomeDir", "gscFtpUploadBandwidth", "gscFtpDownloadBandwidth", "gscFtpAllowedIPs"}, "ftp") r.addObjectClass("gscFileUser", "AUXILIARY", []string{"gscFileEnabled"}, []string{"gscFileQuota", "gscFileHomeDir", "gscFileVersioning", "gscFileMaxFileSize"}, "file") r.addObjectClass("gscShareUser", "AUXILIARY", []string{"gscShareEnabled"}, []string{"gscShareExternalEnabled", "gscShareMaxRecipients", "gscShareDefaultExpiry", "gscSharePasswordRequired"}, "sharing") r.addObjectClass("gscCalUser", "AUXILIARY", []string{"gscCalEnabled"}, []string{"gscCalDefaultCalendar", "gscCalTimezone", "gscCalFreeBusyPublic", "gscCalDelegates"}, "calendar") r.addObjectClass("gscTelUser", "AUXILIARY", []string{"gscTelEnabled"}, []string{"gscTelExtension", "gscTelDID", "gscTelVoicemailEnabled", "gscTelVoicemailPin", "gscTelCallForward", "gscTelCallGroup", "gscTelRecordCalls"}, "telephony") r.addObjectClass("gscContactsUser", "AUXILIARY", []string{"gscContactsEnabled"}, []string{"gscContactsShared", "gscContactsMaxContacts", "gscContactsExportEnabled"}, "contacts") r.addObjectClass("gscAIUser", "AUXILIARY", []string{"gscAIEnabled"}, []string{"gscAIModel", "gscAIMaxTokens", "gscAIFeatures", "gscAIUsageQuota"}, "ai") r.addObjectClass("gscDlpUser", "AUXILIARY", []string{"gscDlpEnabled"}, []string{"gscDlpPolicyDN", "gscDlpExempt"}, "dlp") r.addObjectClass("gscSensitivityUser", "AUXILIARY", []string{"gscSensitivityEnabled"}, []string{"gscSensitivityDefaultLabel"}, "sensitivity") r.addObjectClass("gscEncryptionUser", "AUXILIARY", []string{"gscEncryptionEnabled"}, []string{"gscEncryptionKeyDN"}, "encryption") r.addObjectClass("gscRetentionUser", "AUXILIARY", []string{"gscRetentionEnabled"}, []string{"gscRetentionPolicyDN"}, "retention") r.addObjectClass("gscEDiscoveryUser", "AUXILIARY", []string{"gscEDiscoveryEnabled"}, []string{"gscEDiscoveryCustodian"}, "ediscovery") r.addObjectClass("gscAdvancedAuditUser", "AUXILIARY", []string{"gscAuditEnabled"}, []string{"gscAuditLevel"}, "audit") r.addObjectClass("gscIAMUser", "AUXILIARY", []string{"gscIAMEnabled"}, []string{"gscIAMMFARequired", "gscIAMMFAMethod", "gscIAMPasswordPolicy", "gscIAMSessionTimeout", "gscIAMMaxSessions", "gscIAMIPRestrictions", "gscIAMRiskLevel"}, "iam") r.addObjectClass("gscCollaborationUser", "AUXILIARY", []string{"gscCollabEnabled"}, []string{"gscCollabTeamsEnabled", "gscCollabChannelsEnabled", "gscCollabExternalEnabled"}, "collaboration") r.addObjectClass("gscBarrierUser", "AUXILIARY", []string{"gscBarrierEnabled"}, []string{"gscBarrierSegmentDN"}, "barriers") r.addObjectClass("gscGuestUser", "AUXILIARY", []string{"gscGuestEnabled"}, []string{"gscGuestType", "gscGuestOrganization", "gscGuestExternalEmail", "gscGuestVerified", "gscGuestFederatedIdpDN", "gscGuestFederatedId", "gscGuestAccessScope", "gscGuestPermissionLevel", "gscGuestResourceDN", "gscGuestInvitedBy", "gscGuestInvitedAt", "gscGuestExpiresAt", "gscGuestLastAccessAt", "gscGuestAccessCount"}, "guest") r.addObjectClass("gscKmsUser", "AUXILIARY", []string{"gscKmsEnabled"}, []string{"gscKmsRole", "gscKmsKeyAccess", "gscKmsMaxKeys", "gscKmsAllowedAlgorithms", "gscKmsAllowedOperations", "gscKmsApprovalRequired", "gscKmsAuditEnabled", "gscKmsLastKeyAccess", "gscKmsKeyCount", "gscKmsPolicyDN", "gscKmsHsmAccess"}, "kms-user") // ── STRUCTURAL entity objectClasses (18) ──────────────────── r.addObjectClass("gscTenant", "STRUCTURAL", []string{"gscTenantId", "gscTenantName"}, []string{"gscTenantDomain", "gscTenantStatus", "gscTenantQuota", "gscTenantMaxUsers", "gscTenantCreatedAt", "gscTenantServices", "gscTenantAdminDN", "gscTenantParentDN", "gscDescription", "gscEnabled", "gscNotes", "gscCreatedAt", "gscModifiedAt", "gscCreatedBy", "gscModifiedBy"}, "tenant") r.addObjectClass("gscResource", "STRUCTURAL", []string{"gscResourceId", "gscResourceName", "gscResourceType"}, []string{"gscResourceEmail", "gscResourceCapacity", "gscResourceLocation", "gscResourceBookable", "gscResourceApprovalRequired", "gscResourceOwnerDN", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "resource") r.addObjectClass("gscDlpPolicy", "STRUCTURAL", []string{"gscDlpPolicyName"}, []string{"gscDlpPolicyType", "gscDlpPolicyRules", "gscDlpPolicyAction", "gscDlpPolicyPriority", "gscDlpPolicyScope", "gscDlpPolicyStatus", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "dlp") r.addObjectClass("gscSensitivityLabel", "STRUCTURAL", []string{"gscSensitivityLabelName"}, []string{"gscSensitivityLabelPriority", "gscSensitivityLabelColor", "gscSensitivityLabelTooltip", "gscSensitivityLabelScope", "gscSensitivityEncryptionRequired", "gscSensitivityWatermark", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "sensitivity") r.addObjectClass("gscEncryptionPolicy", "STRUCTURAL", []string{"gscEncryptionPolicyName"}, []string{"gscEncryptionPolicyType", "gscEncryptionAlgorithm", "gscEncryptionKeyLength", "gscEncryptionScope", "gscEncryptionPolicyStatus", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "encryption") r.addObjectClass("gscRetentionPolicy", "STRUCTURAL", []string{"gscRetentionPolicyName"}, []string{"gscRetentionPolicyType", "gscRetentionDuration", "gscRetentionAction", "gscRetentionScope", "gscRetentionPolicyStatus", "gscRetentionExcludeFolders", "gscRetentionLegalHold", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "retention") r.addObjectClass("gscEDiscoveryCase", "STRUCTURAL", []string{"gscEDiscoveryCaseName"}, []string{"gscEDiscoveryCaseStatus", "gscEDiscoveryCaseCreatedAt", "gscEDiscoveryCaseClosedAt", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "ediscovery") r.addObjectClass("gscEDiscoveryHold", "STRUCTURAL", []string{"gscEDiscoveryHoldName"}, []string{"gscEDiscoveryHoldScope", "gscEDiscoveryHoldStatus", "gscEDiscoveryHoldCreatedAt", "gscEDiscoverySearchQuery", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "ediscovery") r.addObjectClass("gscAuditPolicy", "STRUCTURAL", []string{"gscAuditPolicyName"}, []string{"gscAuditPolicyScope", "gscAuditPolicyActions", "gscAuditPolicyStatus", "gscAuditRetentionDays", "gscAuditAlertEnabled", "gscAuditAlertRecipients", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "audit") r.addObjectClass("gscConditionalAccessPolicy", "STRUCTURAL", []string{"gscIAMCAPolicyName"}, []string{"gscIAMCAPolicyConditions", "gscIAMCAPolicyActions", "gscIAMCAPolicyStatus", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "iam") r.addObjectClass("gscCollaborationPolicy", "STRUCTURAL", []string{"gscCollabPolicyName"}, []string{"gscCollabPolicyScope", "gscCollabPolicyActions", "gscCollabPolicyStatus", "gscCollabMaxTeamSize", "gscCollabGuestAccessEnabled", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "collaboration") r.addObjectClass("gscBarrierSegment", "STRUCTURAL", []string{"gscBarrierSegmentName"}, []string{"gscBarrierSegmentMembers", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "barriers") r.addObjectClass("gscBarrierPolicy", "STRUCTURAL", []string{"gscBarrierPolicyName"}, []string{"gscBarrierPolicyType", "gscBarrierPolicySegments", "gscBarrierPolicyAction", "gscBarrierPolicyStatus", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "barriers") r.addObjectClass("gscGuestPolicy", "STRUCTURAL", []string{"gscGuestPolicyName"}, []string{"gscGuestPolicyScope", "gscGuestPolicyAction", "gscGuestPolicyStatus", "gscGuestMaxDuration", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "guest") r.addObjectClass("gscFederatedIdp", "STRUCTURAL", []string{"gscGuestIdpName"}, []string{"gscGuestIdpType", "gscGuestIdpEntityId", "gscGuestIdpMetadataURL", "gscGuestIdpDomains", "gscGuestIdpStatus", "gscDescription", "gscEnabled", "gscCreatedAt", "gscModifiedAt"}, "guest") r.addObjectClass("gscManagedKey", "STRUCTURAL", []string{"gscKeyId", "gscKeyName", "gscKeyAlgorithm"}, []string{"gscKeyLength", "gscKeyType", "gscKeyStatus", "gscKeyCreatedAt", "gscKeyExpiresAt", "gscKeyRotatedAt", "gscKeyOwnerDN", "gscKeyTenantDN", "gscKeyOperations", "gscKeyMaterial", "gscKeyPublicKey", "gscKeyFingerprint", "gscKeyVersion", "gscKeyPreviousVersionDN", "gscKeyHsmBacked", "gscKeyHsmSlot", "gscKeyAutoRotate", "gscKeyRotationDays"}, "managed-key") r.addObjectClass("gscKmsPolicy", "STRUCTURAL", []string{"gscKmsPolicyId", "gscKmsPolicyName"}, []string{"gscKmsPolicyType", "gscKmsPolicyEffect", "gscKmsPolicyPrincipalDN", "gscKmsPolicyResourceDN", "gscKmsPolicyOperations", "gscKmsPolicyConditions", "gscKmsPolicyPriority", "gscKmsPolicyStatus", "gscKmsPolicyCreatedAt", "gscKmsPolicyModifiedAt", "gscKmsPolicyTenantDN", "gscKmsPolicyMaxKeyAge", "gscKmsPolicyRequireHsm"}, "kms-policy") r.addObjectClass("gscHsmConfig", "STRUCTURAL", []string{"gscHsmConfigId", "gscHsmConfigName"}, []string{"gscHsmConfigType", "gscHsmConfigVendor", "gscHsmConfigModel", "gscHsmConfigConnectionString", "gscHsmConfigSlots", "gscHsmConfigStatus", "gscHsmConfigMaxKeys", "gscHsmConfigTenantDN"}, "hsm-config") // ── AUXILIARY object objectClasses (6) ────────────────────── r.addObjectClass("gscAuditObject", "AUXILIARY", []string{"gscAuditEnabled"}, []string{"gscAuditLevel", "gscAuditPolicyName"}, "audit") r.addObjectClass("gscMeetingRoom", "AUXILIARY", []string{"gscResourceId", "gscResourceType"}, []string{"gscResourceCapacity", "gscResourceLocation", "gscResourceBookable"}, "resource") r.addObjectClass("gscSharedMailbox", "AUXILIARY", []string{"gscMailEnabled"}, []string{"gscMailQuota", "gscMailAlias", "gscMailDomain"}, "mail") r.addObjectClass("gscEquipment", "AUXILIARY", []string{"gscResourceId", "gscResourceType"}, []string{"gscResourceName", "gscResourceLocation", "gscResourceBookable"}, "resource") r.addObjectClass("gscKmsTenant", "AUXILIARY", []string{"gscKmsTenantEnabled"}, []string{"gscKmsTenantMaxKeys", "gscKmsTenantAllowedAlgorithms", "gscKmsTenantKeyRotationDays", "gscKmsTenantHsmEnabled", "gscKmsTenantHsmPartition", "gscKmsTenantAutoRotate", "gscKmsTenantKeyCount", "gscKmsTenantQuota", "gscKmsTenantDefaultAlgorithm", "gscKmsTenantDefaultKeyLength", "gscKmsTenantPolicyDN"}, "kms-tenant") }