code: def _process_data(self, **data) -> dict:
          
          env_prefix = data.pop("env_prefix", None)
          environs = self._get_environs(env_prefix)
          if environs:
              data = merge_dicts(data, environs)
  
          data = self._merge_defaults(data)
          self._validate_data(data)
          data = self._validate_data_dependencies(data)
          data = self._prepare_data(data)
          return data
docs: The main method that process all resources data. Validates schema, gets environs, validates data, prepares
           it via provider requirements, merges defaults and check for data dependencies
  
          :param data: The raw data passed by the notifiers client
          :return: Processed data