aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/configserver/Region.java
blob: 9114971e2d48dd00947b3bf6e18de6f0c1a3ee8f (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
35
36
37
38
39
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.controller.api.configserver;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonValue;
import com.yahoo.config.provision.RegionName;

/**
 * Region representation using the same definition as configserver. And allowing
 * serialization/deserialization to/from JSON.
 *
 * @author Ulf Lilleengen
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class Region {
    private final RegionName region;

    public Region(RegionName region) {
        this.region = region;
    }

    @JsonValue
    public String value() {
        return region.value();
    }

    @Override
    public String toString() { return value(); }

    public RegionName getRegion() {
        return region;
    }

    @JsonCreator
    public Region(String region) {
        this.region = com.yahoo.config.provision.RegionName.from(region);
    }
}