io.github.cdklabs.cdk.amazonmq.ActiveMqLdapAuthorization Maven / Gradle / Ivy
package io.github.cdklabs.cdk.amazonmq;
/**
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.102.0 (build e354887)", date = "2024-08-08T22:30:31.771Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdk.amazonmq.$Module.class, fqn = "@cdklabs/cdk-amazonmq.ActiveMqLdapAuthorization")
@software.amazon.jsii.Jsii.Proxy(ActiveMqLdapAuthorization.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface ActiveMqLdapAuthorization extends software.amazon.jsii.JsiiSerializable {
/**
* (experimental) Sets the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory.
*
* Optional failover server.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.util.List getHosts();
/**
* (experimental) The distinguished name of the node in the directory information tree (DIT) to search for roles or groups.
*
* For example, ou=group, ou=corp, dc=corp, dc=example, dc=com.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getRoleBase();
/**
* (experimental) The LDAP search filter used to find roles within the roleBase.
*
* The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1}) for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the RoleBases.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getRoleSearchMatching();
/**
* (experimental) Service account password.
*
* A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example, dc=com.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.SecretValue getServiceAccountPassword();
/**
* (experimental) Service account username.
*
* A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin, ou=corp, dc=corp, dc=example, dc=com.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.SecretValue getServiceAccountUsername();
/**
* (experimental) Select a particular subtree of the directory information tree (DIT) to search for user entries.
*
* The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users,ou=corp, dc=corp, dc=example, dc=com.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getUserBase();
/**
* (experimental) The name of the LDAP attribute in the user's directory entry for the user's group membership.
*
* In some cases, user roles may be identified by the value of an attribute in the user's directory entry. The UserRoleName option allows you to provide the name of this attribute.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getUserRoleName();
/**
* (experimental) The LDAP search filter used to find users within the userBase.
*
* The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users, ou=corp, dc=corp, dc=example, dc=com.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getUserSearchMatching();
/**
* (experimental) The group name attribute in a role entry whose value is the name of that role.
*
* For example, you can specify cn for a group entry's common name. If authentication succeeds, then the user is assigned the the value of the cn attribute for each role entry that they are a member of.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getRoleName() {
return null;
}
/**
* (experimental) The directory search scope for the role.
*
* If set to true, scope is to search the entire subtree.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getRoleSearchSubtree() {
return null;
}
/**
* (experimental) The directory search scope for the user.
*
* If set to true, scope is to search the entire subtree.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Boolean getUserSearchSubtree() {
return null;
}
/**
* @return a {@link Builder} of {@link ActiveMqLdapAuthorization}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link ActiveMqLdapAuthorization}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
java.util.List hosts;
java.lang.String roleBase;
java.lang.String roleSearchMatching;
software.amazon.awscdk.SecretValue serviceAccountPassword;
software.amazon.awscdk.SecretValue serviceAccountUsername;
java.lang.String userBase;
java.lang.String userRoleName;
java.lang.String userSearchMatching;
java.lang.String roleName;
java.lang.Boolean roleSearchSubtree;
java.lang.Boolean userSearchSubtree;
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getHosts}
* @param hosts Sets the location of the LDAP server such as AWS Directory Service for Microsoft Active Directory. This parameter is required.
* Optional failover server.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder hosts(java.util.List hosts) {
this.hosts = hosts;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getRoleBase}
* @param roleBase The distinguished name of the node in the directory information tree (DIT) to search for roles or groups. This parameter is required.
* For example, ou=group, ou=corp, dc=corp, dc=example, dc=com.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder roleBase(java.lang.String roleBase) {
this.roleBase = roleBase;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getRoleSearchMatching}
* @param roleSearchMatching The LDAP search filter used to find roles within the roleBase. This parameter is required.
* The distinguished name of the user matched by userSearchMatching is substituted into the {0} placeholder in the search filter. The client's username is substituted into the {1} placeholder. For example, if you set this option to (member=uid={1}) for the user janedoe, the search filter becomes (member=uid=janedoe) after string substitution. It matches all role entries that have a member attribute equal to uid=janedoe under the subtree selected by the RoleBases.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder roleSearchMatching(java.lang.String roleSearchMatching) {
this.roleSearchMatching = roleSearchMatching;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getServiceAccountPassword}
* @param serviceAccountPassword Service account password. This parameter is required.
* A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin,dc=corp, dc=example, dc=com.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder serviceAccountPassword(software.amazon.awscdk.SecretValue serviceAccountPassword) {
this.serviceAccountPassword = serviceAccountPassword;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getServiceAccountUsername}
* @param serviceAccountUsername Service account username. This parameter is required.
* A service account is an account in your LDAP server that has access to initiate a connection. For example, cn=admin, ou=corp, dc=corp, dc=example, dc=com.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder serviceAccountUsername(software.amazon.awscdk.SecretValue serviceAccountUsername) {
this.serviceAccountUsername = serviceAccountUsername;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getUserBase}
* @param userBase Select a particular subtree of the directory information tree (DIT) to search for user entries. This parameter is required.
* The subtree is specified by a DN, which specifies the base node of the subtree. For example, by setting this option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for user entries is restricted to the subtree beneath ou=Users,ou=corp, dc=corp, dc=example, dc=com.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder userBase(java.lang.String userBase) {
this.userBase = userBase;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getUserRoleName}
* @param userRoleName The name of the LDAP attribute in the user's directory entry for the user's group membership. This parameter is required.
* In some cases, user roles may be identified by the value of an attribute in the user's directory entry. The UserRoleName option allows you to provide the name of this attribute.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder userRoleName(java.lang.String userRoleName) {
this.userRoleName = userRoleName;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getUserSearchMatching}
* @param userSearchMatching The LDAP search filter used to find users within the userBase. This parameter is required.
* The client's username is substituted into the {0} placeholder in the search filter. For example, if this option is set to (uid={0}) and the received username is janedoe, the search filter becomes (uid=janedoe) after string substitution. It will result in matching an entry like uid=janedoe, ou=Users, ou=corp, dc=corp, dc=example, dc=com.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder userSearchMatching(java.lang.String userSearchMatching) {
this.userSearchMatching = userSearchMatching;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getRoleName}
* @param roleName The group name attribute in a role entry whose value is the name of that role.
* For example, you can specify cn for a group entry's common name. If authentication succeeds, then the user is assigned the the value of the cn attribute for each role entry that they are a member of.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder roleName(java.lang.String roleName) {
this.roleName = roleName;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getRoleSearchSubtree}
* @param roleSearchSubtree The directory search scope for the role.
* If set to true, scope is to search the entire subtree.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder roleSearchSubtree(java.lang.Boolean roleSearchSubtree) {
this.roleSearchSubtree = roleSearchSubtree;
return this;
}
/**
* Sets the value of {@link ActiveMqLdapAuthorization#getUserSearchSubtree}
* @param userSearchSubtree The directory search scope for the user.
* If set to true, scope is to search the entire subtree.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder userSearchSubtree(java.lang.Boolean userSearchSubtree) {
this.userSearchSubtree = userSearchSubtree;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link ActiveMqLdapAuthorization}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public ActiveMqLdapAuthorization build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link ActiveMqLdapAuthorization}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ActiveMqLdapAuthorization {
private final java.util.List hosts;
private final java.lang.String roleBase;
private final java.lang.String roleSearchMatching;
private final software.amazon.awscdk.SecretValue serviceAccountPassword;
private final software.amazon.awscdk.SecretValue serviceAccountUsername;
private final java.lang.String userBase;
private final java.lang.String userRoleName;
private final java.lang.String userSearchMatching;
private final java.lang.String roleName;
private final java.lang.Boolean roleSearchSubtree;
private final java.lang.Boolean userSearchSubtree;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.hosts = software.amazon.jsii.Kernel.get(this, "hosts", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.roleBase = software.amazon.jsii.Kernel.get(this, "roleBase", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.roleSearchMatching = software.amazon.jsii.Kernel.get(this, "roleSearchMatching", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.serviceAccountPassword = software.amazon.jsii.Kernel.get(this, "serviceAccountPassword", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.SecretValue.class));
this.serviceAccountUsername = software.amazon.jsii.Kernel.get(this, "serviceAccountUsername", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.SecretValue.class));
this.userBase = software.amazon.jsii.Kernel.get(this, "userBase", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.userRoleName = software.amazon.jsii.Kernel.get(this, "userRoleName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.userSearchMatching = software.amazon.jsii.Kernel.get(this, "userSearchMatching", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.roleName = software.amazon.jsii.Kernel.get(this, "roleName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.roleSearchSubtree = software.amazon.jsii.Kernel.get(this, "roleSearchSubtree", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.userSearchSubtree = software.amazon.jsii.Kernel.get(this, "userSearchSubtree", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.hosts = java.util.Objects.requireNonNull(builder.hosts, "hosts is required");
this.roleBase = java.util.Objects.requireNonNull(builder.roleBase, "roleBase is required");
this.roleSearchMatching = java.util.Objects.requireNonNull(builder.roleSearchMatching, "roleSearchMatching is required");
this.serviceAccountPassword = java.util.Objects.requireNonNull(builder.serviceAccountPassword, "serviceAccountPassword is required");
this.serviceAccountUsername = java.util.Objects.requireNonNull(builder.serviceAccountUsername, "serviceAccountUsername is required");
this.userBase = java.util.Objects.requireNonNull(builder.userBase, "userBase is required");
this.userRoleName = java.util.Objects.requireNonNull(builder.userRoleName, "userRoleName is required");
this.userSearchMatching = java.util.Objects.requireNonNull(builder.userSearchMatching, "userSearchMatching is required");
this.roleName = builder.roleName;
this.roleSearchSubtree = builder.roleSearchSubtree;
this.userSearchSubtree = builder.userSearchSubtree;
}
@Override
public final java.util.List getHosts() {
return this.hosts;
}
@Override
public final java.lang.String getRoleBase() {
return this.roleBase;
}
@Override
public final java.lang.String getRoleSearchMatching() {
return this.roleSearchMatching;
}
@Override
public final software.amazon.awscdk.SecretValue getServiceAccountPassword() {
return this.serviceAccountPassword;
}
@Override
public final software.amazon.awscdk.SecretValue getServiceAccountUsername() {
return this.serviceAccountUsername;
}
@Override
public final java.lang.String getUserBase() {
return this.userBase;
}
@Override
public final java.lang.String getUserRoleName() {
return this.userRoleName;
}
@Override
public final java.lang.String getUserSearchMatching() {
return this.userSearchMatching;
}
@Override
public final java.lang.String getRoleName() {
return this.roleName;
}
@Override
public final java.lang.Boolean getRoleSearchSubtree() {
return this.roleSearchSubtree;
}
@Override
public final java.lang.Boolean getUserSearchSubtree() {
return this.userSearchSubtree;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("hosts", om.valueToTree(this.getHosts()));
data.set("roleBase", om.valueToTree(this.getRoleBase()));
data.set("roleSearchMatching", om.valueToTree(this.getRoleSearchMatching()));
data.set("serviceAccountPassword", om.valueToTree(this.getServiceAccountPassword()));
data.set("serviceAccountUsername", om.valueToTree(this.getServiceAccountUsername()));
data.set("userBase", om.valueToTree(this.getUserBase()));
data.set("userRoleName", om.valueToTree(this.getUserRoleName()));
data.set("userSearchMatching", om.valueToTree(this.getUserSearchMatching()));
if (this.getRoleName() != null) {
data.set("roleName", om.valueToTree(this.getRoleName()));
}
if (this.getRoleSearchSubtree() != null) {
data.set("roleSearchSubtree", om.valueToTree(this.getRoleSearchSubtree()));
}
if (this.getUserSearchSubtree() != null) {
data.set("userSearchSubtree", om.valueToTree(this.getUserSearchSubtree()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@cdklabs/cdk-amazonmq.ActiveMqLdapAuthorization"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ActiveMqLdapAuthorization.Jsii$Proxy that = (ActiveMqLdapAuthorization.Jsii$Proxy) o;
if (!hosts.equals(that.hosts)) return false;
if (!roleBase.equals(that.roleBase)) return false;
if (!roleSearchMatching.equals(that.roleSearchMatching)) return false;
if (!serviceAccountPassword.equals(that.serviceAccountPassword)) return false;
if (!serviceAccountUsername.equals(that.serviceAccountUsername)) return false;
if (!userBase.equals(that.userBase)) return false;
if (!userRoleName.equals(that.userRoleName)) return false;
if (!userSearchMatching.equals(that.userSearchMatching)) return false;
if (this.roleName != null ? !this.roleName.equals(that.roleName) : that.roleName != null) return false;
if (this.roleSearchSubtree != null ? !this.roleSearchSubtree.equals(that.roleSearchSubtree) : that.roleSearchSubtree != null) return false;
return this.userSearchSubtree != null ? this.userSearchSubtree.equals(that.userSearchSubtree) : that.userSearchSubtree == null;
}
@Override
public final int hashCode() {
int result = this.hosts.hashCode();
result = 31 * result + (this.roleBase.hashCode());
result = 31 * result + (this.roleSearchMatching.hashCode());
result = 31 * result + (this.serviceAccountPassword.hashCode());
result = 31 * result + (this.serviceAccountUsername.hashCode());
result = 31 * result + (this.userBase.hashCode());
result = 31 * result + (this.userRoleName.hashCode());
result = 31 * result + (this.userSearchMatching.hashCode());
result = 31 * result + (this.roleName != null ? this.roleName.hashCode() : 0);
result = 31 * result + (this.roleSearchSubtree != null ? this.roleSearchSubtree.hashCode() : 0);
result = 31 * result + (this.userSearchSubtree != null ? this.userSearchSubtree.hashCode() : 0);
return result;
}
}
}