QS API Enumerations

From OSNEXUS Online Documentation Site
Jump to: navigation, search
typedef enum osn__flags {
    OSN_CMN_FLAG_NONE               = 0x00000000,
    OSN_CMN_FLAG_ASYNC              = 0x00000001,
    OSN_CMN_FLAG_FORCE              = 0x00000002,
    OSN_CMN_FLAG_RESCAN             = 0x00000004,
    OSN_CMN_FLAG_GENERATE_NAME      = 0x00000008,
    OSN_CMN_FLAG_SYNC_PRIMARY       = 0x00000010,
    OSN_CMN_FLAG_SYNC_SECONDARY     = 0x00000020,
    OSN_CMN_FLAG_REDIRECT           = 0x00000040,
    OSN_CMN_FLAG_SUPPRESS_ALARMS    = 0x00000080,
    OSN_CMN_FLAG_STOP_VERIFY        = 0x00000100,
    OSN_CMN_FLAG_USE_GUID_IQN       = 0x00000200,
    OSN_CMN_FLAG_EXPORT             = 0x00000400,
    OSN_CMN_FLAG_RESCUE_MODE        = 0x00000800,
    OSN_CMN_FLAG_START_REPAIR       = 0x00001000,
    OSN_CMN_FLAG_SPARES_ONLY        = 0x00002000,
    OSN_CMN_FLAG_LAZY               = 0x00004000,
    OSN_CMN_FLAG_SW_CONTROLLER      = 0x00008000,
    OSN_CMN_FLAG_WAIT_FOR_SIGNAL    = 0x00010000,
    OSN_CMN_FLAG_MINIMAL            = 0x00020000,
    OSN_CMN_FLAG_RECURSIVE          = 0x00040000,
    OSN_CMN_FLAG_FREE_UNUSED_LUNS   = 0x00080000,
    OSN_CMN_FLAG_INSECURE           = 0x00100000,
    OSN_CMN_FLAG_VASA_SUPPORT       = 0x00200000,
    OSN_CMN_FLAG_METADATA           = 0x00400000,
    OSN_CMN_FLAG_MAX                = 0x00400000
} osn__flags_t;

//--spares-only   args.hasArg("spares-only") ? flags | OSN_CMN_FLAG_SPARES_ONLY : flags

typedef enum osn__ethPortNaming
{
    OSN_CMN_ETHPORT_NAMING_NOCHANGE,
    OSN_CMN_ETHPORT_NAMING_LEGACY_ETH,
    OSN_CMN_ETHPORT_NAMING_PREDICTABLE
} osn__ethPortNaming_t;

typedef enum osn__modifyType { 
    OSN_CMN_MOD_OP_ADD = 0, 
    OSN_CMN_MOD_OP_REMOVE = 1, 
    OSN_CMN_MOD_OP_SET = 2 
} osn__modifyType_t;

typedef enum osn__nfsNamespaceModeType {
    OSN_CMN_NFS_NAMESPACE_MODE_FLAT = 0,
    OSN_CMN_NFS_NAMESPACE_MODE_GROUPED = 1,
    OSN_CMN_NFS_NAMESPACE_MODE_DISABLED = 2
} osn__nfsNamespaceModeType_t;

typedef enum osn__dfsNamespaceModeType {
    OSN_CMN_DFS_NAMESPACE_MODE_GROUPED = 0,
    OSN_CMN_DFS_NAMESPACE_MODE_FLAT = 1,
    OSN_CMN_DFS_NAMESPACE_MODE_DISABLED = 2
} osn__dfsNamespaceModeType_t;

typedef enum osn__blinkType { 
    OSN_CMN_BLINK_SECS = 0, 
    OSN_CMN_BLINK_ON = 1, 
    OSN_CMN_BLINK_OFF = 2 
} osn__blinkType_t;

typedef enum osn__alertHandlerWebhookType
{
    OSN_ALERTHANDLER_WEBHOOK_SLACK,
    OSN_ALERTHANDLER_WEBHOOK_MATTERMOST
} osn__alertHandlerWebhookType_t;

typedef enum osn__providerRegistrationScope {
    OSN_REGISTRATION_SCOPE_LOCAL = 0,
    OSN_REGISTRATION_SCOPE_CLUSTER_WIDE = 1
} osn__providerRegistrationScope_t;

typedef enum osn__blinkReason { 
    OSN_CMN_BLINKREASON_UNKNOWN            = 0x00,
    OSN_CMN_BLINKREASON_MANUAL             = 0x01,
    OSN_CMN_BLINKREASON_SPD_FAULT          = 0x02,
    OSN_CMN_BLINKREASON_PD_FAULT           = 0x04,
    OSN_CMN_BLINKREASON_HWD_FAULT          = 0x08,
    OSN_CMN_BLINKREASON_OSD_FAULT          = 0x10,
    OSN_CMN_BLINKREASON_BRICK_FAULT        = 0x20,
    OSN_CMN_BLINKREASON_OTHER              = 0x40
} osn__blinkReason_t;

typedef enum osn__tunableOption { 
    OSN_CMN_TUNABLE_NONE = 0x00,
    OSN_CMN_TUNABLE_RESET_TO_DEFAULTS = 0x01,
} osn__tunableOption_t;

typedef enum osn__tunableDataType { 
    OSN_CMN_TUNABLE_RANGE = 0x00,
    OSN_CMN_TUNABLE_PERCENTAGE = 0x01,
    OSN_CMN_TUNABLE_BOOLEAN = 0x02,
} osn__tunableDataType_t;

typedef enum osn__diskStateDetail { 
    OSN_CMN_DISKSTATEDETAIL_UNKNOWN            = 0x00,
    OSN_CMN_DISKSTATEDETAIL_SPD_FAULT          = 0x01,
    OSN_CMN_DISKSTATEDETAIL_TEMPERATURE        = 0x02,
    OSN_CMN_DISKSTATEDETAIL_HEALTH             = 0x04,
    OSN_CMN_DISKSTATEDETAIL_PREDICTIVE_FAILURE = 0x08,
    OSN_CMN_DISKSTATEDETAIL_MEDIA_ERROR_COUNT  = 0x10,
    OSN_CMN_DISKSTATEDETAIL_OTHER              = 0x20
} osn__diskStateDetail_t;

typedef enum osn__lunAssignmentPolicy { 
    OSN_CMN_LUN_ASSIGN_DYNAMIC = 0, 
    OSN_CMN_LUN_ASSIGN_STATIC = 1 
} osn__lunAssignmentPolicy_t;

typedef enum osn__nfsServiceMode { 
    OSN_CMN_NFS_MODE_V3 = 0, 
    OSN_CMN_NFS_MODE_V4 = 1, 
    OSN_CMN_NFS_MODE_GLUSTER = 2 
} osn__nfsServiceMode_t;

typedef enum osn__nfsKerberosMode { 
    OSN_CMN_NFS_KRB5I = 0, 
    OSN_CMN_NFS_KRB5P = 1, 
    OSN_CMN_NFS_KRB5 = 2 
} osn__nfsKerberosMode_t;

typedef enum osn__networkShareSessionType {
    OSN_CMN_SHARE_SESSION_SMB = 0,
    OSN_CMN_SHARE_SESSION_NFS = 1
} osn__networkShareSessionType_t;

typedef enum osn__dataShredMode {
    OSN_CMN_DATA_SHRED_MODE_DONT_SHRED = 0, //does not scrub the datas
    OSN_CMN_DATA_SHRED_MODE_USARMY = 1, //usarmy is the US Army AR380-19 
    OSN_CMN_DATA_SHRED_MODE_DOD = 2, //dod selects patterns compliant with DoD 5220.22-M
    OSN_CMN_DATA_SHRED_MODE_NNSA = 3, //nnsa selects patterns compliant with NNSA Policy Letter NAP-14.1-C
    OSN_CMN_DATA_SHRED_MODE_RANDOM = 4, //single pass of random data
    OSN_CMN_DATA_SHRED_MODE_ZEROS = 5 //single pass of zeros
} osn__dataShredMode_t;

typedef enum osn__haClientConnectivityPolicy { 
    OSN_CMN_HA_CLIENT_FAILOVER_DISABLED = 0, 
    OSN_CMN_HA_CLIENT_FAILOVER_IF_NO_MAJORITY = 1, 
    OSN_CMN_HA_CLIENT_FAILOVER_IF_NO_RESPONSE = 2, 
    OSN_CMN_HA_CLIENT_FAILOVER_MAX = 3
} osn__haClientConnectivityPolicy_t;

typedef enum osn__securityWebAccessMode {
    OSN_CMN_WEBACCESSMODE_HTTP_ENABLED = 0,
    OSN_CMN_WEBACCESSMODE_HTTP_DISABLED = 1,
    OSN_CMN_WEBACCESSMODE_HTTP_REDIRECTED = 2
} osn__securityWebAccessMode_t;

typedef enum osn__multiFactorAuthProvider {
    OSN_CMN_MFA_PROVIDER_NONE = 0,
    OSN_CMN_MFA_PROVIDER_DUO = 1,
    OSN_CMN_MFA_PROVIDER_GOOGLE = 2
} osn__multiFactorAuthProvider_t;

typedef enum osn__multiFactorAuthMode {
    OSN_CMN_MFA_MODE_NONE = 0,
    OSN_CMN_MFA_MODE_PUSH = 1,
    OSN_CMN_MFA_MODE_SMS = 2,
    OSN_CMN_MFA_MODE_PHONE = 3,
    OSN_CMN_MFA_MODE_TOKEN = 4,
    OSN_CMN_MFA_MODE_PROMPT = 5,
    OSN_CMN_MFA_MODE_MAX = 6
} osn__multiFactorAuthMode_t;

typedef enum osn__multiFactorAuthStatus {
    OSN_CMN_MFA_STATUS_NONE = 0,
    OSN_CMN_MFA_STATUS_PENDING = 1,
    OSN_CMN_MFA_STATUS_RUNNING = 2,
    OSN_CMN_MFA_STATUS_SUCCESS = 3,
    OSN_CMN_MFA_STATUS_FAIL = 4,
    OSN_CMN_MFA_STATUS_DENY = 5,
    OSN_CMN_MFA_STATUS_ERR = 6,
    OSN_CMN_MFA_STATUS_ENROLL = 7,
    OSN_CMN_MFA_STATUS_SENT = 8
} osn__multiFactorAuthStatus_t;

typedef enum osn__haLinkStateFailoverPolicy { 
    OSN_CMN_HA_LINKSTATE_FAILOVER_IF_ALL_LINKDOWN = 0, 
    OSN_CMN_HA_LINKSTATE_FAILOVER_IF_MAJORITY_LINKDOWN = 1, 
    OSN_CMN_HA_LINKSTATE_FAILOVER_IF_ANY_LINKDOWN = 2, 
    OSN_CMN_HA_LINKSTATE_FAILOVER_IGNORE_LINKDOWN = 3,
    OSN_CMN_HA_LINKSTATE_FAILOVER_FAILOVER_MAX = 4
} osn__haLinkStateFailoverPolicy_t;

typedef enum osn__sambaIdmapMode {
    OSN_CMN_SAMBA_IDMAP_TDB = 0,
    OSN_CMN_SAMBA_IDMAP_RID = 1,
    OSN_CMN_SAMBA_IDMAP_AD = 2,
    OSN_CMN_SAMBA_IDMAP_AUTORID = 4,
    OSN_CMN_SAMBA_IDMAP_AD_RFC2307 = 8
} osn__sambaIdmapMode_t;

typedef enum osn__wuiTabDisable {
    OSN_CMN_WUI_TAB_DISABLE_NONE =                  0x0000,
    OSN_CMN_WUI_TAB_DISABLE_INHERIT =               0x0001,
    OSN_CMN_WUI_TAB_DISABLE_STORAGE_MGMT =          0x0002,
    OSN_CMN_WUI_TAB_DISABLE_USERS_GROUPS =          0x0004,
    OSN_CMN_WUI_TAB_DISABLE_REMOTE_REPLICATION =    0x0008,
    OSN_CMN_WUI_TAB_DISABLE_CLOUD_CONTAINERS =      0x0010,
    OSN_CMN_WUI_TAB_DISABLE_CLUSTER_MGMT =          0x0020,
    OSN_CMN_WUI_TAB_DISABLE_SCALE_OUT_NAS_MGMT =    0x0040,
    OSN_CMN_WUI_TAB_DISABLE_SCALE_OUT_OBJ_MGMT =    0x0080,
    OSN_CMN_WUI_TAB_DISABLE_MULTITENANCY =          0x0100,
    OSN_CMN_WUI_TAB_DISABLE_GRID_DASHBOARD =        0x0200,
    OSN_CMN_WUI_TAB_DISABLE_MAX                   = 0x0400
} osn__wuiTabDisable_t;

typedef enum osn__wuiSectionDisable {
    OSN_CMN_WUI_SECTION_DISABLE_NONE =                    0x0000,
    OSN_CMN_WUI_SECTION_DISABLE_INHERIT                 = 0x0001,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_PHYS_DISKS = 0x0002,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_HARDWARE   = 0x0004,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_POOLS      = 0x0008,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_SHARES     = 0x0010,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_VOLUMES    = 0x0020,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_SNAP_SCHED = 0x0040,
    OSN_CMN_WUI_SECTION_DISABLE_STORAGE_MGMT_HOSTS      = 0x0080,
    OSN_CMN_WUI_SECTION_DISABLE_MAX                     = 0x0100
} osn__wuiSectionDisable_t;

typedef enum osn__poolEnclosureRedundancy {
    OSN_CMN_POOL_ENCLOSURE_REDUNDANCY_UNKNOWN,
    OSN_CMN_POOL_ENCLOSURE_REDUNDANCY_VERIFIED,
    OSN_CMN_POOL_ENCLOSURE_NOT_REDUNDANT,
    OSN_CMN_POOL_ENCLOSURE_REDUNDANCY_NA,
    OSN_CMN_POOL_ENCLOSURE_REDUNDANCY_PARTIAL
} osn__poolEnclosureRedundancy_t;

typedef enum osn__accessType { OSN_CMN_ACCESSTYPE_READWRITE, OSN_CMN_ACCESSTYPE_READONLY, OSN_CMN_ACCESSTYPE_NONE } osn__accessType_t;

typedef enum osn__configAnalysisReportCategory
{
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_ALL                = 0x0000,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_NETWORKING         = 0x0001,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_HIGH_AVAILABILITY  = 0x0004,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_REMOTE_REPLICATION = 0x0008,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_CEPH               = 0x0010,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_ZFS                = 0x0020,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_GLUSTER            = 0x0040,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_HA_CLUSTER_CONFIG  = 0x0080,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_STORAGE_GRID       = 0x0100,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_SECURITY           = 0x0200,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_GENERAL            = 0x0400,
    OSN_CMN_CONFIG_ANALYSIS_CATEGORY_MAX                = 0x0800
} osn__configAnalysisReportCategory_t;

typedef enum osn__configAnalysisReportImpact
{
    OSN_CMN_CONFIG_ANALYSIS_IMPACT_ALL                = 0x0000,
    OSN_CMN_CONFIG_ANALYSIS_IMPACT_STABILITY          = 0x0001,
    OSN_CMN_CONFIG_ANALYSIS_IMPACT_PERFORMANCE        = 0x0002,
    OSN_CMN_CONFIG_ANALYSIS_IMPACT_SECURITY           = 0x0004,
    OSN_CMN_CONFIG_ANALYSIS_IMPACT_MAX                = 0x0008
} osn__configAnalysisReportImpact_t;

typedef enum osn__configAnalysisReportSeverity
{
    OSN_CMN_CONFIG_ANALYSIS_SEVERITY_INFORMATIONAL     = 0x0000,
    OSN_CMN_CONFIG_ANALYSIS_SEVERITY_MINOR             = 0x0001,
    OSN_CMN_CONFIG_ANALYSIS_SEVERITY_MAJOR             = 0x0002,
    OSN_CMN_CONFIG_ANALYSIS_SEVERITY_CRITICAL          = 0x0004,
    OSN_CMN_CONFIG_ANALYSIS_SEVERITY_MAX               = 0x0008
} osn__configAnalysisReportSeverity_t;


typedef enum osn__cifsUserAccessMode {
    OSN_CMN_CIFS_USER_ACCESS_NONE,
    OSN_CMN_CIFS_USER_ACCESS_VALID,
    OSN_CMN_CIFS_USER_ACCESS_ADMIN,
    OSN_CMN_CIFS_USER_ACCESS_INVALID
} osn__cifsUserAccessMode_t;

typedef enum osn__passwordComplexityReq
{
    OSN_PW_COMPLEXITY_WEAK,
    OSN_PW_COMPLEXITY_STANDARD,
    OSN_PW_COMPLEXITY_STRONG
} osn__passwordComplexityReq_t;

typedef enum osn__resourceDomainTypes
{
    OSN_RESOURCE_DOMAIN_REGION,
    OSN_RESOURCE_DOMAIN_SITE,
    OSN_RESOURCE_DOMAIN_BUILDING,
    OSN_RESOURCE_DOMAIN_RACK,
    OSN_RESOURCE_DOMAIN_SERVER,
    OSN_RESOURCE_DOMAIN_MAX

} osn__resourceDomainTypes_t;

typedef enum osn__consistencyCheck {
    OSN_CONSISTENCY_CHECK_NA,
    OSN_CONSISTENCY_CHECK_UNVERIFIED,
    OSN_CONSISTENCY_CHECK_VERIFIED,
} osn__consistencyCheck_t;

// The enums are ordered such that we can still use the bit 1 to indicate encrypted and bit 2 to indicate compression
// We have the linkType in builds before 4.3, so to maintain backward compatibility we have to keep linkType=0 as encrypted and uncompressed
// OSN_LINK_TYPE_ENCRYPT_UNCOMP = 00
// OSN_LINK_TYPE_UNENCRYPT_UNCOMP = 01
// OSN_LINK_TYPE_ENCRYPT_COMP = 10
// OSN_LINK_TYPE_UENCRYPT_COMP = 11
// This way we can use the bits to figure out each flag (encrption and compression)

typedef enum osn__storageSystemLinkType {
    OSN_LINK_TYPE_ENCRYPT_UNCOMP,
    OSN_LINK_TYPE_UNENCRYPT_UNCOMP,
    OSN_LINK_TYPE_ENCRYPT_COMP,
    OSN_LINK_TYPE_UENCRYPT_COMP
} osn__storageSystemLinkType_t;

typedef enum osn__cacheType { OSN_CMN_ACCESSTYPE_WRITETHRU, OSN_CMN_ACCESSTYPE_WRITEBACK } osn__cacheType_t;

typedef enum osn__hwCachePolicy {
    OSN_HWCACHE_UNKNOWN = 0x0,
    OSN_HWCACHE_READAHEAD = 0x1,
    OSN_HWCACHE_NOREADAHEAD = 0x2,
    OSN_HWCACHE_WRITEBACK = 0x4,
    OSN_HWCACHE_ALWAYSWRITEBACK = 0x8,
    OSN_HWCACHE_WRITETHROUGH = 0x10,
    OSN_HWCACHE_CACHED = 0x20,
    OSN_HWCACHE_DIRECT = 0x40
} osn__hwCachePolicy_t;

typedef enum osn__syncPolicy {
    OSN_CMN_SYNCTYPE_STANDARD,
    OSN_CMN_SYNCTYPE_ALWAYS,
    OSN_CMN_SYNCTYPE_DISABLED,
    OSN_CMN_SYNCTYPE_AUTO
} osn__syncPolicy_t;


typedef enum osn__networkShareFileOplock {
    OSN_CMN_FILE_OPLOCK_TYPE_NONE,
    OSN_CMN_FILE_OPLOCK_TYPE_LEVEL_II,
    OSN_CMN_FILE_OPLOCK_TYPE_LEASE,
    OSN_CMN_FILE_OPLOCK_TYPE_EXCLUSIVE,
    OSN_CMN_FILE_OPLOCK_TYPE_UNKNOWN
} osn__networkShareFileOplock_t;

typedef enum osn__networkShareFileAccess {
    OSN_CMN_FILE_ACCESS_TYPE_READONLY,
    OSN_CMN_FILE_ACCESS_TYPE_READWRITE
} osn__networkShareFileAccess_t;

typedef enum osn__chapPolicy {
    OSN_CHAP_DISABLED = 0,
    OSN_CHAP_USE_TARGET_CHAP = 1,
    OSN_CHAP_USE_USER_CHAP_DEFAULTS = 2,
    OSN_CHAP_USE_TARGET_AND_USER_CHAP = 3,
    OSN_CHAP_USE_STORAGE_CLOUD_CHAP_DEFAULTS = 4
} osn__chapPolicy_t;

typedef enum osn__cephUseCase {
    OSN_CEPH_USE_CASE_RGW,
    OSN_CEPH_USE_CASE_RGW_OPENSTACK,
} osn__cephUseCase_t;

// RuleType = 2 is not set in ceph.
typedef enum osn__cephCrushRuleType {
    OSN_CEPH_CRUSH_RULE_REPLICATED = 1,
    OSN_CEPH_CRUSH_RULE_ERASURE_CODED = 3
} osn__cephCrushRuleType_t;

typedef enum osn__cephCrushDeviceClass {
    OSN_CEPH_CRUSH_DEVICE_CLASS_HDD = 0,
    OSN_CEPH_CRUSH_DEVICE_CLASS_SSD = 1,
    OSN_CEPH_CRUSH_DEVICE_CLASS_NVME = 2

} osn__cephCrushDeviceClass_t;

typedef enum osn__cephECPlugin {

    OSN_CEPH_EC_PLUGIN_JERASURE = 0,
    OSN_CEPH_EC_PLUGIN_ISA = 1,
    OSN_CEPH_EC_PLUGIN_LRC = 2,
    OSN_CEPH_EC_PLUGIN_SHEC = 3
} osn__cephECPlugin_t;

typedef enum osn__cephECTechnique {

    OSN_CEPH_EC_TECHNIQUE_REED_SOL_VAN = 0,
    OSN_CEPH_EC_TECHNIQUE_REED_SOL_R6_OP = 1,
    OSN_CEPH_EC_TECHNIQUE_CAUCHY_ORIG = 2,
    OSN_CEPH_EC_TECHNIQUE_CAUCHY_GOOD = 3,
    OSN_CEPH_EC_TECHNIQUE_LIBERATION= 4 ,
    OSN_CEPH_EC_TECHNIQUE_BLAUM_ROTH = 5,
    OSN_CEPH_EC_TECHNIQUE_LIBER_8_TION = 6
} osn__cephECTechnique_t;

typedef enum osn__cephFailureDomain {

    OSN_CEPH_FAILURE_DOMAIN_OSD = 0,
    OSN_CEPH_FAILURE_DOMAIN_HOST = 1,
    OSN_CEPH_FAILURE_DOMAIN_RACK = 2,
    OSN_CEPH_FAILURE_DOMAIN_CHASSIS = 3,
    OSN_CEPH_FAILURE_DOMAIN_DATACENTER = 4
} osn__cephFailureDomain_t;



typedef enum osn__quotaPolicy { 
    OSN_CMN_QUOTA_POLICY_SOFT, 
    OSN_CMN_QUOTA_POLICY_HARD 
} osn__quotaPolicy_t;

typedef enum osn__initiatorType { 
    OSN_CMN_INITIATOR_ISCSI = 0, 
    OSN_CMN_INITIATOR_FCP = 1, 
    OSN_CMN_INITIATOR_IB = 2 
} osn__initiatorType_t;

typedef enum osn__linkState { 
    OSN_CMN_LINKSTATE_UP, 
    OSN_CMN_LINKSTATE_DOWN, 
    OSN_CMN_LINKSTATE_UNKNOWN 
} osn__linkState_t;

typedef enum osn__iscsiConnectionState {
    OSN_CMN_ISCSI_CONNECTION_STATE_UNKNOWN,
    OSN_CMN_ISCSI_CONNECTION_STATE_FREE,
    OSN_CMN_ISCSI_CONNECTION_STATE_TRANSPORT_WAIT,
    OSN_CMN_ISCSI_CONNECTION_STATE_IN_LOGIN,
    OSN_CMN_ISCSI_CONNECTION_STATE_LOGGED_IN,
    OSN_CMN_ISCSI_CONNECTION_STATE_IN_LOGOUT,
    OSN_CMN_ISCSI_CONNECTION_STATE_LOGOUT_REQUESTED,
    OSN_CMN_ISCSI_CONNECTION_STATE_CLEANUP_WAIT,
    OSN_CMN_ISCSI_CONNECTION_STATE_MAX
} osn__iscsiConnectionState_t;

typedef enum osn__iscsiSessionState {
    OSN_CMN_ISCSI_SESSION_STATE_UNKNOWN,
    OSN_CMN_ISCSI_SESSION_STATE_NO_CHANGE,
    OSN_CMN_ISCSI_SESSION_STATE_CLEANUP,
    OSN_CMN_ISCSI_SESSION_STATE_REOPEN,
    OSN_CMN_ISCSI_SESSION_STATE_REDIRECT,
    OSN_CMN_ISCSI_SESSION_STATE_MAX
} osn__iscsiSessionState_t;

typedef enum osn__userAccountType { 
    OSN_CMN_USER_ACCOUNT_STANDARD, 
    OSN_CMN_USER_ACCOUNT_EMERGENCY, 
    OSN_CMN_USER_ACCOUNT_TEMPORARY 
} osn__userAccountType_t;

typedef enum osn__objectState {
    OSN_CMN_OBJSTATE_NORMAL,
    OSN_CMN_OBJSTATE_WARNING,
    OSN_CMN_OBJSTATE_BUSY,
    OSN_CMN_OBJSTATE_ERROR,
    OSN_CMN_OBJSTATE_INITIALIZING,
    OSN_CMN_OBJSTATE_MISSING,
    OSN_CMN_OBJSTATE_OFFLINE,
    OSN_CMN_OBJSTATE_DISCONNECTED,
    OSN_CMN_OBJSTATE_PAUSED
} osn__objectState_t;

typedef enum osn__licenseState {
    OSN_CMN_LICSTATE_NORMAL,
    OSN_CMN_LICSTATE_WARNING,
    OSN_CMN_LICSTATE_BUSY,
    OSN_CMN_LICSTATE_ERROR,
    OSN_CMN_LICSTATE_INITALIZING,
    OSN_CMN_LICSTATE_MISSING,
    OSN_CMN_LICSTATE_OFFLINE,
    OSN_CMN_LICSTATE_RETIRED
} osn__licenseState_t;

typedef enum osn__dataType { OSN_CMN_DATATYPE_STRING, OSN_CMN_DATATYPE_INT, OSN_CMN_DATATYPE_TIME, OSN_CMN_DATATYPE_FLOAT, OSN_CMN_DATATYPE_MAX } osn__dataType_t;

typedef enum osn__eventType { OSN_CMN_EVENTTYPE_ADD, OSN_CMN_EVENTTYPE_REMOVE, OSN_CMN_EVENTTYPE_MODIFY } osn__eventType_t;

typedef enum osn__eventListenerType {
    OSN_CMN_LISTENERTYPE_OBSERVER = 0,
    OSN_CMN_LISTENERTYPE_SECONDARY = 1,
    OSN_CMN_LISTENERTYPE_PRIMARY = 2
} osn__eventListenerType_t;

typedef enum osn__eventListenerMode {
    OSN_CMN_LISTENERMODE_ENQUEUE = 0,
    OSN_CMN_LISTENERMODE_PROCESS = 1,
    OSN_CMN_LISTENERMODE_FLUSH = 2
} osn__eventListenerMode_t;

typedef enum osn__replicaAssocType { OSN_CMN_REPLICA_CHILD, OSN_CMN_REPLICA_HEAD } osn__replicaAssocType_t;

typedef enum osn__replicationActionType {
    OSN_CMN_REPLICATION_SETUP,
    OSN_CMN_REPLICATION_CONNECT,
    OSN_CMN_REPLICATION_DISCONNECT,
    OSN_CMN_REPLICATION_RECONNECT,
    OSN_CMN_REPLICATION_ADJUST
} osn__replicationActionType_t;

typedef enum osn__replicationCongestionPolicy {
    OSN_CMN_REPLICATION_CONGESTION_POLICY_SYNC,
    OSN_CMN_REPLICATION_CONGESTION_POLICY_PULL_AHEAD
} osn__replicationCongestionPolicy_t;

typedef enum osn__initPriorityType {
    OSN_INITPRIORITY_DEFAULT,
    OSN_INITPRIORITY_LOW,
    OSN_INITPRIORITY_MEDIUM,
    OSN_INITPRIORITY_HIGH
} osn__initPriorityType_t;


//
// NOTE: NOTE: NOTE: New object types should always be added towards the end of the *enum only*, just before the 
// "OSN_CMN_OBJECTTYPE_MAX". Adding a new type in-between is a big *no-no*.
//

typedef enum osn__objectType {
    OSN_CMN_OBJECTTYPE_UNKNOWN,
    OSN_CMN_OBJECTTYPE_SNAPSHOT_SCHEDULE,
    OSN_CMN_OBJECTTYPE_SNAPSHOT_SCHEDULE_ASSOC,
    OSN_CMN_OBJECTTYPE_STORAGE_VOLUME,
    OSN_CMN_OBJECTTYPE_STORAGE_VOLUME_UTILIZATION,
    OSN_CMN_OBJECTTYPE_STORAGE_VOLUME_GROUP,
    OSN_CMN_OBJECTTYPE_STORAGE_VOLUME_GROUP_ASSOC,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_DEVICE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM,
    OSN_CMN_OBJECTTYPE_STORAGE_VOLUME_ACL,
    OSN_CMN_OBJECTTYPE_HOST,
    OSN_CMN_OBJECTTYPE_HOST_GROUP,
    OSN_CMN_OBJECTTYPE_INITIATOR_PORT,
    OSN_CMN_OBJECTTYPE_TARGET_PORT,
    OSN_CMN_OBJECTTYPE_PHYSICAL_DISK,
    OSN_CMN_OBJECTTYPE_TASK,
    OSN_CMN_OBJECTTYPE_AUDIT_ENTRY,
    OSN_CMN_OBJECTTYPE_AUDIT_SETTINGS,
    OSN_CMN_OBJECTTYPE_ALERT,
    OSN_CMN_OBJECTTYPE_ALERT_CONFIG_SETTINGS,
    OSN_CMN_OBJECTTYPE_LICENSE,
    OSN_CMN_OBJECTTYPE_LICENSE_ACTIVATION,
    OSN_CMN_OBJECTTYPE_USER,
    OSN_CMN_OBJECTTYPE_USER_PERMISSION_ASSIGNMENT,
    OSN_CMN_OBJECTTYPE_USER_GROUP,
    OSN_CMN_OBJECTTYPE_USER_GROUP_ASSOC,
    OSN_CMN_OBJECTTYPE_ROLE,
    OSN_CMN_OBJECTTYPE_ROLE_PERMISSION_ASSIGNMENT,
    OSN_CMN_OBJECTTYPE_ROLE_SUBJECT_ASSOC,
    OSN_CMN_OBJECTTYPE_PERMISSION_DEFINITION,
    OSN_CMN_OBJECTTYPE_STORAGE_CLOUD,
    OSN_CMN_OBJECTTYPE_STORAGE_CLOUD_ASSOC,
    OSN_CMN_OBJECTTYPE_STORAGE_CLOUD_SUBJECT_ASSOC,
    OSN_CMN_OBJECTTYPE_SESSION,
    OSN_CMN_OBJECTTYPE_STORAGE_TIER,
    OSN_CMN_OBJECTTYPE_STORAGE_TIER_ASSOC,
    OSN_CMN_OBJECTTYPE_STORAGE_QUOTA,
    OSN_CMN_OBJECTTYPE_STORAGE_QUOTA_ASSOC,
    OSN_CMN_OBJECTTYPE_ACL,
    OSN_CMN_OBJECTTYPE_OBJECT_PROPERTY,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_LINK,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_GROUP,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_GROUP_ASSOC,
    OSN_CMN_OBJECTTYPE_REPLICA_ASSOC,
    OSN_CMN_OBJECTTYPE_PHYSICAL_DISK_PATH_ASSOC,
    OSN_CMN_OBJECTTYPE_HW_ALARM,
    OSN_CMN_OBJECTTYPE_HW_BBU,
    OSN_CMN_OBJECTTYPE_HW_DISK,
    OSN_CMN_OBJECTTYPE_HW_UNIT,
    OSN_CMN_OBJECTTYPE_HW_ENCLOSURE,
    OSN_CMN_OBJECTTYPE_HW_CONTROLLER,
    OSN_CMN_OBJECTTYPE_HW_CONTROLLER_GROUP,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_CLIENT,
    OSN_CMN_OBJECTTYPE_REPLICATION_SCHEDULE,
    OSN_CMN_OBJECTTYPE_REPLICATION_SCHEDULE_ASSOC,
    OSN_CMN_OBJECTTYPE_HW_LOGICAL_DRIVE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_RECOVERY_POINT,
    OSN_CMN_OBJECTTYPE_CLOUD_CONTAINER,
    OSN_CMN_OBJECTTYPE_CLOUD_PROVIDER,
    OSN_CMN_OBJECTTYPE_CLOUD_PROVIDER_CREDENTIALS,
    OSN_CMN_OBJECTTYPE_CLOUD_BACKUP_SCHEDULE,
    OSN_CMN_OBJECTTYPE_CLOUD_BACKUP_SCHEDULE_ASSOC,
    OSN_CMN_OBJECTTYPE_CLOUD_PROVIDER_LOCATION,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_CLUSTER,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_CLUSTER_ASSOC,
    OSN_CMN_OBJECTTYPE_CLUSTER_FAILOVER_GROUP,
    OSN_CMN_OBJECTTYPE_FC_TARGET_PORT,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_SERVICE_CONFIG,
    OSN_CMN_OBJECTTYPE_WIDGET,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_LINK_KEY,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_PROFILE,
    OSN_CMN_OBJECTTYPE_STORAGE_QUOTA_SHARE_ASSOC,
    OSN_CMN_OBJECTTYPE_SITE_CLUSTER,
    OSN_CMN_OBJECTTYPE_SITE_CLUSTER_ASSOC,
    OSN_CMN_OBJECTTYPE_VIRTUAL_INTERFACE_ASSOC,
    OSN_CMN_OBJECTTYPE_IB_TARGET_PORT,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_CREDENTIALS,
    OSN_CMN_OBJECTTYPE_HW_SWITCH,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_ZONESET,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_ADAPTER,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_FAILOVER_GROUP,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_FAILOVER_GROUP_POOL_ASSOC,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_FAILOVER_GROUP_SYSTEM_ASSOC,
    OSN_CMN_OBJECTTYPE_HW_SWITCH_CREDENTIALS_SYSTEM_ASSOC,
    OSN_CMN_OBJECTTYPE_LIBRATO_METRICS_CONFIG,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_REPLICATION_CONFIG,
    OSN_CMN_OBJECTTYPE_GLUSTER_VOLUME,
    OSN_CMN_OBJECTTYPE_GLUSTER_BRICK,
    OSN_CMN_OBJECTTYPE_GLUSTER_PEER,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_USER_ACCESS,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_CIFS_OPTION,
    OSN_CMN_OBJECTTYPE_ALERT_TRIGGER,
    OSN_CMN_OBJECTTYPE_HW_ENCLOSURE_LAYOUT,
    OSN_CMN_OBJECTTYPE_HW_UNIT_DISK_ASSOC,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_HA_FAILOVER_GROUP,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_HA_FAILOVER_INTERFACE,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_HA_FAILOVER_MODULE,
    OSN_CMN_OBJECTTYPE_BACKUP_POLICY,
    OSN_CMN_OBJECTTYPE_BACKUP_JOB,
    OSN_CMN_OBJECTTYPE_GLUSTER_HA_FAILOVER_INTERFACE,
    OSN_CMN_OBJECTTYPE_CEPH_POOL,
    OSN_CMN_OBJECTTYPE_CEPH_OSD,
    OSN_CMN_OBJECTTYPE_CEPH_POOL_OSD_ASSOC,
    OSN_CMN_OBJECTTYPE_CEPH_CLUSTER,
    OSN_CMN_OBJECTTYPE_CEPH_MONITOR,
    OSN_CMN_OBJECTTYPE_CEPH_HA_FAILOVER_INTERFACE,
    OSN_CMN_OBJECTTYPE_CEPH_BLOCK_DEVICE,
    OSN_CMN_OBJECTTYPE_PHYSICAL_DISK_HOTSPARE_MARKER,
    OSN_CMN_OBJECTTYPE_SITE_VIF_RESOURCE,
    OSN_CMN_OBJECTTYPE_CLUSTER_RING,
    OSN_CMN_OBJECTTYPE_CLUSTER_RING_MEMBER,
    OSN_CMN_OBJECTTYPE_CEPH_CLUSTER_MEMBER,
    OSN_CMN_OBJECTTYPE_SW_CONTROLLER,
    OSN_CMN_OBJECTTYPE_SW_CONTROLLER_GROUP,
    OSN_CMN_OBJECTTYPE_SW_CONTROLLER_TARGET,
    OSN_CMN_OBJECTTYPE_SW_DISK_SESSION,
    OSN_CMN_OBJECTTYPE_QOS_POLICY,
    OSN_CMN_OBJECTTYPE_CEPH_PG_SET,
    OSN_CMN_OBJECTTYPE_CEPH_JOURNAL_DEVICE,
    OSN_CMN_OBJECTTYPE_RESOURCE_DOMAIN,
    OSN_CMN_OBJECTTYPE_CEPH_OBJECT_POOL_GROUP,
    OSN_CMN_OBJECTTYPE_CEPH_USER_ACCESS_ENTRY,
    OSN_CMN_OBJECTTYPE_RESOURCE_DOMAIN_ASSOC,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_NAMESPACE,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_NAMESPACE_SYSTEM_ASSOC,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_NAMESPACE_SHARE_ASSOC,
    OSN_CMN_OBJECTTYPE_CEPH_POOL_PROFILE,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_SESSION,
    OSN_CMN_OBJECTTYPE_PASSWORD_POLICY,
    OSN_CMN_OBJECTTYPE_MULTIPATH_CONFIG,
    OSN_CMN_OBJECTTYPE_REPLICA_REPORT_ENTRY,
    OSN_CMN_OBJECTTYPE_REPLICA_REPORT_SUMMARY,
    OSN_CMN_OBJECTTYPE_STORAGE_POOL_DEVICE_GROUP,
    OSN_CMN_OBJECTTYPE_NETWORK_SHARE_FILE_LOCK,
    OSN_CMN_OBJECTTYPE_MULTIFACTORAUTH_CONFIG,
    OSN_CMN_OBJECTTYPE_PROVIDER_APP,
    OSN_CMN_OBJECTTYPE_USER_APP_TOKEN,
    OSN_CMN_OBJECTTYPE_ALERT_TYPE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_HW_CONFIG,
    OSN_CMN_OBJECTTYPE_MULTIFACTORAUTH_DEVICE,
    OSN_CMN_OBJECTTYPE_CEPH_RADOS_GATEWAY,
    OSN_CMN_OBJECTTYPE_CEPH_CRUSH_RULE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_TUNABLE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_TUNABLE_PROFILE,
    OSN_CMN_OBJECTTYPE_STORAGE_SYSTEM_TUNABLE_ASSOC,
    OSN_CMN_OBJECTTYPE_MAX
} osn__objectType_t;

typedef enum osn__ipmiHealthState {
    OSN_IPMI_STATE_OK,
    OSN_IPMI_STATE_NO_SENSOR,
    OSN_IPMI_STATE_NON_CRITICAL,
    OSN_IPMI_STATE_CRITICAL,
    OSN_IPMI_STATE_NON_RECOVERABLE
} osn__ipmiHealthState_t;

typedef enum osn__cephJournalDeviceType {
    OSN_CMN_CEPH_JOURNAL_DEVICE_PARTITION = 0x0000,
    OSN_CMN_CEPH_JOURNAL_ENTIRE_DEVICE = 0x0001,
    OSN_CMN_CEPH_JOURNAL_POOL_FILE = 0x0002
} osn__cephJournalDeviceType_t;

typedef enum osn__cephJournalMode {
    OSN_CMN_CEPH_JOURNAL_MODE_UNUSED = 0x0000,
    OSN_CMN_CEPH_JOURNAL_MODE_LEGACY_JOURNAL = 0x0001,
    OSN_CMN_CEPH_JOURNAL_MODE_WAL = 0x0002,
    OSN_CMN_CEPH_JOURNAL_MODE_DB = 0x0004,
    OSN_CMN_CEPH_JOURNAL_MODE_UNKNOWN = 0xffff
} osn__cephJournalMode_t;

typedef enum osn__cephOsdWeightPolicy {
    OSN_CMN_CEPH_WEIGHT_POLICY_LEGACY = 0x0000,
    OSN_CMN_CEPH_WEIGHT_POLICY_BY_SIZE = 0x0001
} osn__cephOsdWeightPolicy_t;

typedef enum osn__cephOsdType {
    OSN_CMN_FLAG_CEPH_OSD_LEGACY_FILESTORE = 0x0000,
    OSN_CMN_FLAG_CEPH_OSD_BLUESTORE = 0x0001,
    OSN_CMN_FLAG_CEPH_OSD_AUTO_SELECT = 0x000f,
    OSN_CMN_FLAG_CEPH_OSD_UNKNOWN = 0xffff
} osn__cephOsdType_t;

typedef enum osn__cephUserAccessOpMask
{
    OSN_USER_ACCESS_OPMASK_NONE = 0x0000,
    OSN_USER_ACCESS_OPMASK_READ = 0x0001,
    OSN_USER_ACCESS_OPMASK_WRITE = 0x0002,
    OSN_USER_ACCESS_OPMASK_DELETE = 0x0004,
    OSN_USER_ACCESS_OPMASK_MAX = 0x0008
} osn__cephUserAccessOpMask_t;

//
// Enter and Exit maintenance mode enum's go in lock-step.
// For a given sub-system, all even number value denote
// enter-maintenance, and odd-number's denote exit-maintenance.
// This is done, to handle better default behavior handling.
//

typedef enum osn__enterMaintenanceModeMask
{
    OSN_MAINTENANCE_MODE_ENTER_ALL = 0x0000,
    OSN_MAINTENANCE_MODE_CEPH_ENTER = 0x0002,
    OSN_MAINTENANCE_MODE_COROSYNC_ENTER = 0x0004
} osn_enterMaintenanceModeMask_t;

typedef enum osn__scheduleTimerType
{
    OSN_SCHEDULE_TIMER_CALENDAR_BASED = 0x0000,
    OSN_SCHEDULE_TIMER_INTERVAL_BASED = 0x0001,
    OSN_SCHEDULE_TIMER_MAX = 0x0002
} osn__scheduleTimerType_t;

typedef enum osn__exitMaintenanceModeMask
{
    OSN_MAINTENANCE_MODE_CEPH_EXIT  = 0x0001,
    OSN_MAINTENANCE_MODE_COROSYNC_EXIT = 0x0003,
    OSN_MAINTENANCE_MODE_CLEAR_ALL = 0xFFFF
} osn_exitMaintenanceModeMask_t;

typedef enum osn__backupJobStage {
    OSN_CMN_BACKUP_STAGE_INITIALIZING = 0x0000,
    OSN_CMN_BACKUP_STAGE_SCANNING = 0x0001,
    OSN_CMN_BACKUP_STAGE_COPYING = 0x0002,
    OSN_CMN_BACKUP_STAGE_PURGING = 0x0003,
    OSN_CMN_BACKUP_STAGE_COMPLETED = 0x0004,
    OSN_CMN_BACKUP_STAGE_FAILED = 0x0005,
} osn__backupJobStage_t;

typedef enum osn__backupPurgePolicy {
    OSN_CMN_BACKUP_PURGE_POLICY_NEVER = 0x0000,
    OSN_CMN_BACKUP_PURGE_POLICY_AFTER_BACKUP = 0x0001,
    OSN_CMN_BACKUP_PURGE_POLICY_DAILY = 0x0002,
    OSN_CMN_BACKUP_PURGE_POLICY_WEEKLY = 0x0003,
    OSN_CMN_BACKUP_PURGE_POLICY_MAX = 0x0004
} osn__backupPurgePolicy_t;

typedef enum osn__backupPolicyType {
    OSN_CMN_BACKUP_POLICY_TYPE_COPY_INBOUND = 0x0000,
    OSN_CMN_BACKUP_POLICY_TYPE_COPY_OUTBOUND = 0x0001,
    OSN_CMN_BACKUP_POLICY_TYPE_MOVE_INBOUND = 0x0002,
    OSN_CMN_BACKUP_POLICY_TYPE_MOVE_OUTBOUND = 0x0003,
    OSN_CMN_BACKUP_POLICY_TYPE_MAX = 0x0004
} osn__backupPolicyType_t;

typedef enum osn__backupPolicyMountType {
    OSN_CMN_BACKUP_POLICY_MOUNT_NFS = 0x0000,
    OSN_CMN_BACKUP_POLICY_MOUNT_GLUSTER = 0x0001,
    OSN_CMN_BACKUP_POLICY_MOUNT_OCFS2 = 0x0002,
    OSN_CMN_BACKUP_POLICY_MOUNT_CIFS = 0x0003,
} osn__backupPolicyMountType_t;

typedef enum osn__backupPolicyRetentionCriteria {
    OSN_CMN_BACKUP_POLICY_RETENTION_ACCESS_TIME = 0x0001,
    OSN_CMN_BACKUP_POLICY_RETENTION_MODIFY_TIME = 0x0002,
    OSN_CMN_BACKUP_POLICY_RETENTION_CREATE_TIME = 0x0004,
} osn__backupPolicyRetentionCriteria_t;

typedef enum osn__replicaRetentionTag {
    OSN_CMN_REPLICATION_RETENTION_TAG_NONE      = 0x0000,
    OSN_CMN_REPLICATION_RETENTION_TAG_DELTA     = 0x0001,
    OSN_CMN_REPLICATION_RETENTION_TAG_DAILY     = 0x0002,
    OSN_CMN_REPLICATION_RETENTION_TAG_WEEKLY    = 0x0004,
    OSN_CMN_REPLICATION_RETENTION_TAG_BIWEEKLY  = 0x0008,
    OSN_CMN_REPLICATION_RETENTION_TAG_MONTHLY   = 0x0010,
    OSN_CMN_REPLICATION_RETENTION_TAG_BIMONTHLY = 0x0020,
    OSN_CMN_REPLICATION_RETENTION_TAG_QUARTERLY = 0x0040,
    OSN_CMN_REPLICATION_RETENTION_TAG_YEARLY    = 0x0080,
    OSN_CMN_REPLICATION_RETENTION_TAG_HOURLY    = 0x0100,
} osn__replicaRetentionTag_t;

typedef enum osn__alertSubscription {
    OSN_CMN_ALERT_SUBSCRIPTION_NONE = 0,
    OSN_CMN_ALERT_SUBSCRIPTION_CRITICAL = 1,
    OSN_CMN_ALERT_SUBSCRIPTION_ERROR = 2,
    OSN_CMN_ALERT_SUBSCRIPTION_WARNING = 4,
    OSN_CMN_ALERT_SUBSCRIPTION_INFO = 8
} osn__alertSubscription_t;

typedef enum osn__errorLevel {
    OSN_CMN_SEVERITY_ALWAYS = 0,
    OSN_CMN_SEVERITY_CRITICAL = 1,
    OSN_CMN_SEVERITY_ERROR = 2,
    OSN_CMN_SEVERITY_WARNING = 3,
    OSN_CMN_SEVERITY_INFO = 4,
    OSN_CMN_SEVERITY_DEBUG = 5,
    OSN_CMN_SEVERITY_VERBOSE = 6,
    OSN_CMN_SEVERITY_DEBUG2 = 7
} osn__errorLevel_t;

typedef enum osn__taskState {
    OSN_TASKSTATE_INITIALIZING,
    OSN_TASKSTATE_QUEUED,
    OSN_TASKSTATE_RUNNING,
    OSN_TASKSTATE_FAILED,
    OSN_TASKSTATE_CANCELLED,
    OSN_TASKSTATE_COMPLETED,
    OSN_TASKSTATE_WAITING,
    OSN_TASKSTATE_RECOVERED
} osn__taskState_t;

typedef enum osn__hostType {
    OSN_HOSTTYPE_UNKNOWN,
    OSN_HOSTTYPE_AIX,
    OSN_HOSTTYPE_HPUX,
    OSN_HOSTTYPE_LINUX,
    OSN_HOSTTYPE_SOLARIS,
    OSN_HOSTTYPE_VMWARE,
    OSN_HOSTTYPE_WINDOWS,
    OSN_HOSTTYPE_XENSERVER,
    OSN_HOSTTYPE_OTHER,
    OSN_HOSTTYPE_MAC,
    OSN_HOSTTYPE_MAX
} osn__hostType_t;

typedef enum osn__shareSettingsInheritance {
    OSN_SHARE_INHERITS_NONE = 0,
    OSN_SHARE_INHERITS_CIFS_ACCESS = 1,
    OSN_SHARE_INHERITS_NFS_ACCESS = 2
} osn__shareSettingsInheritance_t;

typedef enum osn__retentionTag {
    OSN_RETENTIONTAG_NONE = 0,
    OSN_RETENTIONTAG_DAY = 1,
    OSN_RETENTIONTAG_WEEK = 2,
    OSN_RETENTIONTAG_MONTH = 4,
    OSN_RETENTIONTAG_YEARLY = 8,
    OSN_RETENTIONTAG_MAX = 9
} osn__retentionTag_t;

typedef enum osn__networkShareType {
    OSN_NETWORKSHARETYPE_STANDARD,
    OSN_NETWORKSHARETYPE_SUBVOL_BTRFS,
    OSN_NETWORKSHARETYPE_CLOUD,
    OSN_NETWORKSHARETYPE_SUBVOL_ZFS,
    OSN_NETWORKSHARETYPE_GLUSTER_VOLUME,
    OSN_NETWORKSHARETYPE_ALIAS,
    OSN_NETWORKSHARETYPE_SUBSHARE
} osn__networkShareType_t;

typedef enum osn__storageVolumeType {
    OSN_STORAGEVOLUMETYPE_FILE,
    OSN_STORAGEVOLUMETYPE_FILE_BTRFS,
    OSN_STORAGEVOLUMETYPE_FILE_EXT3,
    OSN_STORAGEVOLUMETYPE_FILE_EXT4,
    OSN_STORAGEVOLUMETYPE_RAW_DEVICE,
    OSN_STORAGEVOLUMETYPE_FILE_ZFS,
    OSN_STORAGEVOLUMETYPE_FILE_XFS,
    OSN_STORAGEVOLUMETYPE_FILE_S3QL,
    OSN_STORAGEVOLUMETYPE_FILE_JFS,
    OSN_STORAGEVOLUMETYPE_CEPH_RBD
} osn__storageVolumeType_t;

typedef enum osn__hwEnclosureLayoutFlow {
    OSN_ENCLOSURELAYOUT_FLOW_T2B_L2R,
    OSN_ENCLOSURELAYOUT_FLOW_T2B_R2L,
    OSN_ENCLOSURELAYOUT_FLOW_B2T_L2R,
    OSN_ENCLOSURELAYOUT_FLOW_B2T_R2L,
    OSN_ENCLOSURELAYOUT_FLOW_R2L_T2B,
    OSN_ENCLOSURELAYOUT_FLOW_R2L_B2T,
    OSN_ENCLOSURELAYOUT_FLOW_L2R_T2B,
    OSN_ENCLOSURELAYOUT_FLOW_L2R_B2T
} osn__hwEnclosureLayoutFlow_t;

typedef enum osn__replicationState {
    OSN_CMN_REPLICATION_STATE_PREPARING,
    OSN_CMN_REPLICATION_STATE_INITIALIZING,
    OSN_CMN_REPLICATION_STATE_SYNCHRONIZING,
    OSN_CMN_REPLICATION_STATE_SYNCHRONIZED,
    OSN_CMN_REPLICATION_STATE_RESYNCHRONIZING,
    OSN_CMN_REPLICATION_STATE_PAUSED,
    OSN_CMN_REPLICATION_STATE_INIT_FAILED,
    OSN_CMN_REPLICATION_STATE_SYNC_FAILED,
    OSN_CMN_REPLICATION_STATE_RESYNC_FAILED,
    OSN_CMN_REPLICATION_STATE_SKIPPED
} osn__replicationState_t;

typedef enum osn__remoteReplicaFlags {
    OSN_CMN_REPLICA_FLAG_NONE,
    OSN_CMN_REPLICA_FLAG_SOURCE,
    OSN_CMN_REPLICA_FLAG_TARGET,
    OSN_CMN_REPLICA_FLAG_SOURCE_AND_TARGET
} osn__remoteReplicaFlags_t;

typedef enum osn__raidType {
    OSN_RAIDTYPE_RAID0 = 0,
    OSN_RAIDTYPE_RAID1 = 1,
    OSN_RAIDTYPE_RAID2 = 2,
    OSN_RAIDTYPE_RAID3 = 3,
    OSN_RAIDTYPE_RAID4 = 4,
    OSN_RAIDTYPE_RAID5 = 5,
    OSN_RAIDTYPE_RAID6 = 6,
    OSN_RAIDTYPE_RAID7 = 7,
    OSN_RAIDTYPE_RAID8 = 8,
    OSN_RAIDTYPE_RAID9 = 9,
    OSN_RAIDTYPE_RAID10 = 10,
    OSN_RAIDTYPE_RAID_AUTO = 11,
    OSN_RAIDTYPE_SINGLE = 12,
    OSN_RAIDTYPE_JBOD = 13,
    OSN_RAIDTYPE_RAID50 = 14,
    OSN_RAIDTYPE_RAID60 = 15,
    OSN_RAIDTYPE_RAID70 = 16,
    OSN_RAIDTYPE_MULTIPLE = 17,
    OSN_RAIDTYPE_MAX = 18
} osn__raidType_t;

typedef enum osn__storagePoolType {
    OSN_STORAGEPOOLTYPE_BTRFS,
    OSN_STORAGEPOOLTYPE_EXT3,
    OSN_STORAGEPOOLTYPE_EXT4,
    OSN_STORAGEPOOLTYPE_XFS,
    OSN_STORAGEPOOLTYPE_S3QL,
    OSN_STORAGEPOOLTYPE_JFS,
    OSN_STORAGEPOOLTYPE_ZFS,
    OSN_STORAGEPOOLTYPE_CEPH,
    OSN_STORAGEPOOLTYPE_SWAP,
    OSN_STORAGEPOOLTYPE_PASSTHRU,
    OSN_STORAGEPOOLTYPE_LOCAL,
    OSN_STORAGEPOOLTYPE_UNKNOWN,
    OSN_STORAGEPOOLTYPE_MAX
} osn__storagePoolType_t;

typedef enum osn__vdevType {
    OSN_VDEVTYPE_NA = 0,
    OSN_VDEVTYPE_DATA = 1,
    OSN_VDEVTYPE_LOGS = 2,
    OSN_VDEVTYPE_CACHE = 3,
    OSN_VDEVTYPE_SPARES = 4,
    OSN_VDEVTYPE_MAX = 5
} osn__vdevType_t;

typedef enum osn__storagePoolCacheType {
    OSN_STORAGEPOOLCACHETYPE_READCACHE = 1,
    OSN_STORAGEPOOLCACHETYPE_WRITELOG = 2,
} osn__storagePoolCacheType_t;

typedef enum osn__hotsparePoolRepairPolicy {
    OSN_HOTSPARE_POOL_REPAIR_POLICY_USE_ASSIGNED_AND_GLOBAL = 0,
    OSN_HOTSPARE_POOL_REPAIR_POLICY_USE_ASSIGNED_ONLY = 1,
    OSN_HOTSPARE_POOL_REPAIR_POLICY_USE_EXACTMATCH = 2,
    OSN_HOTSPARE_POOL_REPAIR_POLICY_USE_ASSIGNED_ONLY_EXACTMATCH = 3,
    OSN_HOTSPARE_POOL_REPAIR_POLICY_MANUAL_REPAIR = 4,
    OSN_HOTSPARE_POOL_REPAIR_POLICY_MAX = 5
} osn__hotsparePoolRepairPolicy_t;

typedef enum osn__hotsparePoolRepairState {
    OSN_HOTSPARE_POOL_REPAIR_STATE_HEALTHY = 0,
    OSN_HOTSPARE_POOL_REPAIR_STATE_REPAIR_NEEDED = 1,
    OSN_HOTSPARE_POOL_REPAIR_STATE_REPAIR_NEEDED_OPERATOR_APPROVAL_REQUIRED = 2,
    OSN_HOTSPARE_POOL_REPAIR_STATE_AUTO_REPAIR_IN_PROGRESS = 3,
    OSN_HOTSPARE_POOL_REPAIR_STATE_MAX = 4
} osn__hotsparePoolRepairState_t;

typedef enum osn__arpFilterStatus { 
    OSN_ARP_FILTERING_ENABLED, 
    OSN_ARP_FILTERING_DISABLED 
} osn__arpFilterStatus_t;

typedef enum osn__multipathConfigMode { 
    OSN_MULTIPATH_AUTOCONFIG_DISABLED, 
    OSN_MULTIPATH_AUTOCONFIG_ENABLED, 
    OSN_MULTIPATH_AUTOCONFIG_MAX 
} osn__multipathConfigMode_t;

typedef enum osn__logCollectionMode { 
    OSN_LOG_COLLECTION_NEVER, 
    OSN_LOG_COLLECTION_WEEKLY, 
    OSN_LOG_COLLECTION_BIWEEKLY, 
    OSN_LOG_COLLECTION_MONTHLY, 
    OSN_LOG_COLLECTION_MAX 
} osn__logCollectionMode_t;

typedef enum osn__quotaSubjectType {
    OSN_QUOTA_SUBJECT_POSIX_USER = 0,
    OSN_QUOTA_SUBJECT_POSIX_GROUP = 1,
    OSN_QUOTA_SUBJECT_AD_USER = 2,
    OSN_QUOTA_SUBJECT_AD_GROUP = 3
} osn__quotaSubjectType_t;

typedef enum osn__arpFilterMode {
    OSN_ARP_FILTER_MODE_AUTO,
    OSN_ARP_FILTER_MODE_ENABLED,
    OSN_ARP_FILTER_MODE_DISABLED,
    OSN_ARP_FILTER_MODE_MAX
} osn__arpFilterMode_t;

typedef enum osn__bondMode {
    OSN_BOND_MODE_ROUND_ROBIN   = 0x000000,
    OSN_BOND_MODE_ACTIVE_BACKUP = 0x000001,
    OSN_BOND_MODE_BALANCE_XOR   = 0x000002,
    OSN_BOND_MODE_BROADCAST     = 0x000003,
    OSN_BOND_MODE_LACP          = 0x000004,
    OSN_BOND_MODE_BALANCE_TLB   = 0x000005,
    OSN_BOND_MODE_BALANCE_TRLB  = 0x000006,
    OSN_BOND_MODE_LACP_LAYER34  = 0x010004,
    OSN_BOND_MODE_MAX           = 0x010008
} osn__bondMode_t;

typedef enum osn__permissionScope {
    OSN_SCOPE_NONE = 0,
    OSN_SCOPE_USER = 1,
    OSN_SCOPE_STORAGE_CLOUD = 2,
    OSN_SCOPE_SYSTEM = 3,
    OSN_SCOPE_GRID = 4
} osn__permissionScope_t;

typedef enum osn__resourceAccessRequestType {
    OSN_CMN_REQUEST_VIEW,
    OSN_CMN_REQUEST_UTILIZE,
    OSN_CMN_REQUEST_MODIFY
} osn__resourceRequestType_t;

// todo: needs to be refactored
typedef enum osn__resourceAccessMode {
    OSN_CMN_RESOURCEACCESS_AUTO = 0x0000,
    OSN_CMN_RESOURCEACCESS_MULTIGROUP_SHARED = 0x0001,
    OSN_CMN_RESOURCEACCESS_GROUP_EXCLUSIVE = 0x0002,
    OSN_CMN_RESOURCEACCESS_IMMUTABLE = 0x0004,
    OSN_CMN_RESOURCEACCESS_MULTIGROUP_SHARED_IMMUTABLE = 0x0005,
    OSN_CMN_RESOURCEACCESS_GROUP_EXCLUSIVE_IMMUTABLE = 0x0006,
} osn__resourceAccessMode_t;

typedef enum osn__diskCategory {
    OSN_DISKCAT_ANY = 0,
    OSN_DISKCAT_HDD = 1,
    OSN_DISKCAT_SSD = 2
} osn__diskCategory_t;

typedef enum osn__diskType {
    OSN_DISKTYPE_UNKNOWN = 0,
    OSN_DISKTYPE_IDE = 1,
    OSN_DISKTYPE_SATA = 2,
    OSN_DISKTYPE_SCSI = 3, //general SCSI devices & HW RAID cards with SCSI drives
    OSN_DISKTYPE_SSD = 4,
    OSN_DISKTYPE_SSHD = 5,
    OSN_DISKTYPE_AOE = 6,
    OSN_DISKTYPE_MULTI = 7,
    OSN_DISKTYPE_SAS = 8, //only used for HBA SCSI devices
    OSN_DISKTYPE_PMEM = 9,
    OSN_DISKTYPE_NVME = 10,
} osn__diskType_t;

typedef enum osn__correlationDiskType {
    OSN_CORRELATIONDISKTYPE_UNKNOWN = 0,
    OSN_CORRELATIONDISKTYPE_HWUNIT = 1,
    OSN_CORRELATIONDISKTYPE_HWDISK = 2,
} osn__correlationDiskType_t;

typedef enum osn__licenseEdition {
    OSN_LICENSE_EDITION_FREE,
    OSN_LICENSE_EDITION_TRIAL,
    OSN_LICENSE_EDITION_STANDARD,
    OSN_LICENSE_EDITION_ENTERPRISE,
    OSN_LICENSE_EDITION_PLATINUM,
    OSN_LICENSE_EDITION_CLOUD,
    OSN_LICENSE_EDITION_MIGRATION
} osn__licenseEdition_t;

typedef enum osn__licenseDuration { OSN_LICENSE_DURATION_PERPETUAL, OSN_LICENSE_DURATION_TIMELIMITED } osn__licenseDuration_t;

typedef enum osn__licenseCategory {
    OSN_LICENSE_CATEGORY_SYSTEM,
    OSN_LICENSE_CATEGORY_FEATURE,
    OSN_LICENSE_CATEGORY_FEATURE_TERABYTES,
    OSN_LICENSE_CATEGORY_FEATURE_VOLUMES,
    OSN_LICENSE_CATEGORY_FEATURE_SNAPSHOTS,
    OSN_LICENSE_CATEGORY_FEATURE_CLOUDS,
    OSN_LICENSE_CATEGORY_FEATURE_NODES,
    OSN_LICENSE_CATEGORY_FEATURE_USERS,
    OSN_LICENSE_CATEGORY_FEATURE_SSD,
    OSN_LICENSE_CATEGORY_FEATURE_REPLICATION,
    OSN_LICENSE_CATEGORY_SUPPORT
} osn__licenseCategory_t;

typedef enum osn__licenseType { OSN_LICENSE_TYPE_NODE, OSN_LICENSE_TYPE_VOLUME, OSN_LICENSE_TYPE_SITE } osn__licenseType_t;

typedef enum osn__lockType { OSN_LOCK_SHARED, OSN_LOCK_PROTECTED, OSN_LOCK_EXCLUSIVE } osn__lockType_t;

typedef enum osn__cloudProviderType {
    OSN_CLOUD_PROVIDER_AMAZON_S3,
    OSN_CLOUD_PROVIDER_SFTP,
    OSN_CLOUD_PROVIDER_GOOGLE,
    OSN_CLOUD_PROVIDER_MICROSOFT_AZURE,
    OSN_CLOUD_PROVIDER_OPENSTACK_SWIFT,
    OSN_CLOUD_PROVIDER_DROPBOX,
    OSN_CLOUD_PROVIDER_CEPH,
    OSN_CLOUD_PROVIDER_IBMCOS,
    OSN_CLOUD_PROVIDER_BACKBLAZE_B2
} osn__cloudProviderType_t;

typedef enum osn__cloudContainerType {
    OSN_CLOUD_CONTAINER_S3QL=0,
    OSN_CLOUD_CONTAINER_S3FS=1, // Deprecated
    OSN_CLOUD_CONTAINER_RCLONE=2
} osn__cloudContainerType_t;

typedef enum osn__hwControllerCapabilities {
    HW_CONTROLLER_API_NONE                              = 0x00000000,
    HW_CONTROLLER_API_RESCAN                            = 0x00000001,
    HW_CONTROLLER_API_CREATE_UNIT                       = 0x00000002,  //HBAs do not set this, only RAID cards
    HW_CONTROLLER_API_GROW_UNIT                         = 0x00000004,
    HW_CONTROLLER_API_GROW_UNIT_ADV_STRIPE              = 0x00000008,
    HW_CONTROLLER_API_GROW_UNIT_ADV_PRIORITY            = 0x00000010,
    HW_CONTROLLER_API_CREATE_SSD_CACHE                  = 0x00000020,
    HW_CONTROLLER_API_SUPPORTS_SSD_CACHE_RAID           = 0x00000040,
    HW_CONTROLLER_API_SUPPORTS_UNIT_DISK_CORRELATION    = 0x00000080,
    HW_CONTROLLER_API_SUPPORTS_ENCRYPTION               = 0x00000100,
    HW_CONTROLLER_API_DISK_PASSTHRU                     = 0x00000200,
    HW_CONTROLLER_API_SUPPORTS_RAID                     = 0x00000400,
    HW_CONTROLLER_API_SUPPORTS_JBOD                     = 0x00000800
} osn__hwControllerCapabilities_t;

typedef enum osn__hwDiskCapabilities {
    HW_DISK_API_NONE                = 0,
    HW_DISK_API_MARK_HOT_SPARE      = 1,
    HW_DISK_API_IDENTIFY            = 2,
    HW_DISK_API_REMOVE_DISK         = 4,
    HW_DISK_API_SUPPORTS_ENCRYPTION = 8
} osn__hwDiskCapabilities_t;

typedef enum osn__hwUnitCapabilities {
    HW_UNIT_API_NONE                = 0,
    HW_UNIT_API_IDENTIFY            = 1,
    HW_UNIT_API_DELETE              = 2,
    HW_UNIT_API_SUPPORTS_ENCRYPTION = 8
} osn__hwUnitCapabilities_t;

typedef enum osn__aclType { OSN_ACL_TYPE_POSIX, OSN_ACL_TYPE_OFF } osn__aclType_t;

typedef enum osn__vvolType { 
    OSN_VVOL_TYPE_NONE = 0, 
    OSN_VVOL_TYPE_SUBVOL_CONFIG = 1, 
    OSN_VVOL_TYPE_SUBVOL_DATA = 2, 
    OSN_VVOL_TYPE_SUBVOL_SWAP = 3, 
    OSN_VVOL_TYPE_PE = 4
} osn__vvolType_t;

typedef enum osn__capabilityValType { 
    OSN_CAPABILITY_VAL_TYPE_SET = 0, 
    OSN_CAPABILITY_VAL_TYPE_RANGE = 1 
} osn__capabilityValType_t;

typedef enum osn__providerType { OSN_PROVIDER_TYPE_NONE, OSN_PROVIDER_TYPE_VMWARE_VASA } osn__providerType_t;

typedef enum osn__activeDirSearchStatus {
    OSN_CMN_AD_STAT_SUCCESS,
    OSN_CMN_AD_STAT_TOO_MANY_HITS,
    OSN_CMN_AD_STAT_NOT_FOUND,
} osn__activeDirSearchStatus_t;

typedef enum osn__userAppTokenAccessMode {
    OSN_APPTOKEN_DISABLED,
    OSN_APPTOKEN_LOCAL_ONLY,
    OSN_APPTOKEN_REMOTE_ONLY,
    OSN_APPTOKEN_ALL
} osn__userAppTokenAccessMode_t;

typedef enum osn__managerClass {
    OSN_MANAGERCLASS_NONE,
    OSN_MANAGERCLASS_ALUACONFIG,
    OSN_MANAGERCLASS_BLINK,
    OSN_MANAGERCLASS_CEPH,
    OSN_MANAGERCLASS_DISK,
    OSN_MANAGERCLASS_FABRIC,
    OSN_MANAGERCLASS_FIREWALL,
    OSN_MANAGERCLASS_GLUSTER,
    OSN_MANAGERCLASS_GRIDSYNC,
    OSN_MANAGERCLASS_HACONNECTIVITY,
    OSN_MANAGERCLASS_HAFAILOVER,
    OSN_MANAGERCLASS_HARDWARE,
    OSN_MANAGERCLASS_HOTSPARE,
    OSN_MANAGERCLASS_INFINIBAND,
    OSN_MANAGERCLASS_LIBRATO,
    OSN_MANAGERCLASS_POOL,
    OSN_MANAGERCLASS_REPLICATION,
    OSN_MANAGERCLASS_SHARENAMESPACE,
    OSN_MANAGERCLASS_SMART,
    OSN_MANAGERCLASS_STATS,
    OSN_MANAGERCLASS_TARGETPORT,
    OSN_MANAGERCLASS_MAX
} osn__managerClass_t;

//
// Common structs
//


struct osn__keyValuePair
{
    xsd__string key;
    xsd__string value;
    xsd__unsignedInt type;
};

class osn__objectProperty
{
    xsd__string objectId;
    xsd__unsignedInt objectType;
    xsd__string key;
    xsd__string value;
    xsd__unsignedInt type;
};

struct osn__i18nString
{
    xsd__string messageId;
    xsd__string messageText;
    std::list<struct osn__keyValuePair> insertionParams;
};

struct osn__errorMessage
{
    xsd__unsignedInt severity;
    struct osn__i18nString message;
    xsd__unsignedInt errorCode;
    xsd__string file;
    xsd__unsignedInt line;
    xsd__string function;
};

//
// Common objects / base classes
//

class osn__acl
{
public:
    xsd__string objectId;
    xsd__unsignedInt objectType;
    xsd__string ownerId;
    xsd__unsignedInt ownerType;
    xsd__unsignedInt accessLevel;
    xsd__unsignedInt reserved;
};

class osn__resourceHealthCheck
{
public:
    xsd__string id;
    xsd__string name;
    xsd__unsignedInt type;
    xsd__unsignedInt state;
    std::list<xsd__string> stateDetail;
};

class osn__object
{
public:
    xsd__string id;
    xsd__string name;
    xsd__string customId;
    xsd__unsignedInt state;
    xsd__string stateDetail;
    xsd__unsignedInt type;
    xsd__dateTime createdTimeStamp;
    xsd__string createdByUserId;
    xsd__dateTime modifiedTimeStamp;
    xsd__string modifiedByUserId;
    xsd__boolean isRemote;
    xsd__string storageSystemId;
    xsd__unsignedInt ownershipRevision;
    std::list<osn__acl> acls;
    std::list<osn__objectProperty> properties;
};

class osn__nodeAssoc
{
    xsd__string storageSystemId;
    xsd__boolean isRemote;
};

class osn__event : public osn__object
{
public:
    xsd__unsignedInt index;
    xsd__string operation;
    xsd__unsignedInt objectType;
    xsd__string objectId;
    xsd__string parentId;
    xsd__string parentId2;
    xsd__string category;
    xsd__dateTime serviceTimeStamp;
    xsd__dateTime timeStamp;
    xsd__string eventId;
    xsd__string originId;
    xsd__boolean isSync;
    xsd__boolean isRebroadcast;
    std::list<xsd__string> objectIdList;
    std::list<xsd__string> objectDataList;
    std::list<struct osn__keyValuePair> params;
};

class osn__eventListener
{
public:
    xsd__string processorSystemId;
    xsd__string broadcasterSystemId;
    xsd__string preferredIpAddress;
    std::list<xsd__string> ipAddressList;
    xsd__unsignedInt listenerType;
    xsd__unsignedInt listenerMode;
    xsd__string listenerId;
    xsd__dateTime serviceTimeStamp;
    xsd__dateTime lastRegistrationRequest;
    xsd__dateTime lastRegistrationStamp;
    xsd__unsignedInt maxEvents;
    xsd__unsignedInt state;
    std::list<xsd__string> resyncList;
};

class osn__alert : public osn__object
{
public:
    xsd__string objectId;
    xsd__unsignedInt objectType;
    xsd__unsignedInt severity;
    xsd__dateTime timeStamp;
    xsd__string title;
    xsd__string description;
    xsd__unsignedInt snmpTrapType;
    xsd__string storageSystemName;
};

class osn__alertType : public osn__object
{
public:
    xsd__string description;
	xsd__unsignedInt objectType;
    xsd__dateTime pauseUntilDate;
	xsd__unsignedInt snmpTrapType;
	xsd__unsignedInt severity;
};

class osn__task : public osn__object
{
public:
    xsd__dateTime startTimeStamp;
    xsd__dateTime finishTimeStamp;
    xsd__unsignedInt progress;
    xsd__unsignedInt taskState;
    xsd__string description;
    xsd__string parentId;

    xsd__string operation;
    xsd__string objectType;
    xsd__string clientIpAddress;

    struct osn__i18nString i18nDescription;
    struct osn__errorMessage errorMessage;

    xsd__unsignedInt retainState;
};

class osn__lock : public osn__object
{
public:
    std::string objectId;
    unsigned int objectType;
    unsigned int lockType;
    std::string taskId;
};

class osn__auditEntry : public osn__task
{
public:
    // same fields as the task object
    // additional properties may be set in osn__object
};

class osn__auditSettings
{
public:
    xsd__string id;
    xsd__boolean isEnabled;
};

class osn__timeZone
{
public:
    xsd__string countryCode;
    xsd__string tz;
    xsd__string comments;
};