/// <summary>
        /// Returns true if PipelineExecutionStepStateLinks instances are equal
        /// </summary>
        /// <param name="other">Instance of PipelineExecutionStepStateLinks to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(PipelineExecutionStepStateLinks other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     HttpNsAdobeComAdobecloudRelExecution == other.HttpNsAdobeComAdobecloudRelExecution ||
                     HttpNsAdobeComAdobecloudRelExecution != null &&
                     HttpNsAdobeComAdobecloudRelExecution.Equals(other.HttpNsAdobeComAdobecloudRelExecution)
                     ) &&
                 (
                     HttpNsAdobeComAdobecloudRelPipeline == other.HttpNsAdobeComAdobecloudRelPipeline ||
                     HttpNsAdobeComAdobecloudRelPipeline != null &&
                     HttpNsAdobeComAdobecloudRelPipeline.Equals(other.HttpNsAdobeComAdobecloudRelPipeline)
                 ) &&
                 (
                     HttpNsAdobeComAdobecloudRelPipelineLogs == other.HttpNsAdobeComAdobecloudRelPipelineLogs ||
                     HttpNsAdobeComAdobecloudRelPipelineLogs != null &&
                     HttpNsAdobeComAdobecloudRelPipelineLogs.Equals(other.HttpNsAdobeComAdobecloudRelPipelineLogs)
                 ) &&
                 (
                     HttpNsAdobeComAdobecloudRelPipelineMetrics == other.HttpNsAdobeComAdobecloudRelPipelineMetrics ||
                     HttpNsAdobeComAdobecloudRelPipelineMetrics != null &&
                     HttpNsAdobeComAdobecloudRelPipelineMetrics.Equals(other.HttpNsAdobeComAdobecloudRelPipelineMetrics)
                 ) &&
                 (
                     HttpNsAdobeComAdobecloudRelPipelineAdvance == other.HttpNsAdobeComAdobecloudRelPipelineAdvance ||
                     HttpNsAdobeComAdobecloudRelPipelineAdvance != null &&
                     HttpNsAdobeComAdobecloudRelPipelineAdvance.Equals(other.HttpNsAdobeComAdobecloudRelPipelineAdvance)
                 ) &&
                 (
                     HttpNsAdobeComAdobecloudRelPipelineCancel == other.HttpNsAdobeComAdobecloudRelPipelineCancel ||
                     HttpNsAdobeComAdobecloudRelPipelineCancel != null &&
                     HttpNsAdobeComAdobecloudRelPipelineCancel.Equals(other.HttpNsAdobeComAdobecloudRelPipelineCancel)
                 ) &&
                 (
                     HttpNsAdobeComAdobecloudRelProgram == other.HttpNsAdobeComAdobecloudRelProgram ||
                     HttpNsAdobeComAdobecloudRelProgram != null &&
                     HttpNsAdobeComAdobecloudRelProgram.Equals(other.HttpNsAdobeComAdobecloudRelProgram)
                 ) &&
                 (
                     Self == other.Self ||
                     Self != null &&
                     Self.Equals(other.Self)
                 ));
        }
 /// <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 (HttpNsAdobeComAdobecloudRelExecution != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelExecution.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelPipeline != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelPipeline.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelPipelineLogs != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelPipelineLogs.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelPipelineMetrics != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelPipelineMetrics.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelPipelineAdvance != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelPipelineAdvance.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelPipelineCancel != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelPipelineCancel.GetHashCode();
         }
         if (HttpNsAdobeComAdobecloudRelProgram != null)
         {
             hashCode = hashCode * 59 + HttpNsAdobeComAdobecloudRelProgram.GetHashCode();
         }
         if (Self != null)
         {
             hashCode = hashCode * 59 + Self.GetHashCode();
         }
         return(hashCode);
     }
 }