Please wait. This can take some minutes ...
                    
                 
             
         
        
            
                
                    
                    
                        Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. 
                        
                        Project price only 1 $ 
                        
                            You can buy this project and download/modify it how often you want.
                        
                        
                        
                     
                 
             
         
                    
                 
    
    
    com.playfab.PlayFabEntityAPI Maven / Gradle / Ivy 
    
package com.playfab;
import com.playfab.internal.*;
import com.playfab.PlayFabEntityModels.*;
import com.playfab.PlayFabErrors.*;
import com.playfab.PlayFabSettings;
import java.util.concurrent.*;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.*;
    /**
     * PlayFab Entity APIs provide a variety of core PlayFab features and work consistently across a broad set of entities,
     * such as titles, players, characters, and more. API methods for executing CloudScript with an Entity Profile
     */
public class PlayFabEntityAPI {
    private static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").create();
    /**
     * Abort pending file uploads to an entity's profile.
     * @param request AbortFileUploadsRequest
     * @return Async Task will return AbortFileUploadsResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> AbortFileUploadsAsync(final AbortFileUploadsRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAbortFileUploadsAsync(request);
            }
        });
    }
    /**
     * Abort pending file uploads to an entity's profile.
     * @param request AbortFileUploadsRequest
     * @return AbortFileUploadsResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult AbortFileUploads(final AbortFileUploadsRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAbortFileUploadsAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Abort pending file uploads to an entity's profile. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateAbortFileUploadsAsync(final AbortFileUploadsRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/File/AbortFileUploads", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        AbortFileUploadsResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Accepts an outstanding invitation to to join a group
     * @param request AcceptGroupApplicationRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> AcceptGroupApplicationAsync(final AcceptGroupApplicationRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAcceptGroupApplicationAsync(request);
            }
        });
    }
    /**
     * Accepts an outstanding invitation to to join a group
     * @param request AcceptGroupApplicationRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult AcceptGroupApplication(final AcceptGroupApplicationRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAcceptGroupApplicationAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Accepts an outstanding invitation to to join a group */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateAcceptGroupApplicationAsync(final AcceptGroupApplicationRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/AcceptGroupApplication", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Accepts an invitation to join a group
     * @param request AcceptGroupInvitationRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> AcceptGroupInvitationAsync(final AcceptGroupInvitationRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAcceptGroupInvitationAsync(request);
            }
        });
    }
    /**
     * Accepts an invitation to join a group
     * @param request AcceptGroupInvitationRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult AcceptGroupInvitation(final AcceptGroupInvitationRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAcceptGroupInvitationAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Accepts an invitation to join a group */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateAcceptGroupInvitationAsync(final AcceptGroupInvitationRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/AcceptGroupInvitation", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Adds members to a group or role.
     * @param request AddMembersRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> AddMembersAsync(final AddMembersRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAddMembersAsync(request);
            }
        });
    }
    /**
     * Adds members to a group or role.
     * @param request AddMembersRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult AddMembers(final AddMembersRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateAddMembersAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Adds members to a group or role. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateAddMembersAsync(final AddMembersRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/AddMembers", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Applies to join a group
     * @param request ApplyToGroupRequest
     * @return Async Task will return ApplyToGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> ApplyToGroupAsync(final ApplyToGroupRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateApplyToGroupAsync(request);
            }
        });
    }
    /**
     * Applies to join a group
     * @param request ApplyToGroupRequest
     * @return ApplyToGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult ApplyToGroup(final ApplyToGroupRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateApplyToGroupAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Applies to join a group */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateApplyToGroupAsync(final ApplyToGroupRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/ApplyToGroup", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        ApplyToGroupResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Blocks a list of entities from joining a group.
     * @param request BlockEntityRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> BlockEntityAsync(final BlockEntityRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateBlockEntityAsync(request);
            }
        });
    }
    /**
     * Blocks a list of entities from joining a group.
     * @param request BlockEntityRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult BlockEntity(final BlockEntityRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateBlockEntityAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Blocks a list of entities from joining a group. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateBlockEntityAsync(final BlockEntityRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/BlockEntity", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Changes the role membership of a list of entities from one role to another.
     * @param request ChangeMemberRoleRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> ChangeMemberRoleAsync(final ChangeMemberRoleRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateChangeMemberRoleAsync(request);
            }
        });
    }
    /**
     * Changes the role membership of a list of entities from one role to another.
     * @param request ChangeMemberRoleRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult ChangeMemberRole(final ChangeMemberRoleRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateChangeMemberRoleAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Changes the role membership of a list of entities from one role to another. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateChangeMemberRoleAsync(final ChangeMemberRoleRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/ChangeMemberRole", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Creates a new group.
     * @param request CreateGroupRequest
     * @return Async Task will return CreateGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> CreateGroupAsync(final CreateGroupRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateCreateGroupAsync(request);
            }
        });
    }
    /**
     * Creates a new group.
     * @param request CreateGroupRequest
     * @return CreateGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult CreateGroup(final CreateGroupRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateCreateGroupAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Creates a new group. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateCreateGroupAsync(final CreateGroupRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/CreateGroup", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        CreateGroupResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Creates a new group role.
     * @param request CreateGroupRoleRequest
     * @return Async Task will return CreateGroupRoleResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> CreateRoleAsync(final CreateGroupRoleRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateCreateRoleAsync(request);
            }
        });
    }
    /**
     * Creates a new group role.
     * @param request CreateGroupRoleRequest
     * @return CreateGroupRoleResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult CreateRole(final CreateGroupRoleRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateCreateRoleAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Creates a new group role. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateCreateRoleAsync(final CreateGroupRoleRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/CreateRole", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        CreateGroupRoleResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Delete files on an entity's profile.
     * @param request DeleteFilesRequest
     * @return Async Task will return DeleteFilesResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> DeleteFilesAsync(final DeleteFilesRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteFilesAsync(request);
            }
        });
    }
    /**
     * Delete files on an entity's profile.
     * @param request DeleteFilesRequest
     * @return DeleteFilesResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult DeleteFiles(final DeleteFilesRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteFilesAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Delete files on an entity's profile. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateDeleteFilesAsync(final DeleteFilesRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/File/DeleteFiles", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        DeleteFilesResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Deletes a group and all roles, invitations, join requests, and blocks associated with it.
     * @param request DeleteGroupRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> DeleteGroupAsync(final DeleteGroupRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteGroupAsync(request);
            }
        });
    }
    /**
     * Deletes a group and all roles, invitations, join requests, and blocks associated with it.
     * @param request DeleteGroupRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult DeleteGroup(final DeleteGroupRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteGroupAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Deletes a group and all roles, invitations, join requests, and blocks associated with it. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateDeleteGroupAsync(final DeleteGroupRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/DeleteGroup", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Deletes an existing role in a group.
     * @param request DeleteRoleRequest
     * @return Async Task will return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> DeleteRoleAsync(final DeleteRoleRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteRoleAsync(request);
            }
        });
    }
    /**
     * Deletes an existing role in a group.
     * @param request DeleteRoleRequest
     * @return EmptyResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult DeleteRole(final DeleteRoleRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateDeleteRoleAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Deletes an existing role in a group. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateDeleteRoleAsync(final DeleteRoleRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/DeleteRole", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        EmptyResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Executes CloudScript using the Entity Profile
     * @param request ExecuteEntityCloudScriptRequest
     * @return Async Task will return ExecuteCloudScriptResult
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> ExecuteEntityCloudScriptAsync(final ExecuteEntityCloudScriptRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateExecuteEntityCloudScriptAsync(request);
            }
        });
    }
    /**
     * Executes CloudScript using the Entity Profile
     * @param request ExecuteEntityCloudScriptRequest
     * @return ExecuteCloudScriptResult
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult ExecuteEntityCloudScript(final ExecuteEntityCloudScriptRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateExecuteEntityCloudScriptAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Executes CloudScript using the Entity Profile */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateExecuteEntityCloudScriptAsync(final ExecuteEntityCloudScriptRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/CloudScript/ExecuteEntityCloudScript", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        ExecuteCloudScriptResult result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Finalize file uploads to an entity's profile.
     * @param request FinalizeFileUploadsRequest
     * @return Async Task will return FinalizeFileUploadsResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> FinalizeFileUploadsAsync(final FinalizeFileUploadsRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateFinalizeFileUploadsAsync(request);
            }
        });
    }
    /**
     * Finalize file uploads to an entity's profile.
     * @param request FinalizeFileUploadsRequest
     * @return FinalizeFileUploadsResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult FinalizeFileUploads(final FinalizeFileUploadsRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateFinalizeFileUploadsAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Finalize file uploads to an entity's profile. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateFinalizeFileUploadsAsync(final FinalizeFileUploadsRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/File/FinalizeFileUploads", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        FinalizeFileUploadsResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Method to exchange a legacy AuthenticationTicket or title SecretKey for an Entity Token or to refresh a still valid
     * Entity Token.
     * @param request GetEntityTokenRequest
     * @return Async Task will return GetEntityTokenResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> GetEntityTokenAsync(final GetEntityTokenRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetEntityTokenAsync(request);
            }
        });
    }
    /**
     * Method to exchange a legacy AuthenticationTicket or title SecretKey for an Entity Token or to refresh a still valid
     * Entity Token.
     * @param request GetEntityTokenRequest
     * @return GetEntityTokenResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult GetEntityToken(final GetEntityTokenRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetEntityTokenAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /**
     * Method to exchange a legacy AuthenticationTicket or title SecretKey for an Entity Token or to refresh a still valid
     * Entity Token.
     */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateGetEntityTokenAsync(final GetEntityTokenRequest request) throws Exception {
        String authKey = null, authValue = null;
        if (PlayFabSettings.EntityToken != null) { authKey = "X-EntityToken"; authValue = PlayFabSettings.EntityToken; }
        else if (PlayFabSettings.ClientSessionTicket != null) { authKey = "X-Authorization"; authValue = PlayFabSettings.ClientSessionTicket; }
        else if (PlayFabSettings.DeveloperSecretKey != null) { authKey = "X-SecretKey"; authValue = PlayFabSettings.DeveloperSecretKey; }
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Authentication/GetEntityToken", request, authKey, authValue);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        GetEntityTokenResponse result = resultData.data;
        PlayFabSettings.EntityToken = result.EntityToken != null ? result.EntityToken : PlayFabSettings.EntityToken;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Retrieves file metadata from an entity's profile.
     * @param request GetFilesRequest
     * @return Async Task will return GetFilesResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> GetFilesAsync(final GetFilesRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetFilesAsync(request);
            }
        });
    }
    /**
     * Retrieves file metadata from an entity's profile.
     * @param request GetFilesRequest
     * @return GetFilesResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult GetFiles(final GetFilesRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetFilesAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Retrieves file metadata from an entity's profile. */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateGetFilesAsync(final GetFilesRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/File/GetFiles", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        GetFilesResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Gets the global title access policy
     * @param request GetGlobalPolicyRequest
     * @return Async Task will return GetGlobalPolicyResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> GetGlobalPolicyAsync(final GetGlobalPolicyRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetGlobalPolicyAsync(request);
            }
        });
    }
    /**
     * Gets the global title access policy
     * @param request GetGlobalPolicyRequest
     * @return GetGlobalPolicyResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult GetGlobalPolicy(final GetGlobalPolicyRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetGlobalPolicyAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Gets the global title access policy */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateGetGlobalPolicyAsync(final GetGlobalPolicyRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Profile/GetGlobalPolicy", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        GetGlobalPolicyResponse result = resultData.data;
        PlayFabResult pfResult = new PlayFabResult();
        pfResult.Result = result;
        return pfResult;
    }
    /**
     * Gets information about a group and its roles
     * @param request GetGroupRequest
     * @return Async Task will return GetGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static FutureTask> GetGroupAsync(final GetGroupRequest request) {
        return new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetGroupAsync(request);
            }
        });
    }
    /**
     * Gets information about a group and its roles
     * @param request GetGroupRequest
     * @return GetGroupResponse
     */
    @SuppressWarnings("unchecked")
    public static PlayFabResult GetGroup(final GetGroupRequest request) {
        FutureTask> task = new FutureTask(new Callable>() {
            public PlayFabResult call() throws Exception {
                return privateGetGroupAsync(request);
            }
        });
        try {
            task.run();
            return task.get();
        } catch(Exception e) {
            return null;
        }
    }
    /** Gets information about a group and its roles */
    @SuppressWarnings("unchecked")
    private static PlayFabResult privateGetGroupAsync(final GetGroupRequest request) throws Exception {
        if (PlayFabSettings.EntityToken == null) throw new Exception ("Must call GetEntityToken before you can use the Entity API");
        FutureTask task = PlayFabHTTP.doPost(PlayFabSettings.GetURL() + "/Group/GetGroup", request, "X-EntityToken", PlayFabSettings.EntityToken);
        task.run();
        Object httpResult = task.get();
        if (httpResult instanceof PlayFabError) {
            PlayFabError error = (PlayFabError)httpResult;
            if (PlayFabSettings.GlobalErrorHandler != null)
                PlayFabSettings.GlobalErrorHandler.callback(error);
            PlayFabResult result = new PlayFabResult();
            result.Error = error;
            return result;
        }
        String resultRawJson = (String) httpResult;
        PlayFabJsonSuccess resultData = gson.fromJson(resultRawJson, new TypeToken>(){}.getType());
        GetGroupResponse result = resultData.data;
        PlayFabResult