blob: 81bb00645473a76cc5cb3ae0d2e2cd6f899750f7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package com.yahoo.vespa.hosted.node.admin.wireguard;
import com.yahoo.config.provision.WireguardKey;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Slime;
import com.yahoo.slime.SlimeUtils;
/**
* Wireguard parameters for a tenant host/node.
*
* @author gjoranv
*/
public record TenantParameters(String hostname, String ip, WireguardKey publicKey) {
public static TenantParameters fromJson(String json) {
Slime slime = SlimeUtils.jsonToSlime(json);
Cursor root = slime.get();
return new TenantParameters(
root.field("hostname").asString(),
root.field("ip").asString(),
WireguardKey.from(root.field("publicKey").asString())
);
}
public String toJson() {
Slime slime = new Slime();
Cursor cursor = slime.setObject();
cursor.setString("hostname", hostname);
cursor.setString("ip", ip);
cursor.setString("publicKey", publicKey.value());
return SlimeUtils.toJson(slime);
}
}
|