def METHOD_NAME(self, request: Request, course_id: str):
    """
    Update a course's details.
    **Example Request**
        PUT /api/contentstore/v1/course_details/{course_id}
    **PUT Parameters**
    The data sent for a put request should follow a similar format as
    is returned by a ``GET`` request. Multiple details can be updated in
    a single request, however only the ``value`` field can be updated
    any other fields, if included, will be ignored.
    Example request data that updates the ``course_details`` the same as in GET method
    **Response Values**
    If the request is successful, an HTTP 200 "OK" response is returned,
    along with all the course's details similar to a ``GET`` request.
    """
    course_key = CourseKey.from_string(course_id)
    if not has_studio_read_access(request.user, course_key):
        self.permission_denied(request)
    course_block = modulestore().get_course(course_key)
    try:
        updated_data = update_course_details(request, course_key, request.data, course_block)
    except ValidationError as err:
        return JsonResponseBadRequest({"error": err.message})
    serializer = CourseDetailsSerializer(updated_data)
    return Response(serializer.data)