@utilities.arguments_not_none<EOL><INDENT>def create_authorization(self, authorization_form):<DEDENT>
<EOL>collection = JSONClientValidated('<STR_LIT>',<EOL>collection='<STR_LIT>',<EOL>runtime=self._runtime)<EOL>if not isinstance(authorization_form, ABCAuthorizationForm):<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>if authorization_form.is_for_update():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>if self._forms[authorization_form.get_id().get_identifier()] == CREATED:<EOL><INDENT>raise errors.IllegalState('<STR_LIT>')<EOL><DEDENT><DEDENT>except KeyError:<EOL><INDENT>raise errors.Unsupported('<STR_LIT>')<EOL><DEDENT>if not authorization_form.is_valid():<EOL><INDENT>raise errors.InvalidArgument('<STR_LIT>')<EOL><DEDENT>try:<EOL><INDENT>osid_map = collection.find_one({"<STR_LIT>": authorization_form._my_map['<STR_LIT>'],<EOL>"<STR_LIT>": authorization_form._my_map['<STR_LIT>'],<EOL>"<STR_LIT>": authorization_form._my_map['<STR_LIT>'],<EOL>"<STR_LIT>": authorization_form._my_map['<STR_LIT>']})<EOL>osid_map['<STR_LIT>'] = authorization_form._my_map['<STR_LIT>']<EOL>osid_map['<STR_LIT>'] = authorization_form._my_map['<STR_LIT>']<EOL>collection.save(osid_map)<EOL><DEDENT>except errors.NotFound:<EOL><INDENT>insert_result = collection.insert_one(authorization_form._my_map)<EOL>self._forms[authorization_form.get_id().get_identifier()] = CREATED<EOL>osid_map = collection.find_one({'<STR_LIT>': insert_result.inserted_id})<EOL><DEDENT>result = objects.Authorization(<EOL>osid_object_map=osid_map,<EOL>runtime=self._runtime,<EOL>proxy=self._proxy)<EOL>return result<EOL>
Creates a new explicit ``Authorization``.

        arg:    authorization_form
                (osid.authorization.AuthorizationForm): the
                authorization form
        return: (osid.authorization.Authorization) - ``t`` he new
                ``Authorization``
        raise:  IllegalState - ``authorization_form`` already used in a
                create transaction
        raise:  InvalidArgument - one or more of the form elements is
                invalid
        raise:  NullArgument - ``authorization_form`` is ``null``
        raise:  OperationFailed - ``unable to complete request``
        raise:  PermissionDenied - authorization failure
        raise:  Unsupported - ``authorization_form`` did not originate
                from this service
        *compliance: mandatory -- This method must be implemented.*