content: 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;
  }