I'm not a fan of this setup with the sub properties.  I think it would be better setup where LocalDataSegmentPusherProvider extends LocalDataSegmentPusherConfig and passes itself into the constructor.