# Associations Entity Manager will create [associations][1] between entities in certain cases. ## `contained_by`, `containing` Entity Manager can model the [physical topology][2] of how entities plug into each other when upstream and downstream ports are added as `Exposes` elements. It will then create the 'upstream containing downstream' and 'downstream contained_by upstream' associations for the connected entities. For example, taken from the referenced physical topology design: superchassis.json: ```json { "Exposes": [ { "Name": "MyPort", "Type": "BackplanePort" } ], "Name": "Superchassis" } ``` subchassis.json: ```json { "Exposes": [ { "ConnectsToType": "BackplanePort", "Name": "MyDownstreamPort", "Type": "DownstreamPort" } ], "Name": "Subchassis" } ``` Entity Manager will create the 'Superchassis containing Subchassis' and 'Subchassis contained_by Superchassis` associations, putting the associations definition interface on the downstream entity. ## `powered_by`, `powering` In addition to the `containing` associations, entity-manager will add `powering`/`powered_by` associations between a power supply and its parent when its downstream port is marked as a `PowerPort`: ```json { "ConnectsToType": "Mobo Upstream Port", "Name": "PSU $BUS Downstream Port", "Type": "DownstreamPort", "PowerPort": true } ``` [1]: https://github.com/openbmc/docs/blob/master/architecture/object-mapper.md#associations [2]: https://github.com/openbmc/docs/blob/master/designs/physical-topology.md