code: def _pre_init(self, object_type):
          
          # Internal Ansible function to load the arguments
          pre_params = _load_params()
  
          login_params = {}
          for key in six.iterkeys(self.login_argument_spec):
              if key not in pre_params or not pre_params[key]:
                  raise ValueError('Argument [%s] is required' % key)
  
              login_params[key] = pre_params[key]
  
          # Save a list of all the specified parameters so we know which null
          # parameters to remove
          self.specified_params = [k for k in six.iterkeys(pre_params)
                                   if not k.startswith('_')]
  
          # Save the manager as, for example `client.config.hostgroups`
          client = OpsviewClient(**login_params)
          self.manager = getattr(client.config, object_type)
  
          # Build the argument spec with the necessary values
          self.argspec = self._build_argspec()
          self.argspec.update(self.login_argument_spec)
          self.argspec.update(self.additional_argument_spec)
docs: To know the arguments, they must be loaded from the schema. This is
          only possible once the client has been initialized (otherwise the
          opsview version is not known). This function gathers the connection
          arguments before the module is initialized so that the argument spec
          can be set.
          It also gets a list of all parameters which have been specified so that
          we can differentiate between null parameters and omitted parameters.