/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.model.auth;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import java.util.LinkedHashSet;
import java.util.Set;
/**
* Authentication provider object for PUT
*/
@XmlRootElement(name = "authnprovider_update")
public class AuthnUpdateParam extends AuthnProviderBaseParam {
/**
* The changes for the URL set of this provider. URLs
* can be added, and removed. Up to one add element and one remove element may be specified.
* Multiple urls can be specified in the add and remove blocks.
*
*/
private ServerUrlChanges serverUrlChanges;
private DomainChanges domainChanges;
private TenantsSynchronizationOptionsChanges tenantsSynchronizationOptionsChanges;
private GroupWhitelistValueChanges groupWhitelistValueChanges;
private GroupObjectClassChanges groupObjectClassChanges;
private GroupMemberAttributeChanges groupMemberAttributeChanges;
@XmlElement(name = "server_url_changes")
public ServerUrlChanges getServerUrlChanges() {
if (serverUrlChanges == null) {
serverUrlChanges = new AuthnUpdateParam.ServerUrlChanges();
}
return serverUrlChanges;
}
public void setServerUrlChanges(ServerUrlChanges serverUrlChanges) {
this.serverUrlChanges = serverUrlChanges;
}
@XmlElement(name = "domain_changes")
public DomainChanges getDomainChanges() {
if (domainChanges == null) {
domainChanges = new AuthnUpdateParam.DomainChanges();
}
return domainChanges;
}
public void setDomainChanges(DomainChanges domainChanges) {
this.domainChanges = domainChanges;
}
@XmlElement(name = "group_whitelist_value_changes")
public GroupWhitelistValueChanges getGroupWhitelistValueChanges() {
if (groupWhitelistValueChanges == null) {
groupWhitelistValueChanges = new AuthnUpdateParam.GroupWhitelistValueChanges();
}
return groupWhitelistValueChanges;
}
public void setGroupWhitelistValueChanges(
GroupWhitelistValueChanges groupWhitelistValueChanges) {
this.groupWhitelistValueChanges = groupWhitelistValueChanges;
}
@XmlElement(name = "tenants_synchronization_options_changes")
public TenantsSynchronizationOptionsChanges getTenantsSynchronizationOptionsChanges() {
if (tenantsSynchronizationOptionsChanges == null) {
tenantsSynchronizationOptionsChanges = new AuthnUpdateParam.TenantsSynchronizationOptionsChanges();
}
return tenantsSynchronizationOptionsChanges;
}
public void setTenantsSynchronizationOptionsChanges(
TenantsSynchronizationOptionsChanges tenantsSynchronizationOptionsChanges) {
this.tenantsSynchronizationOptionsChanges = tenantsSynchronizationOptionsChanges;
}
@XmlElement(name = "group_objclass_changes")
public GroupObjectClassChanges getGroupObjectClassChanges() {
if (groupObjectClassChanges == null) {
groupObjectClassChanges = new GroupObjectClassChanges();
}
return groupObjectClassChanges;
}
public void setGroupObjectClassChanges(
GroupObjectClassChanges groupGroupObjectClassChanges) {
this.groupObjectClassChanges = groupGroupObjectClassChanges;
}
@XmlElement(name = "group_memberattr_changes")
public GroupMemberAttributeChanges getGroupMemberAttributeChanges() {
if (groupMemberAttributeChanges == null) {
groupMemberAttributeChanges = new GroupMemberAttributeChanges();
}
return groupMemberAttributeChanges;
}
public void setGroupMemberAttributeChanges(
GroupMemberAttributeChanges groupGroupMemberAttributeChanges) {
this.groupMemberAttributeChanges = groupGroupMemberAttributeChanges;
}
public static class ServerUrlChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of Server URLs to add. You cannot mix ldap and ldaps URLs
*
*/
@XmlElementWrapper(name = "add")
/**
* Server URL to add.
*/
@XmlElement(name = "server_url")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of Server URLs to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* Server URL to remove.
*/
@XmlElement(name = "server_url")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
public static class DomainChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of domains to add.
*
*/
@XmlElementWrapper(name = "add")
/**
* Active Directory domain names associated with this
* provider. For non Active Directory servers, domain represents a logical
* abstraction for this server which may not correspond to a network name.
*/
@XmlElement(name = "domain")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of domains to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* domain to remove
*/
@XmlElement(name = "domain")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
public static class TenantsSynchronizationOptionsChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of tenants synchronization options to add.
*
*/
@XmlElementWrapper(name = "add")
/**
* Tenants synchronization options for Keystone Authentication Provider.
*/
@XmlElement(name = "tenantsSynchronizationOptions")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of tenants synchronization options to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* tenants synchronization option to remove
*/
@XmlElement(name = "tenantsSynchronizationOptions")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
public static class GroupWhitelistValueChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of white list values to add.
*
*/
@XmlElementWrapper(name = "add")
/**
* Names of the groups to be included when querying Active Directory
* for group membership information about a user or group.
* Valid values:
* regular expressions
*/
@XmlElement(name = "group_whitelist_value")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of white list values to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* White list value to remove.
*/
@XmlElement(name = "group_whitelist_value")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
public static class GroupObjectClassChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of group object classes to add.
*
*/
@XmlElementWrapper(name = "add")
/**
* Group object classes to be included when querying LDAP
* for searching the group.
* Valid values:
* LDAP schema objectClasses
*/
@XmlElement(name = "group_object_class")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of group object classes to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* group object classes to remove.
*/
@XmlElement(name = "group_object_class")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
public static class GroupMemberAttributeChanges {
private Set<String> add;
private Set<String> remove;
/**
* List of group member attributes to add.
*
*/
@XmlElementWrapper(name = "add")
/**
* Group member attributes to be included when querying LDAP
* for searching the user and group membership.
* Valid value:
* Valid LDAP schema attributes
* When empty, search for user's membership in LDAP will fail
*/
@XmlElement(name = "group_member_attribute")
public Set<String> getAdd() {
if (add == null) {
add = new LinkedHashSet<String>();
}
return add;
}
public void setAdd(Set<String> add) {
this.add = add;
}
/**
* List of group member attribute type names to remove.
*
*/
@XmlElementWrapper(name = "remove")
/**
* List of group member attributes to remove.
*/
@XmlElement(name = "group_member_attribute")
public Set<String> getRemove() {
if (remove == null) {
remove = new LinkedHashSet<String>();
}
return remove;
}
public void setRemove(Set<String> remove) {
this.remove = remove;
}
}
}