package org.alien4cloud.tosca.model.types;
import static alien4cloud.dao.model.FetchContext.*;
import java.util.Map;
import org.alien4cloud.tosca.model.definitions.IValue;
import org.elasticsearch.annotation.ESObject;
import org.elasticsearch.annotation.ObjectField;
import org.elasticsearch.annotation.query.FetchContext;
import org.elasticsearch.annotation.query.TermsFacet;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import alien4cloud.json.deserializer.AttributeDeserializer;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@ESObject
public class CapabilityType extends AbstractInheritableToscaType {
@ObjectField(enabled = false)
@FetchContext(contexts = { SUMMARY, QUICK_SEARCH, TAG_SUGGESTION }, include = { false, false, false })
@JsonDeserialize(contentUsing = AttributeDeserializer.class)
private Map<String, IValue> attributes;
/**
* An optional list of one or more valid names of Node Types that are supported as valid sources of any relationship established to the declared Capability
* Type.
*/
@TermsFacet
private String[] validSources;
}