// Path: src/main/java/com/github/sheigutn/pushbullet/http/PostRequest.java
// public class PostRequest<TResult> extends EntityEnclosingRequest<TResult, HttpPost> {
// 
//     public PostRequest(String relativePath) {
//         super(relativePath);
//     }
// }
// 
// Path: src/main/java/com/github/sheigutn/pushbullet/http/Urls.java
// public class Urls {
// 
//     public static final String CHANNELS = "/channels";
//     public static final String GRANTS = "/grants";
//     public static final String PUSHES = "/pushes";
//     public static final String SUBSCRIPTIONS = "/subscriptions";
//     public static final String EVERYTHING = "/everything";
//     public static final String PHONEBOOK = "/permanents/phonebook_";
//     public static final String DEVICES = "/devices";
//     public static final String CONTACTS = "/contacts";
//     public static final String CLIENTS = "/clients";
//     public static final String CHATS = "/chats";
//     public static final String ACCOUNTS = "/accounts";
//     public static final String CURRENT_USER = "/users/me";
//     public static final String CHANNEL_INFO = "/channel-info";
//     public static final String UPLOAD_REQUEST = "/upload-request";
//     public static final String EPHEMERALS = "/ephemerals";
//     public static final String BLOCKS = "/blocks";
// }
// 
// Path: src/main/java/com/github/sheigutn/pushbullet/items/chat/Chat.java
// @Getter
// @ToString(callSuper = true)
// @NoArgsConstructor(access = AccessLevel.PRIVATE)
// public class Chat extends PushbulletObject implements Deletable, Mutable, Pushable, Blockable {
// 
//     /**
//      * The user this chat is held with
//      */
//     private ChatUser with;
// 
//     /**
//      * Whether this chat is muted
//      */
//     private boolean muted;
// 
//     @Override
//     public void delete() {
//         if(!isActive()) return;
//         DeleteSpecificChatRequest chatRequest = new DeleteSpecificChatRequest(getIdentity());
//         getPushbullet().executeRequest(chatRequest);
//         setActive(false);
//     }
// 
//     public void mute() {
//         updateMute(true);
//     }
// 
//     public void unmute() {
//         updateMute(false);
//     }
// 
//     /**
//      * Used to block the user this chat is held with
//      */
//     @Override
//     public void block() {
//         if(!isActive()) return;
//         getPushbullet().executeRequest(new BlockUserRequest(getWith().getEmail()));
//         setActive(false);
//     }
// 
//     private void updateMute(boolean muteStatus) {
//         getPushbullet().executeRequest(new UpdateChatMuteStatusRequest(getIdentity(), muteStatus));
//         muted = muteStatus;
//     }
// 
//     @Override
//     public Push push(SendablePush push) {
//         return with.push(push);
//     }
// }


import com.github.sheigutn.pushbullet.http.PostRequest;
import com.github.sheigutn.pushbullet.http.Urls;
import com.github.sheigutn.pushbullet.items.chat.Chat;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import org.apache.http.client.methods.HttpPost;
package com.github.sheigutn.pushbullet.http.defaults.post;


public class UpdateChatMuteStatusRequest extends PostRequest<Chat> {

    @SerializedName("muted")
    private boolean mute;

    public UpdateChatMuteStatusRequest(String chatIdentity, boolean mute) {
// Path: src/main/java/com/github/sheigutn/pushbullet/http/PostRequest.java
// public class PostRequest<TResult> extends EntityEnclosingRequest<TResult, HttpPost> {
// 
//     public PostRequest(String relativePath) {
//         super(relativePath);
//     }
// }
// 
// Path: src/main/java/com/github/sheigutn/pushbullet/http/Urls.java
// public class Urls {
// 
//     public static final String CHANNELS = "/channels";
//     public static final String GRANTS = "/grants";
//     public static final String PUSHES = "/pushes";
//     public static final String SUBSCRIPTIONS = "/subscriptions";
//     public static final String EVERYTHING = "/everything";
//     public static final String PHONEBOOK = "/permanents/phonebook_";
//     public static final String DEVICES = "/devices";
//     public static final String CONTACTS = "/contacts";
//     public static final String CLIENTS = "/clients";
//     public static final String CHATS = "/chats";
//     public static final String ACCOUNTS = "/accounts";
//     public static final String CURRENT_USER = "/users/me";
//     public static final String CHANNEL_INFO = "/channel-info";
//     public static final String UPLOAD_REQUEST = "/upload-request";
//     public static final String EPHEMERALS = "/ephemerals";
//     public static final String BLOCKS = "/blocks";
// }
// 
// Path: src/main/java/com/github/sheigutn/pushbullet/items/chat/Chat.java
// @Getter
// @ToString(callSuper = true)
// @NoArgsConstructor(access = AccessLevel.PRIVATE)
// public class Chat extends PushbulletObject implements Deletable, Mutable, Pushable, Blockable {
// 
//     /**
//      * The user this chat is held with
//      */
//     private ChatUser with;
// 
//     /**
//      * Whether this chat is muted
//      */
//     private boolean muted;
// 
//     @Override
//     public void delete() {
//         if(!isActive()) return;
//         DeleteSpecificChatRequest chatRequest = new DeleteSpecificChatRequest(getIdentity());
//         getPushbullet().executeRequest(chatRequest);
//         setActive(false);
//     }
// 
//     public void mute() {
//         updateMute(true);
//     }
// 
//     public void unmute() {
//         updateMute(false);
//     }
// 
//     /**
//      * Used to block the user this chat is held with
//      */
//     @Override
//     public void block() {
//         if(!isActive()) return;
//         getPushbullet().executeRequest(new BlockUserRequest(getWith().getEmail()));
//         setActive(false);
//     }
// 
//     private void updateMute(boolean muteStatus) {
//         getPushbullet().executeRequest(new UpdateChatMuteStatusRequest(getIdentity(), muteStatus));
//         muted = muteStatus;
//     }
// 
//     @Override
//     public Push push(SendablePush push) {
//         return with.push(push);
//     }
// }


// Path: src/main/java/com/github/sheigutn/pushbullet/http/defaults/post/UpdateChatMuteStatusRequest.java
import com.github.sheigutn.pushbullet.http.PostRequest;
import com.github.sheigutn.pushbullet.http.Urls;
import com.github.sheigutn.pushbullet.items.chat.Chat;
import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;
import org.apache.http.client.methods.HttpPost;

package com.github.sheigutn.pushbullet.http.defaults.post;


public class UpdateChatMuteStatusRequest extends PostRequest<Chat> {

    @SerializedName("muted")
    private boolean mute;

    public UpdateChatMuteStatusRequest(String chatIdentity, boolean mute) {
        super(Urls.CHATS + "/" + chatIdentity);