/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (RepositoryHome != null)
         {
             hashCode = hashCode * 59 + RepositoryHome.GetHashCode();
         }
         if (TarmkMode != null)
         {
             hashCode = hashCode * 59 + TarmkMode.GetHashCode();
         }
         if (TarmkSize != null)
         {
             hashCode = hashCode * 59 + TarmkSize.GetHashCode();
         }
         if (SegmentCacheSize != null)
         {
             hashCode = hashCode * 59 + SegmentCacheSize.GetHashCode();
         }
         if (StringCacheSize != null)
         {
             hashCode = hashCode * 59 + StringCacheSize.GetHashCode();
         }
         if (TemplateCacheSize != null)
         {
             hashCode = hashCode * 59 + TemplateCacheSize.GetHashCode();
         }
         if (StringDeduplicationCacheSize != null)
         {
             hashCode = hashCode * 59 + StringDeduplicationCacheSize.GetHashCode();
         }
         if (TemplateDeduplicationCacheSize != null)
         {
             hashCode = hashCode * 59 + TemplateDeduplicationCacheSize.GetHashCode();
         }
         if (NodeDeduplicationCacheSize != null)
         {
             hashCode = hashCode * 59 + NodeDeduplicationCacheSize.GetHashCode();
         }
         if (PauseCompaction != null)
         {
             hashCode = hashCode * 59 + PauseCompaction.GetHashCode();
         }
         if (CompactionRetryCount != null)
         {
             hashCode = hashCode * 59 + CompactionRetryCount.GetHashCode();
         }
         if (CompactionForceTimeout != null)
         {
             hashCode = hashCode * 59 + CompactionForceTimeout.GetHashCode();
         }
         if (CompactionSizeDeltaEstimation != null)
         {
             hashCode = hashCode * 59 + CompactionSizeDeltaEstimation.GetHashCode();
         }
         if (CompactionDisableEstimation != null)
         {
             hashCode = hashCode * 59 + CompactionDisableEstimation.GetHashCode();
         }
         if (CompactionRetainedGenerations != null)
         {
             hashCode = hashCode * 59 + CompactionRetainedGenerations.GetHashCode();
         }
         if (CompactionMemoryThreshold != null)
         {
             hashCode = hashCode * 59 + CompactionMemoryThreshold.GetHashCode();
         }
         if (CompactionProgressLog != null)
         {
             hashCode = hashCode * 59 + CompactionProgressLog.GetHashCode();
         }
         if (Standby != null)
         {
             hashCode = hashCode * 59 + Standby.GetHashCode();
         }
         if (CustomBlobStore != null)
         {
             hashCode = hashCode * 59 + CustomBlobStore.GetHashCode();
         }
         if (CustomSegmentStore != null)
         {
             hashCode = hashCode * 59 + CustomSegmentStore.GetHashCode();
         }
         if (SplitPersistence != null)
         {
             hashCode = hashCode * 59 + SplitPersistence.GetHashCode();
         }
         if (RepositoryBackupDir != null)
         {
             hashCode = hashCode * 59 + RepositoryBackupDir.GetHashCode();
         }
         if (BlobGcMaxAgeInSecs != null)
         {
             hashCode = hashCode * 59 + BlobGcMaxAgeInSecs.GetHashCode();
         }
         if (BlobTrackSnapshotIntervalInSecs != null)
         {
             hashCode = hashCode * 59 + BlobTrackSnapshotIntervalInSecs.GetHashCode();
         }
         if (Role != null)
         {
             hashCode = hashCode * 59 + Role.GetHashCode();
         }
         if (RegisterDescriptors != null)
         {
             hashCode = hashCode * 59 + RegisterDescriptors.GetHashCode();
         }
         if (DispatchChanges != null)
         {
             hashCode = hashCode * 59 + DispatchChanges.GetHashCode();
         }
         return(hashCode);
     }
 }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (Mongouri != null)
         {
             hashCode = hashCode * 59 + Mongouri.GetHashCode();
         }
         if (Db != null)
         {
             hashCode = hashCode * 59 + Db.GetHashCode();
         }
         if (SocketKeepAlive != null)
         {
             hashCode = hashCode * 59 + SocketKeepAlive.GetHashCode();
         }
         if (Cache != null)
         {
             hashCode = hashCode * 59 + Cache.GetHashCode();
         }
         if (NodeCachePercentage != null)
         {
             hashCode = hashCode * 59 + NodeCachePercentage.GetHashCode();
         }
         if (PrevDocCachePercentage != null)
         {
             hashCode = hashCode * 59 + PrevDocCachePercentage.GetHashCode();
         }
         if (ChildrenCachePercentage != null)
         {
             hashCode = hashCode * 59 + ChildrenCachePercentage.GetHashCode();
         }
         if (DiffCachePercentage != null)
         {
             hashCode = hashCode * 59 + DiffCachePercentage.GetHashCode();
         }
         if (CacheSegmentCount != null)
         {
             hashCode = hashCode * 59 + CacheSegmentCount.GetHashCode();
         }
         if (CacheStackMoveDistance != null)
         {
             hashCode = hashCode * 59 + CacheStackMoveDistance.GetHashCode();
         }
         if (BlobCacheSize != null)
         {
             hashCode = hashCode * 59 + BlobCacheSize.GetHashCode();
         }
         if (PersistentCache != null)
         {
             hashCode = hashCode * 59 + PersistentCache.GetHashCode();
         }
         if (JournalCache != null)
         {
             hashCode = hashCode * 59 + JournalCache.GetHashCode();
         }
         if (CustomBlobStore != null)
         {
             hashCode = hashCode * 59 + CustomBlobStore.GetHashCode();
         }
         if (JournalGCInterval != null)
         {
             hashCode = hashCode * 59 + JournalGCInterval.GetHashCode();
         }
         if (JournalGCMaxAge != null)
         {
             hashCode = hashCode * 59 + JournalGCMaxAge.GetHashCode();
         }
         if (PrefetchExternalChanges != null)
         {
             hashCode = hashCode * 59 + PrefetchExternalChanges.GetHashCode();
         }
         if (Role != null)
         {
             hashCode = hashCode * 59 + Role.GetHashCode();
         }
         if (VersionGcMaxAgeInSecs != null)
         {
             hashCode = hashCode * 59 + VersionGcMaxAgeInSecs.GetHashCode();
         }
         if (VersionGCExpression != null)
         {
             hashCode = hashCode * 59 + VersionGCExpression.GetHashCode();
         }
         if (VersionGCTimeLimitInSecs != null)
         {
             hashCode = hashCode * 59 + VersionGCTimeLimitInSecs.GetHashCode();
         }
         if (BlobGcMaxAgeInSecs != null)
         {
             hashCode = hashCode * 59 + BlobGcMaxAgeInSecs.GetHashCode();
         }
         if (BlobTrackSnapshotIntervalInSecs != null)
         {
             hashCode = hashCode * 59 + BlobTrackSnapshotIntervalInSecs.GetHashCode();
         }
         if (RepositoryHome != null)
         {
             hashCode = hashCode * 59 + RepositoryHome.GetHashCode();
         }
         if (MaxReplicationLagInSecs != null)
         {
             hashCode = hashCode * 59 + MaxReplicationLagInSecs.GetHashCode();
         }
         if (DocumentStoreType != null)
         {
             hashCode = hashCode * 59 + DocumentStoreType.GetHashCode();
         }
         if (BundlingDisabled != null)
         {
             hashCode = hashCode * 59 + BundlingDisabled.GetHashCode();
         }
         if (UpdateLimit != null)
         {
             hashCode = hashCode * 59 + UpdateLimit.GetHashCode();
         }
         if (PersistentCacheIncludes != null)
         {
             hashCode = hashCode * 59 + PersistentCacheIncludes.GetHashCode();
         }
         if (LeaseCheckMode != null)
         {
             hashCode = hashCode * 59 + LeaseCheckMode.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if OrgApacheJackrabbitOakSegmentSegmentNodeStoreFactoryProperties instances are equal
        /// </summary>
        /// <param name="other">Instance of OrgApacheJackrabbitOakSegmentSegmentNodeStoreFactoryProperties to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(OrgApacheJackrabbitOakSegmentSegmentNodeStoreFactoryProperties other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     RepositoryHome == other.RepositoryHome ||
                     RepositoryHome != null &&
                     RepositoryHome.Equals(other.RepositoryHome)
                     ) &&
                 (
                     TarmkMode == other.TarmkMode ||
                     TarmkMode != null &&
                     TarmkMode.Equals(other.TarmkMode)
                 ) &&
                 (
                     TarmkSize == other.TarmkSize ||
                     TarmkSize != null &&
                     TarmkSize.Equals(other.TarmkSize)
                 ) &&
                 (
                     SegmentCacheSize == other.SegmentCacheSize ||
                     SegmentCacheSize != null &&
                     SegmentCacheSize.Equals(other.SegmentCacheSize)
                 ) &&
                 (
                     StringCacheSize == other.StringCacheSize ||
                     StringCacheSize != null &&
                     StringCacheSize.Equals(other.StringCacheSize)
                 ) &&
                 (
                     TemplateCacheSize == other.TemplateCacheSize ||
                     TemplateCacheSize != null &&
                     TemplateCacheSize.Equals(other.TemplateCacheSize)
                 ) &&
                 (
                     StringDeduplicationCacheSize == other.StringDeduplicationCacheSize ||
                     StringDeduplicationCacheSize != null &&
                     StringDeduplicationCacheSize.Equals(other.StringDeduplicationCacheSize)
                 ) &&
                 (
                     TemplateDeduplicationCacheSize == other.TemplateDeduplicationCacheSize ||
                     TemplateDeduplicationCacheSize != null &&
                     TemplateDeduplicationCacheSize.Equals(other.TemplateDeduplicationCacheSize)
                 ) &&
                 (
                     NodeDeduplicationCacheSize == other.NodeDeduplicationCacheSize ||
                     NodeDeduplicationCacheSize != null &&
                     NodeDeduplicationCacheSize.Equals(other.NodeDeduplicationCacheSize)
                 ) &&
                 (
                     PauseCompaction == other.PauseCompaction ||
                     PauseCompaction != null &&
                     PauseCompaction.Equals(other.PauseCompaction)
                 ) &&
                 (
                     CompactionRetryCount == other.CompactionRetryCount ||
                     CompactionRetryCount != null &&
                     CompactionRetryCount.Equals(other.CompactionRetryCount)
                 ) &&
                 (
                     CompactionForceTimeout == other.CompactionForceTimeout ||
                     CompactionForceTimeout != null &&
                     CompactionForceTimeout.Equals(other.CompactionForceTimeout)
                 ) &&
                 (
                     CompactionSizeDeltaEstimation == other.CompactionSizeDeltaEstimation ||
                     CompactionSizeDeltaEstimation != null &&
                     CompactionSizeDeltaEstimation.Equals(other.CompactionSizeDeltaEstimation)
                 ) &&
                 (
                     CompactionDisableEstimation == other.CompactionDisableEstimation ||
                     CompactionDisableEstimation != null &&
                     CompactionDisableEstimation.Equals(other.CompactionDisableEstimation)
                 ) &&
                 (
                     CompactionRetainedGenerations == other.CompactionRetainedGenerations ||
                     CompactionRetainedGenerations != null &&
                     CompactionRetainedGenerations.Equals(other.CompactionRetainedGenerations)
                 ) &&
                 (
                     CompactionMemoryThreshold == other.CompactionMemoryThreshold ||
                     CompactionMemoryThreshold != null &&
                     CompactionMemoryThreshold.Equals(other.CompactionMemoryThreshold)
                 ) &&
                 (
                     CompactionProgressLog == other.CompactionProgressLog ||
                     CompactionProgressLog != null &&
                     CompactionProgressLog.Equals(other.CompactionProgressLog)
                 ) &&
                 (
                     Standby == other.Standby ||
                     Standby != null &&
                     Standby.Equals(other.Standby)
                 ) &&
                 (
                     CustomBlobStore == other.CustomBlobStore ||
                     CustomBlobStore != null &&
                     CustomBlobStore.Equals(other.CustomBlobStore)
                 ) &&
                 (
                     CustomSegmentStore == other.CustomSegmentStore ||
                     CustomSegmentStore != null &&
                     CustomSegmentStore.Equals(other.CustomSegmentStore)
                 ) &&
                 (
                     SplitPersistence == other.SplitPersistence ||
                     SplitPersistence != null &&
                     SplitPersistence.Equals(other.SplitPersistence)
                 ) &&
                 (
                     RepositoryBackupDir == other.RepositoryBackupDir ||
                     RepositoryBackupDir != null &&
                     RepositoryBackupDir.Equals(other.RepositoryBackupDir)
                 ) &&
                 (
                     BlobGcMaxAgeInSecs == other.BlobGcMaxAgeInSecs ||
                     BlobGcMaxAgeInSecs != null &&
                     BlobGcMaxAgeInSecs.Equals(other.BlobGcMaxAgeInSecs)
                 ) &&
                 (
                     BlobTrackSnapshotIntervalInSecs == other.BlobTrackSnapshotIntervalInSecs ||
                     BlobTrackSnapshotIntervalInSecs != null &&
                     BlobTrackSnapshotIntervalInSecs.Equals(other.BlobTrackSnapshotIntervalInSecs)
                 ) &&
                 (
                     Role == other.Role ||
                     Role != null &&
                     Role.Equals(other.Role)
                 ) &&
                 (
                     RegisterDescriptors == other.RegisterDescriptors ||
                     RegisterDescriptors != null &&
                     RegisterDescriptors.Equals(other.RegisterDescriptors)
                 ) &&
                 (
                     DispatchChanges == other.DispatchChanges ||
                     DispatchChanges != null &&
                     DispatchChanges.Equals(other.DispatchChanges)
                 ));
        }
        /// <summary>
        /// Returns true if OrgApacheJackrabbitOakPluginsDocumentDocumentNodeStoreServiceProperties instances are equal
        /// </summary>
        /// <param name="other">Instance of OrgApacheJackrabbitOakPluginsDocumentDocumentNodeStoreServiceProperties to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(OrgApacheJackrabbitOakPluginsDocumentDocumentNodeStoreServiceProperties other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     Mongouri == other.Mongouri ||
                     Mongouri != null &&
                     Mongouri.Equals(other.Mongouri)
                     ) &&
                 (
                     Db == other.Db ||
                     Db != null &&
                     Db.Equals(other.Db)
                 ) &&
                 (
                     SocketKeepAlive == other.SocketKeepAlive ||
                     SocketKeepAlive != null &&
                     SocketKeepAlive.Equals(other.SocketKeepAlive)
                 ) &&
                 (
                     Cache == other.Cache ||
                     Cache != null &&
                     Cache.Equals(other.Cache)
                 ) &&
                 (
                     NodeCachePercentage == other.NodeCachePercentage ||
                     NodeCachePercentage != null &&
                     NodeCachePercentage.Equals(other.NodeCachePercentage)
                 ) &&
                 (
                     PrevDocCachePercentage == other.PrevDocCachePercentage ||
                     PrevDocCachePercentage != null &&
                     PrevDocCachePercentage.Equals(other.PrevDocCachePercentage)
                 ) &&
                 (
                     ChildrenCachePercentage == other.ChildrenCachePercentage ||
                     ChildrenCachePercentage != null &&
                     ChildrenCachePercentage.Equals(other.ChildrenCachePercentage)
                 ) &&
                 (
                     DiffCachePercentage == other.DiffCachePercentage ||
                     DiffCachePercentage != null &&
                     DiffCachePercentage.Equals(other.DiffCachePercentage)
                 ) &&
                 (
                     CacheSegmentCount == other.CacheSegmentCount ||
                     CacheSegmentCount != null &&
                     CacheSegmentCount.Equals(other.CacheSegmentCount)
                 ) &&
                 (
                     CacheStackMoveDistance == other.CacheStackMoveDistance ||
                     CacheStackMoveDistance != null &&
                     CacheStackMoveDistance.Equals(other.CacheStackMoveDistance)
                 ) &&
                 (
                     BlobCacheSize == other.BlobCacheSize ||
                     BlobCacheSize != null &&
                     BlobCacheSize.Equals(other.BlobCacheSize)
                 ) &&
                 (
                     PersistentCache == other.PersistentCache ||
                     PersistentCache != null &&
                     PersistentCache.Equals(other.PersistentCache)
                 ) &&
                 (
                     JournalCache == other.JournalCache ||
                     JournalCache != null &&
                     JournalCache.Equals(other.JournalCache)
                 ) &&
                 (
                     CustomBlobStore == other.CustomBlobStore ||
                     CustomBlobStore != null &&
                     CustomBlobStore.Equals(other.CustomBlobStore)
                 ) &&
                 (
                     JournalGCInterval == other.JournalGCInterval ||
                     JournalGCInterval != null &&
                     JournalGCInterval.Equals(other.JournalGCInterval)
                 ) &&
                 (
                     JournalGCMaxAge == other.JournalGCMaxAge ||
                     JournalGCMaxAge != null &&
                     JournalGCMaxAge.Equals(other.JournalGCMaxAge)
                 ) &&
                 (
                     PrefetchExternalChanges == other.PrefetchExternalChanges ||
                     PrefetchExternalChanges != null &&
                     PrefetchExternalChanges.Equals(other.PrefetchExternalChanges)
                 ) &&
                 (
                     Role == other.Role ||
                     Role != null &&
                     Role.Equals(other.Role)
                 ) &&
                 (
                     VersionGcMaxAgeInSecs == other.VersionGcMaxAgeInSecs ||
                     VersionGcMaxAgeInSecs != null &&
                     VersionGcMaxAgeInSecs.Equals(other.VersionGcMaxAgeInSecs)
                 ) &&
                 (
                     VersionGCExpression == other.VersionGCExpression ||
                     VersionGCExpression != null &&
                     VersionGCExpression.Equals(other.VersionGCExpression)
                 ) &&
                 (
                     VersionGCTimeLimitInSecs == other.VersionGCTimeLimitInSecs ||
                     VersionGCTimeLimitInSecs != null &&
                     VersionGCTimeLimitInSecs.Equals(other.VersionGCTimeLimitInSecs)
                 ) &&
                 (
                     BlobGcMaxAgeInSecs == other.BlobGcMaxAgeInSecs ||
                     BlobGcMaxAgeInSecs != null &&
                     BlobGcMaxAgeInSecs.Equals(other.BlobGcMaxAgeInSecs)
                 ) &&
                 (
                     BlobTrackSnapshotIntervalInSecs == other.BlobTrackSnapshotIntervalInSecs ||
                     BlobTrackSnapshotIntervalInSecs != null &&
                     BlobTrackSnapshotIntervalInSecs.Equals(other.BlobTrackSnapshotIntervalInSecs)
                 ) &&
                 (
                     RepositoryHome == other.RepositoryHome ||
                     RepositoryHome != null &&
                     RepositoryHome.Equals(other.RepositoryHome)
                 ) &&
                 (
                     MaxReplicationLagInSecs == other.MaxReplicationLagInSecs ||
                     MaxReplicationLagInSecs != null &&
                     MaxReplicationLagInSecs.Equals(other.MaxReplicationLagInSecs)
                 ) &&
                 (
                     DocumentStoreType == other.DocumentStoreType ||
                     DocumentStoreType != null &&
                     DocumentStoreType.Equals(other.DocumentStoreType)
                 ) &&
                 (
                     BundlingDisabled == other.BundlingDisabled ||
                     BundlingDisabled != null &&
                     BundlingDisabled.Equals(other.BundlingDisabled)
                 ) &&
                 (
                     UpdateLimit == other.UpdateLimit ||
                     UpdateLimit != null &&
                     UpdateLimit.Equals(other.UpdateLimit)
                 ) &&
                 (
                     PersistentCacheIncludes == other.PersistentCacheIncludes ||
                     PersistentCacheIncludes != null &&
                     PersistentCacheIncludes.Equals(other.PersistentCacheIncludes)
                 ) &&
                 (
                     LeaseCheckMode == other.LeaseCheckMode ||
                     LeaseCheckMode != null &&
                     LeaseCheckMode.Equals(other.LeaseCheckMode)
                 ));
        }