package com.clouck.converter; import java.util.ArrayList; import java.util.List; import org.joda.time.DateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.amazonaws.services.identitymanagement.model.Group; import com.amazonaws.services.identitymanagement.model.Role; import com.amazonaws.services.identitymanagement.model.User; import com.clouck.model.aws.AbstractResource; import com.clouck.model.aws.iam.IamGroup; import com.clouck.model.aws.iam.IamRole; import com.clouck.model.aws.iam.IamUser; @Component public class IamConverter { private static final Logger log = LoggerFactory.getLogger(IamConverter.class); private void conf(AbstractResource<?> resource, String accountId, DateTime dateTime) { resource.setAccountId(accountId); resource.setTimeDetected(dateTime.toDate()); } public List<AbstractResource<?>> toIamGroups(List<Group> groups, String accountId, DateTime dt) { List<AbstractResource<?>> resources = new ArrayList<>(); for (Group group : groups) { IamGroup iamGroup = new IamGroup(); conf(iamGroup, accountId, dt); iamGroup.setResource(group); resources.add(iamGroup); } log.debug("{} groups found via api and converted to IamGroup", resources.size()); return resources; } public List<AbstractResource<?>> toIamUsers(List<User> users, String accountId, DateTime dt) { List<AbstractResource<?>> resources = new ArrayList<>(); for (User user : users) { IamUser iamUser = new IamUser(); conf(iamUser, accountId, dt); iamUser.setResource(user); resources.add(iamUser); } log.debug("{} users found via api and converted to IamUser", resources.size()); return resources; } public List<AbstractResource<?>> toIamRoles(List<Role> roles, String accountId, DateTime dt) { List<AbstractResource<?>> resources = new ArrayList<>(); for (Role role : roles) { IamRole iamRole = new IamRole(); conf(iamRole, accountId, dt); iamRole.setResource(role); resources.add(iamRole); } log.debug("{} roles found via api and converted to IamRole", resources.size()); return resources; } }