// Path: libs/sms/src/main/java/com/africastalking/sms/FetchMessageResponse.java
// public final class FetchMessageResponse {
// 
//     @SerializedName("SMSMessageData")
//     public SmsMessageData data;
// 
//     public static final class SmsMessageData {
//         @SerializedName("Recipients")
//         public List<Message> messages = new ArrayList<>();
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/FetchSubscriptionResponse.java
// public final class FetchSubscriptionResponse {
//     @SerializedName("Subscriptions")
//     public List<Subscription> subscriptions = new ArrayList<>();
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/SendMessageResponse.java
// public final class SendMessageResponse {
// 
//     @SerializedName("SMSMessageData")
//     public SmsMessageData data;
// 
//     public static final class SmsMessageData {
//         @SerializedName("Recipients")
//         public List<Recipient> recipients;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/SubscriptionResponse.java
// public final class SubscriptionResponse {
//     public String success;
//     public String description;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }


import com.africastalking.sms.FetchMessageResponse;
import com.africastalking.sms.FetchSubscriptionResponse;
import com.africastalking.sms.SendMessageResponse;
import com.africastalking.sms.SubscriptionResponse;
import retrofit2.Call;
import retrofit2.http.*;
package com.africastalking;




interface ISMS {

    @FormUrlEncoded
    @POST("messaging")
    Call<SendMessageResponse> send(@Field("username") String username, @Field("to") String to,
                                       @Field("from") String from, @Field("message") String message,
                                       @Field("bulkSMSMode") int bulkMode, @Field("enqueue") String enqueue);

    @FormUrlEncoded
    @POST("messaging")
    Call<SendMessageResponse> sendPremium(@Field("username") String username, @Field("to") String to,
                                          @Field("from") String from, @Field("message") String message,
                                          @Field("keyword") String keyword, @Field("linkId") String linkId,
                                          @Field("retryDurationInHours") String retryDurationInHours,
                                          @Field("bulkSMSMode") int bulkMode);

    @GET("messaging")
    Call<FetchMessageResponse> fetchMessages(@Query("username") String username, @Query("lastReceivedId") String lastReceivedId);


    @GET("subscription")
    Call<FetchSubscriptionResponse> fetchSubscriptions(@Query("username") String username, @Query("shortCode") String shortCode,
                                                      @Query("keyword") String keyword, @Query("lastReceivedId") String lastReceivedId);

    @FormUrlEncoded
    @POST("subscription/create")
// Path: libs/sms/src/main/java/com/africastalking/sms/FetchMessageResponse.java
// public final class FetchMessageResponse {
// 
//     @SerializedName("SMSMessageData")
//     public SmsMessageData data;
// 
//     public static final class SmsMessageData {
//         @SerializedName("Recipients")
//         public List<Message> messages = new ArrayList<>();
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/FetchSubscriptionResponse.java
// public final class FetchSubscriptionResponse {
//     @SerializedName("Subscriptions")
//     public List<Subscription> subscriptions = new ArrayList<>();
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/SendMessageResponse.java
// public final class SendMessageResponse {
// 
//     @SerializedName("SMSMessageData")
//     public SmsMessageData data;
// 
//     public static final class SmsMessageData {
//         @SerializedName("Recipients")
//         public List<Recipient> recipients;
//     }
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// 
// }
// 
// Path: libs/sms/src/main/java/com/africastalking/sms/SubscriptionResponse.java
// public final class SubscriptionResponse {
//     public String success;
//     public String description;
// 
//     @Override
//     public String toString() {
//         return new Gson().toJson(this);
//     }
// }


// Path: libs/sms/src/main/java/com/africastalking/ISMS.java
import com.africastalking.sms.FetchMessageResponse;
import com.africastalking.sms.FetchSubscriptionResponse;
import com.africastalking.sms.SendMessageResponse;
import com.africastalking.sms.SubscriptionResponse;
import retrofit2.Call;
import retrofit2.http.*;

package com.africastalking;




interface ISMS {

    @FormUrlEncoded
    @POST("messaging")
    Call<SendMessageResponse> send(@Field("username") String username, @Field("to") String to,
                                       @Field("from") String from, @Field("message") String message,
                                       @Field("bulkSMSMode") int bulkMode, @Field("enqueue") String enqueue);

    @FormUrlEncoded
    @POST("messaging")
    Call<SendMessageResponse> sendPremium(@Field("username") String username, @Field("to") String to,
                                          @Field("from") String from, @Field("message") String message,
                                          @Field("keyword") String keyword, @Field("linkId") String linkId,
                                          @Field("retryDurationInHours") String retryDurationInHours,
                                          @Field("bulkSMSMode") int bulkMode);

    @GET("messaging")
    Call<FetchMessageResponse> fetchMessages(@Query("username") String username, @Query("lastReceivedId") String lastReceivedId);


    @GET("subscription")
    Call<FetchSubscriptionResponse> fetchSubscriptions(@Query("username") String username, @Query("shortCode") String shortCode,
                                                      @Query("keyword") String keyword, @Query("lastReceivedId") String lastReceivedId);

    @FormUrlEncoded
    @POST("subscription/create")
    Call<SubscriptionResponse> createSubscription(@Field("username") String username, @Field("shortCode") String shortCode,