{
  "info": {
    "name": "DIP Clustering Phase C",
    "_postman_id": "fa4b1e24-7d8d-4b1a-bd67-0f3f1b601111",
    "description": "Operational Postman collection for clustering sets, async runs, cancellation, and text-aware result inspection.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "http://localhost:8080/api"
    },
    {
      "key": "runId",
      "value": ""
    },
    {
      "key": "clusterSetId",
      "value": ""
    },
    {
      "key": "clusterId",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Cluster Sets",
      "item": [
        {
          "name": "Create TED cluster set",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/v1/dip/clustering/sets",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"code\": \"TED_NOTICE_E5_PRIMARY\",\n  \"name\": \"TED notices primary semantic text\",\n  \"description\": \"Saved TED notice clustering selection\",\n  \"selection\": {\n    \"documentTypes\": [\n      \"TED_NOTICE\"\n    ],\n    \"representationTypes\": [\n      \"SEMANTIC_TEXT\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"active\": true\n}"
            }
          }
        },
        {
          "name": "List cluster sets",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/sets"
          }
        },
        {
          "name": "Get cluster set",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/sets/{{clusterSetId}}"
          }
        }
      ]
    },
    {
      "name": "Runs",
      "item": [
        {
          "name": "Create TED KMeans run",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/v1/dip/clustering/runs",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"TED notices KMeans async run 1\",\n  \"algorithm\": \"KMEANS\",\n  \"executionBackend\": \"JAVA_LOCAL\",\n  \"reduction\": {\n    \"method\": \"NONE\"\n  },\n  \"selection\": {\n    \"documentTypes\": [\n      \"TED_NOTICE\"\n    ],\n    \"representationTypes\": [\n      \"SEMANTIC_TEXT\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"k\": 25\n}"
            }
          }
        },
        {
          "name": "Create HDBSCAN Python run",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": "{{baseUrl}}/v1/dip/clustering/runs",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"TED notices HDBSCAN PCA100\",\n  \"algorithm\": \"HDBSCAN\",\n  \"executionBackend\": \"PYTHON_REMOTE\",\n  \"reduction\": {\n    \"method\": \"PCA\",\n    \"targetDimensions\": 100\n  },\n  \"selection\": {\n    \"documentTypes\": [\n      \"TED_NOTICE\"\n    ],\n    \"representationTypes\": [\n      \"SEMANTIC_TEXT\"\n    ],\n    \"embeddingStatuses\": [\n      \"COMPLETED\"\n    ],\n    \"primaryRepresentationOnly\": true\n  },\n  \"k\": 25\n}"
            }
          }
        },
        {
          "name": "Start run async",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/start"
          }
        },
        {
          "name": "Cancel run",
          "request": {
            "method": "POST",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/cancel"
          }
        },
        {
          "name": "Get run",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}"
          }
        },
        {
          "name": "List runs",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/runs?status=COMPLETED"
          }
        }
      ]
    },
    {
      "name": "Results",
      "item": [
        {
          "name": "List clusters",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/clusters"
          }
        },
        {
          "name": "Assignments with text",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/assignments?includeText=true"
          }
        },
        {
          "name": "Cluster members with text",
          "request": {
            "method": "GET",
            "url": "{{baseUrl}}/v1/dip/clustering/runs/{{runId}}/clusters/{{clusterId}}/members?includeText=true"
          }
        }
      ]
    }
  ]
}