/// <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 (OauthProviderId != null)
         {
             hashCode = hashCode * 59 + OauthProviderId.GetHashCode();
         }
         if (OauthProviderImsAuthorizationUrl != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsAuthorizationUrl.GetHashCode();
         }
         if (OauthProviderImsTokenUrl != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsTokenUrl.GetHashCode();
         }
         if (OauthProviderImsProfileUrl != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsProfileUrl.GetHashCode();
         }
         if (OauthProviderImsExtendedDetailsUrls != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsExtendedDetailsUrls.GetHashCode();
         }
         if (OauthProviderImsValidateTokenUrl != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsValidateTokenUrl.GetHashCode();
         }
         if (OauthProviderImsSessionProperty != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsSessionProperty.GetHashCode();
         }
         if (OauthProviderImsServiceTokenClientId != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsServiceTokenClientId.GetHashCode();
         }
         if (OauthProviderImsServiceTokenClientSecret != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsServiceTokenClientSecret.GetHashCode();
         }
         if (OauthProviderImsServiceToken != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsServiceToken.GetHashCode();
         }
         if (ImsOrgRef != null)
         {
             hashCode = hashCode * 59 + ImsOrgRef.GetHashCode();
         }
         if (ImsGroupMapping != null)
         {
             hashCode = hashCode * 59 + ImsGroupMapping.GetHashCode();
         }
         if (OauthProviderImsOnlyLicenseGroup != null)
         {
             hashCode = hashCode * 59 + OauthProviderImsOnlyLicenseGroup.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if ComAdobeGraniteAuthImsImplIMSProviderImplProperties instances are equal
        /// </summary>
        /// <param name="other">Instance of ComAdobeGraniteAuthImsImplIMSProviderImplProperties to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ComAdobeGraniteAuthImsImplIMSProviderImplProperties other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     OauthProviderId == other.OauthProviderId ||
                     OauthProviderId != null &&
                     OauthProviderId.Equals(other.OauthProviderId)
                     ) &&
                 (
                     OauthProviderImsAuthorizationUrl == other.OauthProviderImsAuthorizationUrl ||
                     OauthProviderImsAuthorizationUrl != null &&
                     OauthProviderImsAuthorizationUrl.Equals(other.OauthProviderImsAuthorizationUrl)
                 ) &&
                 (
                     OauthProviderImsTokenUrl == other.OauthProviderImsTokenUrl ||
                     OauthProviderImsTokenUrl != null &&
                     OauthProviderImsTokenUrl.Equals(other.OauthProviderImsTokenUrl)
                 ) &&
                 (
                     OauthProviderImsProfileUrl == other.OauthProviderImsProfileUrl ||
                     OauthProviderImsProfileUrl != null &&
                     OauthProviderImsProfileUrl.Equals(other.OauthProviderImsProfileUrl)
                 ) &&
                 (
                     OauthProviderImsExtendedDetailsUrls == other.OauthProviderImsExtendedDetailsUrls ||
                     OauthProviderImsExtendedDetailsUrls != null &&
                     OauthProviderImsExtendedDetailsUrls.Equals(other.OauthProviderImsExtendedDetailsUrls)
                 ) &&
                 (
                     OauthProviderImsValidateTokenUrl == other.OauthProviderImsValidateTokenUrl ||
                     OauthProviderImsValidateTokenUrl != null &&
                     OauthProviderImsValidateTokenUrl.Equals(other.OauthProviderImsValidateTokenUrl)
                 ) &&
                 (
                     OauthProviderImsSessionProperty == other.OauthProviderImsSessionProperty ||
                     OauthProviderImsSessionProperty != null &&
                     OauthProviderImsSessionProperty.Equals(other.OauthProviderImsSessionProperty)
                 ) &&
                 (
                     OauthProviderImsServiceTokenClientId == other.OauthProviderImsServiceTokenClientId ||
                     OauthProviderImsServiceTokenClientId != null &&
                     OauthProviderImsServiceTokenClientId.Equals(other.OauthProviderImsServiceTokenClientId)
                 ) &&
                 (
                     OauthProviderImsServiceTokenClientSecret == other.OauthProviderImsServiceTokenClientSecret ||
                     OauthProviderImsServiceTokenClientSecret != null &&
                     OauthProviderImsServiceTokenClientSecret.Equals(other.OauthProviderImsServiceTokenClientSecret)
                 ) &&
                 (
                     OauthProviderImsServiceToken == other.OauthProviderImsServiceToken ||
                     OauthProviderImsServiceToken != null &&
                     OauthProviderImsServiceToken.Equals(other.OauthProviderImsServiceToken)
                 ) &&
                 (
                     ImsOrgRef == other.ImsOrgRef ||
                     ImsOrgRef != null &&
                     ImsOrgRef.Equals(other.ImsOrgRef)
                 ) &&
                 (
                     ImsGroupMapping == other.ImsGroupMapping ||
                     ImsGroupMapping != null &&
                     ImsGroupMapping.Equals(other.ImsGroupMapping)
                 ) &&
                 (
                     OauthProviderImsOnlyLicenseGroup == other.OauthProviderImsOnlyLicenseGroup ||
                     OauthProviderImsOnlyLicenseGroup != null &&
                     OauthProviderImsOnlyLicenseGroup.Equals(other.OauthProviderImsOnlyLicenseGroup)
                 ));
        }