/// <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 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)
                 ));
        }