Skip to content

Dynamic responses

Not every successful response in the supplied OpenAPI document has a formal JSON schema. The SDK must not fabricate one.

The following operations therefore use DynamicResource for their object shape where needed:

  • read organization;
  • project member rows;
  • project label rows;
  • used project tag rows;
  • project analytics;
  • ticket comment create response;
  • document comment create response;
  • notification create response.

DynamicResource stores every field returned by the API.

var member = client.projects().listMembers(projectId).getFirst();
String id = member.string("id").orElseThrow();
Integer count = member.integer("ticket_count").orElse(null);
JsonNode exact = member.extra("roles");

This is intentional. When the upstream OpenAPI contract later defines a stable schema, that response can gain a dedicated typed model without making up fields in the current SDK.