Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.spotinst</groupId>
<artifactId>spotinst-sdk-java</artifactId>
<version>1.0.116-SNAPSHOT</version>
<version>1.0.117-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spotinst-sdk-java</name>
<description>A Spotinst Java SDK</description>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,28 @@
package com.spotinst.sdkjava.model;

import com.spotinst.sdkjava.model.bl.admin.account.*;
import com.spotinst.sdkjava.model.bl.admin.organization.Policy;
import com.spotinst.sdkjava.model.requests.admin.account.AssignUsersToAccountsRequest;
import com.spotinst.sdkjava.model.requests.admin.account.UpdateAccountRequest;
import com.spotinst.sdkjava.model.requests.admin.account.UpdateUserPermissionsRequest;
import com.spotinst.sdkjava.model.requests.admin.account.UserDetachRequest;

import java.util.List;

public interface ISpotAccountAdminRepo extends IRepository<BlAccountAdmin, Void, String> {
RepoGenericResponse<Account> create(String accountName, String authToken);

RepoGenericResponse<Boolean> update(UpdateAccountRequest request, String authToken, String account);

RepoGenericResponse<List<Users>> getUsers(String authToken, String accountId);

RepoGenericResponse<Boolean> updateUserPermissions(String authToken, UpdateUserPermissionsRequest request, String accountId);

RepoGenericResponse<List<UserPermissions>> getUsersPermissions(String authToken, String accountId);

RepoGenericResponse<Boolean> assignUsersToAccounts(String authToken, AssignUsersToAccountsRequest request, String accountId);

RepoGenericResponse<Boolean> detachUser(String accountId, String authToken, UserDetachRequest request);

RepoGenericResponse<List<Policy>> listAccessPolicies(String authToken, String accountId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@
import com.spotinst.sdkjava.exception.HttpError;
import com.spotinst.sdkjava.exception.SpotinstHttpException;
import com.spotinst.sdkjava.model.bl.admin.account.*;
import com.spotinst.sdkjava.model.requests.admin.account.AccountDeleteRequest;
import com.spotinst.sdkjava.model.requests.admin.account.ListAllAccountsRequest;
import com.spotinst.sdkjava.model.requests.admin.account.UpdateAccountRequest;
import com.spotinst.sdkjava.model.bl.admin.organization.Policy;
import com.spotinst.sdkjava.model.requests.admin.account.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -156,5 +155,141 @@ public Boolean deleteAccount(AccountDeleteRequest accountDeletionRequest) {
return retVal;
}

//endregion
public List<Users> getUsers(String accountId) {

List<Users> retVal;

RepoGenericResponse<List<Users>> listAccountResponse =
getSpotAccountAdminRepo().getUsers(authToken, accountId);

if (listAccountResponse.isRequestSucceed()) {
retVal = listAccountResponse.getValue();
}
else {
List<HttpError> httpExceptions = listAccountResponse.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);
LOGGER.error(
String.format("Error encountered while attempting to get the list of users. Code: %s. Message: %s.",
httpException.getCode(), httpException.getMessage()));
throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}

public Boolean updateUserPermissions(UpdateUserPermissionsRequest request, String accountId) {

Boolean retVal;

RepoGenericResponse<Boolean> isUserPermissionUpdated =
getSpotAccountAdminRepo().updateUserPermissions(authToken, request, accountId);

if (isUserPermissionUpdated.isRequestSucceed()) {
retVal = isUserPermissionUpdated.getValue();
}
else {
List<HttpError> httpExceptions = isUserPermissionUpdated.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);

LOGGER.error(
String.format("Error encountered while attempting to update user permissions: %s. Code: %s. Message: %s.",
accountId, httpException.getCode(), httpException.getMessage()));

throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}

public List<UserPermissions> getUsersPermissions(String accountId) {

List<UserPermissions> retVal;

RepoGenericResponse<List<UserPermissions>> response =
getSpotAccountAdminRepo().getUsersPermissions(authToken, accountId);

if (response.isRequestSucceed()) {
retVal = response.getValue();
}
else {
List<HttpError> httpExceptions = response.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);
LOGGER.error(
String.format("Error encountered while attempting to get the list of users. Code: %s. Message: %s.",
httpException.getCode(), httpException.getMessage()));
throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}

public Boolean assignUsersToAccounts(AssignUsersToAccountsRequest request, String accountId) {

Boolean retVal;

RepoGenericResponse<Boolean> response =
getSpotAccountAdminRepo().assignUsersToAccounts(authToken, request, accountId);

if (response.isRequestSucceed()) {
retVal = response.getValue();
}
else {
List<HttpError> httpExceptions = response.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);

LOGGER.error(
String.format("Error encountered while attempting to add users to account: %s. Code: %s. Message: %s.",
accountId, httpException.getCode(), httpException.getMessage()));

throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}

public Boolean detachUser(UserDetachRequest userDetachRequest, String accountId) {

Boolean retVal;

RepoGenericResponse<Boolean> userDetachResponse =
getSpotAccountAdminRepo().detachUser(accountId, authToken, userDetachRequest);

if (userDetachResponse.isRequestSucceed()) {
retVal = userDetachResponse.getValue();
}
else {
List<HttpError> httpExceptions = userDetachResponse.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);

LOGGER.error(
String.format("Error encountered while attempting to detach user from account: %s. Code: %s. Message: %s.",
accountId, httpException.getCode(), httpException.getMessage()));

throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}

public List<Policy> listAccessPolicies(String accountId) {

List<Policy> retVal;

RepoGenericResponse<List<Policy>> listPoliciesResponse =
getSpotAccountAdminRepo().listAccessPolicies(authToken, accountId);

if (listPoliciesResponse.isRequestSucceed()) {
retVal = listPoliciesResponse.getValue();
}
else {
List<HttpError> httpExceptions = listPoliciesResponse.getHttpExceptions();
HttpError httpException = httpExceptions.get(0);
LOGGER.error(
String.format("Error encountered while attempting to get the list of acess policies. Code: %s. Message: %s.",
httpException.getCode(), httpException.getMessage()));
throw new SpotinstHttpException(httpException.getMessage());
}

return retVal;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
package com.spotinst.sdkjava.model.api.admin.account;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.HashSet;
import java.util.Set;
import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ApiUserPermissions {
//region Members
@JsonIgnore
private Set<String> isSet;
private String permissionStrategy;
private String role;
private List<String> policyIds;
private String userId;
//endregion

//region Constructor
private ApiUserPermissions() {
isSet = new HashSet<>();
}
//endregion

//region Getters & Setters
public Set<String> getIsSet() {
return isSet;
}

public void setIsSet(Set<String> isSet) {
this.isSet = isSet;
}

public String getPermissionStrategy() {
return permissionStrategy;
}

public void setPermissionStrategy(String permissionStrategy) {
isSet.add("permissionStrategy");
this.permissionStrategy = permissionStrategy;
}

public String getRole() {
return role;
}

public void setRole(String role) {
isSet.add("role");
this.role = role;
}

public List<String> getPolicyIds() {
return policyIds;
}

public void setPolicyIds(List<String> policyIds) {
isSet.add("policyIds");
this.policyIds = policyIds;
}

public String getUserId() {
return userId;
}

public void setUserId(String userId) {
isSet.add("userId");
this.userId = userId;
}

//endregion

//region isSet methods
@JsonIgnore
public boolean isPermissionStrategySet() {
return isSet.contains("permissionStrategy");
}

@JsonIgnore
public boolean isRoleSet() {
return isSet.contains("role");
}

@JsonIgnore
public boolean isPolicyIdsSet() {
return isSet.contains("PolicyIds");
}

@JsonIgnore
public boolean isUserIdSet() {
return isSet.contains("userId");
}

//endregion
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
package com.spotinst.sdkjava.model.api.admin.account;

import com.fasterxml.jackson.annotation.JsonFilter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.spotinst.sdkjava.client.rest.IPartialUpdateEntity;

import java.util.HashSet;
import java.util.Set;
import java.util.List;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonFilter("PartialUpdateEntityFilter")
public class ApiUsers implements IPartialUpdateEntity {
//region Members
@JsonIgnore
private Set<String> isSet;
private String displayName;
private String email;
private List<String> mappedAccountIds;
private String userId;
//endregion

//region Constructor
private ApiUsers() {
isSet = new HashSet<>();
}
//endregion

//region Getters & Setters
public Set<String> getIsSet() {
return isSet;
}

public void setIsSet(Set<String> isSet) {
this.isSet = isSet;
}

public String getDisplayName() {
return displayName;
}

public void setDisplayName(String displayName) {
isSet.add("displayName");
this.displayName = displayName;
}

public String getEmail() {
return email;
}

public void setEmail(String email) {
isSet.add("email");
this.email = email;
}

public List<String> getMappedAccountIds() {
return mappedAccountIds;
}

public void setMappedAccountIds(List<String> mappedAccountIds) {
isSet.add("mappedAccountIds");
this.mappedAccountIds = mappedAccountIds;
}

public String getUserId() {
return userId;
}

public void setUserId(String userId) {
isSet.add("userId");
this.userId = userId;
}

//endregion

//region isSet methods
@JsonIgnore
public boolean isDisplayNameSet() {
return isSet.contains("displayName");
}

@JsonIgnore
public boolean isEmailSet() {
return isSet.contains("email");
}

@JsonIgnore
public boolean isMappedAccountIdsSet() {
return isSet.contains("mappedAccountIds");
}

@JsonIgnore
public boolean isUserIdSet() {
return isSet.contains("userId");
}

//endregion
}
Loading