def self_register_user(self, user_name, account_id, user_terms_of_use, pseudonym_unique_id, communication_channel_address=None, communication_channel_type=None, user_birthdate=None, user_locale=None, user_short_name=None, user_sortable_name=None, user_time_zone=None):
        """
        Self register a user.

        Self register and return a new user and pseudonym for an account.
        
        If self-registration is enabled on the account, you can use this
        endpoint to self register new users.
        """
        path = {}
        data = {}
        params = {}

        # REQUIRED - PATH - account_id
        """ID"""
        path["account_id"] = account_id

        # REQUIRED - user[name]
        """The full name of the user. This name will be used by teacher for grading."""
        data["user[name]"] = user_name

        # OPTIONAL - user[short_name]
        """User's name as it will be displayed in discussions, messages, and comments."""
        if user_short_name is not None:
            data["user[short_name]"] = user_short_name

        # OPTIONAL - user[sortable_name]
        """User's name as used to sort alphabetically in lists."""
        if user_sortable_name is not None:
            data["user[sortable_name]"] = user_sortable_name

        # OPTIONAL - user[time_zone]
        """The time zone for the user. Allowed time zones are
        {http://www.iana.org/time-zones IANA time zones} or friendlier
        {http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html Ruby on Rails time zones}."""
        if user_time_zone is not None:
            data["user[time_zone]"] = user_time_zone

        # OPTIONAL - user[locale]
        """The user's preferred language, from the list of languages Canvas supports.
        This is in RFC-5646 format."""
        if user_locale is not None:
            data["user[locale]"] = user_locale

        # OPTIONAL - user[birthdate]
        """The user's birth date."""
        if user_birthdate is not None:
            data["user[birthdate]"] = user_birthdate

        # REQUIRED - user[terms_of_use]
        """Whether the user accepts the terms of use."""
        data["user[terms_of_use]"] = user_terms_of_use

        # REQUIRED - pseudonym[unique_id]
        """User's login ID. Must be a valid email address."""
        data["pseudonym[unique_id]"] = pseudonym_unique_id

        # OPTIONAL - communication_channel[type]
        """The communication channel type, e.g. 'email' or 'sms'."""
        if communication_channel_type is not None:
            data["communication_channel[type]"] = communication_channel_type

        # OPTIONAL - communication_channel[address]
        """The communication channel address, e.g. the user's email address."""
        if communication_channel_address is not None:
            data["communication_channel[address]"] = communication_channel_address

        self.logger.debug("POST /api/v1/accounts/{account_id}/self_registration with query params: {params} and form data: {data}".format(params=params, data=data, **path))
        return self.generic_request("POST", "/api/v1/accounts/{account_id}/self_registration".format(**path), data=data, params=params, single_item=True)
def self_register_user ( self , user_name , account_id , user_terms_of_use , pseudonym_unique_id , communication_channel_address = None , communication_channel_type = None , user_birthdate = None , user_locale = None , user_short_name = None , user_sortable_name = None , user_time_zone = None ) : path = { } data = { } params = { } """ID""" path [ "account_id" ] = account_id """The full name of the user. This name will be used by teacher for grading.""" data [ "user[name]" ] = user_name """User's name as it will be displayed in discussions, messages, and comments.""" if user_short_name is not None : data [ "user[short_name]" ] = user_short_name """User's name as used to sort alphabetically in lists.""" if user_sortable_name is not None : data [ "user[sortable_name]" ] = user_sortable_name """The time zone for the user. Allowed time zones are
        {http://www.iana.org/time-zones IANA time zones} or friendlier
        {http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html Ruby on Rails time zones}.""" if user_time_zone is not None : data [ "user[time_zone]" ] = user_time_zone """The user's preferred language, from the list of languages Canvas supports.
        This is in RFC-5646 format.""" if user_locale is not None : data [ "user[locale]" ] = user_locale """The user's birth date.""" if user_birthdate is not None : data [ "user[birthdate]" ] = user_birthdate """Whether the user accepts the terms of use.""" data [ "user[terms_of_use]" ] = user_terms_of_use """User's login ID. Must be a valid email address.""" data [ "pseudonym[unique_id]" ] = pseudonym_unique_id """The communication channel type, e.g. 'email' or 'sms'.""" if communication_channel_type is not None : data [ "communication_channel[type]" ] = communication_channel_type """The communication channel address, e.g. the user's email address.""" if communication_channel_address is not None : data [ "communication_channel[address]" ] = communication_channel_address self . logger . debug ( "POST /api/v1/accounts/{account_id}/self_registration with query params: {params} and form data: {data}" . format ( params = params , data = data , ** path ) ) return self . generic_request ( "POST" , "/api/v1/accounts/{account_id}/self_registration" . format ( ** path ) , data = data , params = params , single_item = True )
Self register a user.

        Self register and return a new user and pseudonym for an account.
        
        If self-registration is enabled on the account, you can use this
        endpoint to self register new users.