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

com.pulumi.alicloud.polardb.inputs.EndpointState Maven / Gradle / Ivy

There is a newer version: 3.63.0-alpha.1727424957
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.alicloud.polardb.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class EndpointState extends com.pulumi.resources.ResourceArgs {

    public static final EndpointState Empty = new EndpointState();

    /**
     * Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.
     * 
     */
    @Import(name="autoAddNewNodes")
    private @Nullable Output autoAddNewNodes;

    /**
     * @return Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.
     * 
     */
    public Optional> autoAddNewNodes() {
        return Optional.ofNullable(this.autoAddNewNodes);
    }

    /**
     * Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.
     * 
     */
    @Import(name="connectionPrefix")
    private @Nullable Output connectionPrefix;

    /**
     * @return Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.
     * 
     */
    public Optional> connectionPrefix() {
        return Optional.ofNullable(this.connectionPrefix);
    }

    /**
     * The Id of cluster that can run database.
     * 
     */
    @Import(name="dbClusterId")
    private @Nullable Output dbClusterId;

    /**
     * @return The Id of cluster that can run database.
     * 
     */
    public Optional> dbClusterId() {
        return Optional.ofNullable(this.dbClusterId);
    }

    /**
     * The name of the endpoint.
     * 
     */
    @Import(name="dbEndpointDescription")
    private @Nullable Output dbEndpointDescription;

    /**
     * @return The name of the endpoint.
     * 
     */
    public Optional> dbEndpointDescription() {
        return Optional.ofNullable(this.dbEndpointDescription);
    }

    /**
     * (Available since v1.161.0) The ID of the cluster endpoint.
     * 
     */
    @Import(name="dbEndpointId")
    private @Nullable Output dbEndpointId;

    /**
     * @return (Available since v1.161.0) The ID of the cluster endpoint.
     * 
     */
    public Optional> dbEndpointId() {
        return Optional.ofNullable(this.dbEndpointId);
    }

    /**
     * The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).
     * 
     */
    @Import(name="endpointConfig")
    private @Nullable Output> endpointConfig;

    /**
     * @return The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).
     * 
     */
    public Optional>> endpointConfig() {
        return Optional.ofNullable(this.endpointConfig);
    }

    /**
     * Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.
     * 
     */
    @Import(name="endpointType")
    private @Nullable Output endpointType;

    /**
     * @return Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.
     * 
     */
    public Optional> endpointType() {
        return Optional.ofNullable(this.endpointType);
    }

    /**
     * The network type of the endpoint address.
     * 
     */
    @Import(name="netType")
    private @Nullable Output netType;

    /**
     * @return The network type of the endpoint address.
     * 
     */
    public Optional> netType() {
        return Optional.ofNullable(this.netType);
    }

    /**
     * Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.
     * 
     */
    @Import(name="nodes")
    private @Nullable Output> nodes;

    /**
     * @return Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.
     * 
     */
    public Optional>> nodes() {
        return Optional.ofNullable(this.nodes);
    }

    /**
     * Port of the specified endpoint. Valid values: 3000 to 5999.
     * 
     */
    @Import(name="port")
    private @Nullable Output port;

    /**
     * @return Port of the specified endpoint. Valid values: 3000 to 5999.
     * 
     */
    public Optional> port() {
        return Optional.ofNullable(this.port);
    }

    /**
     * Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.
     * 
     */
    @Import(name="readWriteMode")
    private @Nullable Output readWriteMode;

    /**
     * @return Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.
     * 
     */
    public Optional> readWriteMode() {
        return Optional.ofNullable(this.readWriteMode);
    }

    /**
     * Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.
     * 
     */
    @Import(name="sslAutoRotate")
    private @Nullable Output sslAutoRotate;

    /**
     * @return Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.
     * 
     */
    public Optional> sslAutoRotate() {
        return Optional.ofNullable(this.sslAutoRotate);
    }

    /**
     * Specifies SSL certificate download link.\
     * **NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).
     * For a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.
     * 
     */
    @Import(name="sslCertificateUrl")
    private @Nullable Output sslCertificateUrl;

    /**
     * @return Specifies SSL certificate download link.\
     * **NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).
     * For a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.
     * 
     */
    public Optional> sslCertificateUrl() {
        return Optional.ofNullable(this.sslCertificateUrl);
    }

    /**
     * (Available since v1.121.0) The SSL connection string.
     * 
     */
    @Import(name="sslConnectionString")
    private @Nullable Output sslConnectionString;

    /**
     * @return (Available since v1.121.0) The SSL connection string.
     * 
     */
    public Optional> sslConnectionString() {
        return Optional.ofNullable(this.sslConnectionString);
    }

    /**
     * Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.
     * 
     */
    @Import(name="sslEnabled")
    private @Nullable Output sslEnabled;

    /**
     * @return Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.
     * 
     */
    public Optional> sslEnabled() {
        return Optional.ofNullable(this.sslEnabled);
    }

    /**
     * (Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
     * 
     */
    @Import(name="sslExpireTime")
    private @Nullable Output sslExpireTime;

    /**
     * @return (Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
     * 
     */
    public Optional> sslExpireTime() {
        return Optional.ofNullable(this.sslExpireTime);
    }

    private EndpointState() {}

    private EndpointState(EndpointState $) {
        this.autoAddNewNodes = $.autoAddNewNodes;
        this.connectionPrefix = $.connectionPrefix;
        this.dbClusterId = $.dbClusterId;
        this.dbEndpointDescription = $.dbEndpointDescription;
        this.dbEndpointId = $.dbEndpointId;
        this.endpointConfig = $.endpointConfig;
        this.endpointType = $.endpointType;
        this.netType = $.netType;
        this.nodes = $.nodes;
        this.port = $.port;
        this.readWriteMode = $.readWriteMode;
        this.sslAutoRotate = $.sslAutoRotate;
        this.sslCertificateUrl = $.sslCertificateUrl;
        this.sslConnectionString = $.sslConnectionString;
        this.sslEnabled = $.sslEnabled;
        this.sslExpireTime = $.sslExpireTime;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(EndpointState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private EndpointState $;

        public Builder() {
            $ = new EndpointState();
        }

        public Builder(EndpointState defaults) {
            $ = new EndpointState(Objects.requireNonNull(defaults));
        }

        /**
         * @param autoAddNewNodes Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.
         * 
         * @return builder
         * 
         */
        public Builder autoAddNewNodes(@Nullable Output autoAddNewNodes) {
            $.autoAddNewNodes = autoAddNewNodes;
            return this;
        }

        /**
         * @param autoAddNewNodes Whether the new node automatically joins the default cluster address. Valid values are `Enable`, `Disable`. When creating a new custom endpoint, default to `Disable`.
         * 
         * @return builder
         * 
         */
        public Builder autoAddNewNodes(String autoAddNewNodes) {
            return autoAddNewNodes(Output.of(autoAddNewNodes));
        }

        /**
         * @param connectionPrefix Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.
         * 
         * @return builder
         * 
         */
        public Builder connectionPrefix(@Nullable Output connectionPrefix) {
            $.connectionPrefix = connectionPrefix;
            return this;
        }

        /**
         * @param connectionPrefix Prefix of the specified endpoint. The prefix must be 6 to 30 characters in length, and can contain lowercase letters, digits, and hyphens (-), must start with a letter and end with a digit or letter.
         * 
         * @return builder
         * 
         */
        public Builder connectionPrefix(String connectionPrefix) {
            return connectionPrefix(Output.of(connectionPrefix));
        }

        /**
         * @param dbClusterId The Id of cluster that can run database.
         * 
         * @return builder
         * 
         */
        public Builder dbClusterId(@Nullable Output dbClusterId) {
            $.dbClusterId = dbClusterId;
            return this;
        }

        /**
         * @param dbClusterId The Id of cluster that can run database.
         * 
         * @return builder
         * 
         */
        public Builder dbClusterId(String dbClusterId) {
            return dbClusterId(Output.of(dbClusterId));
        }

        /**
         * @param dbEndpointDescription The name of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder dbEndpointDescription(@Nullable Output dbEndpointDescription) {
            $.dbEndpointDescription = dbEndpointDescription;
            return this;
        }

        /**
         * @param dbEndpointDescription The name of the endpoint.
         * 
         * @return builder
         * 
         */
        public Builder dbEndpointDescription(String dbEndpointDescription) {
            return dbEndpointDescription(Output.of(dbEndpointDescription));
        }

        /**
         * @param dbEndpointId (Available since v1.161.0) The ID of the cluster endpoint.
         * 
         * @return builder
         * 
         */
        public Builder dbEndpointId(@Nullable Output dbEndpointId) {
            $.dbEndpointId = dbEndpointId;
            return this;
        }

        /**
         * @param dbEndpointId (Available since v1.161.0) The ID of the cluster endpoint.
         * 
         * @return builder
         * 
         */
        public Builder dbEndpointId(String dbEndpointId) {
            return dbEndpointId(Output.of(dbEndpointId));
        }

        /**
         * @param endpointConfig The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).
         * 
         * @return builder
         * 
         */
        public Builder endpointConfig(@Nullable Output> endpointConfig) {
            $.endpointConfig = endpointConfig;
            return this;
        }

        /**
         * @param endpointConfig The advanced settings of the endpoint of Apsara PolarDB clusters are in JSON format. Including the settings of consistency level, transaction splitting, connection pool, and offload reads from primary node. For more details, see the [description of EndpointConfig in the Request parameters table for details](https://www.alibabacloud.com/help/doc-detail/116593.htm).
         * 
         * @return builder
         * 
         */
        public Builder endpointConfig(Map endpointConfig) {
            return endpointConfig(Output.of(endpointConfig));
        }

        /**
         * @param endpointType Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(@Nullable Output endpointType) {
            $.endpointType = endpointType;
            return this;
        }

        /**
         * @param endpointType Type of the endpoint. Before v1.121.0, it only can be `Custom`. since v1.121.0, `Custom`, `Cluster`, `Primary` are valid, default to `Custom`. However when creating a new endpoint, it also only can be `Custom`.
         * 
         * @return builder
         * 
         */
        public Builder endpointType(String endpointType) {
            return endpointType(Output.of(endpointType));
        }

        /**
         * @param netType The network type of the endpoint address.
         * 
         * @return builder
         * 
         */
        public Builder netType(@Nullable Output netType) {
            $.netType = netType;
            return this;
        }

        /**
         * @param netType The network type of the endpoint address.
         * 
         * @return builder
         * 
         */
        public Builder netType(String netType) {
            return netType(Output.of(netType));
        }

        /**
         * @param nodes Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.
         * 
         * @return builder
         * 
         */
        public Builder nodes(@Nullable Output> nodes) {
            $.nodes = nodes;
            return this;
        }

        /**
         * @param nodes Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.
         * 
         * @return builder
         * 
         */
        public Builder nodes(List nodes) {
            return nodes(Output.of(nodes));
        }

        /**
         * @param nodes Node id list for endpoint configuration. At least 2 nodes if specified, or if the cluster has more than 3 nodes, read-only endpoint is allowed to mount only one node. Default is all nodes.
         * 
         * @return builder
         * 
         */
        public Builder nodes(String... nodes) {
            return nodes(List.of(nodes));
        }

        /**
         * @param port Port of the specified endpoint. Valid values: 3000 to 5999.
         * 
         * @return builder
         * 
         */
        public Builder port(@Nullable Output port) {
            $.port = port;
            return this;
        }

        /**
         * @param port Port of the specified endpoint. Valid values: 3000 to 5999.
         * 
         * @return builder
         * 
         */
        public Builder port(String port) {
            return port(Output.of(port));
        }

        /**
         * @param readWriteMode Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.
         * 
         * @return builder
         * 
         */
        public Builder readWriteMode(@Nullable Output readWriteMode) {
            $.readWriteMode = readWriteMode;
            return this;
        }

        /**
         * @param readWriteMode Read or write mode. Valid values are `ReadWrite`, `ReadOnly`. When creating a new custom endpoint, default to `ReadOnly`.
         * 
         * @return builder
         * 
         */
        public Builder readWriteMode(String readWriteMode) {
            return readWriteMode(Output.of(readWriteMode));
        }

        /**
         * @param sslAutoRotate Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.
         * 
         * @return builder
         * 
         */
        public Builder sslAutoRotate(@Nullable Output sslAutoRotate) {
            $.sslAutoRotate = sslAutoRotate;
            return this;
        }

        /**
         * @param sslAutoRotate Specifies whether automatic rotation of SSL certificates is enabled. Valid values: `Enable`,`Disable`.
         * 
         * @return builder
         * 
         */
        public Builder sslAutoRotate(String sslAutoRotate) {
            return sslAutoRotate(Output.of(sslAutoRotate));
        }

        /**
         * @param sslCertificateUrl Specifies SSL certificate download link.\
         * **NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).
         * For a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.
         * 
         * @return builder
         * 
         */
        public Builder sslCertificateUrl(@Nullable Output sslCertificateUrl) {
            $.sslCertificateUrl = sslCertificateUrl;
            return this;
        }

        /**
         * @param sslCertificateUrl Specifies SSL certificate download link.\
         * **NOTE:** For a PolarDB for MySQL cluster, this parameter is required, and only one connection string in each endpoint can enable the ssl, for other notes, see [Configure SSL encryption](https://www.alibabacloud.com/help/doc-detail/153182.htm).
         * For a PolarDB for PostgreSQL cluster or a PolarDB-O cluster, this parameter is not required, by default, SSL encryption is enabled for all endpoints.
         * 
         * @return builder
         * 
         */
        public Builder sslCertificateUrl(String sslCertificateUrl) {
            return sslCertificateUrl(Output.of(sslCertificateUrl));
        }

        /**
         * @param sslConnectionString (Available since v1.121.0) The SSL connection string.
         * 
         * @return builder
         * 
         */
        public Builder sslConnectionString(@Nullable Output sslConnectionString) {
            $.sslConnectionString = sslConnectionString;
            return this;
        }

        /**
         * @param sslConnectionString (Available since v1.121.0) The SSL connection string.
         * 
         * @return builder
         * 
         */
        public Builder sslConnectionString(String sslConnectionString) {
            return sslConnectionString(Output.of(sslConnectionString));
        }

        /**
         * @param sslEnabled Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.
         * 
         * @return builder
         * 
         */
        public Builder sslEnabled(@Nullable Output sslEnabled) {
            $.sslEnabled = sslEnabled;
            return this;
        }

        /**
         * @param sslEnabled Specifies how to modify the SSL encryption status. Valid values: `Disable`, `Enable`, `Update`.
         * 
         * @return builder
         * 
         */
        public Builder sslEnabled(String sslEnabled) {
            return sslEnabled(Output.of(sslEnabled));
        }

        /**
         * @param sslExpireTime (Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
         * 
         * @return builder
         * 
         */
        public Builder sslExpireTime(@Nullable Output sslExpireTime) {
            $.sslExpireTime = sslExpireTime;
            return this;
        }

        /**
         * @param sslExpireTime (Available since v1.121.0) The time when the SSL certificate expires. The time follows the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time is displayed in UTC.
         * 
         * @return builder
         * 
         */
        public Builder sslExpireTime(String sslExpireTime) {
            return sslExpireTime(Output.of(sslExpireTime));
        }

        public EndpointState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy