Update an upstream in a service on a gateway group
PUT /apisix/admin/services/{service_id}/upstreams/{upstream_id}
PUT /apisix/admin/services/{service_id}/upstreams/{upstream_id}Interactive request editor loads with JavaScript.
In: header
Path Parameters
The unique identifier of the service.
^[a-zA-Z0-9-_.]+$1 <= length <= 256The unique identifier of the upstream.
^[a-zA-Z0-9-_.]+$1 <= length <= 256Query Parameters
Gateway group ID. Optional when using the gateway group admin key to authenticate.
1 <= lengthRequest Body
application/json
The upstream contains necessary information for the gateway to proxy request to the backend service.
The upstream contains necessary information for the gateway to proxy request to the backend service.
Response Body
application/json
application/json
curl -X PUT "$API_BASE_URL/apisix/admin/services/bd58fce2-b6cc-4d2d-a53c-6ce11b19c101/upstreams/bd58fce2-b6cc-4d2d-a53c-6ce11b19c101?gateway_group_id=86fb9981-d9d2-4555-9df8-91ae92129335" \ -H "Content-Type: application/json" \ -d '{}'Upstream configuration updated successfully.
{
"value": {
"name": "us-west-rsc",
"scheme": "http",
"desc": "Object description.",
"labels": {
"version": "v2",
"env": "prod"
},
"type": "chash",
"hash_on": "vars",
"key": "$host",
"retries": 50,
"keepalive_pool": {
"size": 320,
"idle_timeout": 60,
"requests": 1000
},
"timeout": {
"connect": 60,
"send": 60,
"read": 60
},
"retry_timeout": 0,
"pass_host": "pass",
"upstream_host": "httpbin.org",
"nodes": [
{
"host": "httpbin.org",
"port": 8080,
"weight": 100
}
],
"service_name": "<ServiceRegistryID>/public/group/httpbin",
"discovery_type": "nacos",
"discovery_args": {
"metadata": {
"namespace_id": "public",
"group_name": "DEFAULT_GROUP"
}
},
"tls": {
"client_cert": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
"client_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
},
"client_certificate": "bd58fce2-b6cc-4d2d-a53c-6ce11b19c101",
"ca_certificates": [
"bd58fce2-b6cc-4d2d-a53c-6ce11b19c101"
],
"tls_verify": true,
"checks": {
"active": {
"type": "http",
"timeout": 1,
"concurrency": 10,
"host": "httpbin.org",
"port": 1,
"http_path": "/",
"https_verify_certificate": true,
"req_headers": [
"user-agent: go/1.20"
],
"healthy": {
"interval": 1,
"http_statuses": [
200,
302
],
"successes": 2
},
"unhealthy": {
"interval": 1,
"http_statuses": [
429,
404,
500,
501,
502,
503,
504,
505
],
"http_failures": 5,
"tcp_failures": 2,
"timeouts": 3
}
}
},
"id": "bd58fce2-b6cc-4d2d-a53c-6ce11b19c101",
"gateway_group_id": "bc1b95c9-b348-4832-acc3-e257d2342df1",
"apisix_service_id": "b32e678e-7f6b-4a50-b113-550621ed4c01",
"created_at": 1742288232,
"updated_at": 1742288235
}
}Bad Request — The request was malformed or contained invalid parameters. Check the error_msg field for details.
{
"value": {},
"error_msg": "error message"
}Complete operation details and schema variants
PUT /apisix/admin/services/{service_id}/upstreams/{upstream_id}
Update an upstream in a service on a gateway group
Fully update an upstream in a service through an APISIX Admin API compatible endpoint under /apisix/admin/. Submit the complete upstream object to replace existing configuration.
Required IAM Permission: Action gateway:UpdatePublishedService, Resource arn:api7:gateway:gatewaygroup/%s/service/%s
Parameters
service_id(path, string, required): The unique identifier of the service.upstream_id(path, string, required): The unique identifier of the upstream.gateway_group_id(query, string, required): Gateway group ID. Optional when using the gateway group admin key to authenticate.
Request body
Content type: application/json
- oneOf variant 1: HTTP Upstream
name(string, optional): The upstream name.scheme(string, optional): The protocol that is used for communicating with the backend service when the service type ishttp.desc(string, optional): The object description.labels(object, optional): Key-value pairs of labels.type(string, optional): Load balancing algorithm to distribute traffic.hash_on(string, optional): Type of value to hash on whentypeischash.key(string, optional): Thekeyis used whentypeischash. The corresponding upstream ID is determined based on thehash_onandkeyvalues. - Whenhash_onis set tovars,keyis required and supports built-in variables. - Whenhash_onis set tovars_combinations,keyis required and supports a combination of built-in variables. - Whenhash_onis set toheader,keyis required and should be the name of the header. - Whenhash_onis set tocookie,keyis required and should be the name of the cookie. - Whenhash_onis set toconsumer,keyis not required, as the hash algorithm uses the authenticated consumer name.retries(integer, optional): The number of retries while passing the request to an upstream.keepalive_pool(object, optional): Upstream keepalive connection pool.keepalive_pool.size(integer, optional): The number of idle keepalive connections per worker to upstream servers.keepalive_pool.idle_timeout(number, optional): Time an idle keepalive connection remains open before being closed, in seconds.keepalive_pool.requests(integer, optional): The number of requests a single keepalive connection can handle before closing.timeout(object, optional): Timeout settings for connecting to, sending, and receiving messages from the upstream, in seconds.timeout.connect(number, optional): Connection timeout in seconds.timeout.send(number, optional): Sending timeout in seconds.timeout.read(number, optional): Receiving timeout in seconds.retry_timeout(number, optional): Timeout to continue with retries. Setting this to 0 disables the retry timeout.pass_host(string, optional): The approach to decide the host header before forwarding requests to an upstream.
passuses the host specified in the service.nodeuses the host specified in the upstream.rewriteuses custom host.
upstream_host(string, optional): Value to rewrite the host header to. Only used ifpass_hostisrewrite.nodes(array, optional): The upstream endpoints.nodes[].host(string, required): Upstream host.nodes[].port(integer, required): Upstream port.nodes[].weight(integer, required): Upstream weight.nodes[].priority(integer, optional): Node priority. A higher value corresponds to a higher priority.service_name(string, optional): Service name in the service registry. Only valid for service discovery.discovery_type(string, optional): Type of service discovery. Only valid for service discovery.discovery_args(object, optional): Service discovery arguments. Only valid for service discovery.discovery_args.metadata(object, optional):tls(object, optional): Replace withclient_certificateandca_certificates- oneOf variant 1
tls.client_cert(string, required): The certificate in PEM format.tls.client_key(string, required): The private key in PEM format.- oneOf variant 2
tls.client_cert_id(string, required): The object ID.client_certificate(string, optional): The object ID.ca_certificates(array, optional): CA certificates.tls_verify(boolean, optional): If true, verify TLS.checks(object, optional): Health check configurations.- anyOf variant 1: Active Check
checks.active(object, required): Active health check configurations.checks.active.type(string, optional): Active check probing type.checks.active.timeout(number, optional): Active check timeout in seconds.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.checks.active.host(string, optional): The HTTP host.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.checks.active.req_headers(array, optional): The request headers.checks.active.healthy(object, optional): Active health check healthy configurations.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.- anyOf variant 2: Passive Check
checks.active(object, required): Active health check configurations.checks.active.type(string, optional): Active check probing type.checks.active.timeout(number, optional): Active check timeout in seconds.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.checks.active.host(string, optional): The HTTP host.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.checks.active.req_headers(array, optional): The request headers.checks.active.healthy(object, optional): Active health check healthy configurations.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.checks.passive(object, required): Passive health check configurations.checks.passive.type(string, optional): Active check probing type.checks.passive.healthy(object, optional): Passive health check healthy configurations.checks.passive.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.passive.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.passive.unhealthy(object, optional): Passive health check unhealthy configurations.checks.passive.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.passive.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.passive.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.checks.passive.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.- oneOf variant 1: Use Upstream Nodes
- oneOf variant 2: Use Service Registry
- oneOf variant 2: Stream Upstream
name(string, optional): The object name.scheme(string, optional): The protocol that is used for communicating with the backend service when the service type isstream. Usetlsto make the gateway establish a TLS session with the backend service. The gateway does not verify the backend certificate for a stream upstream.desc(string, optional): The object description.labels(object, optional): Key-value pairs of labels.type(string, optional): Load balancing algorithm to distribute traffic.hash_on(string, optional): Type of value to hash on whentypeischash.key(string, optional): Thekeyis used whentypeischash. The corresponding upstream ID is determined based on thehash_onandkeyvalues. - Whenhash_onis set tovars,keyis required and supports built-in variables. - Whenhash_onis set tovars_combinations,keyis required and supports a combination of built-in variables. - Whenhash_onis set toheader,keyis required and should be the name of the header. - Whenhash_onis set tocookie,keyis required and should be the name of the cookie. - Whenhash_onis set toconsumer,keyis not required, as the hash algorithm uses the authenticated consumer name.retries(integer, optional): The number of retries while passing the request to an upstream using the underlying Nginx mechanism.retry_timeout(number, optional): Timeout to continue with retries. Setting this to 0 disables the retry timeout.timeout(object, optional): Timeout settings for connecting to, sending, and receiving messages from the upstream, in seconds.timeout.connect(number, optional): Connection timeout in seconds.timeout.send(number, optional): Sending timeout in seconds.timeout.read(number, optional): Receiving timeout in seconds.nodes(array, optional): The upstream endpoints.nodes[].host(string, required): Upstream host.nodes[].port(integer, required): Upstream port.nodes[].weight(integer, required): Upstream weight.nodes[].priority(integer, optional): Node priority. A higher value corresponds to a higher priority.checks(object, optional): Health check configurations.- anyOf variant 1: Active Check
checks.active(object, required): Active health check configurations.checks.active.type(string, optional): Active check probing type.checks.active.timeout(number, optional): Active check timeout in seconds.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.checks.active.host(string, optional): The HTTP host.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.checks.active.req_headers(array, optional): The request headers.checks.active.healthy(object, optional): Active health check healthy configurations.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.- anyOf variant 2: Passive Check
checks.active(object, required): Active health check configurations.checks.active.type(string, optional): Active check probing type.checks.active.timeout(number, optional): Active check timeout in seconds.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.checks.active.host(string, optional): The HTTP host.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.checks.active.req_headers(array, optional): The request headers.checks.active.healthy(object, optional): Active health check healthy configurations.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.checks.passive(object, required): Passive health check configurations.checks.passive.type(string, optional): Active check probing type.checks.passive.healthy(object, optional): Passive health check healthy configurations.checks.passive.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.checks.passive.healthy.successes(integer, optional): The number of successful probes to define a healthy target.checks.passive.unhealthy(object, optional): Passive health check unhealthy configurations.checks.passive.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.checks.passive.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.checks.passive.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.checks.passive.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.
Responses
200: Upstream configuration updated successfully.- allOf variant 1
value(object, optional): The specific resource.- allOf variant 2
value(object, optional): The upstream model.- allOf variant 1
- oneOf variant 1: HTTP Upstream
value.name(string, optional): The upstream name.value.scheme(string, optional): The protocol that is used for communicating with the backend service when the service type ishttp.value.desc(string, optional): The object description.value.labels(object, optional): Key-value pairs of labels.value.type(string, optional): Load balancing algorithm to distribute traffic.value.hash_on(string, optional): Type of value to hash on whentypeischash.value.key(string, optional): Thekeyis used whentypeischash. The corresponding upstream ID is determined based on thehash_onandkeyvalues. - Whenhash_onis set tovars,keyis required and supports built-in variables. - Whenhash_onis set tovars_combinations,keyis required and supports a combination of built-in variables. - Whenhash_onis set toheader,keyis required and should be the name of the header. - Whenhash_onis set tocookie,keyis required and should be the name of the cookie. - Whenhash_onis set toconsumer,keyis not required, as the hash algorithm uses the authenticated consumer name.value.retries(integer, optional): The number of retries while passing the request to an upstream.value.keepalive_pool(object, optional): Upstream keepalive connection pool.value.keepalive_pool.size(integer, optional): The number of idle keepalive connections per worker to upstream servers.value.keepalive_pool.idle_timeout(number, optional): Time an idle keepalive connection remains open before being closed, in seconds.value.keepalive_pool.requests(integer, optional): The number of requests a single keepalive connection can handle before closing.value.timeout(object, optional): Timeout settings for connecting to, sending, and receiving messages from the upstream, in seconds.value.timeout.connect(number, optional): Connection timeout in seconds.value.timeout.send(number, optional): Sending timeout in seconds.value.timeout.read(number, optional): Receiving timeout in seconds.value.retry_timeout(number, optional): Timeout to continue with retries. Setting this to 0 disables the retry timeout.value.pass_host(string, optional): The approach to decide the host header before forwarding requests to an upstream.
passuses the host specified in the service.nodeuses the host specified in the upstream.rewriteuses custom host.
value.upstream_host(string, optional): Value to rewrite the host header to. Only used ifpass_hostisrewrite.value.nodes(array, optional): The upstream endpoints.value.nodes[].host(string, required): Upstream host.value.nodes[].port(integer, required): Upstream port.value.nodes[].weight(integer, required): Upstream weight.value.nodes[].priority(integer, optional): Node priority. A higher value corresponds to a higher priority.value.service_name(string, optional): Service name in the service registry. Only valid for service discovery.value.discovery_type(string, optional): Type of service discovery. Only valid for service discovery.value.discovery_args(object, optional): Service discovery arguments. Only valid for service discovery.value.discovery_args.metadata(object, optional):value.tls(object, optional): Replace withclient_certificateandca_certificates- oneOf variant 1
value.tls.client_cert(string, required): The certificate in PEM format.value.tls.client_key(string, required): The private key in PEM format.- oneOf variant 2
value.tls.client_cert_id(string, required): The object ID.value.client_certificate(string, optional): The object ID.value.ca_certificates(array, optional): CA certificates.value.tls_verify(boolean, optional): If true, verify TLS.value.checks(object, optional): Health check configurations.- anyOf variant 1: Active Check
value.checks.active(object, required): Active health check configurations.value.checks.active.type(string, optional): Active check probing type.value.checks.active.timeout(number, optional): Active check timeout in seconds.value.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.value.checks.active.host(string, optional): The HTTP host.value.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.value.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.value.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.value.checks.active.req_headers(array, optional): The request headers.value.checks.active.healthy(object, optional): Active health check healthy configurations.value.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.value.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.value.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.value.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.value.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.- anyOf variant 2: Passive Check
value.checks.active(object, required): Active health check configurations.value.checks.active.type(string, optional): Active check probing type.value.checks.active.timeout(number, optional): Active check timeout in seconds.value.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.value.checks.active.host(string, optional): The HTTP host.value.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.value.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.value.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.value.checks.active.req_headers(array, optional): The request headers.value.checks.active.healthy(object, optional): Active health check healthy configurations.value.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.value.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.value.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.value.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.value.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.value.checks.passive(object, required): Passive health check configurations.value.checks.passive.type(string, optional): Active check probing type.value.checks.passive.healthy(object, optional): Passive health check healthy configurations.value.checks.passive.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.passive.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.passive.unhealthy(object, optional): Passive health check unhealthy configurations.value.checks.passive.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.passive.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.passive.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.value.checks.passive.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.- oneOf variant 1: Use Upstream Nodes
- oneOf variant 2: Use Service Registry
- oneOf variant 2: Stream Upstream
value.name(string, optional): The object name.value.scheme(string, optional): The protocol that is used for communicating with the backend service when the service type isstream. Usetlsto make the gateway establish a TLS session with the backend service. The gateway does not verify the backend certificate for a stream upstream.value.desc(string, optional): The object description.value.labels(object, optional): Key-value pairs of labels.value.type(string, optional): Load balancing algorithm to distribute traffic.value.hash_on(string, optional): Type of value to hash on whentypeischash.value.key(string, optional): Thekeyis used whentypeischash. The corresponding upstream ID is determined based on thehash_onandkeyvalues. - Whenhash_onis set tovars,keyis required and supports built-in variables. - Whenhash_onis set tovars_combinations,keyis required and supports a combination of built-in variables. - Whenhash_onis set toheader,keyis required and should be the name of the header. - Whenhash_onis set tocookie,keyis required and should be the name of the cookie. - Whenhash_onis set toconsumer,keyis not required, as the hash algorithm uses the authenticated consumer name.value.retries(integer, optional): The number of retries while passing the request to an upstream using the underlying Nginx mechanism.value.retry_timeout(number, optional): Timeout to continue with retries. Setting this to 0 disables the retry timeout.value.timeout(object, optional): Timeout settings for connecting to, sending, and receiving messages from the upstream, in seconds.value.timeout.connect(number, optional): Connection timeout in seconds.value.timeout.send(number, optional): Sending timeout in seconds.value.timeout.read(number, optional): Receiving timeout in seconds.value.nodes(array, optional): The upstream endpoints.value.nodes[].host(string, required): Upstream host.value.nodes[].port(integer, required): Upstream port.value.nodes[].weight(integer, required): Upstream weight.value.nodes[].priority(integer, optional): Node priority. A higher value corresponds to a higher priority.value.checks(object, optional): Health check configurations.- anyOf variant 1: Active Check
value.checks.active(object, required): Active health check configurations.value.checks.active.type(string, optional): Active check probing type.value.checks.active.timeout(number, optional): Active check timeout in seconds.value.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.value.checks.active.host(string, optional): The HTTP host.value.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.value.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.value.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.value.checks.active.req_headers(array, optional): The request headers.value.checks.active.healthy(object, optional): Active health check healthy configurations.value.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.value.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.value.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.value.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.value.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.- anyOf variant 2: Passive Check
value.checks.active(object, required): Active health check configurations.value.checks.active.type(string, optional): Active check probing type.value.checks.active.timeout(number, optional): Active check timeout in seconds.value.checks.active.concurrency(integer, optional): The number of targets to be checked at the same time during the active check.value.checks.active.host(string, optional): The HTTP host.value.checks.active.port(integer, optional): By default, the port is the same as the one defined in the upstream target.value.checks.active.http_path(string, optional): The HTTP path in HTTP probe requests.value.checks.active.https_verify_certificate(boolean, optional): Whether to verify the target's TLS certificate.value.checks.active.req_headers(array, optional): The request headers.value.checks.active.healthy(object, optional): Active health check healthy configurations.value.checks.active.healthy.interval(integer, optional): Time interval of checking healthy targets in seconds.value.checks.active.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.active.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.active.unhealthy(object, optional): Active health check unhealthy configurations.value.checks.active.unhealthy.interval(integer, optional): Time interval of checking unhealthy targets in seconds.value.checks.active.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.active.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.value.checks.active.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.active.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.value.checks.passive(object, required): Passive health check configurations.value.checks.passive.type(string, optional): Active check probing type.value.checks.passive.healthy(object, optional): Passive health check healthy configurations.value.checks.passive.healthy.http_statuses(array, optional): A list of HTTP response status codes which are considered healthy.value.checks.passive.healthy.successes(integer, optional): The number of successful probes to define a healthy target.value.checks.passive.unhealthy(object, optional): Passive health check unhealthy configurations.value.checks.passive.unhealthy.http_statuses(array, optional): A list of HTTP response status codes which are considered unhealthy.value.checks.passive.unhealthy.tcp_failures(integer, optional): The number of TCP-related failures to define an unhealthy target.value.checks.passive.unhealthy.timeouts(integer, optional): The number of probe timeouts to define an unhealthy target.value.checks.passive.unhealthy.http_failures(integer, optional): The number of HTTP-related failures to define an unhealthy target.- allOf variant 2
value.id(string, optional): The object ID.value.gateway_group_id(string, optional): The gateway group ID.value.apisix_service_id(string, optional): The service ID.value.created_at(integer, optional): The object created timestamp.value.updated_at(integer, optional): The object updated timestamp.400: Bad Request — The request was malformed or contained invalid parameters. Check the error_msg field for details.value(object, optional): The specific resource.error_msg(string, optional): The error message.
cURL
curl -X PUT '$API_BASE_URL/apisix/admin/services/{service_id}/upstreams/{upstream_id}'