tech.condense.cdkconstructs.EntrypointProps Maven / Gradle / Ivy
Show all versions of cdkconstructs Show documentation
package tech.condense.cdkconstructs;
/**
* (experimental) Properties for the Entrypoint construct.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-11T12:29:44.535Z")
@software.amazon.jsii.Jsii(module = tech.condense.cdkconstructs.$Module.class, fqn = "@condensetech/cdk-constructs.EntrypointProps")
@software.amazon.jsii.Jsii.Proxy(EntrypointProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface EntrypointProps extends software.amazon.jsii.JsiiSerializable {
/**
* (experimental) The domain name to which the entrypoint is associated.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getDomainName();
/**
* (experimental) The networking configuration for the entrypoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull tech.condense.cdkconstructs.INetworking getNetworking();
/**
* (deprecated) Certificate properties for the entrypoint.
*
* Default: - A new certificate is created through ACM, bound to domainName, *.domainName.
*
* @deprecated Use certificates
instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
default @org.jetbrains.annotations.Nullable tech.condense.cdkconstructs.EntrypointCertificateProps getCertificate() {
return null;
}
/**
* (experimental) Certificate properties for the entrypoint.
*
* Default: - A new certificate is created through ACM, bound to domainName, *.domainName.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getCertificates() {
return null;
}
/**
* (experimental) The name of the entrypoint.
*
* This value is used as the name of the underlying Application Load Balancer (ALB)
* and as the prefix for the name of the associated security group.
*
* Default: - No name is specified.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getEntrypointName() {
return null;
}
/**
* (deprecated) The name of the security group for the entrypoint.
*
* Default: `${entrypointName}-sg`
*
* @deprecated Use securityGroupName
instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
default @org.jetbrains.annotations.Nullable java.lang.String getEntrypointSecurityGroupName() {
return null;
}
/**
* (experimental) The Route 53 hosted zone attributes for the domain name.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.route53.HostedZoneAttributes getHostedZoneProps() {
return null;
}
/**
* (experimental) The S3 bucket to store the logs of the ALB.
*
* Setting this will enable the access logs for the ALB.
*
* Default: - Logging is disabled.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable software.amazon.awscdk.services.s3.IBucket getLogsBucket() {
return null;
}
/**
* (experimental) Customize the priority allocator for the entrypoint.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig getPriorityAllocator() {
return null;
}
/**
* (experimental) The name of the security group for the entrypoint.
*
* Default: `${entrypointName}-sg` if `entrypointName` is specified, otherwise no name is specified.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.String getSecurityGroupName() {
return null;
}
/**
* @return a {@link Builder} of {@link EntrypointProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link EntrypointProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String domainName;
tech.condense.cdkconstructs.INetworking networking;
tech.condense.cdkconstructs.EntrypointCertificateProps certificate;
java.util.List certificates;
java.lang.String entrypointName;
java.lang.String entrypointSecurityGroupName;
software.amazon.awscdk.services.route53.HostedZoneAttributes hostedZoneProps;
software.amazon.awscdk.services.s3.IBucket logsBucket;
tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig priorityAllocator;
java.lang.String securityGroupName;
/**
* Sets the value of {@link EntrypointProps#getDomainName}
* @param domainName The domain name to which the entrypoint is associated. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder domainName(java.lang.String domainName) {
this.domainName = domainName;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getNetworking}
* @param networking The networking configuration for the entrypoint. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder networking(tech.condense.cdkconstructs.INetworking networking) {
this.networking = networking;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getCertificate}
* @param certificate Certificate properties for the entrypoint.
* @return {@code this}
* @deprecated Use `certificates` instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder certificate(tech.condense.cdkconstructs.EntrypointCertificateProps certificate) {
this.certificate = certificate;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getCertificates}
* @param certificates Certificate properties for the entrypoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder certificates(java.util.List extends tech.condense.cdkconstructs.EntrypointCertificateProps> certificates) {
this.certificates = (java.util.List)certificates;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getEntrypointName}
* @param entrypointName The name of the entrypoint.
* This value is used as the name of the underlying Application Load Balancer (ALB)
* and as the prefix for the name of the associated security group.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder entrypointName(java.lang.String entrypointName) {
this.entrypointName = entrypointName;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getEntrypointSecurityGroupName}
* @param entrypointSecurityGroupName The name of the security group for the entrypoint.
* @return {@code this}
* @deprecated Use `securityGroupName` instead.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder entrypointSecurityGroupName(java.lang.String entrypointSecurityGroupName) {
this.entrypointSecurityGroupName = entrypointSecurityGroupName;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getHostedZoneProps}
* @param hostedZoneProps The Route 53 hosted zone attributes for the domain name.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder hostedZoneProps(software.amazon.awscdk.services.route53.HostedZoneAttributes hostedZoneProps) {
this.hostedZoneProps = hostedZoneProps;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getLogsBucket}
* @param logsBucket The S3 bucket to store the logs of the ALB.
* Setting this will enable the access logs for the ALB.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder logsBucket(software.amazon.awscdk.services.s3.IBucket logsBucket) {
this.logsBucket = logsBucket;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getPriorityAllocator}
* @param priorityAllocator Customize the priority allocator for the entrypoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder priorityAllocator(tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig priorityAllocator) {
this.priorityAllocator = priorityAllocator;
return this;
}
/**
* Sets the value of {@link EntrypointProps#getSecurityGroupName}
* @param securityGroupName The name of the security group for the entrypoint.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder securityGroupName(java.lang.String securityGroupName) {
this.securityGroupName = securityGroupName;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link EntrypointProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public EntrypointProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link EntrypointProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements EntrypointProps {
private final java.lang.String domainName;
private final tech.condense.cdkconstructs.INetworking networking;
private final tech.condense.cdkconstructs.EntrypointCertificateProps certificate;
private final java.util.List certificates;
private final java.lang.String entrypointName;
private final java.lang.String entrypointSecurityGroupName;
private final software.amazon.awscdk.services.route53.HostedZoneAttributes hostedZoneProps;
private final software.amazon.awscdk.services.s3.IBucket logsBucket;
private final tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig priorityAllocator;
private final java.lang.String securityGroupName;
/**
* 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.domainName = software.amazon.jsii.Kernel.get(this, "domainName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.networking = software.amazon.jsii.Kernel.get(this, "networking", software.amazon.jsii.NativeType.forClass(tech.condense.cdkconstructs.INetworking.class));
this.certificate = software.amazon.jsii.Kernel.get(this, "certificate", software.amazon.jsii.NativeType.forClass(tech.condense.cdkconstructs.EntrypointCertificateProps.class));
this.certificates = software.amazon.jsii.Kernel.get(this, "certificates", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(tech.condense.cdkconstructs.EntrypointCertificateProps.class)));
this.entrypointName = software.amazon.jsii.Kernel.get(this, "entrypointName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.entrypointSecurityGroupName = software.amazon.jsii.Kernel.get(this, "entrypointSecurityGroupName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.hostedZoneProps = software.amazon.jsii.Kernel.get(this, "hostedZoneProps", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.route53.HostedZoneAttributes.class));
this.logsBucket = software.amazon.jsii.Kernel.get(this, "logsBucket", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.IBucket.class));
this.priorityAllocator = software.amazon.jsii.Kernel.get(this, "priorityAllocator", software.amazon.jsii.NativeType.forClass(tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig.class));
this.securityGroupName = software.amazon.jsii.Kernel.get(this, "securityGroupName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.domainName = java.util.Objects.requireNonNull(builder.domainName, "domainName is required");
this.networking = java.util.Objects.requireNonNull(builder.networking, "networking is required");
this.certificate = builder.certificate;
this.certificates = (java.util.List)builder.certificates;
this.entrypointName = builder.entrypointName;
this.entrypointSecurityGroupName = builder.entrypointSecurityGroupName;
this.hostedZoneProps = builder.hostedZoneProps;
this.logsBucket = builder.logsBucket;
this.priorityAllocator = builder.priorityAllocator;
this.securityGroupName = builder.securityGroupName;
}
@Override
public final java.lang.String getDomainName() {
return this.domainName;
}
@Override
public final tech.condense.cdkconstructs.INetworking getNetworking() {
return this.networking;
}
@Override
public final tech.condense.cdkconstructs.EntrypointCertificateProps getCertificate() {
return this.certificate;
}
@Override
public final java.util.List getCertificates() {
return this.certificates;
}
@Override
public final java.lang.String getEntrypointName() {
return this.entrypointName;
}
@Override
public final java.lang.String getEntrypointSecurityGroupName() {
return this.entrypointSecurityGroupName;
}
@Override
public final software.amazon.awscdk.services.route53.HostedZoneAttributes getHostedZoneProps() {
return this.hostedZoneProps;
}
@Override
public final software.amazon.awscdk.services.s3.IBucket getLogsBucket() {
return this.logsBucket;
}
@Override
public final tech.condense.cdkconstructs.ApplicationListenerPriorityAllocatorConfig getPriorityAllocator() {
return this.priorityAllocator;
}
@Override
public final java.lang.String getSecurityGroupName() {
return this.securityGroupName;
}
@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("domainName", om.valueToTree(this.getDomainName()));
data.set("networking", om.valueToTree(this.getNetworking()));
if (this.getCertificate() != null) {
data.set("certificate", om.valueToTree(this.getCertificate()));
}
if (this.getCertificates() != null) {
data.set("certificates", om.valueToTree(this.getCertificates()));
}
if (this.getEntrypointName() != null) {
data.set("entrypointName", om.valueToTree(this.getEntrypointName()));
}
if (this.getEntrypointSecurityGroupName() != null) {
data.set("entrypointSecurityGroupName", om.valueToTree(this.getEntrypointSecurityGroupName()));
}
if (this.getHostedZoneProps() != null) {
data.set("hostedZoneProps", om.valueToTree(this.getHostedZoneProps()));
}
if (this.getLogsBucket() != null) {
data.set("logsBucket", om.valueToTree(this.getLogsBucket()));
}
if (this.getPriorityAllocator() != null) {
data.set("priorityAllocator", om.valueToTree(this.getPriorityAllocator()));
}
if (this.getSecurityGroupName() != null) {
data.set("securityGroupName", om.valueToTree(this.getSecurityGroupName()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@condensetech/cdk-constructs.EntrypointProps"));
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;
EntrypointProps.Jsii$Proxy that = (EntrypointProps.Jsii$Proxy) o;
if (!domainName.equals(that.domainName)) return false;
if (!networking.equals(that.networking)) return false;
if (this.certificate != null ? !this.certificate.equals(that.certificate) : that.certificate != null) return false;
if (this.certificates != null ? !this.certificates.equals(that.certificates) : that.certificates != null) return false;
if (this.entrypointName != null ? !this.entrypointName.equals(that.entrypointName) : that.entrypointName != null) return false;
if (this.entrypointSecurityGroupName != null ? !this.entrypointSecurityGroupName.equals(that.entrypointSecurityGroupName) : that.entrypointSecurityGroupName != null) return false;
if (this.hostedZoneProps != null ? !this.hostedZoneProps.equals(that.hostedZoneProps) : that.hostedZoneProps != null) return false;
if (this.logsBucket != null ? !this.logsBucket.equals(that.logsBucket) : that.logsBucket != null) return false;
if (this.priorityAllocator != null ? !this.priorityAllocator.equals(that.priorityAllocator) : that.priorityAllocator != null) return false;
return this.securityGroupName != null ? this.securityGroupName.equals(that.securityGroupName) : that.securityGroupName == null;
}
@Override
public final int hashCode() {
int result = this.domainName.hashCode();
result = 31 * result + (this.networking.hashCode());
result = 31 * result + (this.certificate != null ? this.certificate.hashCode() : 0);
result = 31 * result + (this.certificates != null ? this.certificates.hashCode() : 0);
result = 31 * result + (this.entrypointName != null ? this.entrypointName.hashCode() : 0);
result = 31 * result + (this.entrypointSecurityGroupName != null ? this.entrypointSecurityGroupName.hashCode() : 0);
result = 31 * result + (this.hostedZoneProps != null ? this.hostedZoneProps.hashCode() : 0);
result = 31 * result + (this.logsBucket != null ? this.logsBucket.hashCode() : 0);
result = 31 * result + (this.priorityAllocator != null ? this.priorityAllocator.hashCode() : 0);
result = 31 * result + (this.securityGroupName != null ? this.securityGroupName.hashCode() : 0);
return result;
}
}
}