@Override
    public Integer call() throws Exception {
        super.call();

        if (fileValue != null) {
            value = Files.readString(Path.of(fileValue.toString().trim()));
        }

        if (isLiteral(value) || type == Type.STRING) {
            value = wrapAsJsonLiteral(value);
        }

        Duration ttl = expiration == null ? null : Duration.parse(expiration);
        MutableHttpRequest<String> request = HttpRequest
            .PUT(apiUri("/namespaces/") + namespace + "/kv/" + key, value)
            .contentType(MediaType.APPLICATION_JSON_TYPE);

        if (ttl != null) {
            request.header("ttl", ttl.toString());
        }

        try (DefaultHttpClient client = client()) {
            client.toBlocking().exchange(this.requestOptions(request));
        }
        return 0;
    }
@Test
    void objectStr() throws IOException, ResourceExpiredException {
        try (ApplicationContext ctx = ApplicationContext.run(Environment.CLI, Environment.TEST)) {

            EmbeddedServer embeddedServer = ctx.getBean(EmbeddedServer.class);
            embeddedServer.start();

            String[] args = {
                "--server",
                embeddedServer.getURL().toString(),
                "--user",
                "myuser:pass:word",
                "io.kestra.cli",
                "objectStr",
                "{\"some\":\"json\"}",
                "-t",
                "STRING"
            };
            PicocliRunner.call(KvUpdateCommand.class, ctx, args);

            KVStoreService kvStoreService = ctx.getBean(KVStoreService.class);
            KVStore kvStore = kvStoreService.get(null, "io.kestra.cli", null);

            assertThat(kvStore.getValue("objectStr").get(), is(new KVValue("{\"some\":\"json\"}")));
            assertThat(((InternalKVStore)kvStore).getRawValue("objectStr").get(), is("\"{\\\"some\\\":\\\"json\\\"}\""));
        }
    }