
org.kiwiproject.consul.model.acl.Token Maven / Gradle / Ivy
package org.kiwiproject.consul.model.acl;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.google.common.collect.ImmutableList;
import org.immutables.value.Value;
import java.util.List;
import java.util.Optional;
@Value.Immutable
@Value.Style(jakarta = true)
@JsonSerialize(as = ImmutableToken.class)
@JsonDeserialize(as = ImmutableToken.class)
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class Token {
@JsonProperty("AccessorID")
public abstract Optional id();
@JsonProperty("SecretID")
public abstract Optional secretId();
@JsonProperty("Description")
public abstract Optional description();
@JsonProperty("Policies")
@JsonDeserialize(as = ImmutableList.class, contentAs = PolicyLink.class)
public abstract List policies();
@JsonProperty("Roles")
@JsonDeserialize(as = ImmutableList.class, contentAs = RoleLink.class)
public abstract List roles();
@JsonProperty("ServiceIdentities")
@JsonDeserialize(as = ImmutableList.class, contentAs = ServiceIdentity.class)
public abstract List serviceIdentities();
@JsonProperty("NodeIdentities")
@JsonDeserialize(as = ImmutableList.class, contentAs = NodeIdentity.class)
public abstract List nodeIdentities();
@JsonProperty("Local")
public abstract Optional local();
@JsonProperty("ExpirationTime")
public abstract Optional expirationTime();
@JsonProperty("ExpirationTTL")
public abstract Optional expirationTTL();
@JsonProperty("Namespace")
public abstract Optional namespace();
@Value.Immutable
@JsonSerialize(as = ImmutablePolicyLink.class)
@JsonDeserialize(as = ImmutablePolicyLink.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract static class PolicyLink {
@JsonProperty("ID")
public abstract Optional id();
@JsonProperty("Name")
public abstract Optional name();
}
@Value.Immutable
@JsonSerialize(as = ImmutableRoleLink.class)
@JsonDeserialize(as = ImmutableRoleLink.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract static class RoleLink {
@JsonProperty("ID")
public abstract Optional id();
@JsonProperty("Name")
public abstract Optional name();
}
@Value.Immutable
@JsonSerialize(as = ImmutableServiceIdentity.class)
@JsonDeserialize(as = ImmutableServiceIdentity.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract static class ServiceIdentity {
@JsonProperty("ServiceName")
public abstract String name();
@JsonProperty("Datacenters")
@JsonDeserialize(as = ImmutableList.class, contentAs = String.class)
public abstract List datacenters();
}
@Value.Immutable
@JsonSerialize(as = ImmutableNodeIdentity.class)
@JsonDeserialize(as = ImmutableNodeIdentity.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract static class NodeIdentity {
@JsonProperty("NodeName")
public abstract String name();
@JsonProperty("Datacenter")
public abstract String datacenter();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy