Mar 27, 2026 - For details about updated CVE-2025-53521 (BIG-IP APM vulnerability), refer to K000156741.

Forum Discussion

smalex's avatar
smalex
Icon for Altostratus rankAltostratus
Feb 12, 2019

Read Access to ASM learning suggestions

We had enabled ASM learning here and have received 5000+ suggestions. Application need to research on many of those, hence a session with them is not possible. They want to have these suggestions exported somehow for their review.

 

Is there a way to export ASM learning suggestions? If not can we create a user with read access and view only to learning suggestion?

 

Please guide.

 

1 Reply

  • There is a REST endpoint to return suggestions per policy "/mgmt/tm/asm/policies//suggestions". If there are 5000+ suggestions you will need to use "skip" and "top" to page through the total results: "?\$skip=${runningSkip}\&\$top=${topCount}"

    Example:

    Get the Policy ID:

    [root@ssutton-centos-02 ~] curl -sku admin:admin https://${BIGIP_MGMT}/mgmt/tm/asm/policies | jq '.items[]|{ID: .id,Policy: .name}'
    {
      "ID": "IZAtfr_evnm_-M4LIYU_pg",
      "Policy": "JSON_Max_Array_Length"
    }
    {
      "ID": "kvdCY2diDypYq6qcWvgiYQ",
      "Policy": "All_Policy"
    }
    `
    
    
    Request the Suggestions:
     Note: The response shows the "totalItems", "itemsPerPage", "startIndex", "totalPages", "pageIndex" these can be used in a script or program to iterate through all suggestions:
    
    
    `[root@ssutton-centos-02 ~] curl -sku admin:admin https://${BIGIP_MGMT}/mgmt/tm/asm/policies/IZAtfr_evnm_-M4LIYU_pg/suggestions | jq .
    {
      "totalPages": 1,
      "pageIndex": 1,
      "selfLink": "https://localhost/mgmt/tm/asm/policies/IZAtfr_evnm_-M4LIYU_pg/suggestions?$top=500&ver=13.1.0",
      "kind": "tm:asm:policies:suggestions:suggestioncollectionstate",
      "startIndex": 1,
      "itemsPerPage": 500,
      "totalItems": 1,
      "items": [
        {
          "parentEntityId": "",
          "isAutomaticallyLearnable": true,
          "isRead": false,
          "occurrences": 2,
          "status": "pending",
          "lastOccurrenceDatetime": "2019-01-25T20:13:41Z",
          "kind": "tm:asm:policies:suggestions:suggestionstate",
          "selfLink": "https://localhost/mgmt/tm/asm/policies/IZAtfr_evnm_-M4LIYU_pg/suggestions/Ddrl025_iYFut7L93gUnOw?ver=13.1.0",
          "entityId": "6wM3Vka9V9i_0oGfPNd21A",
          "entityName": "anna.com",
          "trustedSourcesCount": 0,
          "refinementReference": {
            "link": "https://localhost/mgmt/tm/asm/refinements/qH_2eaLz5x2RgaZ7dUISLA?ver=13.1.0"
          },
          "id": "Ddrl025_iYFut7L93gUnOw",
          "averageViolationRating": 0,
          "violationRatingCounts": [
            {
              "violationRating": "0",
              "occurrences": 2
            }
          ],
          "entityReference": {
            "link": "https://localhost/mgmt/tm/asm/policies/IZAtfr_evnm_-M4LIYU_pg/host-names/6wM3Vka9V9i_0oGfPNd21A?ver=13.1.0"
          },
          "entityKind": "tm:asm:policies:host-names:host-namestate",
          "reason": "policy-refining",
          "score": 5,
          "sectionReference": {
            "link": "https://localhost/mgmt/tm/asm/policies/IZAtfr_evnm_-M4LIYU_pg/sections/yfD4lfuYq5FZ9R_QKX4jbQ?ver=13.1.0"
          },
          "firstOccurrenceDatetime": "2019-01-25T20:13:41Z",
          "description": "Add Valid Host Name",
          "isGloballyAcceptable": false,
          "requestReferences": [
            {
              "link": "https://localhost/mgmt/tm/asm/events/requests/5023665423262983362?ver=13.1.0"
            }
          ],
          "untrustedSourcesCount": 1,
          "comment": "",
          "action": "add-or-update",
          "isTighteningSuggestion": true
        }
      ]
    }