All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.cdklabs.cdkecsserviceextensions.ConnectToProps Maven / Gradle / Ivy

There is a newer version: 2.0.1-alpha.507
Show newest version
package io.github.cdklabs.cdkecsserviceextensions;

/**
 * (experimental) connectToProps will have all the extra parameters which are required for connecting services.
 */
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-24T00:29:08.459Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdkecsserviceextensions.$Module.class, fqn = "@aws-cdk-containers/ecs-service-extensions.ConnectToProps")
@software.amazon.jsii.Jsii.Proxy(ConnectToProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface ConnectToProps extends software.amazon.jsii.JsiiSerializable {

    /**
     * (experimental) localBindPort is the local port that this application should use when calling the upstream service in ECS Consul Mesh Extension Currently, this parameter will only be used in the ECSConsulMeshExtension https://github.com/aws-ia/ecs-consul-mesh-extension.
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    default @org.jetbrains.annotations.Nullable java.lang.Number getLocalBindPort() {
        return null;
    }

    /**
     * @return a {@link Builder} of {@link ConnectToProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    static Builder builder() {
        return new Builder();
    }
    /**
     * A builder for {@link ConnectToProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    public static final class Builder implements software.amazon.jsii.Builder {
        java.lang.Number localBindPort;

        /**
         * Sets the value of {@link ConnectToProps#getLocalBindPort}
         * @param localBindPort localBindPort is the local port that this application should use when calling the upstream service in ECS Consul Mesh Extension Currently, this parameter will only be used in the ECSConsulMeshExtension https://github.com/aws-ia/ecs-consul-mesh-extension.
         * @return {@code this}
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
        public Builder localBindPort(java.lang.Number localBindPort) {
            this.localBindPort = localBindPort;
            return this;
        }

        /**
         * Builds the configured instance.
         * @return a new instance of {@link ConnectToProps}
         * @throws NullPointerException if any required attribute was not provided
         */
        @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
        @Override
        public ConnectToProps build() {
            return new Jsii$Proxy(this);
        }
    }

    /**
     * An implementation for {@link ConnectToProps}
     */
    @software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
    @software.amazon.jsii.Internal
    final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ConnectToProps {
        private final java.lang.Number localBindPort;

        /**
         * 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.localBindPort = software.amazon.jsii.Kernel.get(this, "localBindPort", software.amazon.jsii.NativeType.forClass(java.lang.Number.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.localBindPort = builder.localBindPort;
        }

        @Override
        public final java.lang.Number getLocalBindPort() {
            return this.localBindPort;
        }

        @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();

            if (this.getLocalBindPort() != null) {
                data.set("localBindPort", om.valueToTree(this.getLocalBindPort()));
            }

            final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
            struct.set("fqn", om.valueToTree("@aws-cdk-containers/ecs-service-extensions.ConnectToProps"));
            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;

            ConnectToProps.Jsii$Proxy that = (ConnectToProps.Jsii$Proxy) o;

            return this.localBindPort != null ? this.localBindPort.equals(that.localBindPort) : that.localBindPort == null;
        }

        @Override
        public final int hashCode() {
            int result = this.localBindPort != null ? this.localBindPort.hashCode() : 0;
            return result;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy