docs: public ServiceCall<DialogNode> updateDialogNode(UpdateDialogNodeOptions updateDialogNodeOptions) {
      Validator.notNull(updateDialogNodeOptions, "updateDialogNodeOptions cannot be null");
      String[] pathSegments = { "v1/workspaces", "dialog_nodes" };
      String[] pathParameters = { updateDialogNodeOptions.workspaceId(), updateDialogNodeOptions.dialogNode() };
      RequestBuilder builder = RequestBuilder.post(RequestBuilder.constructHttpUrl(getEndPoint(), pathSegments,
          pathParameters));
      builder.query("version", versionDate);
      Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("conversation", "v1", "updateDialogNode");
      for (Entry<String, String> header : sdkHeaders.entrySet()) {
        builder.header(header.getKey(), header.getValue());
      }
      builder.header("Accept", "application/json");
      final JsonObject contentJson = new JsonObject();
      if (updateDialogNodeOptions.newDialogNode() != null) {
        contentJson.addProperty("dialog_node", updateDialogNodeOptions.newDialogNode());
      }
      if (updateDialogNodeOptions.newDescription() != null) {
        contentJson.addProperty("description", updateDialogNodeOptions.newDescription());
      }
      if (updateDialogNodeOptions.newConditions() != null) {
        contentJson.addProperty("conditions", updateDialogNodeOptions.newConditions());
      }
      if (updateDialogNodeOptions.newParent() != null) {
        contentJson.addProperty("parent", updateDialogNodeOptions.newParent());
      }
      if (updateDialogNodeOptions.newPreviousSibling() != null) {
        contentJson.addProperty("previous_sibling", updateDialogNodeOptions.newPreviousSibling());
      }
      if (updateDialogNodeOptions.newOutput() != null) {
        contentJson.add("output", GsonSingleton.getGson().toJsonTree(updateDialogNodeOptions.newOutput()));
      }
      if (updateDialogNodeOptions.newContext() != null) {
        contentJson.add("context", GsonSingleton.getGson().toJsonTree(updateDialogNodeOptions.newContext()));
      }
      if (updateDialogNodeOptions.newMetadata() != null) {
        contentJson.add("metadata", GsonSingleton.getGson().toJsonTree(updateDialogNodeOptions.newMetadata()));
      }
      if (updateDialogNodeOptions.newNextStep() != null) {
        contentJson.add("next_step", GsonSingleton.getGson().toJsonTree(updateDialogNodeOptions.newNextStep()));
      }
      if (updateDialogNodeOptions.newTitle() != null) {
        contentJson.addProperty("title", updateDialogNodeOptions.newTitle());
      }
      if (updateDialogNodeOptions.nodeType() != null) {
        contentJson.addProperty("type", updateDialogNodeOptions.nodeType());
      }
      if (updateDialogNodeOptions.newEventName() != null) {
        contentJson.addProperty("event_name", updateDialogNodeOptions.newEventName());
      }
      if (updateDialogNodeOptions.newVariable() != null) {
        contentJson.addProperty("variable", updateDialogNodeOptions.newVariable());
      }
      if (updateDialogNodeOptions.newActions() != null) {
        contentJson.add("actions", GsonSingleton.getGson().toJsonTree(updateDialogNodeOptions.newActions()));
      }
      if (updateDialogNodeOptions.newDigressIn() != null) {
        contentJson.addProperty("digress_in", updateDialogNodeOptions.newDigressIn());
      }
      if (updateDialogNodeOptions.newDigressOut() != null) {
        contentJson.addProperty("digress_out", updateDialogNodeOptions.newDigressOut());
      }
      if (updateDialogNodeOptions.newDigressOutSlots() != null) {
        contentJson.addProperty("digress_out_slots", updateDialogNodeOptions.newDigressOutSlots());
      }
      if (updateDialogNodeOptions.newUserLabel() != null) {
        contentJson.addProperty("user_label", updateDialogNodeOptions.newUserLabel());
      }
      builder.bodyJson(contentJson);
      return createServiceCall(builder.build(), ResponseConverterUtils.getObject(DialogNode.class));
    }