Create reverse private endpoint
Create a new reverse private endpoint.
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [
{
"privateDnsName": "my-service.example.com"
},
{
"privateDnsName": "*.example.com"
}
]
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints"
payload = {
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [{ "privateDnsName": "my-service.example.com" }, { "privateDnsName": "*.example.com" }]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'My reverse private endpoint',
type: 'VPC_ENDPOINT_SERVICE',
vpcEndpointServiceName: 'com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567',
vpcResourceConfigurationId: 'rcfg-12345678901234567',
vpcResourceShareArn: 'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567',
mskClusterArn: 'arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster',
mskAuthentication: 'SASL_IAM',
gcpServiceAttachment: 'projects/my-project/regions/us-central1/serviceAttachments/my-service',
customPrivateDnsMappings: [{privateDnsName: 'my-service.example.com'}, {privateDnsName: '*.example.com'}]
})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'My reverse private endpoint',
'type' => 'VPC_ENDPOINT_SERVICE',
'vpcEndpointServiceName' => 'com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567',
'vpcResourceConfigurationId' => 'rcfg-12345678901234567',
'vpcResourceShareArn' => 'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567',
'mskClusterArn' => 'arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster',
'mskAuthentication' => 'SASL_IAM',
'gcpServiceAttachment' => 'projects/my-project/regions/us-central1/serviceAttachments/my-service',
'customPrivateDnsMappings' => [
[
'privateDnsName' => 'my-service.example.com'
],
[
'privateDnsName' => '*.example.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints"
payload := strings.NewReader("{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [
{
"privateDnsName": "my-service.example.com"
},
{
"privateDnsName": "*.example.com"
}
],
"id": "12345678-1234-1234-1234-123456789012",
"serviceId": "12345678-1234-1234-1234-123456789012",
"endpointId": "vpce-12345678901234567",
"dnsNames": [
"vpce-12345678901234567-abcdefg.execute-api.us-east-1.vpce.amazonaws.com"
],
"privateDnsNames": [
"vpce-12345678901234567-abcdefg.execute-api.us-east-1.vpce.amazonaws.com"
],
"status": "Ready"
}
}{
"status": 400,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"status": 500,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Permission
control-plane:service:manage-clickpipes permission.Autorisations
Use key ID and key secret obtained in ClickHouse Cloud console: https://clickhouse.com/docs/cloud/manage/openapi
Paramètres de chemin
ID of the organization that owns the service.
ID of the service that owns the Reverse Private Endpoint.
Corps
Reverse private endpoint description. Maximum length is 255 characters.
"My reverse private endpoint"
Reverse private endpoint type.
VPC_ENDPOINT_SERVICE, VPC_RESOURCE, MSK_MULTI_VPC, GCP_PSC_SERVICE_ATTACHMENT "VPC_ENDPOINT_SERVICE"
VPC endpoint service name.
"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567"
VPC resource configuration ID. Required for VPC_RESOURCE type.
"rcfg-12345678901234567"
VPC resource share ARN. Required for VPC_RESOURCE type.
"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567"
MSK cluster ARN. Required for MSK_MULTI_VPC type.
"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster"
MSK cluster authentication type. Required for MSK_MULTI_VPC type.
SASL_IAM, SASL_SCRAM "SASL_IAM"
Private Preview. GCP PSC service attachment URI. Required for GCP_PSC_SERVICE_ATTACHMENT type. Format: projects/{project}/regions/{region}/serviceAttachments/{name}.
"projects/my-project/regions/us-central1/serviceAttachments/my-service"
Optional private DNS names for Reverse Private Endpoint. Can be used as data source destination address. Must be unique across the ClickHouse service. Generally available for Google Private Service Connect (PSC). For AWS PrivateLink (VPC endpoint service and VPC resource), available in Private Preview; contact ClickHouse support to enable it for your service. Not supported for MSK multi-VPC. Supports exact names and leading wildcard names such as *.example.com
Show child attributes
Show child attributes
[
{
"privateDnsName": "my-service.example.com"
},
{ "privateDnsName": "*.example.com" }
]
Cette page vous a-t-elle été utile ?
curl --request POST \
--url https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [
{
"privateDnsName": "my-service.example.com"
},
{
"privateDnsName": "*.example.com"
}
]
}
'import requests
url = "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints"
payload = {
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [{ "privateDnsName": "my-service.example.com" }, { "privateDnsName": "*.example.com" }]
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'My reverse private endpoint',
type: 'VPC_ENDPOINT_SERVICE',
vpcEndpointServiceName: 'com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567',
vpcResourceConfigurationId: 'rcfg-12345678901234567',
vpcResourceShareArn: 'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567',
mskClusterArn: 'arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster',
mskAuthentication: 'SASL_IAM',
gcpServiceAttachment: 'projects/my-project/regions/us-central1/serviceAttachments/my-service',
customPrivateDnsMappings: [{privateDnsName: 'my-service.example.com'}, {privateDnsName: '*.example.com'}]
})
};
fetch('https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'My reverse private endpoint',
'type' => 'VPC_ENDPOINT_SERVICE',
'vpcEndpointServiceName' => 'com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567',
'vpcResourceConfigurationId' => 'rcfg-12345678901234567',
'vpcResourceShareArn' => 'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567',
'mskClusterArn' => 'arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster',
'mskAuthentication' => 'SASL_IAM',
'gcpServiceAttachment' => 'projects/my-project/regions/us-central1/serviceAttachments/my-service',
'customPrivateDnsMappings' => [
[
'privateDnsName' => 'my-service.example.com'
],
[
'privateDnsName' => '*.example.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints"
payload := strings.NewReader("{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.clickhouse.cloud/v1/organizations/{organizationId}/services/{serviceId}/clickpipesReversePrivateEndpoints")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"My reverse private endpoint\",\n \"type\": \"VPC_ENDPOINT_SERVICE\",\n \"vpcEndpointServiceName\": \"com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567\",\n \"vpcResourceConfigurationId\": \"rcfg-12345678901234567\",\n \"vpcResourceShareArn\": \"arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567\",\n \"mskClusterArn\": \"arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster\",\n \"mskAuthentication\": \"SASL_IAM\",\n \"gcpServiceAttachment\": \"projects/my-project/regions/us-central1/serviceAttachments/my-service\",\n \"customPrivateDnsMappings\": [\n {\n \"privateDnsName\": \"my-service.example.com\"\n },\n {\n \"privateDnsName\": \"*.example.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"result": {
"description": "My reverse private endpoint",
"type": "VPC_ENDPOINT_SERVICE",
"vpcEndpointServiceName": "com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567",
"vpcResourceConfigurationId": "rcfg-12345678901234567",
"vpcResourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567",
"mskClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster",
"mskAuthentication": "SASL_IAM",
"gcpServiceAttachment": "projects/my-project/regions/us-central1/serviceAttachments/my-service",
"customPrivateDnsMappings": [
{
"privateDnsName": "my-service.example.com"
},
{
"privateDnsName": "*.example.com"
}
],
"id": "12345678-1234-1234-1234-123456789012",
"serviceId": "12345678-1234-1234-1234-123456789012",
"endpointId": "vpce-12345678901234567",
"dnsNames": [
"vpce-12345678901234567-abcdefg.execute-api.us-east-1.vpce.amazonaws.com"
],
"privateDnsNames": [
"vpce-12345678901234567-abcdefg.execute-api.us-east-1.vpce.amazonaws.com"
],
"status": "Ready"
}
}{
"status": 400,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"status": 500,
"error": "<string>",
"requestId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}