Definitely worth putting some defensive code in here.

gateway_interface_hash can come from (usually) Fog via the EdgeGateway class, or publicly from a user. Either way it's not trusted input.

I'll add some now.

The other thing I wanted to discuss was whether to highlight that this is a data-representation class, as opposed to the 'Entity' hashes like EdgeGateway, Vapp which by design are 'fetcher classes' which store no internal data.