def _ParseLinks(links_body: syaml.YAML) -> Set[link.Link]:
  """Parses YAML defining links between the fields of one entity and another.

  Links are always defined on the target entity.

  Args:
    links_body: YAML body for the entity links

  Returns:
    A set of Link instances
  """

  links = set()

  for source_entity, field_map in links_body.items():
    links.add(link.Link(source_entity, field_map))

  return links
def _ParseConnections(
    connections_body: syaml.YAML) -> Set[connection.Connection]:
  """Parses YAML defining connections between one entity and other.

  Connections are always defined on the target entity.

  Args:
    connections_body: YAML body for the entity connections

  Returns:
    A set of Connection instances
  """

  connections = set()

  for source_entity, connection_type in connections_body.items():
    connections.add(connection.Connection(connection_type, source_entity))

  return connections