In my opinion the factory should return a complete object.  So we may use the default values for 'info', 'vendor-class' and 'hardware-model'. If the caller wants specific values (including None) he can override.