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