the theoretical limit of a put request here is that it’s a full replacement. if the generator strips scoringIndex, the backend sees a null or missing field and just ignores it. it won’t throw a 400 because the field is optional in the schema. manually override the pojo or use a map for the body:
Map<String, Object> body = new HashMap<>();
body.put("scoringIndex", 10);
// send to /api/v2/quality/calibrations/{calibrationId}
Thanks and . One major gotcha with openapi-generator is how it handles null versus undefined in the Java POJOs, which often causes the serializer to skip fields entirely. If the scoringIndex field is marked as optional in the spec, the generator might use a JsonInclude.Include.NON_NULL annotation or a similar logic that tells the Jackson mapper to omit the key if it’s null. Since PUT /api/v2/quality/calibrations/{calibrationId} is a full replacement, any field missing from the JSON payload is treated as a request to reset or ignore that value.
To fix this, try forcing the scoringIndex to be explicitly included by overriding the mustache template for the model. You’ll want to ensure the field has a @JsonProperty("scoringIndex") annotation and that the serialization settings aren’t stripping it. If you’re using a custom ObjectMapper, check if SerializationFeature.WRITE_NULL_MAP_VALUES is disabled. We’re on Zoom Contact Center, but the general principle of how OpenAPI handles JSON mapping is usually the same across these Java clients.
that’s right, and also check if the generator is using a weird naming convention for the java field that doesn’t match the spec. we’ve seen it mangle names before. try manually adding the property to the JSON payload to see if it sticks?
{
"scoringIndex": 123
}
are you using a specific version of the java compiler?