@camunda/ccma-api 2.1.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +12 -4
- package/dist/index.js +8 -0
- package/dist/index.js.map +2 -2
- package/dist/services/accounts/approvals.m2m.service.d.ts +33 -0
- package/dist/services/accounts/approvals.m2m.service.js +64 -0
- package/dist/services/accounts/approvals.m2m.service.js.map +7 -0
- package/dist/services/accounts/hdp.service.d.ts +62 -1
- package/dist/services/accounts/hdp.service.js +123 -0
- package/dist/services/accounts/hdp.service.js.map +2 -2
- package/dist/services/accounts/hdp.service.spec.d.ts +1 -0
- package/dist/services/accounts/orgs.service.d.ts +6 -2
- package/dist/services/accounts/orgs.service.js +6 -2
- package/dist/services/accounts/orgs.service.js.map +2 -2
- package/dist/services/console/console.admin.service.d.ts +25 -0
- package/dist/services/console/console.admin.service.js +40 -0
- package/dist/services/console/console.admin.service.js.map +2 -2
- package/dist/services/console/console.approvals.m2m.service.d.ts +47 -0
- package/dist/services/console/console.approvals.m2m.service.js +105 -0
- package/dist/services/console/console.approvals.m2m.service.js.map +7 -0
- package/dist/services/console/console.channel.service.d.ts +4 -2
- package/dist/services/console/console.channel.service.js.map +2 -2
- package/dist/services/console/console.cluster.service.d.ts +15 -0
- package/dist/services/console/console.cluster.service.js +40 -0
- package/dist/services/console/console.cluster.service.js.map +2 -2
- package/dist/services/console/console.cluster.v2.service.d.ts +11 -3
- package/dist/services/console/console.cluster.v2.service.js +37 -2
- package/dist/services/console/console.cluster.v2.service.js.map +2 -2
- package/dist/services/control/control.annotations.service.d.ts +149 -0
- package/dist/services/control/control.annotations.service.js +193 -0
- package/dist/services/control/control.annotations.service.js.map +7 -0
- package/dist/services/control/control.approvals.service.d.ts +118 -6
- package/dist/services/control/control.approvals.service.js +99 -13
- package/dist/services/control/control.approvals.service.js.map +2 -2
- package/dist/services/control/control.platform.service.d.ts +24 -0
- package/dist/services/control/control.platform.service.js +36 -0
- package/dist/services/control/control.platform.service.js.map +7 -0
- package/dist/services/external/external.accounts.service.d.ts +10 -1
- package/dist/services/external/external.accounts.service.js +39 -0
- package/dist/services/external/external.accounts.service.js.map +2 -2
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/services/accounts/hdp.service.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n Hdp,\n HdpBackendChangeEvent,\n HdpPrometheusDataCapacityDataPoint,\n HdpTenantUsageBreakdown,\n HdpTenantUsagePoint,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface GetClusterCapacityRequest extends RequestBaseParams {\n params: {\n orgId: string\n clusterId?: string\n clusterIds?: string[]\n operation: 'per-day' | 'latest' | '24h'\n }\n}\n\nexport interface GetTenantUsageRequest extends RequestBaseParams {\n params: {\n orgId: string\n /** Relative window, in days back from today. Ignored when `startDate` is set. */\n days?: number\n /** Inclusive `YYYY-MM-DD` lower bound. */\n startDate?: string\n /** Inclusive `YYYY-MM-DD` upper bound. Defaults to today. */\n endDate?: string\n }\n}\n\nexport interface GetBackendChangeEventsRequest extends RequestBaseParams {\n params: {\n entityId: string\n }\n}\n\nexport interface GetUsageMetricsRequest extends RequestBaseParams {\n params: {\n orgId: string\n queryRange?: string\n queryStartDate?: string\n /** Inclusive upper bound; without it the range is open-ended. */\n queryEndDate?: string\n queryLimit?: number\n }\n}\n\nexport interface GetUsageMetricsResponse {\n valueMetrics: Hdp.ValueMetrics\n}\n\nexport interface GetLlmUsageRequest extends RequestBaseParams {\n params: Record<string, never>\n}\n\nexport interface LlmUsageEntry {\n ts: number\n orgId: string\n orgName: string\n salesPlan: string\n spend: number\n maxBudget: number\n}\n\nexport interface GetActiveOrgsRequest extends RequestBaseParams {\n params: {\n metric: 'ProcessInstances' | 'DecisionInstances' | 'TaskUsers'\n }\n}\n\nexport interface GetActiveOrgsResponse {\n activeOrgs: Hdp.ActiveOrgByUsageMetric[]\n}\n\nexport interface GetClusterActivityRequest extends RequestBaseParams {\n params?: {\n /** The window to read, in days. accounts-backend bounds this value. */\n windowDays?: number\n }\n}\n\nexport class HdpService {\n public static async getClusterCapacity(\n params: GetClusterCapacityRequest,\n ): Promise<HdpPrometheusDataCapacityDataPoint[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterCapacity`,\n url: `api/hdp/${params.params.orgId}/clusters/capacity`,\n normalizedUrl: `api/hdp/:orgId/clusters/capacity`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpPrometheusDataCapacityDataPoint[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getTenantUsage(\n params: GetTenantUsageRequest,\n ): Promise<HdpTenantUsagePoint[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getTenantUsage`,\n url: `api/hdp/${params.params.orgId}/tenants`,\n normalizedUrl: `api/hdp/:orgId/tenants`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpTenantUsagePoint[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * Tenant usage broken down by cluster, plus the org roll-up of the same rows.\n * Use when a caller needs the per-cluster detail; `getTenantUsage` returns\n * just the org totals, which is all a billing figure needs.\n */\n public static async getTenantUsagePerCluster(\n params: GetTenantUsageRequest,\n ): Promise<HdpTenantUsageBreakdown> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getTenantUsagePerCluster`,\n url: `api/hdp/${params.params.orgId}/tenants/per-cluster`,\n normalizedUrl: `api/hdp/:orgId/tenants/per-cluster`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpTenantUsageBreakdown>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getBackendChangeEvents(\n params: GetBackendChangeEventsRequest,\n ): Promise<HdpBackendChangeEvent[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterCapacity`,\n url: `api/hdp/backend-events/${params.params.entityId}`,\n normalizedUrl: `api/hdp/backend-events/:entityId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpBackendChangeEvent[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getUsageMetrics(\n params: GetUsageMetricsRequest,\n ): Promise<GetUsageMetricsResponse> {\n const queryParams = new URLSearchParams()\n if (params.params.queryRange) {\n queryParams.append('range', params.params.queryRange)\n }\n if (params.params.queryStartDate) {\n queryParams.append('startDate', params.params.queryStartDate)\n }\n if (params.params.queryEndDate) {\n queryParams.append('endDate', params.params.queryEndDate)\n }\n if (params.params.queryLimit) {\n queryParams.append('limit', params.params.queryLimit.toString())\n }\n const queryString = queryParams.size > 0 ? `?${queryParams.toString()}` : ''\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getUsageMetrics`,\n url: `api/usage-metrics/${params.params.orgId}${queryString}`,\n normalizedUrl: `api/hdp/usage-metrics/:orgId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<GetUsageMetricsResponse>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * The work of every cluster that HDP holds inside the window, for the whole\n * fleet (`GET /api/usage-metrics/cluster-activity`).\n *\n * Only accounts-backend can query HDP, thus console-backend reads the rows\n * from here. Call this with a service token: the response covers the whole\n * fleet, and the caller caches it for every user.\n */\n public static async getClusterActivity(\n params: GetClusterActivityRequest,\n ): Promise<Hdp.ClusterActivity> {\n const windowDays = params.params?.windowDays\n const queryString =\n windowDays === undefined ? '' : `?windowDays=${windowDays}`\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterActivity`,\n url: `api/usage-metrics/cluster-activity${queryString}`,\n normalizedUrl: `api/hdp/usage-metrics/cluster-activity`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<Hdp.ClusterActivity>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getActiveOrgs(\n params: GetActiveOrgsRequest,\n ): Promise<GetActiveOrgsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getActiveOrgs`,\n url: `api/usage-metrics/active/${params.params.metric}`,\n normalizedUrl: `api/hdp/usage-metrics/active/:metric`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<GetActiveOrgsResponse>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getLlmUsage(\n params: GetLlmUsageRequest,\n ): Promise<LlmUsageEntry[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getLlmUsage`,\n url: `api/hdp/llm-usage`,\n normalizedUrl: `api/hdp/llm-usage`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<LlmUsageEntry[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n Hdp,\n HdpBackendChangeEvent,\n HdpDisk,\n HdpPrometheusDataCapacityDataPoint,\n HdpTenantUsageBreakdown,\n HdpTenantUsagePoint,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface GetClusterCapacityRequest extends RequestBaseParams {\n params: {\n orgId: string\n clusterId?: string\n clusterIds?: string[]\n operation: 'per-day' | 'latest' | '24h'\n }\n}\n\n/**\n * `per-day`/`24h` read one cluster and `latest` reads a set \u2014 the identifiers\n * are not interchangeable, so the discriminant carries only the one its\n * operation needs. A flat `{clusterId?, clusterIds?, operation}` shape let a\n * caller send `{operation: '24h', clusterIds: [...]}`, which reached the\n * accounts-backend route with an undefined `clusterId` and returned 200 with\n * `[]` instead of a 400.\n */\nexport type GetClusterDiskUsageParams = {\n /** The disk to read. Without it, the route reads Elasticsearch. */\n disk?: HdpDisk\n} & (\n | { orgId: string; operation: 'per-day' | '24h'; clusterId: string }\n | { orgId: string; operation: 'latest'; clusterIds: string[] }\n)\n\nexport type GetClusterDiskUsageRequest = RequestBaseParams & {\n params: GetClusterDiskUsageParams\n}\n\nexport interface GetTenantUsageRequest extends RequestBaseParams {\n params: {\n orgId: string\n /** Relative window, in days back from today. Ignored when `startDate` is set. */\n days?: number\n /** Inclusive `YYYY-MM-DD` lower bound. */\n startDate?: string\n /** Inclusive `YYYY-MM-DD` upper bound. Defaults to today. */\n endDate?: string\n }\n}\n\nexport interface GetBackendChangeEventsRequest extends RequestBaseParams {\n params: {\n entityId: string\n }\n}\n\nexport interface GetUsageMetricsRequest extends RequestBaseParams {\n params: {\n orgId: string\n queryRange?: string\n queryStartDate?: string\n /** Inclusive upper bound; without it the range is open-ended. */\n queryEndDate?: string\n queryLimit?: number\n }\n}\n\nexport interface GetUsageMetricsResponse {\n valueMetrics: Hdp.ValueMetrics\n}\n\nexport interface GetLlmUsageRequest extends RequestBaseParams {\n params: Record<string, never>\n}\n\nexport interface LlmUsageEntry {\n ts: number\n orgId: string\n orgName: string\n salesPlan: string\n spend: number\n maxBudget: number\n}\n\nexport interface GetActiveOrgsRequest extends RequestBaseParams {\n params: {\n metric: 'ProcessInstances' | 'DecisionInstances' | 'TaskUsers'\n }\n}\n\nexport interface GetActiveOrgsResponse {\n activeOrgs: Hdp.ActiveOrgByUsageMetric[]\n}\n\nexport interface GetClusterActivityRequest extends RequestBaseParams {\n params?: {\n /** The window to read, in days. accounts-backend bounds this value. */\n windowDays?: number\n }\n}\n\nexport interface GetClusterHostingCostRequest extends RequestBaseParams {\n params: {\n clusterId: string\n }\n}\n\nexport interface GetClusterHostingCostResponse {\n /** Absent when the cluster has no rows in the window. */\n hostingCost?: Hdp.ClusterHostingCost\n}\n\nexport class HdpService {\n public static async getClusterCapacity(\n params: GetClusterCapacityRequest,\n ): Promise<HdpPrometheusDataCapacityDataPoint[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterCapacity`,\n url: `api/hdp/${params.params.orgId}/clusters/capacity`,\n normalizedUrl: `api/hdp/:orgId/clusters/capacity`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpPrometheusDataCapacityDataPoint[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * Used bytes of one cluster disk (Elasticsearch or Zeebe), as avg/min/max,\n * with the same shape and operations as `getClusterCapacity`. The value is\n * the total over all nodes of the disk. See\n * camunda/Holistic-Data-Platform#1923 for the ingestion side.\n */\n public static async getClusterDiskUsage(\n params: GetClusterDiskUsageRequest,\n ): Promise<HdpPrometheusDataCapacityDataPoint[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterDiskUsage`,\n url: `api/hdp/${params.params.orgId}/clusters/disk-usage`,\n normalizedUrl: `api/hdp/:orgId/clusters/disk-usage`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpPrometheusDataCapacityDataPoint[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getTenantUsage(\n params: GetTenantUsageRequest,\n ): Promise<HdpTenantUsagePoint[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getTenantUsage`,\n url: `api/hdp/${params.params.orgId}/tenants`,\n normalizedUrl: `api/hdp/:orgId/tenants`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpTenantUsagePoint[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * Tenant usage broken down by cluster, plus the org roll-up of the same rows.\n * Use when a caller needs the per-cluster detail; `getTenantUsage` returns\n * just the org totals, which is all a billing figure needs.\n */\n public static async getTenantUsagePerCluster(\n params: GetTenantUsageRequest,\n ): Promise<HdpTenantUsageBreakdown> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getTenantUsagePerCluster`,\n url: `api/hdp/${params.params.orgId}/tenants/per-cluster`,\n normalizedUrl: `api/hdp/:orgId/tenants/per-cluster`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpTenantUsageBreakdown>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getBackendChangeEvents(\n params: GetBackendChangeEventsRequest,\n ): Promise<HdpBackendChangeEvent[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterCapacity`,\n url: `api/hdp/backend-events/${params.params.entityId}`,\n normalizedUrl: `api/hdp/backend-events/:entityId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<HdpBackendChangeEvent[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getUsageMetrics(\n params: GetUsageMetricsRequest,\n ): Promise<GetUsageMetricsResponse> {\n const queryParams = new URLSearchParams()\n if (params.params.queryRange) {\n queryParams.append('range', params.params.queryRange)\n }\n if (params.params.queryStartDate) {\n queryParams.append('startDate', params.params.queryStartDate)\n }\n if (params.params.queryEndDate) {\n queryParams.append('endDate', params.params.queryEndDate)\n }\n if (params.params.queryLimit) {\n queryParams.append('limit', params.params.queryLimit.toString())\n }\n const queryString = queryParams.size > 0 ? `?${queryParams.toString()}` : ''\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getUsageMetrics`,\n url: `api/usage-metrics/${params.params.orgId}${queryString}`,\n normalizedUrl: `api/hdp/usage-metrics/:orgId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<GetUsageMetricsResponse>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * The work of every cluster that HDP holds inside the window, for the whole\n * fleet (`GET /api/usage-metrics/cluster-activity`).\n *\n * Only accounts-backend can query HDP, thus console-backend reads the rows\n * from here. Call this with a service token: the response covers the whole\n * fleet, and the caller caches it for every user.\n */\n public static async getClusterActivity(\n params: GetClusterActivityRequest,\n ): Promise<Hdp.ClusterActivity> {\n const windowDays = params.params?.windowDays\n const queryString =\n windowDays === undefined ? '' : `?windowDays=${windowDays}`\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterActivity`,\n url: `api/usage-metrics/cluster-activity${queryString}`,\n normalizedUrl: `api/hdp/usage-metrics/cluster-activity`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<Hdp.ClusterActivity>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n /**\n * One cluster's trailing 30-day loaded hosting cost\n * (`GET /api/hdp/hosting-cost/:clusterId`).\n *\n * Only accounts-backend can query HDP, thus console-backend and\n * control-frontend both read it from here. The response's `hostingCost` is\n * absent when the cluster has no rows in the window, so the caller can show\n * \"no data\" rather than a false $0.\n */\n public static async getClusterHostingCost(\n params: GetClusterHostingCostRequest,\n ): Promise<GetClusterHostingCostResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getClusterHostingCost`,\n url: `api/hdp/hosting-cost/${encodeURIComponent(params.params.clusterId)}`,\n normalizedUrl: `api/hdp/hosting-cost/:clusterId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<GetClusterHostingCostResponse>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * The trailing 30-day loaded hosting cost of every cluster HDP holds, for\n * the whole fleet (`GET /api/hdp/hosting-cost`).\n *\n * accounts-backend answers only a caller with `admin.readAll`, and caches\n * the answer for one hour, thus a page can call this on load. HDP keeps the\n * rows of deleted clusters, thus the caller matches `rows` against its own\n * cluster list. A cluster with no row has no cost data. That is not a cost\n * of 0. While `control.fleetHostingCost` is off on the stage, `rows` is\n * empty.\n */\n public static async getFleetHostingCost(\n params: RequestBaseParams,\n ): Promise<Hdp.FleetHostingCost> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getFleetHostingCost`,\n url: 'api/hdp/hosting-cost',\n normalizedUrl: 'api/hdp/hosting-cost',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<Hdp.FleetHostingCost>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async getActiveOrgs(\n params: GetActiveOrgsRequest,\n ): Promise<GetActiveOrgsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getActiveOrgs`,\n url: `api/usage-metrics/active/${params.params.metric}`,\n normalizedUrl: `api/hdp/usage-metrics/active/:metric`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<GetActiveOrgsResponse>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getLlmUsage(\n params: GetLlmUsageRequest,\n ): Promise<LlmUsageEntry[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `HdpService.getLlmUsage`,\n url: `api/hdp/llm-usage`,\n normalizedUrl: `api/hdp/llm-usage`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<LlmUsageEntry[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -366,8 +366,12 @@ export declare class OrgsService {
|
|
|
366
366
|
static setBetaTermsAccepted(params: SetBetaTermsAcceptedRequest): Promise<void>;
|
|
367
367
|
/**
|
|
368
368
|
* Delete an organization.
|
|
369
|
-
*
|
|
370
|
-
*
|
|
369
|
+
*
|
|
370
|
+
* The caller's own bearer token authenticates the request. Cloudbot can
|
|
371
|
+
* also add `params.headers['x-camunda-email']` on top of its own M2M
|
|
372
|
+
* bearer token, to act on behalf of the named human. Accounts-backend's
|
|
373
|
+
* `emailBasedAuthMiddleware` rejects that header from every other caller —
|
|
374
|
+
* it does not replace the bearer token.
|
|
371
375
|
*/
|
|
372
376
|
static deleteOrganization(params: DeleteOrganizationRequest): Promise<void>;
|
|
373
377
|
/**
|
|
@@ -1046,8 +1046,12 @@ class OrgsService {
|
|
|
1046
1046
|
}
|
|
1047
1047
|
/**
|
|
1048
1048
|
* Delete an organization.
|
|
1049
|
-
*
|
|
1050
|
-
*
|
|
1049
|
+
*
|
|
1050
|
+
* The caller's own bearer token authenticates the request. Cloudbot can
|
|
1051
|
+
* also add `params.headers['x-camunda-email']` on top of its own M2M
|
|
1052
|
+
* bearer token, to act on behalf of the named human. Accounts-backend's
|
|
1053
|
+
* `emailBasedAuthMiddleware` rejects that header from every other caller —
|
|
1054
|
+
* it does not replace the bearer token.
|
|
1051
1055
|
*/
|
|
1052
1056
|
static async deleteOrganization(params) {
|
|
1053
1057
|
const serviceContext = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/services/accounts/orgs.service.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n type AutoJoinAssignment,\n type ClusterCreationDefaults,\n type EnterpriseIncludingValueMetrics,\n type LicensingModelType,\n type LlmProviderName,\n MINUTE,\n type OrganizationDto,\n type OrgWithNameAndSalesPlan,\n type User,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { Cache } from '../../utils/cache.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface GetSubscriptionItemsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface GetSubscriptionDetailsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface GetSubscriptionDetailsResponse {\n status: string\n currentContractTermEnd: number\n}\n\nexport interface OrgInfo {\n orgUuid: string\n name: string\n salesPlanUuid?: string\n salesForceProjectId?: string\n}\n\nexport interface SetLimitRequest extends RequestBaseParams {\n params: {\n orgId: string\n onBehalfOf: string\n limitKey: string\n limitValue: string | null\n }\n}\n\nexport interface UpdateSuppressDropDisksRequest extends RequestBaseParams {\n params: {\n orgId: string\n value: boolean\n }\n}\n\nexport interface UpdateSuppressDropDisksResponse {\n newLimits: {\n suppressDropDisks?: boolean\n [key: string]: any\n }\n}\n\nexport interface RenameOrganizationRequest extends RequestBaseParams {\n params: {\n orgId: string\n newOrgName: string\n }\n}\n\nexport interface ExtendTrialRequest extends RequestBaseParams {\n params: {\n orgId: string\n onBehalfOf: string\n newExpireDate: string\n }\n}\n\nexport interface SelfExtendTrialRequest extends RequestBaseParams {\n params: {\n orgId: string\n surveyAnswers?: import('@camunda/ccma-shared-types').TrialExtensionSurveyAnswer[]\n }\n}\n\nexport interface ResetTrialExtensionsRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface EnterpriseDevOnlyRequest extends RequestBaseParams {\n params: {\n orgId: string\n enterpriseDevOnly: boolean\n }\n}\n\nexport interface AwsOnlyRequest extends RequestBaseParams {\n params: {\n orgId: string\n awsOnly: boolean\n }\n}\n\nexport interface OrgClusterDefaultsRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface UpdateOrgClusterDefaultsRequest\n extends OrgClusterDefaultsRequest {\n body: {\n defaults: ClusterCreationDefaults\n }\n}\n\n/** The cluster creation defaults that an organization holds (#9732). */\nexport interface OrgClusterDefaultsResponse {\n defaults: ClusterCreationDefaults\n}\n\nexport interface LicensingModelRequest extends RequestBaseParams {\n params: {\n orgId: string\n licensingModel: LicensingModelType\n }\n}\n\nexport interface SendInviteRequest extends RequestBaseParams {\n params: {\n orgId: string\n email: string\n orgRoles: string[]\n }\n}\n\nexport interface CheckUserExistsForInviteRequest extends RequestBaseParams {\n params: {\n inviteToken: string\n }\n}\n\nexport interface CheckUserExistsForInviteResponse {\n userExists: boolean\n userVerified: boolean\n email: string\n}\n\nexport interface ChangeSalesPlanRequest extends RequestBaseParams {\n params: {\n orgId: string\n salesPlanId: string\n options?: {\n duration?: number\n includedValueMetrics?: EnterpriseIncludingValueMetrics\n enterpriseDevOnly?: boolean\n awsOnly?: boolean\n enterPriseStartDate?: string\n onboardOrgClusterMapping?: Array<{\n clusterId: string\n planTypeId: string\n numberOfAllocatedHwPackages?: number\n keepModification?: boolean\n }>\n force?: boolean\n salesForceId?: string\n licensingModel?: LicensingModelType\n }\n }\n}\n\nexport interface ConvertTrialToInNegotiationRequest extends RequestBaseParams {\n params: {\n orgId: string\n salesPlanId: string\n }\n}\n\nexport interface AutomatedEnterpriseOnboardingRequest {\n orgName: string\n awsOnly?: boolean\n renewalTermInMonths?: number\n licensingModel?: LicensingModelType\n valueMetrics: EnterpriseIncludingValueMetrics\n startDate?: string\n sfdcId: string\n reservations: {\n basic: number\n standard: number\n advanced: number\n }\n ownerEmail: string\n}\n\nexport interface AutomatedEnterpriseOnboardingResult {\n orgIds: {\n production: string\n development: string\n }\n}\n\nexport interface DeleteOrganizationRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n headers?: {\n 'x-camunda-email'?: string\n }\n}\n\nexport interface SetBetaTermsAcceptedRequest extends RequestBaseParams {\n params: {\n orgId: string\n accepted: boolean\n }\n}\n\nexport interface GetLLMUsageInfoParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface LLMUsageInfoResponse {\n key: string\n team_id: string\n spend: number\n max_budget: number\n budget_duration: string\n is_blocked?: boolean\n /**\n * Upstream that holds the key of this org: `litellm` or `openrouter`.\n *\n * Optional because an accounts backend from before the OpenRouter rollout\n * does not send it. Read an absent value as `litellm`.\n */\n provider?: LlmProviderName\n [key: string]: any\n}\n\nexport interface GetQueuedOperationsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\n/**\n * A background operation still outstanding, or dead-lettered, for an org.\n *\n * Deliberately carries no payload: the backend projects an explicit field list\n * so a future operation type cannot leak anything sensitive through this route.\n */\nexport interface QueuedOperationDto {\n id: number\n operationType: string\n status: 'pending' | 'processing' | 'failed'\n attempts: number\n maxAttempts: number\n /** ISO timestamp of the next scheduled attempt. */\n nextRunAt: string\n lastError?: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface IncreaseLLMBudgetParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface IncreaseLLMBudgetResponse {\n newBudget: number\n message: string\n}\n\nexport interface BlockLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface UnblockLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface OnboardLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nconst orgCache = new Cache<string, OrganizationDto>(5 * MINUTE)\nconst ownerCache = new Cache<\n string,\n {\n owner: string\n email: string\n first?: string\n last?: string\n }\n>(60 * MINUTE)\nconst memberCache = new Cache<string, User[]>(60 * MINUTE)\nconst rolesCache = new Cache<string, string[]>(60 * MINUTE)\n\nexport class OrgsService {\n public static async renameOrganization(\n params: RenameOrganizationRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.renameOrganization`,\n url: `api/organizations/${encodeURIComponent(params.params.orgId)}/`,\n normalizedUrl: `api/organizations/:orgId/`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n newOrgName: params.params.newOrgName,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async getDetailsForOrgs(\n params: RequestBaseParams & { orgIds: string[] },\n ): Promise<OrgInfo[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getDetailsForOrgs`,\n url: `api/organizations/orgInfos`,\n normalizedUrl: `api/organizations/orgInfos`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrgInfo[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgIds: params.orgIds,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getAllOrgs(\n params: RequestBaseParams,\n ): Promise<OrganizationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllOrgs`,\n url: `api/organizations`,\n normalizedUrl: `api/organizations`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrganizationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getMyOrgs(\n params: RequestBaseParams,\n ): Promise<OrganizationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getMyOrgs`,\n url: `api/organizations/my`,\n normalizedUrl: `api/organizations/my`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<OrganizationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async getOrgInfo(\n params: {\n orgUuid: string\n headers?: { [key: string]: string }\n } & RequestBaseParams,\n ) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = orgCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOrgInfo`,\n url: `api/organizations/${params.orgUuid}`,\n normalizedUrl: `api/organizations/:orgUuid`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<OrganizationDto>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n // A read-only GET, so retrying is free of side effects. Without this, a\n // brief accounts blip (pod restart, envoy connection reset) is reported\n // as an error once *per org* by the callers that fan this out across a\n // whole org list \u2014 one transient failure became 25 ERROR lines in a\n // single console `cron.sleep` tick.\n retryTransientErrors: true,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n orgCache.set(params.orgUuid, response.body!)\n return response.body\n }\n\n public static async getOwner(\n params: {\n orgUuid: string\n headers?: { [key: string]: string }\n } & RequestBaseParams,\n ): Promise<{ owner: string; email: string; first?: string; last?: string }> {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = ownerCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOwner`,\n url: `api/organizations/${params.orgUuid}/owner`,\n normalizedUrl: `api/organizations/:orgUuid/owner`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{\n owner: string\n email: string\n first?: string\n last?: string\n }>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n ownerCache.set(params.orgUuid, response.body!)\n return response.body!\n }\n public static async createAndReturnSocialLoginUser(\n params: {\n body: {\n userId: string\n ipAddress?: string\n inviteToken?: string\n campaign?: string\n utm_medium?: string\n utm_source?: string\n utm_term?: string\n utm_content?: string\n utm_campaign?: string\n utm_gclid?: string\n utm_ga_id?: string\n signupOrigin?: string\n surveyUuid?: string\n }\n } & RequestBaseParams,\n ): Promise<{ orgId: string; invitation?: { successful: boolean } }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.createAndReturnSocialLoginUser`,\n url: `api/onboarding/social`,\n normalizedUrl: `api/onboarding/social`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{\n orgId: string\n invitation?: { successful: boolean }\n }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return {\n orgId: response.body?.orgId ?? '',\n invitation: response.body?.invitation,\n }\n }\n\n public static async getUsersOfOrg(\n params: { orgUuid: string } & RequestBaseParams,\n ) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = memberCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getUsersOfOrg`,\n url: `api/organizations/${params.orgUuid}/users`,\n normalizedUrl: `api/organizations/:orgUuid/users`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<User[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n memberCache.set(params.orgUuid, response.body!)\n return response.body\n }\n\n public static async getAllRoles(params: RequestBaseParams) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = rolesCache.get('roles')\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllRoles`,\n url: `api/roles`,\n normalizedUrl: `api/roles`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<string[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n rolesCache.set('roles', response.body!)\n return response.body\n }\n\n public static async getNamesAndSalesplansForOrgs(\n params: { orgIds: string[] } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllOrgs`,\n url: `api/organizations/snowflake/getNamesAndSalesplansForOrgs`,\n normalizedUrl: `api/organizations/snowflake/getNamesAndSalesplansForOrgs`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrgWithNameAndSalesPlan[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgIds: params.orgIds,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async markOrgHasAlreadyCreatedTemporaryCluster(\n params: { orgUuid: string } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.markOrgHasAlreadyCreatedTemporaryCluster`,\n url: `api/organizations/snowflake/${params.orgUuid}/markOrgHasAlreadyCreatedTemporaryCluster`,\n normalizedUrl: `api/organizations/snowflake/:orgUuid/markOrgHasAlreadyCreatedTemporaryCluster`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setSalesForceId(\n params: { orgUuid: string; salesForceId: string } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setSalesForceId`,\n url: `api/organizations/${params.orgUuid}/salesForceId`,\n normalizedUrl: `api/organizations/:orgUuid/salesForceId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n salesForceId: params.salesForceId,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setLimit(params: SetLimitRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setLimit`,\n url: `api/organizations/${params.params.orgId}/limits/${params.params.limitKey}`,\n normalizedUrl: `api/organizations/:orgId/limits/:limitKey`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n value: params.params.limitValue,\n onBehalfOf: params.params.onBehalfOf,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateSuppressDropDisks(\n params: UpdateSuppressDropDisksRequest,\n ): Promise<UpdateSuppressDropDisksResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateSuppressDropDisks`,\n url: `api/organizations/${params.params.orgId}/billing/limits/suppressDropDisks`,\n normalizedUrl: `api/organizations/:orgId/billing/limits/suppressDropDisks`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<UpdateSuppressDropDisksResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n value: params.params.value,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async extendTrial(params: ExtendTrialRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.extendTrial`,\n url: `api/organizations/${params.params.orgId}/extendtrial`,\n normalizedUrl: `api/organizations/:orgId/extendtrial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n newExpireDate: params.params.newExpireDate,\n onBehalfOf: params.params.onBehalfOf,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async selfExtendTrial(params: SelfExtendTrialRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.selfExtendTrial`,\n url: `api/organizations/${params.params.orgId}/self-extend-trial`,\n normalizedUrl: `api/organizations/:orgId/self-extend-trial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: { surveyAnswers: params.params.surveyAnswers ?? [] },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async resetTrialExtensions(\n params: ResetTrialExtensionsRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.resetTrialExtensions`,\n url: `api/organizations/${params.params.orgId}/reset-trial-extensions`,\n normalizedUrl: `api/organizations/:orgId/reset-trial-extensions`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /** Send an org's trial to expired immediately (enterprise admin action). */\n public static async setToExpiredTrial(\n params: { params: { orgId: string } } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setToExpiredTrial`,\n url: `api/organizations/${params.params.orgId}/expiretrial`,\n normalizedUrl: `api/organizations/:orgId/expiretrial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {},\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Modify an enterprise org's contract metadata (duration, start date,\n * included value metrics) \u2014 `PATCH api/organizations/:orgId/enterprise`.\n */\n public static async updateEnterpriseMetadata(\n params: {\n params: { orgId: string }\n body: {\n contractDurationInMonths?: number\n startDate?: string\n valueMetrics?: Partial<EnterpriseIncludingValueMetrics>\n }\n } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateEnterpriseMetadata`,\n url: `api/organizations/${params.params.orgId}/enterprise`,\n normalizedUrl: `api/organizations/:orgId/enterprise`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /** Remove an org's LiteLLM (managed LLM) connection. */\n public static async deleteLiteLLM(\n params: { params: { orgId: string } } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.deleteLiteLLM`,\n url: `api/organizations/${params.params.orgId}/litellm`,\n normalizedUrl: `api/organizations/:orgId/litellm`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * The cluster creation defaults of an organization (#9732). An empty\n * `defaults` object means that a new cluster starts with the values of the\n * console backend.\n *\n * The route serves Control and the organization itself; the caller needs\n * `org.settings.read` on the organization, or the read-all permission of\n * accounts.\n */\n public static async getOrgClusterDefaults(\n params: OrgClusterDefaultsRequest,\n ): Promise<OrgClusterDefaultsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOrgClusterDefaults`,\n url: `api/organizations/${params.params.orgId}/cluster-defaults`,\n normalizedUrl: `api/organizations/:orgId/cluster-defaults`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<OrgClusterDefaultsResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? { defaults: {} }\n }\n\n /**\n * Replace the cluster creation defaults of an organization. A field that\n * the body does not hold is no longer a default.\n *\n * The route refuses a field that the caller may not write: an organization\n * writes the fields of the availability `customer` alone.\n */\n public static async updateOrgClusterDefaults(\n params: UpdateOrgClusterDefaultsRequest,\n ): Promise<OrgClusterDefaultsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateOrgClusterDefaults`,\n url: `api/organizations/${params.params.orgId}/cluster-defaults`,\n normalizedUrl: `api/organizations/:orgId/cluster-defaults`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<OrgClusterDefaultsResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? { defaults: params.body.defaults }\n }\n\n public static async setAwsOnly(params: AwsOnlyRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setAwsOnly`,\n url: `api/organizations/${params.params.orgId}/awsOnly`,\n normalizedUrl: `api/organizations/:orgId/awsOnly`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n awsOnly: params.params.awsOnly,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setEnterpriseDevOnly(params: EnterpriseDevOnlyRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setEnterpriseDevOnly`,\n url: `api/organizations/${params.params.orgId}/enterprise-dev`,\n normalizedUrl: `api/organizations/:orgId/enterprise-dev`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n enterpriseDevOnly: params.params.enterpriseDevOnly,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setLicensingModel(params: LicensingModelRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setLicensingModel`,\n url: `api/organizations/${params.params.orgId}/licensing-model`,\n normalizedUrl: `api/organizations/:orgId/licensing-model`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n licensingModel: params.params.licensingModel,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async changeSalesPlan(params: ChangeSalesPlanRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.changeSalesPlan`,\n url: `api/organizations/${params.params.orgId}/salesplan/${params.params.salesPlanId}`,\n normalizedUrl: `api/organizations/:orgId/salesplan/:salesPlanId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<any>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params.options ?? {},\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async convertTrialToInNegotiation(\n params: ConvertTrialToInNegotiationRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.convertTrialToInNegotiation`,\n url: `api/organizations/${params.params.orgId}/trial-to-in-negotiation/${params.params.salesPlanId}`,\n normalizedUrl: `api/organizations/:orgId/trial-to-in-negotiation/:salesPlanId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{ success: boolean }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async sendInvite(params: SendInviteRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.sendInvite`,\n url: `api/organizations/${params.params.orgId}/invites`,\n normalizedUrl: `api/organizations/:orgId/invites`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n email: params.params.email,\n orgRoles: params.params.orgRoles,\n },\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async checkUserExistsForInvite(\n params: CheckUserExistsForInviteRequest,\n ): Promise<CheckUserExistsForInviteResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.checkUserExistsForInvite`,\n url: `verification/invitation/${params.params.inviteToken}/check-user-exists`,\n normalizedUrl: `verification/invitation/:inviteToken/check-user-exists`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<CheckUserExistsForInviteResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async automatedEnterpriseOnboarding(\n params: AutomatedEnterpriseOnboardingRequest & RequestBaseParams,\n ): Promise<AutomatedEnterpriseOnboardingResult> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.automatedEnterpriseOnboarding`,\n url: `external/onboarding`,\n normalizedUrl: `external/onboarding`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<AutomatedEnterpriseOnboardingResult>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgName: params.orgName,\n awsOnly: params.awsOnly,\n renewalTermInMonths: params.renewalTermInMonths,\n licensingModel: params.licensingModel,\n valueMetrics: params.valueMetrics,\n startDate: params.startDate,\n sfdcId: params.sfdcId,\n reservations: params.reservations,\n ownerEmail: params.ownerEmail,\n },\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async setBetaTermsAccepted(\n params: SetBetaTermsAcceptedRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.setBetaTermsAccepted',\n url: `api/organizations/${encodeURIComponent(params.params.orgId)}/betaTerms`,\n normalizedUrl: 'api/organizations/:orgId/betaTerms',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n accepted: params.params.accepted,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Delete an organization.\n * This uses email-based authentication via x-camunda-email header.\n * Only the owner of the org can delete it.\n */\n public static async deleteOrganization(\n params: DeleteOrganizationRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.deleteOrganization`,\n url: `api/organizations/${params.params.orgId}`,\n normalizedUrl: `api/organizations/:orgId`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Create an organization (admin `createOrg`). Mirrors `POST api/organizations/`\n * \u2014 `internal` seeds an internal plan, otherwise a trial plan. Returns the new\n * org so the caller can navigate to it.\n */\n public static async createOrganization(\n params: RequestBaseParams & { name: string; internal?: boolean },\n ): Promise<{ uuid: string; name: string }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.createOrganization`,\n url: `api/organizations`,\n normalizedUrl: `api/organizations`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n\n const response = await request<{ uuid: string; name: string }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: { name: params.name, internal: params.internal ?? false },\n responseType: 'json',\n })\n\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async setAutoJoin(\n params: RequestBaseParams & {\n orgId: string\n autoJoin: AutoJoinAssignment\n },\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setAutoJoin`,\n url: `api/organizations/${params.orgId}/auto-join`,\n normalizedUrl: `api/organizations/:orgId/auto-join`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n autoJoin: params.autoJoin,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * Background operations outstanding or dead-lettered for an org \u2014 the\n * support-facing view of the durable operation queue.\n */\n public static async getQueuedOperations(\n params: GetQueuedOperationsParams,\n ): Promise<QueuedOperationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.getQueuedOperations',\n url: `api/organizations/${params.params.orgId}/queued-operations`,\n normalizedUrl: 'api/organizations/:orgId/queued-operations',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<QueuedOperationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getLLMUsageInfo(\n params: GetLLMUsageInfoParams,\n ): Promise<LLMUsageInfoResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.getLLMUsageInfo',\n url: `api/organizations/${params.params.orgId}/llm/info`,\n normalizedUrl: 'api/organizations/:orgId/llm/info',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<LLMUsageInfoResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async increaseLLMBudget(\n params: IncreaseLLMBudgetParams,\n ): Promise<IncreaseLLMBudgetResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.increaseLLMBudget',\n url: `api/organizations/${params.params.orgId}/litellm/increase-budget`,\n normalizedUrl: 'api/organizations/:orgId/litellm/increase-budget',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<IncreaseLLMBudgetResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async blockLiteLLM(params: BlockLiteLLMParams): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.blockLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/block`,\n normalizedUrl: 'api/organizations/:orgId/litellm/block',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async unblockLiteLLM(\n params: UnblockLiteLLMParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.unblockLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/unblock`,\n normalizedUrl: 'api/organizations/:orgId/litellm/unblock',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async onboardLiteLLM(\n params: OnboardLiteLLMParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.onboardLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/onboard`,\n normalizedUrl: 'api/organizations/:orgId/litellm/onboard',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n type AutoJoinAssignment,\n type ClusterCreationDefaults,\n type EnterpriseIncludingValueMetrics,\n type LicensingModelType,\n type LlmProviderName,\n MINUTE,\n type OrganizationDto,\n type OrgWithNameAndSalesPlan,\n type User,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { Cache } from '../../utils/cache.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport interface GetSubscriptionItemsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface GetSubscriptionDetailsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface GetSubscriptionDetailsResponse {\n status: string\n currentContractTermEnd: number\n}\n\nexport interface OrgInfo {\n orgUuid: string\n name: string\n salesPlanUuid?: string\n salesForceProjectId?: string\n}\n\nexport interface SetLimitRequest extends RequestBaseParams {\n params: {\n orgId: string\n onBehalfOf: string\n limitKey: string\n limitValue: string | null\n }\n}\n\nexport interface UpdateSuppressDropDisksRequest extends RequestBaseParams {\n params: {\n orgId: string\n value: boolean\n }\n}\n\nexport interface UpdateSuppressDropDisksResponse {\n newLimits: {\n suppressDropDisks?: boolean\n [key: string]: any\n }\n}\n\nexport interface RenameOrganizationRequest extends RequestBaseParams {\n params: {\n orgId: string\n newOrgName: string\n }\n}\n\nexport interface ExtendTrialRequest extends RequestBaseParams {\n params: {\n orgId: string\n onBehalfOf: string\n newExpireDate: string\n }\n}\n\nexport interface SelfExtendTrialRequest extends RequestBaseParams {\n params: {\n orgId: string\n surveyAnswers?: import('@camunda/ccma-shared-types').TrialExtensionSurveyAnswer[]\n }\n}\n\nexport interface ResetTrialExtensionsRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface EnterpriseDevOnlyRequest extends RequestBaseParams {\n params: {\n orgId: string\n enterpriseDevOnly: boolean\n }\n}\n\nexport interface AwsOnlyRequest extends RequestBaseParams {\n params: {\n orgId: string\n awsOnly: boolean\n }\n}\n\nexport interface OrgClusterDefaultsRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface UpdateOrgClusterDefaultsRequest\n extends OrgClusterDefaultsRequest {\n body: {\n defaults: ClusterCreationDefaults\n }\n}\n\n/** The cluster creation defaults that an organization holds (#9732). */\nexport interface OrgClusterDefaultsResponse {\n defaults: ClusterCreationDefaults\n}\n\nexport interface LicensingModelRequest extends RequestBaseParams {\n params: {\n orgId: string\n licensingModel: LicensingModelType\n }\n}\n\nexport interface SendInviteRequest extends RequestBaseParams {\n params: {\n orgId: string\n email: string\n orgRoles: string[]\n }\n}\n\nexport interface CheckUserExistsForInviteRequest extends RequestBaseParams {\n params: {\n inviteToken: string\n }\n}\n\nexport interface CheckUserExistsForInviteResponse {\n userExists: boolean\n userVerified: boolean\n email: string\n}\n\nexport interface ChangeSalesPlanRequest extends RequestBaseParams {\n params: {\n orgId: string\n salesPlanId: string\n options?: {\n duration?: number\n includedValueMetrics?: EnterpriseIncludingValueMetrics\n enterpriseDevOnly?: boolean\n awsOnly?: boolean\n enterPriseStartDate?: string\n onboardOrgClusterMapping?: Array<{\n clusterId: string\n planTypeId: string\n numberOfAllocatedHwPackages?: number\n keepModification?: boolean\n }>\n force?: boolean\n salesForceId?: string\n licensingModel?: LicensingModelType\n }\n }\n}\n\nexport interface ConvertTrialToInNegotiationRequest extends RequestBaseParams {\n params: {\n orgId: string\n salesPlanId: string\n }\n}\n\nexport interface AutomatedEnterpriseOnboardingRequest {\n orgName: string\n awsOnly?: boolean\n renewalTermInMonths?: number\n licensingModel?: LicensingModelType\n valueMetrics: EnterpriseIncludingValueMetrics\n startDate?: string\n sfdcId: string\n reservations: {\n basic: number\n standard: number\n advanced: number\n }\n ownerEmail: string\n}\n\nexport interface AutomatedEnterpriseOnboardingResult {\n orgIds: {\n production: string\n development: string\n }\n}\n\nexport interface DeleteOrganizationRequest extends RequestBaseParams {\n params: {\n orgId: string\n }\n headers?: {\n 'x-camunda-email'?: string\n }\n}\n\nexport interface SetBetaTermsAcceptedRequest extends RequestBaseParams {\n params: {\n orgId: string\n accepted: boolean\n }\n}\n\nexport interface GetLLMUsageInfoParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface LLMUsageInfoResponse {\n key: string\n team_id: string\n spend: number\n max_budget: number\n budget_duration: string\n is_blocked?: boolean\n /**\n * Upstream that holds the key of this org: `litellm` or `openrouter`.\n *\n * Optional because an accounts backend from before the OpenRouter rollout\n * does not send it. Read an absent value as `litellm`.\n */\n provider?: LlmProviderName\n [key: string]: any\n}\n\nexport interface GetQueuedOperationsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\n/**\n * A background operation still outstanding, or dead-lettered, for an org.\n *\n * Deliberately carries no payload: the backend projects an explicit field list\n * so a future operation type cannot leak anything sensitive through this route.\n */\nexport interface QueuedOperationDto {\n id: number\n operationType: string\n status: 'pending' | 'processing' | 'failed'\n attempts: number\n maxAttempts: number\n /** ISO timestamp of the next scheduled attempt. */\n nextRunAt: string\n lastError?: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface IncreaseLLMBudgetParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface IncreaseLLMBudgetResponse {\n newBudget: number\n message: string\n}\n\nexport interface BlockLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface UnblockLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface OnboardLiteLLMParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nconst orgCache = new Cache<string, OrganizationDto>(5 * MINUTE)\nconst ownerCache = new Cache<\n string,\n {\n owner: string\n email: string\n first?: string\n last?: string\n }\n>(60 * MINUTE)\nconst memberCache = new Cache<string, User[]>(60 * MINUTE)\nconst rolesCache = new Cache<string, string[]>(60 * MINUTE)\n\nexport class OrgsService {\n public static async renameOrganization(\n params: RenameOrganizationRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.renameOrganization`,\n url: `api/organizations/${encodeURIComponent(params.params.orgId)}/`,\n normalizedUrl: `api/organizations/:orgId/`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n newOrgName: params.params.newOrgName,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async getDetailsForOrgs(\n params: RequestBaseParams & { orgIds: string[] },\n ): Promise<OrgInfo[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getDetailsForOrgs`,\n url: `api/organizations/orgInfos`,\n normalizedUrl: `api/organizations/orgInfos`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrgInfo[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgIds: params.orgIds,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getAllOrgs(\n params: RequestBaseParams,\n ): Promise<OrganizationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllOrgs`,\n url: `api/organizations`,\n normalizedUrl: `api/organizations`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrganizationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getMyOrgs(\n params: RequestBaseParams,\n ): Promise<OrganizationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getMyOrgs`,\n url: `api/organizations/my`,\n normalizedUrl: `api/organizations/my`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<OrganizationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async getOrgInfo(\n params: {\n orgUuid: string\n headers?: { [key: string]: string }\n } & RequestBaseParams,\n ) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = orgCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOrgInfo`,\n url: `api/organizations/${params.orgUuid}`,\n normalizedUrl: `api/organizations/:orgUuid`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<OrganizationDto>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n // A read-only GET, so retrying is free of side effects. Without this, a\n // brief accounts blip (pod restart, envoy connection reset) is reported\n // as an error once *per org* by the callers that fan this out across a\n // whole org list \u2014 one transient failure became 25 ERROR lines in a\n // single console `cron.sleep` tick.\n retryTransientErrors: true,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n orgCache.set(params.orgUuid, response.body!)\n return response.body\n }\n\n public static async getOwner(\n params: {\n orgUuid: string\n headers?: { [key: string]: string }\n } & RequestBaseParams,\n ): Promise<{ owner: string; email: string; first?: string; last?: string }> {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = ownerCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOwner`,\n url: `api/organizations/${params.orgUuid}/owner`,\n normalizedUrl: `api/organizations/:orgUuid/owner`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{\n owner: string\n email: string\n first?: string\n last?: string\n }>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n ownerCache.set(params.orgUuid, response.body!)\n return response.body!\n }\n public static async createAndReturnSocialLoginUser(\n params: {\n body: {\n userId: string\n ipAddress?: string\n inviteToken?: string\n campaign?: string\n utm_medium?: string\n utm_source?: string\n utm_term?: string\n utm_content?: string\n utm_campaign?: string\n utm_gclid?: string\n utm_ga_id?: string\n signupOrigin?: string\n surveyUuid?: string\n }\n } & RequestBaseParams,\n ): Promise<{ orgId: string; invitation?: { successful: boolean } }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.createAndReturnSocialLoginUser`,\n url: `api/onboarding/social`,\n normalizedUrl: `api/onboarding/social`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{\n orgId: string\n invitation?: { successful: boolean }\n }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return {\n orgId: response.body?.orgId ?? '',\n invitation: response.body?.invitation,\n }\n }\n\n public static async getUsersOfOrg(\n params: { orgUuid: string } & RequestBaseParams,\n ) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = memberCache.get(params.orgUuid)\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getUsersOfOrg`,\n url: `api/organizations/${params.orgUuid}/users`,\n normalizedUrl: `api/organizations/:orgUuid/users`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<User[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n memberCache.set(params.orgUuid, response.body!)\n return response.body\n }\n\n public static async getAllRoles(params: RequestBaseParams) {\n if (!params.cacheControl?.ignoreCache) {\n const inCache = rolesCache.get('roles')\n if (inCache) {\n return inCache\n }\n }\n\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllRoles`,\n url: `api/roles`,\n normalizedUrl: `api/roles`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<string[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n rolesCache.set('roles', response.body!)\n return response.body\n }\n\n public static async getNamesAndSalesplansForOrgs(\n params: { orgIds: string[] } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getAllOrgs`,\n url: `api/organizations/snowflake/getNamesAndSalesplansForOrgs`,\n normalizedUrl: `api/organizations/snowflake/getNamesAndSalesplansForOrgs`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<OrgWithNameAndSalesPlan[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgIds: params.orgIds,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async markOrgHasAlreadyCreatedTemporaryCluster(\n params: { orgUuid: string } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.markOrgHasAlreadyCreatedTemporaryCluster`,\n url: `api/organizations/snowflake/${params.orgUuid}/markOrgHasAlreadyCreatedTemporaryCluster`,\n normalizedUrl: `api/organizations/snowflake/:orgUuid/markOrgHasAlreadyCreatedTemporaryCluster`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setSalesForceId(\n params: { orgUuid: string; salesForceId: string } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setSalesForceId`,\n url: `api/organizations/${params.orgUuid}/salesForceId`,\n normalizedUrl: `api/organizations/:orgUuid/salesForceId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n salesForceId: params.salesForceId,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setLimit(params: SetLimitRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setLimit`,\n url: `api/organizations/${params.params.orgId}/limits/${params.params.limitKey}`,\n normalizedUrl: `api/organizations/:orgId/limits/:limitKey`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n value: params.params.limitValue,\n onBehalfOf: params.params.onBehalfOf,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateSuppressDropDisks(\n params: UpdateSuppressDropDisksRequest,\n ): Promise<UpdateSuppressDropDisksResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateSuppressDropDisks`,\n url: `api/organizations/${params.params.orgId}/billing/limits/suppressDropDisks`,\n normalizedUrl: `api/organizations/:orgId/billing/limits/suppressDropDisks`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<UpdateSuppressDropDisksResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n value: params.params.value,\n },\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async extendTrial(params: ExtendTrialRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.extendTrial`,\n url: `api/organizations/${params.params.orgId}/extendtrial`,\n normalizedUrl: `api/organizations/:orgId/extendtrial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n newExpireDate: params.params.newExpireDate,\n onBehalfOf: params.params.onBehalfOf,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async selfExtendTrial(params: SelfExtendTrialRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.selfExtendTrial`,\n url: `api/organizations/${params.params.orgId}/self-extend-trial`,\n normalizedUrl: `api/organizations/:orgId/self-extend-trial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: { surveyAnswers: params.params.surveyAnswers ?? [] },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async resetTrialExtensions(\n params: ResetTrialExtensionsRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.resetTrialExtensions`,\n url: `api/organizations/${params.params.orgId}/reset-trial-extensions`,\n normalizedUrl: `api/organizations/:orgId/reset-trial-extensions`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /** Send an org's trial to expired immediately (enterprise admin action). */\n public static async setToExpiredTrial(\n params: { params: { orgId: string } } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setToExpiredTrial`,\n url: `api/organizations/${params.params.orgId}/expiretrial`,\n normalizedUrl: `api/organizations/:orgId/expiretrial`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {},\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Modify an enterprise org's contract metadata (duration, start date,\n * included value metrics) \u2014 `PATCH api/organizations/:orgId/enterprise`.\n */\n public static async updateEnterpriseMetadata(\n params: {\n params: { orgId: string }\n body: {\n contractDurationInMonths?: number\n startDate?: string\n valueMetrics?: Partial<EnterpriseIncludingValueMetrics>\n }\n } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateEnterpriseMetadata`,\n url: `api/organizations/${params.params.orgId}/enterprise`,\n normalizedUrl: `api/organizations/:orgId/enterprise`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /** Remove an org's LiteLLM (managed LLM) connection. */\n public static async deleteLiteLLM(\n params: { params: { orgId: string } } & RequestBaseParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.deleteLiteLLM`,\n url: `api/organizations/${params.params.orgId}/litellm`,\n normalizedUrl: `api/organizations/:orgId/litellm`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * The cluster creation defaults of an organization (#9732). An empty\n * `defaults` object means that a new cluster starts with the values of the\n * console backend.\n *\n * The route serves Control and the organization itself; the caller needs\n * `org.settings.read` on the organization, or the read-all permission of\n * accounts.\n */\n public static async getOrgClusterDefaults(\n params: OrgClusterDefaultsRequest,\n ): Promise<OrgClusterDefaultsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.getOrgClusterDefaults`,\n url: `api/organizations/${params.params.orgId}/cluster-defaults`,\n normalizedUrl: `api/organizations/:orgId/cluster-defaults`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<OrgClusterDefaultsResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? { defaults: {} }\n }\n\n /**\n * Replace the cluster creation defaults of an organization. A field that\n * the body does not hold is no longer a default.\n *\n * The route refuses a field that the caller may not write: an organization\n * writes the fields of the availability `customer` alone.\n */\n public static async updateOrgClusterDefaults(\n params: UpdateOrgClusterDefaultsRequest,\n ): Promise<OrgClusterDefaultsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.updateOrgClusterDefaults`,\n url: `api/organizations/${params.params.orgId}/cluster-defaults`,\n normalizedUrl: `api/organizations/:orgId/cluster-defaults`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<OrgClusterDefaultsResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? { defaults: params.body.defaults }\n }\n\n public static async setAwsOnly(params: AwsOnlyRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setAwsOnly`,\n url: `api/organizations/${params.params.orgId}/awsOnly`,\n normalizedUrl: `api/organizations/:orgId/awsOnly`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n awsOnly: params.params.awsOnly,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setEnterpriseDevOnly(params: EnterpriseDevOnlyRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setEnterpriseDevOnly`,\n url: `api/organizations/${params.params.orgId}/enterprise-dev`,\n normalizedUrl: `api/organizations/:orgId/enterprise-dev`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n enterpriseDevOnly: params.params.enterpriseDevOnly,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async setLicensingModel(params: LicensingModelRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setLicensingModel`,\n url: `api/organizations/${params.params.orgId}/licensing-model`,\n normalizedUrl: `api/organizations/:orgId/licensing-model`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n licensingModel: params.params.licensingModel,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async changeSalesPlan(params: ChangeSalesPlanRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.changeSalesPlan`,\n url: `api/organizations/${params.params.orgId}/salesplan/${params.params.salesPlanId}`,\n normalizedUrl: `api/organizations/:orgId/salesplan/:salesPlanId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<any>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params.options ?? {},\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async convertTrialToInNegotiation(\n params: ConvertTrialToInNegotiationRequest,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.convertTrialToInNegotiation`,\n url: `api/organizations/${params.params.orgId}/trial-to-in-negotiation/${params.params.salesPlanId}`,\n normalizedUrl: `api/organizations/:orgId/trial-to-in-negotiation/:salesPlanId`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<{ success: boolean }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async sendInvite(params: SendInviteRequest) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.sendInvite`,\n url: `api/organizations/${params.params.orgId}/invites`,\n normalizedUrl: `api/organizations/:orgId/invites`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n email: params.params.email,\n orgRoles: params.params.orgRoles,\n },\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body\n }\n\n public static async checkUserExistsForInvite(\n params: CheckUserExistsForInviteRequest,\n ): Promise<CheckUserExistsForInviteResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.checkUserExistsForInvite`,\n url: `verification/invitation/${params.params.inviteToken}/check-user-exists`,\n normalizedUrl: `verification/invitation/:inviteToken/check-user-exists`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<CheckUserExistsForInviteResponse>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async automatedEnterpriseOnboarding(\n params: AutomatedEnterpriseOnboardingRequest & RequestBaseParams,\n ): Promise<AutomatedEnterpriseOnboardingResult> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.automatedEnterpriseOnboarding`,\n url: `external/onboarding`,\n normalizedUrl: `external/onboarding`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<AutomatedEnterpriseOnboardingResult>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n orgName: params.orgName,\n awsOnly: params.awsOnly,\n renewalTermInMonths: params.renewalTermInMonths,\n licensingModel: params.licensingModel,\n valueMetrics: params.valueMetrics,\n startDate: params.startDate,\n sfdcId: params.sfdcId,\n reservations: params.reservations,\n ownerEmail: params.ownerEmail,\n },\n responseType: 'json',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async setBetaTermsAccepted(\n params: SetBetaTermsAcceptedRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.setBetaTermsAccepted',\n url: `api/organizations/${encodeURIComponent(params.params.orgId)}/betaTerms`,\n normalizedUrl: 'api/organizations/:orgId/betaTerms',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n accepted: params.params.accepted,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Delete an organization.\n *\n * The caller's own bearer token authenticates the request. Cloudbot can\n * also add `params.headers['x-camunda-email']` on top of its own M2M\n * bearer token, to act on behalf of the named human. Accounts-backend's\n * `emailBasedAuthMiddleware` rejects that header from every other caller \u2014\n * it does not replace the bearer token.\n */\n public static async deleteOrganization(\n params: DeleteOrganizationRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.deleteOrganization`,\n url: `api/organizations/${params.params.orgId}`,\n normalizedUrl: `api/organizations/:orgId`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n /**\n * Create an organization (admin `createOrg`). Mirrors `POST api/organizations/`\n * \u2014 `internal` seeds an internal plan, otherwise a trial plan. Returns the new\n * org so the caller can navigate to it.\n */\n public static async createOrganization(\n params: RequestBaseParams & { name: string; internal?: boolean },\n ): Promise<{ uuid: string; name: string }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.createOrganization`,\n url: `api/organizations`,\n normalizedUrl: `api/organizations`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n\n const response = await request<{ uuid: string; name: string }>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: { name: params.name, internal: params.internal ?? false },\n responseType: 'json',\n })\n\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async setAutoJoin(\n params: RequestBaseParams & {\n orgId: string\n autoJoin: AutoJoinAssignment\n },\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `OrgsService.setAutoJoin`,\n url: `api/organizations/${params.orgId}/auto-join`,\n normalizedUrl: `api/organizations/:orgId/auto-join`,\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<void>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n autoJoin: params.autoJoin,\n },\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n /**\n * Background operations outstanding or dead-lettered for an org \u2014 the\n * support-facing view of the durable operation queue.\n */\n public static async getQueuedOperations(\n params: GetQueuedOperationsParams,\n ): Promise<QueuedOperationDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.getQueuedOperations',\n url: `api/organizations/${params.params.orgId}/queued-operations`,\n normalizedUrl: 'api/organizations/:orgId/queued-operations',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<QueuedOperationDto[]>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body!\n }\n\n public static async getLLMUsageInfo(\n params: GetLLMUsageInfoParams,\n ): Promise<LLMUsageInfoResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.getLLMUsageInfo',\n url: `api/organizations/${params.params.orgId}/llm/info`,\n normalizedUrl: 'api/organizations/:orgId/llm/info',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<LLMUsageInfoResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async increaseLLMBudget(\n params: IncreaseLLMBudgetParams,\n ): Promise<IncreaseLLMBudgetResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.increaseLLMBudget',\n url: `api/organizations/${params.params.orgId}/litellm/increase-budget`,\n normalizedUrl: 'api/organizations/:orgId/litellm/increase-budget',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<IncreaseLLMBudgetResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n\n return response.body!\n }\n\n public static async blockLiteLLM(params: BlockLiteLLMParams): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.blockLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/block`,\n normalizedUrl: 'api/organizations/:orgId/litellm/block',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async unblockLiteLLM(\n params: UnblockLiteLLMParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.unblockLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/unblock`,\n normalizedUrl: 'api/organizations/:orgId/litellm/unblock',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async onboardLiteLLM(\n params: OnboardLiteLLMParams,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'OrgsService.onboardLiteLLM',\n url: `api/organizations/${params.params.orgId}/litellm/onboard`,\n normalizedUrl: 'api/organizations/:orgId/litellm/onboard',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<void>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -84,6 +84,24 @@ export interface RepointLlmSecretsForOrgResponse {
|
|
|
84
84
|
secretsUpdated: number;
|
|
85
85
|
failedClusterIds: string[];
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Request to remove the managed LLM connector secrets of every cluster of an
|
|
89
|
+
* org. Use it when the org loses its managed LLM key.
|
|
90
|
+
*/
|
|
91
|
+
export interface RemoveLlmSecretsForOrgRequest extends RequestBaseParams {
|
|
92
|
+
params: {
|
|
93
|
+
orgId: string;
|
|
94
|
+
headers: {
|
|
95
|
+
[key: string]: string;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** `secretsRemoved` counts clusters, as `secretsUpdated` does for re-point. */
|
|
100
|
+
export interface RemoveLlmSecretsForOrgResponse {
|
|
101
|
+
clustersChecked: number;
|
|
102
|
+
secretsRemoved: number;
|
|
103
|
+
failedClusterIds: string[];
|
|
104
|
+
}
|
|
87
105
|
export type SpecExplainerFieldSource = 'plan' | 'generation' | 'planType' | 'override' | 'modification' | 'infra' | 'computed' | 'featureFlag' | 'org' | 'cluster';
|
|
88
106
|
export interface SpecExplainerFieldAnnotation {
|
|
89
107
|
source: SpecExplainerFieldSource;
|
|
@@ -507,6 +525,13 @@ export declare class ConsoleAdminService {
|
|
|
507
525
|
* upstream, use `rotateLiteLLMKeySecretsForOrg`, which writes the key alone.
|
|
508
526
|
*/
|
|
509
527
|
static repointLlmSecretsForOrg(params: RepointLlmSecretsForOrgRequest): Promise<RepointLlmSecretsForOrgResponse>;
|
|
528
|
+
/**
|
|
529
|
+
* Remove the managed LLM connector secrets of every cluster of an org.
|
|
530
|
+
*
|
|
531
|
+
* Console removes the API key, the API endpoint and the default model
|
|
532
|
+
* secrets, and keeps every other connector secret of the cluster.
|
|
533
|
+
*/
|
|
534
|
+
static removeLlmSecretsForOrg(params: RemoveLlmSecretsForOrgRequest): Promise<RemoveLlmSecretsForOrgResponse>;
|
|
510
535
|
static getSpecExplainer(params: GetSpecExplainerRequest): Promise<SpecExplainerResponse>;
|
|
511
536
|
/**
|
|
512
537
|
* Raw Kubernetes CRD state for a cluster (Console Admin debugging). The
|