alicloud logo
Alibaba Cloud v3.34.0, Mar 17 23

alicloud.polardb.Endpoint

Provides a PolarDB endpoint resource to manage endpoint of PolarDB cluster.

NOTE: After v1.80.0 and before v1.121.0, you can only use this resource to manage the custom endpoint. Since v1.121.0, you also can import the primary endpoint and the cluster endpoint, to modify their ssl status and so on.

NOTE: The primary endpoint and the default cluster endpoint can not be created or deleted manually.

Argument Reference

The following arguments are supported:

  • db_cluster_id - (Required, ForceNew) The Id of cluster that can run database.
  • endpoint_type - (Optional, ForceNew) 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.
  • read_write_mode - (Optional) Read or write mode. Valid values are ReadWrite, ReadOnly. When creating a new custom endpoint, default to ReadOnly.
  • nodes - (Optional) 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.
  • auto_add_new_nodes - (Optional) Whether the new node automatically joins the default cluster address. Valid values are Enable, Disable. When creating a new custom endpoint, default to Disable.
  • endpoint_config - (Optional) 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.
  • ssl_enabled - (Optional, Available in v1.121.0+) Specifies how to modify the SSL encryption status. Valid values: Disable, Enable, Update.
  • net_type - (Optional, Available in v1.121.0+) The network type of the endpoint address.
  • ssl_auto_rotate - (Available in v1.132.0+) Specifies whether automatic rotation of SSL certificates is enabled. Valid values: Enable,Disable.
  • ssl_certificate_url - (Available in v1.132.0+) 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.
    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.
  • db_endpoint_description - (Optional, Available in v1.201.0+) The name of the endpoint.

Example Usage

using System.Collections.Generic;
using Pulumi;
using AliCloud = Pulumi.AliCloud;

return await Deployment.RunAsync(() => 
{
    var config = new Config();
    var creation = config.Get("creation") ?? "PolarDB";
    var name = config.Get("name") ?? "polardbconnectionbasic";
    var defaultZones = AliCloud.GetZones.Invoke(new()
    {
        AvailableResourceCreation = creation,
    });

    var defaultNetwork = new AliCloud.Vpc.Network("defaultNetwork", new()
    {
        VpcName = name,
        CidrBlock = "172.16.0.0/16",
    });

    var defaultSwitch = new AliCloud.Vpc.Switch("defaultSwitch", new()
    {
        VpcId = defaultNetwork.Id,
        CidrBlock = "172.16.0.0/24",
        ZoneId = defaultZones.Apply(getZonesResult => getZonesResult.Zones[0]?.Id),
        VswitchName = name,
    });

    var defaultCluster = new AliCloud.PolarDB.Cluster("defaultCluster", new()
    {
        DbType = "MySQL",
        DbVersion = "8.0",
        PayType = "PostPaid",
        DbNodeClass = "polar.mysql.x4.large",
        VswitchId = defaultSwitch.Id,
        Description = name,
    });

    var endpoint = new AliCloud.PolarDB.Endpoint("endpoint", new()
    {
        DbClusterId = defaultCluster.Id,
        EndpointType = "Custom",
    });

});
package main

import (
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud"
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/polardb"
	"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		cfg := config.New(ctx, "")
		creation := "PolarDB"
		if param := cfg.Get("creation"); param != "" {
			creation = param
		}
		name := "polardbconnectionbasic"
		if param := cfg.Get("name"); param != "" {
			name = param
		}
		defaultZones, err := alicloud.GetZones(ctx, &alicloud.GetZonesArgs{
			AvailableResourceCreation: pulumi.StringRef(creation),
		}, nil)
		if err != nil {
			return err
		}
		defaultNetwork, err := vpc.NewNetwork(ctx, "defaultNetwork", &vpc.NetworkArgs{
			VpcName:   pulumi.String(name),
			CidrBlock: pulumi.String("172.16.0.0/16"),
		})
		if err != nil {
			return err
		}
		defaultSwitch, err := vpc.NewSwitch(ctx, "defaultSwitch", &vpc.SwitchArgs{
			VpcId:       defaultNetwork.ID(),
			CidrBlock:   pulumi.String("172.16.0.0/24"),
			ZoneId:      *pulumi.String(defaultZones.Zones[0].Id),
			VswitchName: pulumi.String(name),
		})
		if err != nil {
			return err
		}
		defaultCluster, err := polardb.NewCluster(ctx, "defaultCluster", &polardb.ClusterArgs{
			DbType:      pulumi.String("MySQL"),
			DbVersion:   pulumi.String("8.0"),
			PayType:     pulumi.String("PostPaid"),
			DbNodeClass: pulumi.String("polar.mysql.x4.large"),
			VswitchId:   defaultSwitch.ID(),
			Description: pulumi.String(name),
		})
		if err != nil {
			return err
		}
		_, err = polardb.NewEndpoint(ctx, "endpoint", &polardb.EndpointArgs{
			DbClusterId:  defaultCluster.ID(),
			EndpointType: pulumi.String("Custom"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.polardb.Cluster;
import com.pulumi.alicloud.polardb.ClusterArgs;
import com.pulumi.alicloud.polardb.Endpoint;
import com.pulumi.alicloud.polardb.EndpointArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var config = ctx.config();
        final var creation = config.get("creation").orElse("PolarDB");
        final var name = config.get("name").orElse("polardbconnectionbasic");
        final var defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
            .availableResourceCreation(creation)
            .build());

        var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()        
            .vpcName(name)
            .cidrBlock("172.16.0.0/16")
            .build());

        var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()        
            .vpcId(defaultNetwork.id())
            .cidrBlock("172.16.0.0/24")
            .zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
            .vswitchName(name)
            .build());

        var defaultCluster = new Cluster("defaultCluster", ClusterArgs.builder()        
            .dbType("MySQL")
            .dbVersion("8.0")
            .payType("PostPaid")
            .dbNodeClass("polar.mysql.x4.large")
            .vswitchId(defaultSwitch.id())
            .description(name)
            .build());

        var endpoint = new Endpoint("endpoint", EndpointArgs.builder()        
            .dbClusterId(defaultCluster.id())
            .endpointType("Custom")
            .build());

    }
}
import pulumi
import pulumi_alicloud as alicloud

config = pulumi.Config()
creation = config.get("creation")
if creation is None:
    creation = "PolarDB"
name = config.get("name")
if name is None:
    name = "polardbconnectionbasic"
default_zones = alicloud.get_zones(available_resource_creation=creation)
default_network = alicloud.vpc.Network("defaultNetwork",
    vpc_name=name,
    cidr_block="172.16.0.0/16")
default_switch = alicloud.vpc.Switch("defaultSwitch",
    vpc_id=default_network.id,
    cidr_block="172.16.0.0/24",
    zone_id=default_zones.zones[0].id,
    vswitch_name=name)
default_cluster = alicloud.polardb.Cluster("defaultCluster",
    db_type="MySQL",
    db_version="8.0",
    pay_type="PostPaid",
    db_node_class="polar.mysql.x4.large",
    vswitch_id=default_switch.id,
    description=name)
endpoint = alicloud.polardb.Endpoint("endpoint",
    db_cluster_id=default_cluster.id,
    endpoint_type="Custom")
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";

const config = new pulumi.Config();
const creation = config.get("creation") || "PolarDB";
const name = config.get("name") || "polardbconnectionbasic";
const defaultZones = alicloud.getZones({
    availableResourceCreation: creation,
});
const defaultNetwork = new alicloud.vpc.Network("defaultNetwork", {
    vpcName: name,
    cidrBlock: "172.16.0.0/16",
});
const defaultSwitch = new alicloud.vpc.Switch("defaultSwitch", {
    vpcId: defaultNetwork.id,
    cidrBlock: "172.16.0.0/24",
    zoneId: defaultZones.then(defaultZones => defaultZones.zones?.[0]?.id),
    vswitchName: name,
});
const defaultCluster = new alicloud.polardb.Cluster("defaultCluster", {
    dbType: "MySQL",
    dbVersion: "8.0",
    payType: "PostPaid",
    dbNodeClass: "polar.mysql.x4.large",
    vswitchId: defaultSwitch.id,
    description: name,
});
const endpoint = new alicloud.polardb.Endpoint("endpoint", {
    dbClusterId: defaultCluster.id,
    endpointType: "Custom",
});
configuration:
  creation:
    type: string
    default: PolarDB
  name:
    type: string
    default: polardbconnectionbasic
resources:
  defaultNetwork:
    type: alicloud:vpc:Network
    properties:
      vpcName: ${name}
      cidrBlock: 172.16.0.0/16
  defaultSwitch:
    type: alicloud:vpc:Switch
    properties:
      vpcId: ${defaultNetwork.id}
      cidrBlock: 172.16.0.0/24
      zoneId: ${defaultZones.zones[0].id}
      vswitchName: ${name}
  defaultCluster:
    type: alicloud:polardb:Cluster
    properties:
      dbType: MySQL
      dbVersion: '8.0'
      payType: PostPaid
      dbNodeClass: polar.mysql.x4.large
      vswitchId: ${defaultSwitch.id}
      description: ${name}
  endpoint:
    type: alicloud:polardb:Endpoint
    properties:
      dbClusterId: ${defaultCluster.id}
      endpointType: Custom
variables:
  defaultZones:
    fn::invoke:
      Function: alicloud:getZones
      Arguments:
        availableResourceCreation: ${creation}

Create Endpoint Resource

new Endpoint(name: string, args: EndpointArgs, opts?: CustomResourceOptions);
@overload
def Endpoint(resource_name: str,
             opts: Optional[ResourceOptions] = None,
             auto_add_new_nodes: Optional[str] = None,
             db_cluster_id: Optional[str] = None,
             db_endpoint_description: Optional[str] = None,
             endpoint_config: Optional[Mapping[str, Any]] = None,
             endpoint_type: Optional[str] = None,
             net_type: Optional[str] = None,
             nodes: Optional[Sequence[str]] = None,
             read_write_mode: Optional[str] = None,
             ssl_auto_rotate: Optional[str] = None,
             ssl_enabled: Optional[str] = None)
@overload
def Endpoint(resource_name: str,
             args: EndpointArgs,
             opts: Optional[ResourceOptions] = None)
func NewEndpoint(ctx *Context, name string, args EndpointArgs, opts ...ResourceOption) (*Endpoint, error)
public Endpoint(string name, EndpointArgs args, CustomResourceOptions? opts = null)
public Endpoint(String name, EndpointArgs args)
public Endpoint(String name, EndpointArgs args, CustomResourceOptions options)
type: alicloud:polardb:Endpoint
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args EndpointArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name str
The unique name of the resource.
args EndpointArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name string
The unique name of the resource.
args EndpointArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args EndpointArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args EndpointArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Endpoint Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The Endpoint resource accepts the following input properties:

DbClusterId string
AutoAddNewNodes string
DbEndpointDescription string
EndpointConfig Dictionary<string, object>
EndpointType string

Type of endpoint.

NetType string
Nodes List<string>
ReadWriteMode string
SslAutoRotate string
SslEnabled string
DbClusterId string
AutoAddNewNodes string
DbEndpointDescription string
EndpointConfig map[string]interface{}
EndpointType string

Type of endpoint.

NetType string
Nodes []string
ReadWriteMode string
SslAutoRotate string
SslEnabled string
dbClusterId String
autoAddNewNodes String
dbEndpointDescription String
endpointConfig Map<String,Object>
endpointType String

Type of endpoint.

netType String
nodes List<String>
readWriteMode String
sslAutoRotate String
sslEnabled String
dbClusterId string
autoAddNewNodes string
dbEndpointDescription string
endpointConfig {[key: string]: any}
endpointType string

Type of endpoint.

netType string
nodes string[]
readWriteMode string
sslAutoRotate string
sslEnabled string
dbClusterId String
autoAddNewNodes String
dbEndpointDescription String
endpointConfig Map<Any>
endpointType String

Type of endpoint.

netType String
nodes List<String>
readWriteMode String
sslAutoRotate String
sslEnabled String

Outputs

All input properties are implicitly available as output properties. Additionally, the Endpoint resource produces the following output properties:

DbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

Id string

The provider-assigned unique ID for this managed resource.

SslCertificateUrl string
SslConnectionString string

(Available in v1.121.0+) The SSL connection string.

SslExpireTime string

(Available in 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.

DbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

Id string

The provider-assigned unique ID for this managed resource.

SslCertificateUrl string
SslConnectionString string

(Available in v1.121.0+) The SSL connection string.

SslExpireTime string

(Available in 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.

dbEndpointId String

(Available in v1.161.0+) The ID of the cluster endpoint.

id String

The provider-assigned unique ID for this managed resource.

sslCertificateUrl String
sslConnectionString String

(Available in v1.121.0+) The SSL connection string.

sslExpireTime String

(Available in 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.

dbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

id string

The provider-assigned unique ID for this managed resource.

sslCertificateUrl string
sslConnectionString string

(Available in v1.121.0+) The SSL connection string.

sslExpireTime string

(Available in 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.

db_endpoint_id str

(Available in v1.161.0+) The ID of the cluster endpoint.

id str

The provider-assigned unique ID for this managed resource.

ssl_certificate_url str
ssl_connection_string str

(Available in v1.121.0+) The SSL connection string.

ssl_expire_time str

(Available in 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.

dbEndpointId String

(Available in v1.161.0+) The ID of the cluster endpoint.

id String

The provider-assigned unique ID for this managed resource.

sslCertificateUrl String
sslConnectionString String

(Available in v1.121.0+) The SSL connection string.

sslExpireTime String

(Available in 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.

Look up Existing Endpoint Resource

Get an existing Endpoint resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

public static get(name: string, id: Input<ID>, state?: EndpointState, opts?: CustomResourceOptions): Endpoint
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        auto_add_new_nodes: Optional[str] = None,
        db_cluster_id: Optional[str] = None,
        db_endpoint_description: Optional[str] = None,
        db_endpoint_id: Optional[str] = None,
        endpoint_config: Optional[Mapping[str, Any]] = None,
        endpoint_type: Optional[str] = None,
        net_type: Optional[str] = None,
        nodes: Optional[Sequence[str]] = None,
        read_write_mode: Optional[str] = None,
        ssl_auto_rotate: Optional[str] = None,
        ssl_certificate_url: Optional[str] = None,
        ssl_connection_string: Optional[str] = None,
        ssl_enabled: Optional[str] = None,
        ssl_expire_time: Optional[str] = None) -> Endpoint
func GetEndpoint(ctx *Context, name string, id IDInput, state *EndpointState, opts ...ResourceOption) (*Endpoint, error)
public static Endpoint Get(string name, Input<string> id, EndpointState? state, CustomResourceOptions? opts = null)
public static Endpoint get(String name, Output<String> id, EndpointState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
resource_name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
name
The unique name of the resulting resource.
id
The unique provider ID of the resource to lookup.
state
Any extra arguments used during the lookup.
opts
A bag of options that control this resource's behavior.
The following state arguments are supported:
AutoAddNewNodes string
DbClusterId string
DbEndpointDescription string
DbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

EndpointConfig Dictionary<string, object>
EndpointType string

Type of endpoint.

NetType string
Nodes List<string>
ReadWriteMode string
SslAutoRotate string
SslCertificateUrl string
SslConnectionString string

(Available in v1.121.0+) The SSL connection string.

SslEnabled string
SslExpireTime string

(Available in 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.

AutoAddNewNodes string
DbClusterId string
DbEndpointDescription string
DbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

EndpointConfig map[string]interface{}
EndpointType string

Type of endpoint.

NetType string
Nodes []string
ReadWriteMode string
SslAutoRotate string
SslCertificateUrl string
SslConnectionString string

(Available in v1.121.0+) The SSL connection string.

SslEnabled string
SslExpireTime string

(Available in 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.

autoAddNewNodes String
dbClusterId String
dbEndpointDescription String
dbEndpointId String

(Available in v1.161.0+) The ID of the cluster endpoint.

endpointConfig Map<String,Object>
endpointType String

Type of endpoint.

netType String
nodes List<String>
readWriteMode String
sslAutoRotate String
sslCertificateUrl String
sslConnectionString String

(Available in v1.121.0+) The SSL connection string.

sslEnabled String
sslExpireTime String

(Available in 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.

autoAddNewNodes string
dbClusterId string
dbEndpointDescription string
dbEndpointId string

(Available in v1.161.0+) The ID of the cluster endpoint.

endpointConfig {[key: string]: any}
endpointType string

Type of endpoint.

netType string
nodes string[]
readWriteMode string
sslAutoRotate string
sslCertificateUrl string
sslConnectionString string

(Available in v1.121.0+) The SSL connection string.

sslEnabled string
sslExpireTime string

(Available in 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.

auto_add_new_nodes str
db_cluster_id str
db_endpoint_description str
db_endpoint_id str

(Available in v1.161.0+) The ID of the cluster endpoint.

endpoint_config Mapping[str, Any]
endpoint_type str

Type of endpoint.

net_type str
nodes Sequence[str]
read_write_mode str
ssl_auto_rotate str
ssl_certificate_url str
ssl_connection_string str

(Available in v1.121.0+) The SSL connection string.

ssl_enabled str
ssl_expire_time str

(Available in 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.

autoAddNewNodes String
dbClusterId String
dbEndpointDescription String
dbEndpointId String

(Available in v1.161.0+) The ID of the cluster endpoint.

endpointConfig Map<Any>
endpointType String

Type of endpoint.

netType String
nodes List<String>
readWriteMode String
sslAutoRotate String
sslCertificateUrl String
sslConnectionString String

(Available in v1.121.0+) The SSL connection string.

sslEnabled String
sslExpireTime String

(Available in 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

PolarDB endpoint can be imported using the id, e.g.

 $ pulumi import alicloud:polardb/endpoint:Endpoint example pc-abc123456:pe-abc123456

Package Details

Repository
Alibaba Cloud pulumi/pulumi-alicloud
License
Apache-2.0
Notes

This Pulumi package is based on the alicloud Terraform Provider.