public override int GetHashCode()
        {
            int hash = 1;

            if (ResourceName.Length != 0)
            {
                hash ^= ResourceName.GetHashCode();
            }
            if (name_ != null)
            {
                hash ^= Name.GetHashCode();
            }
            if (Category != global::Google.Ads.GoogleAds.V2.Enums.GoogleAdsFieldCategoryEnum.Types.GoogleAdsFieldCategory.Unspecified)
            {
                hash ^= Category.GetHashCode();
            }
            if (selectable_ != null)
            {
                hash ^= Selectable.GetHashCode();
            }
            if (filterable_ != null)
            {
                hash ^= Filterable.GetHashCode();
            }
            if (sortable_ != null)
            {
                hash ^= Sortable.GetHashCode();
            }
            hash ^= selectableWith_.GetHashCode();
            hash ^= attributeResources_.GetHashCode();
            hash ^= metrics_.GetHashCode();
            hash ^= segments_.GetHashCode();
            hash ^= enumValues_.GetHashCode();
            if (DataType != global::Google.Ads.GoogleAds.V2.Enums.GoogleAdsFieldDataTypeEnum.Types.GoogleAdsFieldDataType.Unspecified)
            {
                hash ^= DataType.GetHashCode();
            }
            if (typeUrl_ != null)
            {
                hash ^= TypeUrl.GetHashCode();
            }
            if (isRepeated_ != null)
            {
                hash ^= IsRepeated.GetHashCode();
            }
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }