---
title: "Changes to Upsert a Upstream"
method: PUT
path: "/v2/control-planes/{controlPlaneId}/core-entities/upstreams/{UpstreamId}"
---

# Changes to Upsert a Upstream

`PUT /v2/control-planes/{controlPlaneId}/core-entities/upstreams/{UpstreamId}`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 6 of 87 revisions.

- **2025-10-30** `845120e19d45`: 2 breaking
- **2025-10-23** `8ab3ec3ed301`: 6 breaking, 14 info
- **2025-09-16** `ddf026fbd25b`: 4 breaking, 36 warning
- **2025-08-22** `3c0154b2053a`: 8 breaking, 64 info
- **2025-08-14** `6333a0d3b095`: 2 breaking, 56 info
- **2025-07-22** `76b0fefddb0d`: 1 breaking, 1 warning, 60 info

## Changes

- **2025-10-30** `845120e19d45`: 2 breaking
  - the request property `healthchecks/active/headers` became not nullable
  - the request property `healthchecks/active/https_sni` became not nullable
- **2025-10-23** `8ab3ec3ed301`: 6 breaking, 14 info
  - the request property `healthchecks/active` became not nullable
  - the request property `healthchecks/active/healthy` became not nullable
  - the request property `healthchecks/active/unhealthy` became not nullable
  - the request property `healthchecks/passive` became not nullable
  - the request property `healthchecks/passive/healthy` became not nullable
  - the request property `healthchecks/passive/unhealthy` became not nullable
  - the `active` request property default value `{"concurrency":10,"healthy":{"http_statuses":[200,302],"interval":0,"successes":0},"http_path":"/","https_verify_certificate":true,"timeout":1,"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}}` was added
  - the `healthchecks` request property default value `{"active":{"concurrency":10,"healthy":{"http_statuses":[200,302],"interval":0,"successes":0},"http_path":"/","https_verify_certificate":true,"timeout":1,"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}},"passive":{"healthy":{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0},"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}}}` was added
  - the `healthy` request property default value `{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0}` was added
  - the `healthy` request property default value `{"http_statuses":[200,302],"interval":0,"successes":0}` was added
  - the `passive` request property default value `{"healthy":{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0},"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}}` was added
  - the `unhealthy` request property default value `{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}` was added
  - the `unhealthy` request property default value `{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}` was added
  - the `active` response's property default value `{"concurrency":10,"healthy":{"http_statuses":[200,302],"interval":0,"successes":0},"http_path":"/","https_verify_certificate":true,"timeout":1,"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}}` was added for the status `200`
  - the `healthchecks` response's property default value `{"active":{"concurrency":10,"healthy":{"http_statuses":[200,302],"interval":0,"successes":0},"http_path":"/","https_verify_certificate":true,"timeout":1,"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}},"passive":{"healthy":{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0},"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}}}` was added for the status `200`
  - the `healthy` response's property default value `{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0}` was added for the status `200`
  - the `healthy` response's property default value `{"http_statuses":[200,302],"interval":0,"successes":0}` was added for the status `200`
  - the `passive` response's property default value `{"healthy":{"http_statuses":[200,201,202,203,204,205,206,207,208,226,300,301,302,303,304,305,306,307,308],"successes":0},"type":"http","unhealthy":{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}}` was added for the status `200`
  - the `unhealthy` response's property default value `{"http_failures":0,"http_statuses":[429,404,500,501,502,503,504,505],"interval":0,"tcp_failures":0,"timeouts":0}` was added for the status `200`
  - the `unhealthy` response's property default value `{"http_failures":0,"http_statuses":[429,500,503],"tcp_failures":0,"timeouts":0}` was added for the status `200`
- **2025-09-16** `ddf026fbd25b`: 4 breaking, 36 warning
  - the `hash_fallback_query_arg` request property's minLength was increased from `0` to `1`
  - the `hash_fallback_uri_capture` request property's minLength was increased from `0` to `1`
  - the `hash_on_query_arg` request property's minLength was increased from `0` to `1`
  - the `hash_on_uri_capture` request property's minLength was increased from `0` to `1`
  - the `healthchecks/active/concurrency` request property's max was set to `2147483648.00`
  - the `healthchecks/active/healthy/http_statuses/items/` request property's max was set to `999.00`
  - the `healthchecks/active/healthy/interval` request property's max was set to `65535.00`
  - the `healthchecks/active/healthy/successes` request property's max was set to `255.00`
  - the `healthchecks/active/timeout` request property's max was set to `65535.00`
  - the `healthchecks/active/unhealthy/http_failures` request property's max was set to `255.00`
  - the `healthchecks/active/unhealthy/http_statuses/items/` request property's max was set to `999.00`
  - the `healthchecks/active/unhealthy/interval` request property's max was set to `65535.00`
  - the `healthchecks/active/unhealthy/tcp_failures` request property's max was set to `255.00`
  - the `healthchecks/active/unhealthy/timeouts` request property's max was set to `255.00`
  - the `healthchecks/passive/healthy/http_statuses/items/` request property's max was set to `999.00`
  - the `healthchecks/passive/healthy/successes` request property's max was set to `255.00`
  - the `healthchecks/passive/unhealthy/http_failures` request property's max was set to `255.00`
  - the `healthchecks/passive/unhealthy/http_statuses/items/` request property's max was set to `999.00`
  - the `healthchecks/passive/unhealthy/tcp_failures` request property's max was set to `255.00`
  - the `healthchecks/passive/unhealthy/timeouts` request property's max was set to `255.00`
  - the `healthchecks/threshold` request property's max was set to `100.00`
  - the `slots` request property's max was set to `65536.00`
  - the `healthchecks/active/concurrency` request property's min was set to `1.00`
  - the `healthchecks/active/healthy/http_statuses/items/` request property's min was set to `100.00`
  - the `healthchecks/active/healthy/interval` request property's min was set to `0.00`
  - the `healthchecks/active/healthy/successes` request property's min was set to `0.00`
  - the `healthchecks/active/timeout` request property's min was set to `0.00`
  - the `healthchecks/active/unhealthy/http_failures` request property's min was set to `0.00`
  - the `healthchecks/active/unhealthy/http_statuses/items/` request property's min was set to `100.00`
  - the `healthchecks/active/unhealthy/interval` request property's min was set to `0.00`
  - the `healthchecks/active/unhealthy/tcp_failures` request property's min was set to `0.00`
  - the `healthchecks/active/unhealthy/timeouts` request property's min was set to `0.00`
  - the `healthchecks/passive/healthy/http_statuses/items/` request property's min was set to `100.00`
  - the `healthchecks/passive/healthy/successes` request property's min was set to `0.00`
  - the `healthchecks/passive/unhealthy/http_failures` request property's min was set to `0.00`
  - the `healthchecks/passive/unhealthy/http_statuses/items/` request property's min was set to `100.00`
  - the `healthchecks/passive/unhealthy/tcp_failures` request property's min was set to `0.00`
  - the `healthchecks/passive/unhealthy/timeouts` request property's min was set to `0.00`
  - the `healthchecks/threshold` request property's min was set to `0.00`
  - the `slots` request property's min was set to `10.00`
- **2025-08-22** `3c0154b2053a`: 8 breaking, 64 info
  - the response property `healthchecks/active` became nullable for the status `200`
  - the response property `healthchecks/active/headers` became nullable for the status `200`
  - the response property `healthchecks/active/healthy` became nullable for the status `200`
  - the response property `healthchecks/active/https_sni` became nullable for the status `200`
  - the response property `healthchecks/active/unhealthy` became nullable for the status `200`
  - the response property `healthchecks/passive` became nullable for the status `200`
  - the response property `healthchecks/passive/healthy` became nullable for the status `200`
  - the response property `healthchecks/passive/unhealthy` became nullable for the status `200`
  - the request property `healthchecks/active` became nullable
  - the request property `healthchecks/active/headers` became nullable
  - the request property `healthchecks/active/healthy` became nullable
  - the request property `healthchecks/active/https_sni` became nullable
  - the request property `healthchecks/active/unhealthy` became nullable
  - the request property `healthchecks/passive` became nullable
  - the request property `healthchecks/passive/healthy` became nullable
  - the request property `healthchecks/passive/unhealthy` became nullable
  - the `algorithm` request property default value `round-robin` was added
  - the `concurrency` request property default value `10` was added
  - the `hash_fallback` request property default value `none` was added
  - the `hash_on` request property default value `none` was added
  - the `hash_on_cookie_path` request property default value `/` was added
  - the `http_failures` request property default value `0` was added
  - the `http_failures` request property default value `0` was added
  - the `http_path` request property default value `/` was added
  - the `http_statuses` request property default value `200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308` was added
  - the `http_statuses` request property default value `200, 302` was added
  - the `http_statuses` request property default value `429, 404, 500, 501, 502, 503, 504, 505` was added
  - the `http_statuses` request property default value `429, 500, 503` was added
  - the `https_verify_certificate` request property default value `true` was added
  - the `interval` request property default value `0` was added
  - the `interval` request property default value `0` was added
  - the `slots` request property default value `10000` was added
  - the `sticky_sessions_cookie_path` request property default value `/` was added
  - the `successes` request property default value `0` was added
  - the `successes` request property default value `0` was added
  - the `tcp_failures` request property default value `0` was added
  - the `tcp_failures` request property default value `0` was added
  - the `threshold` request property default value `0` was added
  - the `timeout` request property default value `1` was added
  - the `timeouts` request property default value `0` was added
  - …32 more
- **2025-08-14** `6333a0d3b095`: 2 breaking, 56 info
  - the `healthchecks/active/headers/additionalProperties/` request property type changed from `string` to `array`
  - the `healthchecks/active/headers/additionalProperties/` response's property type changed from `string` to `array` for status `200`
  - the `algorithm` request property default value `round-robin` was removed
  - the `concurrency` request property default value `10` was removed
  - the `hash_fallback` request property default value `none` was removed
  - the `hash_on` request property default value `none` was removed
  - the `hash_on_cookie_path` request property default value `/` was removed
  - the `http_failures` request property default value `0` was removed
  - the `http_failures` request property default value `0` was removed
  - the `http_path` request property default value `/` was removed
  - the `http_statuses` request property default value `200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308` was removed
  - the `http_statuses` request property default value `200, 302` was removed
  - the `http_statuses` request property default value `429, 404, 500, 501, 502, 503, 504, 505` was removed
  - the `http_statuses` request property default value `429, 500, 503` was removed
  - the `https_verify_certificate` request property default value `true` was removed
  - the `interval` request property default value `0` was removed
  - the `interval` request property default value `0` was removed
  - the `slots` request property default value `10000` was removed
  - the `sticky_sessions_cookie_path` request property default value `/` was removed
  - the `successes` request property default value `0` was removed
  - the `successes` request property default value `0` was removed
  - the `tcp_failures` request property default value `0` was removed
  - the `tcp_failures` request property default value `0` was removed
  - the `threshold` request property default value `0` was removed
  - the `timeout` request property default value `1` was removed
  - the `timeouts` request property default value `0` was removed
  - the `timeouts` request property default value `0` was removed
  - the `type` request property default value `http` was removed
  - the `type` request property default value `http` was removed
  - the `use_srv_name` request property default value `false` was removed
  - the `algorithm` response's property default value `round-robin` was removed for the status `200`
  - the `concurrency` response's property default value `10` was removed for the status `200`
  - the `hash_fallback` response's property default value `none` was removed for the status `200`
  - the `hash_on` response's property default value `none` was removed for the status `200`
  - the `hash_on_cookie_path` response's property default value `/` was removed for the status `200`
  - the `http_failures` response's property default value `0` was removed for the status `200`
  - the `http_failures` response's property default value `0` was removed for the status `200`
  - the `http_path` response's property default value `/` was removed for the status `200`
  - the `http_statuses` response's property default value `200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308` was removed for the status `200`
  - the `http_statuses` response's property default value `200, 302` was removed for the status `200`
  - …18 more
- **2025-07-22** `76b0fefddb0d`: 1 breaking, 1 warning, 60 info
  - the response property `tags` became nullable for the status `200`
  - added the new `sticky-sessions` enum value to the `algorithm` response property for the response status `200`
  - added the new optional request property `sticky_sessions_cookie`
  - added the new optional request property `sticky_sessions_cookie_path`
  - the request property `tags` became nullable
  - the `algorithm` request property default value `round-robin` was added
  - the `concurrency` request property default value `10` was added
  - the `hash_fallback` request property default value `none` was added
  - the `hash_on` request property default value `none` was added
  - the `hash_on_cookie_path` request property default value `/` was added
  - the `http_failures` request property default value `0` was added
  - the `http_failures` request property default value `0` was added
  - the `http_path` request property default value `/` was added
  - the `http_statuses` request property default value `200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 303, 304, 305, 306, 307, 308` was added
  - the `http_statuses` request property default value `200, 302` was added
  - the `http_statuses` request property default value `429, 404, 500, 501, 502, 503, 504, 505` was added
  - the `http_statuses` request property default value `429, 500, 503` was added
  - the `https_verify_certificate` request property default value `true` was added
  - the `interval` request property default value `0` was added
  - the `interval` request property default value `0` was added
  - the `slots` request property default value `10000` was added
  - the `successes` request property default value `0` was added
  - the `successes` request property default value `0` was added
  - the `tcp_failures` request property default value `0` was added
  - the `tcp_failures` request property default value `0` was added
  - the `threshold` request property default value `0` was added
  - the `timeout` request property default value `1` was added
  - the `timeouts` request property default value `0` was added
  - the `timeouts` request property default value `0` was added
  - the `type` request property default value `http` was added
  - the `type` request property default value `http` was added
  - the `use_srv_name` request property default value `false` was added
  - added the new `sticky-sessions` enum value to the request property `algorithm`
  - added the optional property `sticky_sessions_cookie` to the response with the `200` status
  - added the optional property `sticky_sessions_cookie_path` to the response with the `200` status
  - the `algorithm` response's property default value `round-robin` was added for the status `200`
  - the `concurrency` response's property default value `10` was added for the status `200`
  - the `hash_fallback` response's property default value `none` was added for the status `200`
  - the `hash_on` response's property default value `none` was added for the status `200`
  - the `hash_on_cookie_path` response's property default value `/` was added for the status `200`
  - …22 more

---

[Operation](https://skmtc.dev/kong/apis/konnect-api-go-sdk/docs/v2/control-planes/:controlPlaneId/core-entities/upstreams/:UpstreamId/put.md) · [API](https://skmtc.dev/kong/apis/konnect-api-go-sdk.md) · [Page](https://skmtc.dev/kong/apis/konnect-api-go-sdk/changes/v2/control-planes/:controlPlaneId/core-entities/upstreams/:UpstreamId/put)
