Chilkat Online Tools

VB.NET / Postman API / Update Workspace

Back to Collection Items

' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.

Dim http As New Chilkat.Http
Dim success As Boolean

' Use this online tool to generate code from sample JSON: Generate Code to Create JSON

' The following JSON is sent in the request body.

' {
'   "workspace": {
'     "name": "New Workspace updated",
'     "description": "Some description",
'     "collections": [
'       {
'         "id": "e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d",
'         "name": "Straw hats",
'         "uid": "8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d"
'       }
'     ],
'     "environments": [
'       {
'         "id": "83a1aaa2-a204-4bd8-9b92-4d486918906b",
'         "name": "env",
'         "uid": "8154-83a1aaa2-a204-4bd8-9b92-4d486918906b"
'       }
'     ],
'     "mocks": [
'       {
'         "id": "cda672ef-1375-40e9-baee-e20ece8d7b65"
'       }
'     ],
'     "monitors": [
'       {
'         "id": "1e889bd2-3862-4be0-b2c2-9b1fe9673aec"
'       }
'     ]
'   }
' }

Dim json As New Chilkat.JsonObject
json.UpdateString("workspace.name","New Workspace updated")
json.UpdateString("workspace.description","Some description")
json.UpdateString("workspace.collections[0].id","e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d")
json.UpdateString("workspace.collections[0].name","Straw hats")
json.UpdateString("workspace.collections[0].uid","8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d")
json.UpdateString("workspace.environments[0].id","83a1aaa2-a204-4bd8-9b92-4d486918906b")
json.UpdateString("workspace.environments[0].name","env")
json.UpdateString("workspace.environments[0].uid","8154-83a1aaa2-a204-4bd8-9b92-4d486918906b")
json.UpdateString("workspace.mocks[0].id","cda672ef-1375-40e9-baee-e20ece8d7b65")
json.UpdateString("workspace.monitors[0].id","1e889bd2-3862-4be0-b2c2-9b1fe9673aec")

http.SetRequestHeader("Content-Type","application/json")
http.SetRequestHeader("X-API-Key","{{postman_api_key}}")

Dim sbRequestBody As New Chilkat.StringBuilder
json.EmitSb(sbRequestBody)

Dim resp As Chilkat.HttpResponse = http.PTextSb("PUT","https://api.getpostman.com/workspaces/{{workspace_id}}",sbRequestBody,"utf-8","application/json",False,False)
If (http.LastMethodSuccess = False) Then
    Debug.WriteLine(http.LastErrorText)
    Exit Sub
End If


Dim sbResponseBody As New Chilkat.StringBuilder
resp.GetBodySb(sbResponseBody)

Dim jResp As New Chilkat.JsonObject
jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

Debug.WriteLine("Response Body:")
Debug.WriteLine(jResp.Emit())

Dim respStatusCode As Integer = resp.StatusCode
Debug.WriteLine("Response Status Code = " & respStatusCode)
If (respStatusCode >= 400) Then
    Debug.WriteLine("Response Header:")
    Debug.WriteLine(resp.Header)
    Debug.WriteLine("Failed.")

    Exit Sub
End If



' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "workspace": {
'     "id": "cfbcd9bf-cc8b-4d6f-b8ef-440a3e49e29f",
'     "name": "New Workspace"
'   }
' }

' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code




Dim Id As String = jResp.StringOf("workspace.id")
Dim Name As String = jResp.StringOf("workspace.name")

Curl Command

curl -X PUT
	-H "X-API-Key: {{postman_api_key}}"
	-H "Content-Type: application/json"
	-d '{
    "workspace": {
        "name": "New Workspace updated",
        "description": "Some description",
        "collections": [
            {
                "id": "e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d",
                "name": "Straw hats",
                "uid": "8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d"
            }
        ],
        "environments": [
            {
                "id": "83a1aaa2-a204-4bd8-9b92-4d486918906b",
                "name": "env",
                "uid": "8154-83a1aaa2-a204-4bd8-9b92-4d486918906b"
            }
        ],
        "mocks": [
            {
                "id": "cda672ef-1375-40e9-baee-e20ece8d7b65"
            }
        ],
        "monitors": [
            {
                "id": "1e889bd2-3862-4be0-b2c2-9b1fe9673aec"
            }
        ]
    }
}'
https://api.getpostman.com/workspaces/{{workspace_id}}

Postman Collection Item JSON

{
  "name": "Update Workspace",
  "request": {
    "method": "PUT",
    "header": [
      {
        "name": "Content-Type",
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "body": {
      "mode": "raw",
      "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
    },
    "url": {
      "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
      "protocol": "https",
      "host": [
        "api",
        "getpostman",
        "com"
      ],
      "path": [
        "workspaces",
        "{{workspace_id}}"
      ]
    },
    "description": "This endpoint allows you to update a workspace and update it's association to entities like `collections`, `environments`, `mocks` and `monitors` using their `uid`.\n\nOn successful updation of the workspace, the response returns the workspcae `name` and `id`.\n\n> Requires <a href=\"#authentication\">API Key</a> as `X-Api-Key` request header or `apikey` URL query parameter.\n\n**Note** : The endpoint expects you to send the desired state of the workspace in terms of the associated entities so be careful when trying to update these entities.\n\nFor eg. if your workspace has collections A and B, and in the update call, you send C's uid in the collections array, then A and B would be removed from the workspace and C would be added."
  },
  "response": [
    {
      "name": "Specified workspace/entities do not exist",
      "originalRequest": {
        "method": "PUT",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8153-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "Not Found",
      "code": 404,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"error\": {\n        \"name\": \"instanceNotFoundError\",\n        \"message\": \"The specified workspace does not exist.\"\n    }\n}"
    },
    {
      "name": "Successful Response",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"workspace\": {\n        \"id\": \"cfbcd9bf-cc8b-4d6f-b8ef-440a3e49e29f\",\n        \"name\": \"New Workspace\"\n    }\n}"
    },
    {
      "name": "Not enough permissions",
      "originalRequest": {
        "method": "PUT",
        "header": [
          {
            "name": "Content-Type",
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "raw",
          "raw": "{\n    \"workspace\": {\n        \"name\": \"New Workspace updated\",\n        \"type\": \"personal\",\n        \"description\": \"Some description\",\n        \"collections\": [\n            {\n                \"id\": \"e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\",\n                \"name\": \"Straw hats\",\n                \"uid\": \"8154-e1fc3c38-a0b8-44a3-bd44-d753a96b2e9d\"\n            }\n        ],\n        \"environments\": [\n            {\n                \"id\": \"83a1aaa2-a204-4bd8-9b92-4d486918906b\",\n                \"name\": \"env\",\n                \"uid\": \"8154-83a1aaa2-a204-4bd8-9b92-4d486918906b\"\n            }\n        ],\n        \"mocks\": [\n            {\n                \"id\": \"cda672ef-1375-40e9-baee-e20ece8d7b65\"\n            }\n        ],\n        \"monitors\": [\n            {\n                \"id\": \"1e889bd2-3862-4be0-b2c2-9b1fe9673aec\"\n            }\n        ]\n    }\n}"
        },
        "url": {
          "raw": "https://api.getpostman.com/workspaces/{{workspace_id}}",
          "protocol": "https",
          "host": [
            "api",
            "getpostman",
            "com"
          ],
          "path": [
            "workspaces",
            "{{workspace_id}}"
          ]
        }
      },
      "status": "Forbidden",
      "code": 403,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Content-Type",
          "value": "application/json",
          "description": {
            "content": "",
            "type": "text/plain"
          }
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"error\": {\n        \"name\": \"forbiddenError\",\n        \"message\": \"You do not have access to update this workspace.\"\n    }\n}"
    }
  ]
}