Private Link Support for Sources in the API
You can use the Private Link feature to create private endpoints for your Adobe Experience Platform sources to connect to. Securely connect your sources to a virtual network using private IP addresses, eliminating the need for public IPs and reduce your attack surface. Simplify your network setup by removing the need for complex firewall or Network Address Translation configurations, while ensuring data traffic only reaches approved services.
Read this guide to learn how you can use APIs to create and use a private endpoint.
License usage entitlement for private link support
The license usage entitlement metrics for private link support in sources is as follows:
- Customers are entitled to up to 2 TB per year of data transfer through supported sources (Azure Blob Storage, ADLS Gen2, and Azure File Storage), across all sandboxes and organizations.
- Each organization can have a maximum of 10 endpoints for all production sandboxes.
- Each organization can have a maximum of 1 endpoint for all development sandboxes.
Get started
This guide requires a working understanding of the following components of Experience Platform:
- Sources: Experience Platform allows data to be ingested from various sources while providing you with the ability to structure, label, and enhance incoming data using Experience Platform services.
- Sandboxes: Experience Platform provides virtual sandboxes which partition a single Experience Platform instance into separate virtual environments to help develop and evolve digital experience applications.
Using Platform APIs
For information on how to successfully make calls to Platform APIs, see the guide on getting started with Platform APIs.
Create a private endpoint create-private-endpoint
To create a private endpoint, make a POST request to /privateEndpoints
.
API format
POST /privateEndpoints
Request
The following request creates a private endpoint:
code language-shell |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
---|---|
Property | Description |
name |
The name of your private endpoint. |
subscriptionId |
The ID associated with your Azure subscription. For more information, read the Azure guide on retrieving your subscription and tenant IDs from the Azure Portal. |
resourceGroupName |
The name of your resource group on Azure. A resource group contains related resources for an Azure solution. For more information, read the Azure guide on managing resource groups. |
resourceName |
The name of your resource. In Azure, a resource refers to instances like virtual machines, web apps, and databases. For more information, read the Azure guide on understanding the Azure resource manager. |
connectionSpec.id |
The connection spec ID of the source you are using. |
connectionSpec.version |
The version of the connection spec ID that yo are using. |
Response
A successful response returns the following:
code language-json |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 | |
---|---|
Property | Description |
id |
The ID of your newly created private endpoint. |
name |
The name of your private endpoint. |
subscriptionId |
The ID associated with your Azure subscription. For more information, read the Azure guide on retrieving your subscription and tenant IDs from the Azure Portal. |
resourceGroupName |
The name of your resource group on Azure. A resource group contains related resources for an Azure solution. For more information, read the Azure guide on managing resource groups. |
resourceName |
The name of your resource. In Azure, a resource refers to instances like virtual machines, web apps, and databases. For more information, read the Azure guide on understanding the Azure resource manager. |
connectionSpec.id |
The connection spec ID of the source you are using. |
connectionSpec.version |
The version of the connection spec ID that yo are using. |
state |
The current state of your private endpoint. Valid states include:
|
Retrieve a list of private endpoints retrieve-private-endpoints
To retrieve a list of private endpoints from a given sandbox in your organization, make a GET request to /privateEndpoints
.
API format
GET /privateEndpoints
Request
The following request retrieves a list of all private endpoints that exist in your organization.
code language-shell |
---|
|
Response
A successful response returns a list of private endpoints in your organization.
code language-json |
---|
|
Retrieve a list of private endpoints for a given source retrieve-private-endpoints-by-source
To retrieve a list of private endpoints that correspond to a specific source, make a GET request to the /privateEndpoints
endpoint and provide the connectionSpec.id
of the source.
API format
GET /privateEndpoints?property=connectionSpec.id=={CONNECTION_SPEC_ID}
{CONNECTION_SPEC_ID}
Request
The following request retrieves a list of all private endpoints that correspond to the source with connection spec ID: 4c10e202-c428-4796-9208-5f1f5732b1cf
.
code language-shell |
---|
|
Response
A successful response returns a list of all private endpoints that correspond to the source with connection spec ID: 4c10e202-c428-4796-9208-5f1f5732b1cf
.
code language-json |
---|
|
Retrieve a private endpoint retrieve-specific-private-endpoint
To retrieve a specific private endpoint, make a GET request to /privateEndpoints
and provide the ID of the private endpoint that you want to retrieve.
API format
GET /privateEndpoints/{PRIVATE_ENDPOINT_ID}
{PRIVATE_ENDPOINT_ID}
Request
The following request retrieves the private endpoint with the ID:2c5699b0-b9b6-486f-8877-ee5e21fe9a9d
.
code language-shell |
---|
|
Response
A successful response returns the private endpoint with ID: 2c5699b0-b9b6-486f-8877-ee5e21fe9a9d
code language-json |
---|
|
Resolve a private endpoint resolve-private-endpoint
API format
GET /privateEndpoints?op=autoResolve
Request
code language-shell |
---|
|
Response
code language-json |
---|
|
Enable Interactive Authoring enable-interactive-authoring
Interactive Authoring is used for functionalities like exploring a connection or account and previewing data. To enable Interactive Authoring, make a POST request to /privateEndpoints/interactiveAuthoring
and specify enable
as an operator in your query parameters.
API format
POST /privateEndpoints/interactiveAuthoring?op=enable
op
op
value to enable
.Request
The following request enables Interactive Authoring for your private endpoint and sets the TTL to 60 minutes.
code language-shell |
---|
|
table 0-row-2 1-row-2 | |
---|---|
Property | Description |
autoTerminationMinutes |
The Interactive Authoring TTL (time-to-live) in minutes. Interactive Authoring is used for functionalities like exploring a connection or account and previewing data. You can set a maximum TTL of 120 minutes. The default TTL is 60 minutes. |
Response
A successful response returns HTTP status 202 (Accepted).
Retrieve Interactive Authoring status retrieve-interactive-authoring-status
To view the current status of Interactive Authoring for your private endpoint, make a GET request to /privateEndpoints/interactiveAuthoring
.
API format
GET /privateEndpoints/interactiveAuthoring
Request
The following request retrieves the status of Interactive Authoring:
code language-shell |
---|
|
Response
code language-json |
---|
|
table 0-row-2 1-row-2 | |
---|---|
Property | Description |
status |
The status of Interactive Authoring. Valid values include: disabled , enabling , enabled . |
Delete private endpoint delete-private-endpoint
To delete your private endpoint, make a DELETE request to /privateEndpoints
and provide the ID of the endpoint that you want to delete.
API format
DELETE /privateEndpoints/{PRIVATE_ENDPOINT_ID}
{PRIVATE_ENDPOINT_ID}
Request
The following request deletes private endpoint with ID: 02a74b31-a566-4a86-9cea-309b101a7f24
.
code language-shell |
---|
|
Response
A successful response returns HTTP status 200 (Success). You can verify deletion by making a GET request and to /privateEndpoints
and providing the deleted ID as a query parameter.
Flow Service flow-service
Read the following sections for information on how you can use private endpoints in conjunction with the Flow Service API.
Create a connection with a private endpoint create-base-connection
To create a connection with a private endpoint in Experience Platform, make a POST request to the /connections
endpoint of the Flow Service API.
API format
POST /connections/
Request
The following request creates an authenticated base connection for Azure Blob Storage, while also using a private endpoint.
code language-shell |
---|
|
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 | |
---|---|
Property | Description |
name |
The name of your base connection. |
description |
(Optional) A description that provides additional information on your connection. |
auth.specName |
The authentication being used to connect your source to Experience Platform. |
auth.params.connectionString |
The Azure Blob Storage connection string. For more information, read the Azure Blob Storage API authentication guide. |
auth.params.usePrivateLink |
A boolean value that determines whether or not you are using a private endpoint. Set this value to true if you are using a private endpoint. |
connectionSpec.id |
The connection spec ID of Azure Blob Storage. |
connectionSpec.version |
The version of your Azure Blob Storage connection spec ID. |
Response
A successful response returns your newly generated base connection ID and etag.
code language-json |
---|
|
Retrieve connections tied to a given a private endpoint retrieve-connections-by-endpoint
To retrieve connections tied to a particular private endpoint, make a GET request to the /connections
endpoint and provide the ID of the private endpoint as a query parameter.
API format
GET /connections?property=auth.params.privateEndpointId=={PRIVATE_ENDPOINT_ID}
Request
The following request retrieves existing connections tied to private endpoint with ID: 02a74b31-a566-4a86-9cea-309b101a7f24
.
code language-shell |
---|
|
Response
A successful response returns a list of connections tied to the queried private endpoint.
code language-json |
---|
|
Retrieve connections associated with any private endpoint retrieve-connections
To retrieve connections associated with any private endpoint, make a GET request to the /connections
endpoint and provide property=auth.params.usePrivateLink==true
as a query parameter.
API format
GET /connections?property=auth.params.usePrivateLink==true
Request
The following request retrieves all connections in your organization that are using private endpoints.
code language-shell |
---|
|
Response
A successful response returns all connections that are tied to private endpoints.
code language-json |
---|
|
Appendix
Read this section for additional information using Azure private links in the API.
Approve a private endpoint for Azure Blob and Azure Data Lake Gen2
To approve a private endpoint request for the Azure Blob and Azure Data Lake Gen2 sources, log in to the Azure Portal. In the left navigation, select Data storage, then go to the Security + networking tab and choose Networking. Next, select Private endpoints to see a list of private endpoints associated with your account and their current connection states. To approve a pending request, select the desired endpoint and click Approve.