code: def register_model(self, model_id, properties, parameters, outputs, connector):
          
          # Validate the given connector information
          self.validate_connector(connector)
          # Connector information is valid. Ok to register the model. Will raise
          # ValueError if model with given identifier exists. Catch duplicate
          # key error to transform it into a ValueError
          try:
              return self.registry.register_model(
                  model_id,
                  properties,
                  parameters,
                  outputs,
                  connector
              )
          except DuplicateKeyError as ex:
              raise ValueError(str(ex))
docs: Register a new model with the engine. Expects connection information
          for RabbitMQ to submit model run requests to workers.
  
          Raises ValueError if the given model identifier is not unique.
  
          Parameters
          ----------
          model_id : string
              Unique model identifier
          properties : Dictionary
              Dictionary of model specific properties.
          parameters :  list(scodata.attribute.AttributeDefinition)
              List of attribute definitions for model run parameters
          outputs : ModelOutputs
              Description of model outputs
          connector : dict
              Connection information to communicate with model workers. Expected
              to contain at least the connector name 'connector'.
  
          Returns
          -------
          ModelHandle