def METHOD_NAME(self, request: Request):
    if not self.has_permission(request):
        return Response(status=403)
    # TODO(dcramer): this should validate options before saving them
    for k, v in request.data.items():
        if v and isinstance(v, str):
            v = v.strip()
        try:
            option = options.lookup_key(k)
        except options.UnknownOption:
            # TODO(dcramer): unify API errors
            return Response(
                {"error": "unknown_option", "errorDetail": {"option": k}}, status=400
            )
        try:
            with transaction.atomic(router.db_for_write(options.default_store.model)):
                if not (option.flags & options.FLAG_ALLOW_EMPTY) and not v:
                    options.delete(k)
                else:
                    options.set(k, v, channel=options.UpdateChannel.APPLICATION)
                logger.info(
                    "options.update",
                    extra={
                        "ip_address": request.META["REMOTE_ADDR"],
                        "user_id": request.user.id,
                        "option_key": k,
                        "option_value": v,
                    },
                )
        except (TypeError, AssertionError) as e:
            # TODO(chadwhitacre): Use a custom exception for the
            # immutability case, especially since asserts disappear with
            # `python -O`.
            return Response(
                {
                    "error": "invalid_type" if type(e) is TypeError else "immutable_option",
                    "errorDetail": {"option": k, "message": str(e)},
                },
                status=400,
            )
    # TODO(dcramer): this has nothing to do with configuring options and
    # should not be set here
    options.set(
        "sentry:version-configured",
        sentry.get_version(),
        channel=options.UpdateChannel.APPLICATION,
    )
    return Response(status=200)