@forge/cli-shared
9.9.0-next.139.9.0-next.14
out/ari/ari.js~
out/ari/ari.jsModified+30−6
Index: package/out/ari/ari.js
===================================================================
--- package/out/ari/ari.js
+++ package/out/ari/ari.js
@@ -1,10 +1,12 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.createWorkspaceAriByProduct = exports.UnknownInstallationWithoutResourceIdError = exports.UnknownWorkspaceWithoutResourceIdError = exports.UnknownSiteWithoutResourceIdError = exports.REGION_PLACEMENT_TYPE = exports.ISOLATION_CONTEXT_PLACEMENT_TYPE = exports.APP_PLACEMENT_RESOURCE_TYPE = exports.BITBUCKET_RESOURCE_OWNER = exports.TRELLO_RESOURCE_OWNER = exports.UNIT_RESOURCE_TYPE = exports.INSTALLATION_RESOURCE_TYPE = exports.WORKSPACE_USER_RESOURCE_TYPE = exports.WORKSPACE_RESOURCE_TYPE = exports.SITE_RESOURCE_TYPE = void 0;
+exports.createWorkspaceAriByProduct = exports.UnknownInstallationWithoutResourceIdError = exports.UnknownWorkspaceWithoutResourceIdError = exports.UnknownSiteWithoutResourceIdError = exports.CUSTOMER_DATA_PLANE_PLACEMENT_TYPE = exports.REGION_PLACEMENT_TYPE = exports.ISOLATION_CONTEXT_PLACEMENT_TYPE = exports.BITBUCKET_RESOURCE_OWNER = exports.TRELLO_RESOURCE_OWNER = exports.UNIT_RESOURCE_TYPE = exports.INSTALLATION_RESOURCE_TYPE = exports.WORKSPACE_USER_RESOURCE_TYPE = exports.WORKSPACE_RESOURCE_TYPE = exports.SITE_RESOURCE_TYPE = void 0;
+exports.isValidPlacementId = isValidPlacementId;
exports.appIdToAriString = appIdToAriString;
exports.placementIdToPlacementType = placementIdToPlacementType;
-exports.placementIdToAriString = placementIdToAriString;
+exports.placementIdToAri = placementIdToAri;
+exports.parsePlacementAriString = parsePlacementAriString;
exports.buildContextAri = buildContextAri;
exports.buildExtensionAri = buildExtensionAri;
exports.encodeContext = encodeContext;
exports.parseInstallationContext = parseInstallationContext;
@@ -17,21 +19,43 @@
exports.INSTALLATION_RESOURCE_TYPE = 'installation';
exports.UNIT_RESOURCE_TYPE = 'unit';
exports.TRELLO_RESOURCE_OWNER = 'trello';
exports.BITBUCKET_RESOURCE_OWNER = 'bitbucket';
-exports.APP_PLACEMENT_RESOURCE_TYPE = 'app-placement';
exports.ISOLATION_CONTEXT_PLACEMENT_TYPE = 'isolation-context';
exports.REGION_PLACEMENT_TYPE = 'region';
+exports.CUSTOMER_DATA_PLANE_PLACEMENT_TYPE = 'customer-data-plane';
+const ISOLATION_CONTEXT_ID_PREFIX = 'ic-';
+const CUSTOMER_DATA_PLANE_ID_PREFIX = 'cdp-';
const ISOLATION_CONTEXT_ID_PATTERN = /^ic-[a-z0-9]+$/;
+const CUSTOMER_DATA_PLANE_ID_PATTERN = /^cdp-[a-z0-9]+$/;
+const REGION_ID_PATTERN = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
+function isValidPlacementId(placementId) {
+ if (placementId.startsWith(ISOLATION_CONTEXT_ID_PREFIX)) {
+ return ISOLATION_CONTEXT_ID_PATTERN.test(placementId);
+ }
+ if (placementId.startsWith(CUSTOMER_DATA_PLANE_ID_PREFIX)) {
+ return CUSTOMER_DATA_PLANE_ID_PATTERN.test(placementId);
+ }
+ return REGION_ID_PATTERN.test(placementId);
+}
function appIdToAriString(appId) {
return `ari:cloud:ecosystem::app/${appId}`;
}
function placementIdToPlacementType(placementId) {
- return ISOLATION_CONTEXT_ID_PATTERN.test(placementId) ? exports.ISOLATION_CONTEXT_PLACEMENT_TYPE : exports.REGION_PLACEMENT_TYPE;
+ if (ISOLATION_CONTEXT_ID_PATTERN.test(placementId)) {
+ return exports.ISOLATION_CONTEXT_PLACEMENT_TYPE;
+ }
+ if (CUSTOMER_DATA_PLANE_ID_PATTERN.test(placementId)) {
+ return exports.CUSTOMER_DATA_PLANE_PLACEMENT_TYPE;
+ }
+ return exports.REGION_PLACEMENT_TYPE;
}
-function placementIdToAriString(placementId) {
- return `ari:cloud:ecosystem::${exports.APP_PLACEMENT_RESOURCE_TYPE}/${placementIdToPlacementType(placementId)}/${placementId}`;
+function placementIdToAri(placementId) {
+ return ari_1.EcosystemAppPlacementAri.create({ placementType: placementIdToPlacementType(placementId), placementId });
}
+function parsePlacementAriString(placementAri) {
+ return ari_1.EcosystemAppPlacementAri.parse(placementAri);
+}
function buildContextAri(cloudId, product) {
return ari_1.AnyAri.create({
resourceOwner: (0, shared_1.ariResourceOwner)(product),
resourceType: exports.SITE_RESOURCE_TYPE,