The Links API manages the links that represent the relationships between Managed Fusion objects. You can see these links in the Object Explorer by pressing CMD-K or CTRL-K from any screen in the Managed Fusion UI. You can also export and import links using the Objects API. Links are structured as a tuple of (subject, object, linkType). An example would be (foo, bar, dependsOn), which would read as “foo dependsOn bar”. For more information, view the API specification. The possible values of linkType are as follows:
Trigger typeParameters
inContextOf

The subject exists in the context of the object, which is an app. In this example, the “Movie_Search” app is the context for a parser with the same name: {"subject" : "parser:Movie_Search","object" : "app:Movie_Search","linkType" : "inContextOf","originator" : "unspecified"}

hasContext

The subject is an app that contains the object. In this example, an index profile exists in the context of the “Movie_Search” app: {"subject" : "app:Movie_Search","object" : "index-profile:Movie_Search","linkType" : "hasContext","originator" : "unspecified"}

dependsOn

The subject depends on the object. In this example, a datasource called “web_pokeapi_co-default” depends on a parser by the same name: {"subject" : "datasource:web_pokeapi_co-default","object" : "parser:web_pokeapi_co-default","linkType" : "dependsOn"}

supports

The subject is depended on by the object (the reverse of dependsOn). In this example, a parser called “web_pokeapi_co-default” supports a datasource by the same name: {"subject" : "parser:web_pokeapi_co-default","object" : "datasource:web_pokeapi_co-default","linkType" : "supports"}

isPartOf

The subject is part of the object, where the object is a group. In this example, an aggregation called “click-signals-default” is part of a group called “signals-object-group-default”: {"subject" : "aggregation:click-signals-default","object" : "group:signals-object-group-default","linkType" : "isPartOf"}

hasPart

The subject is a group, of which the object is a member (the reverse of isPartOf). In this example, a group called “signals-object-group-default” has a member aggregation “click-signals-default”: {"subject" : "group:signals-object-group-default","object" : "aggregation:click-signals-default","linkType" : "hasPart"}

relatesTo

The subject relates to the object. This is a uni-directional relationship that associates two objects that have none of the relationships described above. For example, when recommendations are enabled for the default collection, Managed Fusion creates a group of objects which relates to the default collection: {"subject" : "group:recommendations-default","object" : "collection:default","linkType" : "relatesTo"}

With the exception of the relatesTo link type, links are reversible:
  • inContextOf is the reverse of hasContext (and vice versa).
  • dependsOn is the reverse of supports (and vice versa).
  • isPartOf is the reverse of hasPart (and vice versa).
For example, here is the group of links for the signals-default collection:
[
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default_signals_aggr",
    "linkType": "hasPart"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "spark:default_click_signals_aggregation",
    "linkType": "hasPart"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default",
    "linkType": "relatesTo"
  },
  {
    "subject": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "object": "collection:default_signals",
    "linkType": "hasPart"
  }
]
When we request the links for one of the hasPart objects shown above, we get the reverse representation:
GET https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/links?subject=collection:default_signals_aggr

[
  {
    "subject": "collection:default_signals_aggr",
    "object": "group:4e6ee9a6-d4ab-413a-ac70-a27c1445bb60",
    "linkType": "isPartOf"
  }
]

Examples

Get links to the default collection
curl https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/links?subject=collection:default
Output:
[ { "subject": "collection:default", "object": "index-pipeline:default", "linkType": "supports" } ]
Create a new link
curl -X PUT https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/links -H 'content-type: application/json' -d '{"linkType": "supports", "object": "index-pipeline:default", "subject": "collection:default"}'
Output:
{ "subject" : "collection:default", "object" : "index-pipeline:default", "linkType" : "supports" }
Delete a link
curl -X DELETE https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/links?subject=collection:default