Relation
A relation between RelationPartners (ComponentVersions and Interfaces).
Relations are always directional.
Relations can derive Interfaces from end to start if both start and end are ComponentVersions
and the template of this Relation allows it.
The template defines which RelationPartners are possible as start / end.
For both start and end, if it is an Interface, it is possible to define the InterfaceParts this includes.
Caution: This is not a supertype of IssueRelation.
READ is granted if READ is granted on start.
type Relation implements BaseNode, MutableTemplatedNode, Node, TemplatedNode {
  derivesInvisible(
    after: String
    before: String
    filter: InterfaceDefinitionFilterInput
    first: Int
    last: Int
    orderBy: [InterfaceDefinitionOrder!]
    skip: Int
  ): InterfaceDefinitionConnection!
  derivesVisible(
    after: String
    before: String
    filter: InterfaceDefinitionFilterInput
    first: Int
    last: Int
    orderBy: [InterfaceDefinitionOrder!]
    skip: Int
  ): InterfaceDefinitionConnection!
  end: RelationPartner
  endParts(
    after: String
    before: String
    filter: InterfacePartFilterInput
    first: Int
    last: Int
    orderBy: [InterfacePartOrder!]
    skip: Int
  ): InterfacePartConnection!
  hasPermission(
    permission: AllPermissionEntry
  ): Boolean!
  id: ID!
  start: RelationPartner
  startParts(
    after: String
    before: String
    filter: InterfacePartFilterInput
    first: Int
    last: Int
    orderBy: [InterfacePartOrder!]
    skip: Int
  ): InterfacePartConnection!
  template: RelationTemplate!
  templatedField(
    name: String!
  ): JSON
  templatedFields(
    names: [String!]
    prefixMatching: Boolean
  ): [JSONField!]!
}
Fields
Relation.derivesInvisible ● InterfaceDefinitionConnection! non-null object
InterfaceDefinition this Relation derives invisible
Relation.derivesInvisible.after●StringscalarGet only items after the cursor
Relation.derivesInvisible.before ● String scalar
Get only items before the cursor
Relation.derivesInvisible.filter ● InterfaceDefinitionFilterInput input
Filter for specific items in the connection
Relation.derivesInvisible.first ● Int scalar
Get the first n items. Must not be used if before is specified
Relation.derivesInvisible.last ● Int scalar
Get the last n items. Must not be used if after is specified
Relation.derivesInvisible.orderBy ● [InterfaceDefinitionOrder!] list input
Order in which the items are sorted
Relation.derivesInvisible.skip ● Int scalar
Skips n items. First or last MUST be specified, is otherwise ignored
Relation.derivesVisible ● InterfaceDefinitionConnection! non-null object
InterfaceDefinition this Relation derives visible
Relation.derivesVisible.after●StringscalarGet only items after the cursor
Relation.derivesVisible.before ● String scalar
Get only items before the cursor
Relation.derivesVisible.filter ● InterfaceDefinitionFilterInput input
Filter for specific items in the connection
Relation.derivesVisible.first ● Int scalar
Get the first n items. Must not be used if before is specified
Relation.derivesVisible.last ● Int scalar
Get the last n items. Must not be used if after is specified
Relation.derivesVisible.orderBy ● [InterfaceDefinitionOrder!] list input
Order in which the items are sorted
Relation.derivesVisible.skip ● Int scalar
Skips n items. First or last MUST be specified, is otherwise ignored
Relation.end ● RelationPartner interface
The end of this Relation.
Relation.endParts ● InterfacePartConnection! non-null object
If the end is an Interface, the parts of that Interface this Relation includes.
Relation.endParts.after●StringscalarGet only items after the cursor
Relation.endParts.before ● String scalar
Get only items before the cursor
Relation.endParts.filter ● InterfacePartFilterInput input
Filter for specific items in the connection
Relation.endParts.first ● Int scalar
Get the first n items. Must not be used if before is specified
Relation.endParts.last ● Int scalar
Get the last n items. Must not be used if after is specified
Relation.endParts.orderBy ● [InterfacePartOrder!] list input
Order in which the items are sorted
Relation.endParts.skip ● Int scalar
Skips n items. First or last MUST be specified, is otherwise ignored
Relation.hasPermission ● Boolean! non-null scalar
Checks if the current user has a specific permission on this Node
Relation.hasPermission.permission●AllPermissionEntryenumThe permission to check for
Relation.id ● ID! non-null scalar
The unique id of this node
Relation.start ● RelationPartner interface
The start of this Relation.
Relation.startParts ● InterfacePartConnection! non-null object
If the start is an Interface, the parts of that Interface this Relation includes.
Relation.startParts.after●StringscalarGet only items after the cursor
Relation.startParts.before ● String scalar
Get only items before the cursor
Relation.startParts.filter ● InterfacePartFilterInput input
Filter for specific items in the connection
Relation.startParts.first ● Int scalar
Get the first n items. Must not be used if before is specified
Relation.startParts.last ● Int scalar
Get the last n items. Must not be used if after is specified
Relation.startParts.orderBy ● [InterfacePartOrder!] list input
Order in which the items are sorted
Relation.startParts.skip ● Int scalar
Skips n items. First or last MUST be specified, is otherwise ignored
Relation.template ● RelationTemplate! non-null object
The Template of this Relation.
Relation.templatedField ● JSON scalar
Value of a field defined by the template. Error if such a field is not defined.
Relation.templatedField.name●String!non-null scalarName of the extension field
Relation.templatedFields ● [JSONField!]! non-null object
All templatedFields If
namesis provided, only those matching the name. IfprefixMatchingis true, matching is done by prefix, otherwise by full name.
Relation.templatedFields.names●[String!]list scalarNames of the templated fields. If not provided, all templatedFields.
Relation.templatedFields.prefixMatching ● Boolean scalar
If true, name matching is performed as prefix matching, otherwise as absolute match. Defaults to absolute matching
Interfaces
BaseNode interface
Shared extensions to the node type.
MutableTemplatedNode interface
Interface for all types which support templates describing user writeable fields.
Node interface
Base class of all nodes
TemplatedNode interface
Interface for all types which support templates.
Member of
BulkCreateRelationPayload  object ● CreateRelationPayload  object ● RelationConnection  object ● RelationEdge  object ● UpdateRelationPayload  object