Skip to content
Hoody.com

Container-wide proxy root settings for the Proxy Discovery service. These endpoints manage the enable_proxy kill-switch and the default allow/deny policy that gates every proxy rule under it.

Use GET to read the current settings and the file:v<N> ETag, then PUT (or PATCH, which the endpoint accepts with identical behavior) to mutate one or both fields under optimistic-concurrency control.

Returns { enable_proxy, default } along with a file_version and etag for use as a precondition on the next update. The propagation object reports rollout state to running instances.

GET /api/v1/containers/{id}/proxy/settings

Section titled “GET /api/v1/containers/{id}/proxy/settings”
Terminal window
curl -X GET "https://api.hoody.com/api/v1/containers/{containerId}/proxy/settings" \
-H "Authorization: Bearer <token>"
NameInTypeRequiredDescription
idpathstringYesContainer ID
FieldTypeDescription
statusCodenumberHTTP-style status code returned in the envelope
messagestringHuman-readable summary of the outcome
data.enable_proxybooleanKill-switch for the entire proxy system. When false, every proxy request is blocked
data.defaultstringDefault policy applied when no rule matches: allow or deny
data.file_versionintegerMonotonic version counter for the settings file
data.etagstringOpaque ETag (file:v<N>) to send back as If-Match on update
propagation.committedbooleanWhether the change has been committed to the source of truth
propagation.completebooleanWhether every target instance has acknowledged the change
propagation.statestringRollout state: pending, applied, failed, unknown, or superseded
propagation.status_scopestringScope of the reported status, here always current
propagation.generationintegerGeneration number of the change being reported on
propagation.actionstringAction that triggered this propagation record
propagation.file_versionintegerFile version associated with this propagation
propagation.succeeded_countintegerNumber of instances that applied the change successfully
propagation.failed_countintegerNumber of instances that failed to apply the change
propagation.pending_countintegerNumber of instances that have not yet acknowledged
propagation.target_countintegerTotal number of instances the change was targeted at
propagation.retained_countintegerNumber of instances that retain an older generation

Updates one or both of enable_proxy and default. Optimistic concurrency is enforced through the If-Match header, which must carry the file:v<N> ETag returned by the previous GET. The endpoint also accepts PATCH with identical behavior.

PUT /api/v1/containers/{id}/proxy/settings

Section titled “PUT /api/v1/containers/{id}/proxy/settings”
Terminal window
curl -X PUT "https://api.hoody.com/api/v1/containers/{containerId}/proxy/settings" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-H "If-Match: file:v3" \
-d '{
"enable_proxy": true,
"default": "allow"
}'
NameInTypeRequiredDescription
idpathstringYesContainer ID
if-matchheaderstringYesfile:v<N> ETag precondition returned by the previous read

Send at least one of the fields. Omitting both violates minProperties: 1 and is rejected.

FieldTypeRequiredDescription
enable_proxybooleanNoKill-switch for the entire proxy system. When false, every proxy request is blocked
defaultstringNoDefault policy applied when no rule matches. Allowed values: allow, deny
{
"enable_proxy": true,
"default": "allow"
}
FieldTypeDescription
statusCodenumberHTTP-style status code returned in the envelope
messagestringHuman-readable summary of the outcome
data.enable_proxybooleanUpdated value of the kill-switch
data.defaultstringUpdated default policy: allow or deny
data.file_versionintegerNew monotonic version counter after the update
data.etagstringNew ETag (file:v<N>) to use for the next update
propagation.committedbooleanWhether the change has been committed to the source of truth
propagation.completebooleanWhether every target instance has acknowledged the change
propagation.statestringRollout state: pending, applied, failed, unknown, or superseded
propagation.status_scopestringScope of the reported status, here always current
propagation.generationintegerGeneration number of the change being reported on
propagation.actionstringAction that triggered this propagation record
propagation.file_versionintegerFile version associated with this propagation
propagation.succeeded_countintegerNumber of instances that applied the change successfully
propagation.failed_countintegerNumber of instances that failed to apply the change
propagation.pending_countintegerNumber of instances that have not yet acknowledged
propagation.target_countintegerTotal number of instances the change was targeted at
propagation.retained_countintegerNumber of instances that retain an older generation