<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def register(self, make_public=False, cloud=None, api_key=None, version=None, **kwargs):
 """ This API endpoint allows you to register you collection in order to share read or write access to the collection with another user. Inputs: api_key (optional) - String: Your API key, required only if the key has not been declared elsewhere. This allows the API to recognize a request as yours and automatically route it to the appropriate destination. cloud (optional) - String: Your private cloud domain, required only if the key has not been declared elsewhere. This allows the API to recognize a request as yours and automatically route it to the appropriate destination. make_public (optional) - Boolean: When True, this option gives all indico users read access to your model. """

        kwargs['make_public'] = make_public
        url_params = {"batch": False, "api_key": api_key, "version": version, "method": "register"}
        return self._api_handler(None, cloud=cloud, api="custom", url_params=url_params, **kwargs)