/*
 * Copyright 2016 LINE Corporation
 *
 * LINE Corporation licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package com.linecorp.bot.client;

import com.linecorp.bot.model.PushMessage;
import com.linecorp.bot.model.ReplyMessage;
import com.linecorp.bot.model.profile.UserProfileResponse;
import com.linecorp.bot.model.response.BotApiResponse;

import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Streaming;

public interface LineMessagingService {
    @POST("/v2/bot/message/reply")
    Call<BotApiResponse> replyMessage(@Body ReplyMessage replyMessage);

    @POST("/v2/bot/message/push")
    Call<BotApiResponse> pushMessage(@Body PushMessage pushMessage);

    @Streaming
    @GET("/v2/bot/message/{messageId}/content")
    Call<ResponseBody> getMessageContent(@Path("messageId") String messageId);

    /**
     * The profile information of any specified user can be obtained.
     */
    @GET("/v2/bot/profile/{userId}")
    Call<UserProfileResponse> getProfile(@Path("userId") String userId);

    @POST("/v2/bot/group/{groupId}/leave")
    Call<BotApiResponse> leaveGroup(@Path("groupId") String groupId);

    @POST("/v2/bot/room/{roomId}/leave")
    Call<BotApiResponse> leaveRoom(@Path("roomId") String roomId);
}

@@ -1108,215 +1108,1232 @@
     
-@POST(%22/v2/bot/message/reply%22)%0A    Call%3CBotApiResponse%3E replyMessage(@Body ReplyMessage replyMessage);%0A%0A    @POST(%22/v2/bot/message/push%22)%0A    Call%3CBotApiResponse%3E pushMessage(@Body PushMessage pushMessage);%0A
+/**%0A     * Reply to messages from users.%0A     *%0A     * %3Cp%3EWebhooks are used to notify you when an event occurs. For events that you can respond to,%0A     * a replyToken is issued for replying to messages.%0A     * %3Cp%3EBecause the replyToken becomes invalid after a certain period of time,%0A     * responses should be sent as soon as a message is received. Reply tokens can only be used once.%0A     *%0A     * @see #pushMessage(PushMessage)%0A     * @see %3Ca href=%22https://devdocs.line.me?java#reply-message%22%3E//devdocs.line.me#reply-message%3C/a%3E%0A     */%0A    @POST(%22/v2/bot/message/reply%22)%0A    Call%3CBotApiResponse%3E replyMessage(@Body ReplyMessage replyMessage);%0A%0A    /**%0A     * Send messages to users when you want to.%0A     *%0A     * %3Cp%3EINFO: Use of the Push Message API is limited to certain plans.%0A     *%0A     * @see #replyMessage(ReplyMessage)%0A     * @see %3Ca href=%22https://devdocs.line.me?java#push-message%22%3E//devdocs.line.me#push-message%3C/a%3E%0A     */%0A    @POST(%22/v2/bot/message/push%22)%0A    Call%3CBotApiResponse%3E pushMessage(@Body PushMessage pushMessage);%0A%0A    /**%0A     * Download image, video, and audio data sent from users.%0A     *%0A     * @see %3Ca href=%22https://devdocs.line.me?java#get-content%22%3E//devdocs.line.me#get-content%3C/a%3E%0A     */
 %0A   
@@ -2491,11 +2491,16 @@
   * 
-The
+Get user
  pro
@@ -2519,47 +2519,129 @@
 tion
- of any specified user can be obtained.
+.%0A     *%0A     * @see %3Ca href=%22https://devdocs.line.me?java#bot-api-get-profile%22%3E//devdocs.line.me#bot-api-get-profile%3C/a%3E
 %0A   
@@ -2764,117 +2764,376 @@
     
-@POST(%22/v2/bot/group/%7BgroupId%7D/leave%22)%0A    Call%3CBotApiResponse%3E leaveGroup(@Path(%22groupId%22) String groupId);%0A
+/**%0A     * Leave a group.%0A     *%0A     * @see %3Ca href=%22https://devdocs.line.me?java#leave%22%3E//devdocs.line.me#leave%3C/a%3E%0A     */%0A    @POST(%22/v2/bot/group/%7BgroupId%7D/leave%22)%0A    Call%3CBotApiResponse%3E leaveGroup(@Path(%22groupId%22) String groupId);%0A%0A    /**%0A     * Leave a room.%0A     *%0A     * @see %3Ca href=%22https://devdocs.line.me?java#leave%22%3E//devdocs.line.me#leave%3C/a%3E%0A     */
 %0A   

Add javadoc into 'com/linecorp/bot/client/LineMessagingService.java' from https://devdocs.line.me