All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.arm.mbed.cloud.sdk.AccountManagement Maven / Gradle / Ivy

Go to download

The Pelion Cloud SDK (formerly known as Mbed Cloud SDK) provides a simplified interface to the Pelion Cloud APIs by exposing functionality using conventions and paradigms familiar to Java developers.

There is a newer version: 2.5.0
Show newest version
package com.arm.mbed.cloud.sdk;

import com.arm.mbed.cloud.sdk.accountmanagement.adapters.AccountAdapter;
import com.arm.mbed.cloud.sdk.accountmanagement.adapters.ApiKeyAdapter;
import com.arm.mbed.cloud.sdk.accountmanagement.adapters.GroupAdapter;
import com.arm.mbed.cloud.sdk.accountmanagement.adapters.UserAdapter;
import com.arm.mbed.cloud.sdk.accountmanagement.model.Account;
import com.arm.mbed.cloud.sdk.accountmanagement.model.ApiKey;
import com.arm.mbed.cloud.sdk.accountmanagement.model.ApiKeyListOptions;
import com.arm.mbed.cloud.sdk.accountmanagement.model.EndPoints;
import com.arm.mbed.cloud.sdk.accountmanagement.model.Group;
import com.arm.mbed.cloud.sdk.accountmanagement.model.GroupListOptions;
import com.arm.mbed.cloud.sdk.accountmanagement.model.User;
import com.arm.mbed.cloud.sdk.accountmanagement.model.UserListOptions;
import com.arm.mbed.cloud.sdk.annotations.API;
import com.arm.mbed.cloud.sdk.annotations.Module;
import com.arm.mbed.cloud.sdk.annotations.NonNull;
import com.arm.mbed.cloud.sdk.annotations.Nullable;
import com.arm.mbed.cloud.sdk.annotations.Preamble;
import com.arm.mbed.cloud.sdk.common.AbstractApi;
import com.arm.mbed.cloud.sdk.common.CloudCaller;
import com.arm.mbed.cloud.sdk.common.CloudCaller.CloudCall;
import com.arm.mbed.cloud.sdk.common.ConnectionOptions;
import com.arm.mbed.cloud.sdk.common.MbedCloudException;
import com.arm.mbed.cloud.sdk.common.PageRequester;
import com.arm.mbed.cloud.sdk.common.listing.ListOptions;
import com.arm.mbed.cloud.sdk.common.listing.ListResponse;
import com.arm.mbed.cloud.sdk.common.listing.Paginator;
import com.arm.mbed.cloud.sdk.internal.iam.model.AccountInfo;
import com.arm.mbed.cloud.sdk.internal.iam.model.ApiKeyInfoResp;
import com.arm.mbed.cloud.sdk.internal.iam.model.ApiKeyInfoRespList;
import com.arm.mbed.cloud.sdk.internal.iam.model.GroupSummary;
import com.arm.mbed.cloud.sdk.internal.iam.model.GroupSummaryList;
import com.arm.mbed.cloud.sdk.internal.iam.model.UserInfoResp;
import com.arm.mbed.cloud.sdk.internal.iam.model.UserInfoRespList;

import retrofit2.Call;

@Preamble(description = "Specifies account management API")
@Module
/**
 * API exposing functionality for creating and managing accounts, users, groups and API keys in the organisation.
 */
public class AccountManagement extends AbstractApi {

    private static final String TAG_USER_UUID = "user UUID";
    private static final String TAG_API_KEY_UUID = "apiKey UUID";
    private static final String TAG_API_KEY = "apiKey";
    private static final String TAG_ACCOUNT = "account";
    private static final String TAG_API_KEY_ID = "apiKeyId";
    private static final String TAG_USER_ID = "userId";
    private static final String TAG_USER = "user";
    private static final String TAG_GROUP_ID = "groupId";
    private static final String TAG_GROUP = "group";
    private final EndPoints endpoint;

    /**
     * Account management module constructor.
     *
     * @param options
     *            connection options @see {@link ConnectionOptions}.
     */
    public AccountManagement(@NonNull ConnectionOptions options) {
        super(options);
        endpoint = new EndPoints(this.client);
    }

    /**
     * Gets details of account associated with current API key.
     * 

* Example: * *

     * {
     *     @code
     *     Account account = accountManagementApi.getAccount(null);
     *     System.out.println("User account ID: " + account.getId());
     *     System.out.println("Associated user email: " + account.getEmail());
     * }
     *
     * 
* * @param propertyName * Property name to be returned from account specific properties. * @return account details. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Account getAccount(@Nullable String propertyName) throws MbedCloudException { final String finalPropertyName = propertyName; return CloudCaller.call(this, "getAccount()", AccountAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().getMyAccountInfo("limits, policies", finalPropertyName); } }); } /** * Gets details of account associated with current API key. *

* Example: * *

     * {
     *     @code
     *     Account account = accountManagementApi.getAccount();
     *     System.out.println("User account ID: " + account.getId());
     *     System.out.println("Associated user email: " + account.getEmail());
     * }
     *
     * 
* * @return account details. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Account getAccount() throws MbedCloudException { return getAccount(null); } /** * Updates details of account associated with current API key. *

* Example: * *

     * {@code Account account = accountManagementApi.getAccount()
     *     account.setCity("Austin");
     *     accoujnt.setState("Texas");
     *     account.setCountry("US");
     *
     *     accountManagementApi.updateAccount(account);
     * }
     * 
* * @param account * The account object to update. * @return updated account. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Account updateAccount(@NonNull Account account) throws MbedCloudException { checkNotNull(account, TAG_ACCOUNT); checkModelValidity(account, TAG_ACCOUNT); final Account finalAccount = account; return CloudCaller.call(this, "updateAccount()", AccountAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().updateMyAccount(AccountAdapter.reverseMap(finalAccount)); } }); } /** * Lists all API keys according to filter options. *

* Example: * *

     * {@code
     * try {
     *     ApiKeyListOptions options = new ApiKeyListOptions();
     *     String ownerId = "015f4ac587f500000000000100100249";
     *     options.setOwnerIdFilter(ownerId);
     *
     *     ListResponse apiKeys = accountManagementApi.listApiKeys(options);
     *     for (ApiKey apiKey : apiKeys) {
     *         System.out.println("API key: " + apiKey.getKey());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return The list of API keys corresponding to filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listApiKeys(@Nullable ApiKeyListOptions options) throws MbedCloudException { final ApiKeyListOptions finalOptions = (options == null) ? new ApiKeyListOptions() : options; return CloudCaller.call(this, "listApiKeys()", ApiKeyAdapter.getListMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().getAllApiKeys(finalOptions.getPageSize(), finalOptions.getAfter(), finalOptions.getOrder().toString(), finalOptions.encodeInclude(), finalOptions.encodeSingleEqualFilter(ApiKeyListOptions.KEY_FILTER), finalOptions.encodeSingleEqualFilter(ApiKeyListOptions.OWNER_ID_FILTER)); } }); } /** * Gets an iterator over all API keys according to filter options. *

* Example: * *

     * {@code
     * try {
     *     ApiKeyListOptions options = new ApiKeyListOptions();
     *     String ownerId = "015f4ac587f500000000000100100249";
     *     options.setOwnerIdFilter(ownerId);
     *
     *     Paginator apiKeys = accountManagementApi.listAllApiKeys(options);
     *     while (apiKeys.hasNext()) {
     *         ApiKey apiKey = apiKeys.next();
     *         System.out.println("API key: " + apiKey.getKey());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return paginator @see {@link Paginator} for the list of API keys corresponding to filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllApiKeys(@Nullable ApiKeyListOptions options) throws MbedCloudException { return new Paginator<>((options == null) ? new ApiKeyListOptions() : options, new PageRequester() { @Override public ListResponse requestNewPage(ListOptions opt) throws MbedCloudException { return listApiKeys((ApiKeyListOptions) opt); } }); } /** * Get details of an API key. *

* Example: * *

     * {@code
     * try {
     *     String apiKeyId = "015f4ac587f500000000000100109294";
     *     ApiKey apiKey = accountManagementApi.getApiKey(apiKeyId);
     *     System.out.println("Api Key: " + apiKey.getKey());
     *     assert apiKeyId == apiKey.getId();
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param apiKeyId * The API key ID (if not specified, returns current API key). * @return the API key. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ApiKey getApiKey(@NonNull String apiKeyId) throws MbedCloudException { checkNotNull(apiKeyId, TAG_API_KEY_ID); final String finalApiKeyId = apiKeyId; return CloudCaller.call(this, "getApiKey()", ApiKeyAdapter.getMapper(), new CloudCall() { @Override public Call call() { return finalApiKeyId == null || finalApiKeyId.isEmpty() ? endpoint.getDeveloper().getMyApiKey() : endpoint.getDeveloper().getApiKey(finalApiKeyId); } }); } /** * Adds an API key. *

* Example: * *

     * {@code
     * try {
     *     ApiKey apiKey = new ApiKey();
     *     apiKey.setName("QuickstartKey");
     *
     *     ApiKey newApiKey = accountManagementApi.addApiKey(apiKey);
     *     System.out.println("Api Key: " + newApiKey.getKey());
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param apiKey * The API key to add. * @return added API Key. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @NonNull ApiKey addApiKey(@NonNull ApiKey apiKey) throws MbedCloudException { checkNotNull(apiKey, TAG_API_KEY); checkModelValidity(apiKey, TAG_API_KEY); final ApiKey finalApiKey = apiKey; return CloudCaller.call(this, "addApiKey()", ApiKeyAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().createApiKey(ApiKeyAdapter.reverseMapAdd(finalApiKey)); } }); } /** * Updates an API key. *

* Example: * *

     * {@code
     * try {
     *     ApiKey apiKey = new ApiKey();
     *     String apiKeyId = "015f4ac587f500000000000100100249";
     *     apiKey.setId(apiKeyId);
     *     apiKey.setName("NewKeyName");
     *
     *     ApiKey newApiKey = accountManagementApi.updateApiKey(apiKey);
     *     System.out.println("New Api Key name: " + newApiKey.getName());
     *     assert apiKeyId == newApiKey.getId();
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param apiKey * The API key to update. * @return updated API key. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ApiKey updateApiKey(@NonNull ApiKey apiKey) throws MbedCloudException { checkNotNull(apiKey, TAG_API_KEY); checkNotNull(apiKey.getId(), TAG_API_KEY_UUID); checkModelValidity(apiKey, TAG_API_KEY); ApiKey updatedApiKey = null; if (apiKey.hasStatusBeenUpdated()) { updatedApiKey = apiKey; } else { updatedApiKey = apiKey.clone(); updatedApiKey.setStatus(null); } final ApiKey finalApiKey = updatedApiKey; return CloudCaller.call(this, "updateApiKey()", ApiKeyAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().updateApiKey(finalApiKey.getId(), ApiKeyAdapter.reverseMapUpdate(finalApiKey)); } }); } /** * Deletes an API key. *

* Example: * *

     * {@code
     * try {
     *     String apiKeyId = "015f4ac587f500000000000100109294";
     *     accountManagementApi.deleteApiKey(apiKeyId);
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param apiKeyId * The API key ID. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public void deleteApiKey(@NonNull String apiKeyId) throws MbedCloudException { checkNotNull(apiKeyId, TAG_API_KEY_ID); final String finalApiKeyId = apiKeyId; CloudCaller.call(this, "deleteApiKey()", null, new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().deleteApiKey(finalApiKeyId); } }); } /** * Deletes an API key. *

* Example: * *

     * {@code
     * try {
     *     ApiKey apiKey = accountManagementApi.getApiKey("015f4ac587f500000000000100109294");
     *     if( apiKey != null){
     *          accountManagementApi.deleteApiKey(apiKey);
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param apiKey * The API key. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public void deleteApiKey(@NonNull ApiKey apiKey) throws MbedCloudException { checkNotNull(apiKey, TAG_API_KEY); deleteApiKey(apiKey.getId()); } /** * Lists users according to filter options. *

* Example: * *

     * {@code
     * try {
     *     UserListOptions options = new UserListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse users = accountManagementApi.listUsers(options);
     *     for (User user : users) {
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return list of users (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listUsers(@Nullable UserListOptions options) throws MbedCloudException { final UserListOptions finalOptions = (options == null) ? new UserListOptions() : options; return CloudCaller.call(this, "listUsers()", UserAdapter.getListMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().getAllUsers(finalOptions.getPageSize(), finalOptions.getAfter(), finalOptions.getOrder().toString(), finalOptions.encodeInclude(), finalOptions.encodeSingleEqualFilter(UserListOptions.EMAIL_FILTER), finalOptions.encodeSingleEqualFilter(UserListOptions.STATUS_FILTER), finalOptions.encodeSingleInFilter(UserListOptions.STATUS_FILTER), finalOptions.encodeSingleNotInFilter(UserListOptions.STATUS_FILTER)); } }); } /** * Gets an iterator over all users according to filter options. *

* Example: * *

     *  {@code try {
     *     UserListOptions options = new UserListOptions();
     *     options.setLimit(10);
     *
     *     Paginator users = accountManagementApi.listAllUsers(options);
     *     while (users.hasNext()) {
     *         User user = users.next();
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return paginator @see {@link Paginator} for the list of users corresponding to filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllUsers(@Nullable UserListOptions options) throws MbedCloudException { return new Paginator<>((options == null) ? new UserListOptions() : options, new PageRequester() { @Override public ListResponse requestNewPage(ListOptions opt) throws MbedCloudException { return listUsers((UserListOptions) opt); } }); } /** * Gets details about a user. *

* Note: Use {@link #getUser(String)} instead. The property parameter is no longer taken into account. * * @param userId * The user ID. * @param property * Request to return account specific user property values according to the given property name. * @return a user. * @throws MbedCloudException * if a problem occurred during request processing. */ @API @Deprecated public @Nullable User getUser(@NonNull String userId, @Nullable String property) throws MbedCloudException { return getUser(userId); } /** * Gets details about a user. * * @param userId * The user ID. * @return a user. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable User getUser(@NonNull String userId) throws MbedCloudException { checkNotNull(userId, TAG_USER_ID); final String finalUserId = userId; return CloudCaller.call(this, "getUser()", UserAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().getUser(finalUserId); } }); } /** * Adds a user. *

* Example: * *

     * {@code
     * try {
     *     User user = new User();
     *     user.setEmail("[email protected]");
     *     user.setUsername("javaSDK");
     *     user.setFullName("Java SDK");
     *
     *     User newUser = accountManagementApi.addUser(user);
     *     System.out.println("User ID: " + newUser.getId());
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param user * User to add. * @return added user. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @NonNull User addUser(@NonNull User user) throws MbedCloudException { checkNotNull(user, TAG_USER); checkModelValidity(user, TAG_USER); final User finalUser = user; return CloudCaller.call(this, "addUser()", UserAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().createUser(UserAdapter.reverseMapAdd(finalUser), "create"); } }); } /** * Updates a user. *

* Example: * *

     * {@code
     * try {
     *     User user = new User();
     *     String userId = "015f4ac587f500000000000100109294";
     *     user.setId(userId);
     *     user.setEmail("[email protected]");
     *     user.setUsername("javaSDK");
     *     user.setFullName("New JavaSDK");
     *
     *     User newUser = accountManagementApi.updateUser(user);
     *     System.out.println("New User name: " + newUser.getFullName());
     *     assert userId == newUser.getId();
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param user * User to update. * @return updated user. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable User updateUser(@NonNull User user) throws MbedCloudException { checkNotNull(user, TAG_USER); checkNotNull(user.getId(), TAG_USER_UUID); // checkModelValidity(user, TAG_USER); User updatedUser = null; if (user.hasEmailBeenUpdated()) { updatedUser = user; } else { updatedUser = user.clone(); updatedUser.setEmail(null); } final User finalUser = updatedUser; return CloudCaller.call(this, "updateUser()", UserAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().updateUser(finalUser.getId(), UserAdapter.reverseMapUpdate(finalUser)); } }); } /** * Deletes a user. *

* Example: * *

     * {@code
     * try {
     *     String userId = "015f4ac587f500000000000100109294";
     *     accountManagementApi.deleteUser(userId);
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param userId * The user ID of the user to delete. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public void deleteUser(@NonNull String userId) throws MbedCloudException { checkNotNull(userId, TAG_USER_ID); final String finalUserId = userId; CloudCaller.call(this, "deleteUser()", null, new CloudCall() { @Override public Call call() { return endpoint.getAdmin().deleteUser(finalUserId); } }); } /** * Deletes a user. *

* Example: * *

     * {@code
     * try {
     *     User user = accountManagementApi.getUser("015f4ac587f500000000000100109294");
     *     if(user != null){
     *      accountManagementApi.deleteUser(user);
     *      }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param user * The user to delete. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public void deleteUser(@NonNull User user) throws MbedCloudException { checkNotNull(user, TAG_USER); deleteUser(user.getId()); } /** * Lists available groups depending on filter options. *

* Example: * *

     * {@code
     * try {
     *     GroupListOptions options = new GroupListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse groups = accountManagementApi.listGroups(options);
     *     for (Group group : groups) {
     *         System.out.println("Group ID: " + group.getId());
     *         System.out.println("Group name: " + group.getName());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return The list of groups corresponding to filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listGroups(@Nullable GroupListOptions options) throws MbedCloudException { final GroupListOptions finalOptions = (options == null) ? new GroupListOptions() : options; return CloudCaller.call(this, "listGroups()", GroupAdapter.getListMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().getAllGroups(finalOptions.getPageSize(), finalOptions.getAfter(), finalOptions.getOrder().toString(), finalOptions.encodeInclude(), finalOptions.getNameFilter()); } }); } /** * Gets an iterator over all available groups depending on filter options. *

* Example: * *

     * {@code
     * try {
     *     GroupListOptions options = new GroupListOptions();
     *     options.setLimit(10);
     *
     *     Paginator groups = accountManagementApi.listAllGroups(options);
     *     while (groups.hasNext()) {
     *         Group group = groups.next();
     *         System.out.println("Group ID: " + group.getId());
     *         System.out.println("Group name: " + group.getName());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param options * filter options. * @return paginator @see {@link Paginator} for the groups corresponding to filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllGroups(@Nullable GroupListOptions options) throws MbedCloudException { return new Paginator<>((options == null) ? new GroupListOptions() : options, new PageRequester() { @Override public ListResponse requestNewPage(ListOptions opt) throws MbedCloudException { return listGroups((GroupListOptions) opt); } }); } /** * Get details of a group. *

* Example: * *

     * {@code
     * try {
     *     String groupId = "015f4ac587f500000000000100109294";
     *     Group group = accountManagementApi.getGroup(groupId);
     *     System.out.println("Group name: " + group.getName());
     *     assert groupId == group.getId();
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param groupId * The group ID to look for. * @return corresponding group. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Group getGroup(@NonNull String groupId) throws MbedCloudException { checkNotNull(groupId, TAG_GROUP_ID); final String finalGroupId = groupId; return CloudCaller.call(this, "getGroup()", GroupAdapter.getMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().getGroupSummary(finalGroupId); } }); } /** * Lists users of a group. *

* Example: * *

     * {@code
     * try {
     *     String groupId = "015f4ac587f500000000000100109294";
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse users = accountManagementApi.listGroupUsers(groupId, options);
     *     for (User user : users) {
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param groupId * The group ID. * @param options * filter options. * @return The list of users corresponding to groupId and filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listGroupUsers(@NonNull String groupId, @Nullable UserListOptions options) throws MbedCloudException { checkNotNull(groupId, TAG_GROUP_ID); final UserListOptions finalOptions = (options == null) ? new UserListOptions() : options; final String finalGroupId = groupId; return CloudCaller.call(this, "listGroupUsers()", UserAdapter.getListMapper(), new CloudCall() { @Override public Call call() { return endpoint.getAdmin().getUsersOfGroup(finalGroupId, finalOptions.getPageSize(), finalOptions.getAfter(), finalOptions.getOrder().toString(), finalOptions.encodeInclude(), finalOptions.encodeSingleEqualFilter(UserListOptions.STATUS_FILTER), finalOptions.encodeSingleInFilter(UserListOptions.STATUS_FILTER), finalOptions.encodeSingleNotInFilter(UserListOptions.STATUS_FILTER)); } }); } /** * Lists users of a group. *

* Example: * *

     * {@code
     * try {
     *     Group group = accountManagementApi.getGroup("015f4ac587f500000000000100109294");
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse users = accountManagementApi.listGroupUsers(group, options);
     *     for (User user : users) {
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param group * The group to consider. * @param options * filter options. * @return The list of users corresponding to the group and filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listGroupUsers(@NonNull Group group, @Nullable UserListOptions options) throws MbedCloudException { checkNotNull(group, TAG_GROUP); return listGroupUsers(group.getId(), options); } /** * Gets an iterator over all users of a group. *

* Example: * *

     * {@code
     * try {
     *     String groupId = "015f4ac587f500000000000100109294";
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     Paginator users = accountManagementApi.listAllGroupUsers(groupId,options);
     *     while (users.hasNext()) {
     *         User user = users.next();
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param groupId * The group ID of the group. * @param options * filter options. * @return paginator @see {@link Paginator} for the list of users corresponding to groupId and filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllGroupUsers(@NonNull String groupId, @Nullable UserListOptions options) throws MbedCloudException { final String finalGroupId = groupId; return new Paginator<>((options == null) ? new UserListOptions() : options, new PageRequester() { @Override public ListResponse requestNewPage(ListOptions opt) throws MbedCloudException { return listGroupUsers(finalGroupId, (UserListOptions) opt); } }); } /** * Gets an iterator over all users of a group. *

* Example: * *

     * {@code
     * try {
     *     Group group = accountManagementApi.getGroup("015f4ac587f500000000000100109294");
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     Paginator users = accountManagementApi.listAllGroupUsers(group, options);
     *     while (users.hasNext()) {
     *         User user = users.next();
     *         System.out.println("User ID: " + user.getId());
     *         System.out.println("User name: " + user.getFullName());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param group * The group to consider. * @param options * filter options. * @return paginator @see {@link Paginator} for the list of users corresponding to the group and filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllGroupUsers(@NonNull Group group, @Nullable UserListOptions options) throws MbedCloudException { checkNotNull(group, TAG_GROUP); return listAllGroupUsers(group.getId(), options); } /** * Lists API keys of a group. *

* Example: * *

     * {@code
     * try {
     *     String groupId = "015f4ac587f500000000000100109294";
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse apiKeys = accountManagementApi.listGroupApiKeys(groupId, options);
     *     for (ApiKey apiKey : apiKeys) {
     *         System.out.println("ApiKey: " + apiKey.getKey());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param groupId * The group ID of the group. * @param options * filter options. * @return The list of API keys corresponding to groupId and filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listGroupApiKeys(@NonNull String groupId, @Nullable ApiKeyListOptions options) throws MbedCloudException { checkNotNull(groupId, TAG_GROUP_ID); final ListOptions finalOptions = (options == null) ? new ListOptions() : options; final String finalGroupId = groupId; return CloudCaller.call(this, "listGroupApiKeys()", ApiKeyAdapter.getListMapper(), new CloudCall() { @Override public Call call() { return endpoint.getDeveloper().getApiKeysOfGroup(finalGroupId, finalOptions.getPageSize(), finalOptions.getAfter(), finalOptions.getOrder().toString(), finalOptions.encodeInclude()); } }); } /** * Lists API keys of a group. *

* Example: * *

     * {@code
     * try {
     *     Group group = accountManagementApi.getGroup("015f4ac587f500000000000100109294");
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     ListResponse apiKeys = accountManagementApi.listGroupApiKeys(group, options);
     *     for (ApiKey apiKey : apiKeys) {
     *         System.out.println("ApiKey: " + apiKey.getKey());
     *     }
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param group * The group to consider. * @param options * filter options. * @return The list of API keys corresponding to the group and filter options (One page). * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable ListResponse listGroupApiKeys(@NonNull Group group, @Nullable ApiKeyListOptions options) throws MbedCloudException { checkNotNull(group, TAG_GROUP); return listGroupApiKeys(group.getId(), options); } /** * Gets an iterator over all API keys of a group. *

* Example: * *

     * {@code
     * try {
     *     String groupId = "015f4ac587f500000000000100109294";
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     Paginator apiKeys = accountManagementApi.listAllGroupApiKeys(groupId,options);
     *     while (apiKeys.hasNext()) {
     *         ApiKey apiKey = apiKeys.next();
     *         System.out.println("ApiKey: " + apiKey.getKey());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param groupId * The group ID of the group. * @param options * filter options. * @return paginator @see {@link Paginator} for the list of API keys corresponding to groupId and filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllGroupApiKeys(@NonNull String groupId, @Nullable ApiKeyListOptions options) throws MbedCloudException { final String finalGroupId = groupId; return new Paginator<>((options == null) ? new ApiKeyListOptions() : options, new PageRequester() { @Override public ListResponse requestNewPage(ListOptions opt) throws MbedCloudException { return listGroupApiKeys(finalGroupId, (ApiKeyListOptions) opt); } }); } /** * Gets an iterator over all API keys of a group. *

* Example: * *

     * {@code
     * try {
     *     Group group = accountManagementApi.getGroup("015f4ac587f500000000000100109294");
     *     ListOptions options = new ListOptions();
     *     options.setLimit(10);
     *
     *     Paginator apiKeys = accountManagementApi.listAllGroupApiKeys(group,options);
     *     for (ApiKey apiKey:apiKeys) {
     *         System.out.println("ApiKey: " + apiKey.getKey());
     *     }
     *
     * } catch (MbedCloudException e) {
     *     e.printStackTrace();
     * }
     * }
     * 
* * @param group * The group to consider. * @param options * filter options. * @return paginator @see {@link Paginator} for the list of API keys corresponding to the group and filter options. * @throws MbedCloudException * if a problem occurred during request processing. */ @API public @Nullable Paginator listAllGroupApiKeys(@NonNull Group group, @Nullable ApiKeyListOptions options) throws MbedCloudException { checkNotNull(group, TAG_GROUP); return listAllGroupApiKeys(group.getId(), options); } /** * Retrieves module name. * * @return module name. */ @Override public String getModuleName() { return "Account Management"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy