@dx-do/client 6.3.5 → 7.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.cjs.js +556 -12
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +556 -13
- package/dist/index.esm.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/datastore-schemas.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/views/index.d.ts +1 -0
- package/dist/src/lib/model/datastore/views/index.d.ts.map +1 -1
- package/dist/src/lib/model/datastore/views/service-universe.d.ts +294 -0
- package/dist/src/lib/model/datastore/views/service-universe.d.ts.map +1 -0
- package/dist/src/lib/services/asm.service.d.ts.map +1 -1
- package/dist/src/lib/services/authorization.service.d.ts +10 -0
- package/dist/src/lib/services/authorization.service.d.ts.map +1 -1
- package/dist/src/lib/services/datastore/datastore-service-universe.service.d.ts +129 -0
- package/dist/src/lib/services/datastore/datastore-service-universe.service.d.ts.map +1 -0
- package/dist/src/lib/services/dx-saas.service.d.ts.map +1 -1
- package/dist/src/lib/services/service-monolith.d.ts +2 -0
- package/dist/src/lib/services/service-monolith.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2014,7 +2014,7 @@ utils$3.reduceDescriptors(AxiosHeaders$1.prototype, ({ value }, key) => {
|
|
|
2014
2014
|
|
|
2015
2015
|
utils$3.freezeMethods(AxiosHeaders$1);
|
|
2016
2016
|
|
|
2017
|
-
const REDACTED = '[REDACTED ****]';
|
|
2017
|
+
const REDACTED$1 = '[REDACTED ****]';
|
|
2018
2018
|
|
|
2019
2019
|
function hasOwnOrPrototypeToJSON(source) {
|
|
2020
2020
|
if (utils$3.hasOwnProp(source, 'toJSON')) {
|
|
@@ -2069,7 +2069,7 @@ function redactConfig(config, redactKeys) {
|
|
|
2069
2069
|
|
|
2070
2070
|
result = Object.create(null);
|
|
2071
2071
|
for (const [key, value] of Object.entries(source)) {
|
|
2072
|
-
const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED : visit(value);
|
|
2072
|
+
const reducedValue = lowerKeys.has(key.toLowerCase()) ? REDACTED$1 : visit(value);
|
|
2073
2073
|
if (!utils$3.isUndefined(reducedValue)) {
|
|
2074
2074
|
result[key] = reducedValue;
|
|
2075
2075
|
}
|
|
@@ -14690,6 +14690,18 @@ var setToStringTag = esSetTostringtag;
|
|
|
14690
14690
|
var hasOwn$1 = hasown;
|
|
14691
14691
|
var populate = populate$1;
|
|
14692
14692
|
|
|
14693
|
+
/**
|
|
14694
|
+
* Escape CR, LF, and `"` in a multipart `name`/`filename` parameter, so a field
|
|
14695
|
+
* name or filename can not break out of its header line to inject headers or
|
|
14696
|
+
* smuggle additional parts. Matches the WHATWG HTML multipart/form-data encoding.
|
|
14697
|
+
*
|
|
14698
|
+
* @param {string} str - the parameter value to escape
|
|
14699
|
+
* @returns {string} the escaped value
|
|
14700
|
+
*/
|
|
14701
|
+
function escapeHeaderParam(str) {
|
|
14702
|
+
return String(str).replace(/\r/g, '%0D').replace(/\n/g, '%0A').replace(/"/g, '%22');
|
|
14703
|
+
}
|
|
14704
|
+
|
|
14693
14705
|
/**
|
|
14694
14706
|
* Create readable "multipart/form-data" streams.
|
|
14695
14707
|
* Can be used to submit forms
|
|
@@ -14855,7 +14867,7 @@ FormData$2.prototype._multiPartHeader = function (field, value, options) {
|
|
|
14855
14867
|
var contents = '';
|
|
14856
14868
|
var headers = {
|
|
14857
14869
|
// add custom disposition as third element or keep it two elements if not
|
|
14858
|
-
'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []),
|
|
14870
|
+
'Content-Disposition': ['form-data', 'name="' + escapeHeaderParam(field) + '"'].concat(contentDisposition || []),
|
|
14859
14871
|
// if no content type. allow it to be empty array
|
|
14860
14872
|
'Content-Type': [].concat(contentType || [])
|
|
14861
14873
|
};
|
|
@@ -14909,7 +14921,7 @@ FormData$2.prototype._getContentDisposition = function (value, options) { // esl
|
|
|
14909
14921
|
}
|
|
14910
14922
|
|
|
14911
14923
|
if (filename) {
|
|
14912
|
-
return 'filename="' + filename + '"';
|
|
14924
|
+
return 'filename="' + escapeHeaderParam(filename) + '"';
|
|
14913
14925
|
}
|
|
14914
14926
|
};
|
|
14915
14927
|
|
|
@@ -61933,6 +61945,99 @@ class StrictMap extends Map {
|
|
|
61933
61945
|
}
|
|
61934
61946
|
}
|
|
61935
61947
|
|
|
61948
|
+
/**
|
|
61949
|
+
* Redaction helpers for keeping auth tokens and other secrets out of logs.
|
|
61950
|
+
*
|
|
61951
|
+
* Auth tokens live in axios `error.config.headers` — e.g. `Authorization: Bearer
|
|
61952
|
+
* <userToken>` and `X-Asm-Auth: <dxASMToken>`. Anything that serializes a whole
|
|
61953
|
+
* error / config / headers object (`JSON.stringify`, an AxiosError's `.toJSON()`,
|
|
61954
|
+
* `console.log(err)`, or a logger that deep-prints its argument) will spill them.
|
|
61955
|
+
* These helpers strip the secrets before anything is logged or re-thrown.
|
|
61956
|
+
*/
|
|
61957
|
+
const REDACTED = '[REDACTED]';
|
|
61958
|
+
/** Lowercased object-key names whose values must never be logged. */
|
|
61959
|
+
const SENSITIVE_KEYS = new Set([
|
|
61960
|
+
'authorization',
|
|
61961
|
+
'x-asm-auth',
|
|
61962
|
+
'cookie',
|
|
61963
|
+
'set-cookie',
|
|
61964
|
+
'proxy-authorization',
|
|
61965
|
+
'usertoken',
|
|
61966
|
+
'dxasmtoken',
|
|
61967
|
+
'tenanttoken',
|
|
61968
|
+
'agenttoken',
|
|
61969
|
+
'accesstoken',
|
|
61970
|
+
'refreshtoken',
|
|
61971
|
+
'password',
|
|
61972
|
+
'apikey',
|
|
61973
|
+
'x-api-key',
|
|
61974
|
+
]);
|
|
61975
|
+
/** Matches `Bearer <token>` anywhere in a string. */
|
|
61976
|
+
const BEARER = /Bearer\s+\S+/gi;
|
|
61977
|
+
function redactString(value) {
|
|
61978
|
+
return value.replace(BEARER, `Bearer ${REDACTED}`);
|
|
61979
|
+
}
|
|
61980
|
+
/**
|
|
61981
|
+
* Returns a deep copy of `value` with sensitive object keys masked and any
|
|
61982
|
+
* `Bearer <token>` substrings scrubbed. Safe to pass anything: it is
|
|
61983
|
+
* circular-reference safe (axios errors are circular), and `Error` instances are
|
|
61984
|
+
* reduced to `{ name, message, stack }` (all scrubbed) so their token-bearing
|
|
61985
|
+
* `config`/`request`/`response` are dropped entirely.
|
|
61986
|
+
*/
|
|
61987
|
+
function redactValue(value, seen = new WeakSet()) {
|
|
61988
|
+
if (typeof value === 'string')
|
|
61989
|
+
return redactString(value);
|
|
61990
|
+
if (value === null || typeof value !== 'object')
|
|
61991
|
+
return value;
|
|
61992
|
+
if (seen.has(value))
|
|
61993
|
+
return '[Circular]';
|
|
61994
|
+
seen.add(value);
|
|
61995
|
+
if (Array.isArray(value)) {
|
|
61996
|
+
return value.map((entry) => redactValue(entry, seen));
|
|
61997
|
+
}
|
|
61998
|
+
if (value instanceof Error) {
|
|
61999
|
+
return {
|
|
62000
|
+
name: value.name,
|
|
62001
|
+
message: redactString(value.message),
|
|
62002
|
+
stack: value.stack ? redactString(value.stack) : undefined,
|
|
62003
|
+
};
|
|
62004
|
+
}
|
|
62005
|
+
const out = {};
|
|
62006
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
62007
|
+
out[key] = SENSITIVE_KEYS.has(key.toLowerCase())
|
|
62008
|
+
? REDACTED
|
|
62009
|
+
: redactValue(entry, seen);
|
|
62010
|
+
}
|
|
62011
|
+
return out;
|
|
62012
|
+
}
|
|
62013
|
+
/**
|
|
62014
|
+
* Strips auth tokens from an (possibly Axios) error IN PLACE and returns it, so it
|
|
62015
|
+
* stays a throwable `Error` with its stack intact but no longer carries the token
|
|
62016
|
+
* in `config.headers`, `response.config.headers`, or the raw request header string.
|
|
62017
|
+
* Non-error / non-axios values are returned unchanged.
|
|
62018
|
+
*
|
|
62019
|
+
* Use this at the axios boundary (a response error interceptor) so every catch,
|
|
62020
|
+
* re-throw, and top-level handler downstream sees a token-free error.
|
|
62021
|
+
*/
|
|
62022
|
+
function sanitizeAxiosError(err) {
|
|
62023
|
+
if (!err || typeof err !== 'object')
|
|
62024
|
+
return err;
|
|
62025
|
+
const e = err;
|
|
62026
|
+
// Only touch things that look like axios errors.
|
|
62027
|
+
if (!e.isAxiosError && !e.config && !e.response)
|
|
62028
|
+
return err;
|
|
62029
|
+
if (e.config?.headers)
|
|
62030
|
+
e.config.headers = redactValue(e.config.headers);
|
|
62031
|
+
if (e.response?.config?.headers) {
|
|
62032
|
+
e.response.config.headers = redactValue(e.response.config.headers);
|
|
62033
|
+
}
|
|
62034
|
+
// Node's ClientRequest keeps the raw request (incl. the Authorization line) in `_header`.
|
|
62035
|
+
if (e.request && typeof e.request._header === 'string') {
|
|
62036
|
+
e.request._header = redactString(e.request._header);
|
|
62037
|
+
}
|
|
62038
|
+
return err;
|
|
62039
|
+
}
|
|
62040
|
+
|
|
61936
62041
|
/**
|
|
61937
62042
|
* Service for APM agents: query by name/regex, list names/statuses, traces,
|
|
61938
62043
|
* thread dumps, and license/device reporting.
|
|
@@ -64575,12 +64680,15 @@ class AsmService {
|
|
|
64575
64680
|
baseURL =
|
|
64576
64681
|
this.dxSaaSService.dxdoConfiguration.dxConfiguration.dxASMbaseAPIURL;
|
|
64577
64682
|
}
|
|
64578
|
-
|
|
64683
|
+
const client = createClient({
|
|
64579
64684
|
baseURL,
|
|
64580
64685
|
headers: {
|
|
64581
64686
|
'X-Asm-Auth': this.dxSaaSService.dxdoConfiguration.dxConfiguration.dxASMToken,
|
|
64582
64687
|
},
|
|
64583
64688
|
});
|
|
64689
|
+
// Strip the X-Asm-Auth token from any error before it can be logged/propagated.
|
|
64690
|
+
client.instance.interceptors.response.use((response) => response, (error) => Promise.reject(sanitizeAxiosError(error)));
|
|
64691
|
+
this.localClient = client;
|
|
64584
64692
|
}
|
|
64585
64693
|
return this.localClient;
|
|
64586
64694
|
}
|
|
@@ -64593,7 +64701,7 @@ class AsmService {
|
|
|
64593
64701
|
return foldersList.data;
|
|
64594
64702
|
})
|
|
64595
64703
|
.catch((error) => {
|
|
64596
|
-
this.log.error(error);
|
|
64704
|
+
this.log.error('ASM foldersList failed', error instanceof Error ? error.message : String(error));
|
|
64597
64705
|
throw error;
|
|
64598
64706
|
});
|
|
64599
64707
|
}
|
|
@@ -64701,6 +64809,23 @@ class AuthorizationService {
|
|
|
64701
64809
|
}
|
|
64702
64810
|
return raw;
|
|
64703
64811
|
}
|
|
64812
|
+
/**
|
|
64813
|
+
* Returns true if a user with the given identifier exists on the tenant.
|
|
64814
|
+
* Matches case-insensitively against each account's `userId` (the login
|
|
64815
|
+
* principal — usually the upper-cased email) and any of its `emailIds`.
|
|
64816
|
+
*
|
|
64817
|
+
* @remarks Fetches the user list via {@link getUsersV2} (a single page, up
|
|
64818
|
+
* to 5000 accounts). A tenant with more users than that could yield a false
|
|
64819
|
+
* negative for an account beyond the page.
|
|
64820
|
+
*/
|
|
64821
|
+
async userExists(userIdentifier) {
|
|
64822
|
+
const needle = userIdentifier.trim().toUpperCase();
|
|
64823
|
+
if (needle.length === 0)
|
|
64824
|
+
return false;
|
|
64825
|
+
const response = await this.getUsersV2(1, 5000);
|
|
64826
|
+
return response.users.some((user) => (user.userId ?? '').toUpperCase() === needle ||
|
|
64827
|
+
(user.emailIds ?? []).some((email) => (email.emailAddr ?? '').toUpperCase() === needle));
|
|
64828
|
+
}
|
|
64704
64829
|
/** Reformats a cohort id to upper-cased, dashed GUID form (`8-4-4-4-12`). */
|
|
64705
64830
|
toGuidCohortId(cohortId) {
|
|
64706
64831
|
const hex = cohortId.replace(/-/g, '').toLowerCase();
|
|
@@ -70229,6 +70354,9 @@ class DxSaasService {
|
|
|
70229
70354
|
.replace(/-/g, '')
|
|
70230
70355
|
.toLowerCase();
|
|
70231
70356
|
this.initializeProxyIfNecessary();
|
|
70357
|
+
// Strip auth tokens from any error this client surfaces, so nothing downstream
|
|
70358
|
+
// (handleAxiosError, re-throws, top-level catches) can log the Authorization header.
|
|
70359
|
+
this._httpClient.interceptors.response.use((response) => response, (error) => Promise.reject(sanitizeAxiosError(error)));
|
|
70232
70360
|
if (process$1.env.DXDO_LOG_REQUESTS) {
|
|
70233
70361
|
log.info('Logging requests');
|
|
70234
70362
|
const requestLogFile = process$1.env.DXDO_REQUEST_LOG_FILE ??
|
|
@@ -71188,20 +71316,21 @@ class DxSaasService {
|
|
|
71188
71316
|
}
|
|
71189
71317
|
static handleAxiosError(reason, isStream = false) {
|
|
71190
71318
|
if (reason.isAxiosError && reason.response) {
|
|
71191
|
-
|
|
71192
|
-
|
|
71193
|
-
DxSaasService.staticLog.
|
|
71194
|
-
DxSaasService.staticLog.error('[Axios Error
|
|
71319
|
+
// NB: request headers are already token-scrubbed by the response interceptor;
|
|
71320
|
+
// redactValue is belt-and-suspenders in case this is ever called off-path.
|
|
71321
|
+
DxSaasService.staticLog.debug('[Axios Error DEBUG]', redactValue(reason.toJSON()));
|
|
71322
|
+
DxSaasService.staticLog.error('[Axios Error BASIC]', `${reason.request.method} ${reason.config?.url} ${JSON.stringify(redactValue(reason.config?.params ?? {}))}`);
|
|
71323
|
+
DxSaasService.staticLog.error('[Axios Error BODY]', redactValue(reason.config?.data ?? {}));
|
|
71195
71324
|
if (isStream) {
|
|
71196
71325
|
DxSaasService.staticLog.error(`[Axios Error STATUS] ${reason.response.status} / ${reason.message} `);
|
|
71197
71326
|
}
|
|
71198
71327
|
else {
|
|
71199
|
-
DxSaasService.staticLog.error(`[Axios Error STATUS] ${reason.response.status} / ${reason.message} / ${JSON.stringify(reason.response.data)}`);
|
|
71328
|
+
DxSaasService.staticLog.error(`[Axios Error STATUS] ${reason.response.status} / ${reason.message} / ${JSON.stringify(redactValue(reason.response.data))}`);
|
|
71200
71329
|
}
|
|
71201
71330
|
return new SimpleHTTPError(reason.response.status, reason.message);
|
|
71202
71331
|
}
|
|
71203
71332
|
else
|
|
71204
|
-
return reason; //
|
|
71333
|
+
return sanitizeAxiosError(reason); // scrub before propagating
|
|
71205
71334
|
}
|
|
71206
71335
|
static async legacyAuth(v3Configuration) {
|
|
71207
71336
|
return this.legacyAxaRequest(v3Configuration, 'GET', 'ess/security/v1/me', false, false);
|
|
@@ -78706,6 +78835,419 @@ class DataStoreNASSService {
|
|
|
78706
78835
|
}
|
|
78707
78836
|
}
|
|
78708
78837
|
|
|
78838
|
+
/**
|
|
78839
|
+
* Service Universe models — an **OI-owned universe (view) scoped to a curated
|
|
78840
|
+
* list of services**, managed through the tenant `views/*` API. The wire shape
|
|
78841
|
+
* here matches the real server payload (verified against a live tenant): `views`
|
|
78842
|
+
* is an **array** of typed sub-views and access grants carry a `permissions`
|
|
78843
|
+
* array. (This is deliberately distinct from the object-shaped `ViewBodySchema`
|
|
78844
|
+
* in `./query`, which models a different, unused surface.)
|
|
78845
|
+
*/
|
|
78846
|
+
/** Access permission granted on a service universe. */
|
|
78847
|
+
const ServiceUniversePermissionSchema = z
|
|
78848
|
+
.enum(['READ', 'WRITE'])
|
|
78849
|
+
.describe('Permission granted on the universe');
|
|
78850
|
+
/** A single user or group access grant on a service universe. */
|
|
78851
|
+
const ServiceUniverseAccessEntrySchema = z.looseObject({
|
|
78852
|
+
name: z.string().describe('User email or group name being granted access'),
|
|
78853
|
+
permissions: z
|
|
78854
|
+
.array(ServiceUniversePermissionSchema)
|
|
78855
|
+
.optional()
|
|
78856
|
+
.describe('Permissions granted to this principal (READ and/or WRITE)'),
|
|
78857
|
+
canManage: z
|
|
78858
|
+
.boolean()
|
|
78859
|
+
.optional()
|
|
78860
|
+
.describe('Whether the principal may manage (re-share) the universe'),
|
|
78861
|
+
attributeInclude: z
|
|
78862
|
+
.array(z.unknown())
|
|
78863
|
+
.optional()
|
|
78864
|
+
.describe('Attribute-based include scoping for this grant'),
|
|
78865
|
+
attributeExclude: z
|
|
78866
|
+
.array(z.unknown())
|
|
78867
|
+
.optional()
|
|
78868
|
+
.describe('Attribute-based exclude scoping for this grant'),
|
|
78869
|
+
isValid: z
|
|
78870
|
+
.array(z.string())
|
|
78871
|
+
.optional()
|
|
78872
|
+
.describe('Server-side validation hints for the principal (UI-supplied)'),
|
|
78873
|
+
});
|
|
78874
|
+
/** Access policy for a service universe (per-user and per-group grants). */
|
|
78875
|
+
const ServiceUniverseAccessSchema = z.looseObject({
|
|
78876
|
+
users: z
|
|
78877
|
+
.array(ServiceUniverseAccessEntrySchema)
|
|
78878
|
+
.optional()
|
|
78879
|
+
.describe('Per-user access grants'),
|
|
78880
|
+
groups: z
|
|
78881
|
+
.array(ServiceUniverseAccessEntrySchema)
|
|
78882
|
+
.optional()
|
|
78883
|
+
.describe('Per-group access grants'),
|
|
78884
|
+
});
|
|
78885
|
+
/** The TAS scoping of a service universe — its inner filter selects the services. */
|
|
78886
|
+
const ServiceUniverseTasSpecSchema = z.looseObject({
|
|
78887
|
+
filter: TasFilterSchema.optional().describe('TAS filter selecting the topology; for a service universe this is a SERVICE-op filter over the chosen service names'),
|
|
78888
|
+
includeMetricFilter: z
|
|
78889
|
+
.boolean()
|
|
78890
|
+
.optional()
|
|
78891
|
+
.describe('Whether a metric filter is applied; defaults to false'),
|
|
78892
|
+
projection: z
|
|
78893
|
+
.string()
|
|
78894
|
+
.optional()
|
|
78895
|
+
.describe("Projection mode, e.g. 'NO_TYPE'"),
|
|
78896
|
+
projectionFilter: z
|
|
78897
|
+
.looseObject({
|
|
78898
|
+
attributes: z
|
|
78899
|
+
.array(z.string())
|
|
78900
|
+
.optional()
|
|
78901
|
+
.describe('Attributes to project, e.g. ["name"]'),
|
|
78902
|
+
})
|
|
78903
|
+
.optional()
|
|
78904
|
+
.describe('Which vertex attributes to project'),
|
|
78905
|
+
});
|
|
78906
|
+
/** A TAS sub-view of a service universe. */
|
|
78907
|
+
const ServiceUniverseTasViewSchema = z.looseObject({
|
|
78908
|
+
type: z.literal('tas').describe('Discriminator: topology (TAS) sub-view'),
|
|
78909
|
+
filter: ServiceUniverseTasSpecSchema.describe('TAS scoping for this sub-view'),
|
|
78910
|
+
permissions: z
|
|
78911
|
+
.array(ServiceUniversePermissionSchema)
|
|
78912
|
+
.optional()
|
|
78913
|
+
.describe('Permissions on this sub-view'),
|
|
78914
|
+
});
|
|
78915
|
+
/** A NASS (metrics) sub-view of a service universe. */
|
|
78916
|
+
const ServiceUniverseNassViewSchema = z.looseObject({
|
|
78917
|
+
type: z.literal('nass').describe('Discriminator: metrics (NASS) sub-view'),
|
|
78918
|
+
filter: z
|
|
78919
|
+
.looseObject({
|
|
78920
|
+
filter: z
|
|
78921
|
+
.looseObject({ op: z.string().describe('Filter op, e.g. "ALL"') })
|
|
78922
|
+
.optional()
|
|
78923
|
+
.describe('NASS filter tree'),
|
|
78924
|
+
serviceFilter: z
|
|
78925
|
+
.unknown()
|
|
78926
|
+
.optional()
|
|
78927
|
+
.describe('Optional service-scoped NASS filter'),
|
|
78928
|
+
})
|
|
78929
|
+
.optional()
|
|
78930
|
+
.describe('NASS scoping for this sub-view'),
|
|
78931
|
+
permissions: z
|
|
78932
|
+
.array(ServiceUniversePermissionSchema)
|
|
78933
|
+
.optional()
|
|
78934
|
+
.describe('Permissions on this sub-view'),
|
|
78935
|
+
});
|
|
78936
|
+
/** A service universe sub-view: TAS (service-scoped topology) or NASS (metrics). */
|
|
78937
|
+
const ServiceUniverseViewSchema = z
|
|
78938
|
+
.discriminatedUnion('type', [
|
|
78939
|
+
ServiceUniverseTasViewSchema,
|
|
78940
|
+
ServiceUniverseNassViewSchema,
|
|
78941
|
+
])
|
|
78942
|
+
.describe('A TAS or NASS sub-view of the universe');
|
|
78943
|
+
/** Metadata for a service universe. */
|
|
78944
|
+
const ServiceUniverseAttributesSchema = z.looseObject({
|
|
78945
|
+
owner: z
|
|
78946
|
+
.string()
|
|
78947
|
+
.optional()
|
|
78948
|
+
.describe("Owning product; service universes are 'OI'"),
|
|
78949
|
+
label: z.string().describe('Human-readable universe name'),
|
|
78950
|
+
description: z.string().optional().describe('Universe description'),
|
|
78951
|
+
});
|
|
78952
|
+
/**
|
|
78953
|
+
* The create/update request body for a service universe
|
|
78954
|
+
* (`POST/PUT views/view`).
|
|
78955
|
+
*/
|
|
78956
|
+
const ServiceUniverseBodySchema = z.looseObject({
|
|
78957
|
+
inactive: z
|
|
78958
|
+
.boolean()
|
|
78959
|
+
.optional()
|
|
78960
|
+
.describe('Whether the universe is inactive (hidden from active use)'),
|
|
78961
|
+
attributes: ServiceUniverseAttributesSchema.describe('Universe metadata (owner, label, description)'),
|
|
78962
|
+
access: ServiceUniverseAccessSchema.optional().describe('Access policy (users/groups)'),
|
|
78963
|
+
views: z
|
|
78964
|
+
.array(ServiceUniverseViewSchema)
|
|
78965
|
+
.describe('The TAS + NASS sub-views defining the universe scope'),
|
|
78966
|
+
});
|
|
78967
|
+
/**
|
|
78968
|
+
* A summary row from `GET oi/v2/universe/getAllUniverseList`.
|
|
78969
|
+
*/
|
|
78970
|
+
const ServiceUniverseListItemSchema = z.looseObject({
|
|
78971
|
+
id: z.string().describe('Universe (view) id, e.g. "VIEW1821"'),
|
|
78972
|
+
name: z.string().optional().describe('Universe label'),
|
|
78973
|
+
description: z.string().optional().describe('Universe description'),
|
|
78974
|
+
owner: z
|
|
78975
|
+
.string()
|
|
78976
|
+
.optional()
|
|
78977
|
+
.describe("Owning product; service universes are 'OI'"),
|
|
78978
|
+
inactive: z.boolean().optional().describe('Whether the universe is inactive'),
|
|
78979
|
+
});
|
|
78980
|
+
const ServiceUniverseListResponseSchema = z
|
|
78981
|
+
.array(ServiceUniverseListItemSchema)
|
|
78982
|
+
.describe('All universes returned by getAllUniverseList');
|
|
78983
|
+
/**
|
|
78984
|
+
* A full service universe as returned by `POST views/queryView` (op:ID).
|
|
78985
|
+
* Loosely modeled — the detail response echoes the body plus server-resolved
|
|
78986
|
+
* fields (viewId, resolved access).
|
|
78987
|
+
*/
|
|
78988
|
+
const ServiceUniverseSchema = z.looseObject({
|
|
78989
|
+
viewId: z.string().optional().describe('Server-assigned view id'),
|
|
78990
|
+
inactive: z.boolean().optional().describe('Whether the universe is inactive'),
|
|
78991
|
+
attributes: ServiceUniverseAttributesSchema.optional().describe('Universe metadata'),
|
|
78992
|
+
access: ServiceUniverseAccessSchema.optional().describe('Access policy'),
|
|
78993
|
+
views: z
|
|
78994
|
+
.array(z.unknown())
|
|
78995
|
+
.optional()
|
|
78996
|
+
.describe('The universe sub-views (TAS/NASS)'),
|
|
78997
|
+
});
|
|
78998
|
+
/** Response wrapper for `POST views/queryView`. */
|
|
78999
|
+
const ServiceUniverseQueryResponseSchema = z.looseObject({
|
|
79000
|
+
views: z
|
|
79001
|
+
.array(ServiceUniverseSchema)
|
|
79002
|
+
.optional()
|
|
79003
|
+
.describe('Universes matching the query filter'),
|
|
79004
|
+
});
|
|
79005
|
+
|
|
79006
|
+
/**
|
|
79007
|
+
* Service for **Service Universes** — OI-owned universes (views) scoped to a
|
|
79008
|
+
* curated list of services, managed via the tenant `views/*` API plus the OI
|
|
79009
|
+
* universe-list endpoint. The "View sample" preview runs the SERVICE-op filter
|
|
79010
|
+
* as a TAS graph query.
|
|
79011
|
+
*
|
|
79012
|
+
* @example
|
|
79013
|
+
* ```ts
|
|
79014
|
+
* const svc = new ServiceUniverseService(dxSaasService, log);
|
|
79015
|
+
* const body = ServiceUniverseService.buildBody({ label: 'IoT', serviceNames: ['IoT RDS'] });
|
|
79016
|
+
* await svc.createServiceUniverse(body);
|
|
79017
|
+
* ```
|
|
79018
|
+
*/
|
|
79019
|
+
class ServiceUniverseService {
|
|
79020
|
+
dxSaasService;
|
|
79021
|
+
log;
|
|
79022
|
+
constructor(dxSaasService, log) {
|
|
79023
|
+
this.dxSaasService = dxSaasService;
|
|
79024
|
+
this.log = log;
|
|
79025
|
+
}
|
|
79026
|
+
/**
|
|
79027
|
+
* Lists service universes (OI-owned) via
|
|
79028
|
+
* `GET oi/v2/universe/getAllUniverseList` (VIEWALL).
|
|
79029
|
+
*
|
|
79030
|
+
* @remarks Response-validated (mismatch → `log.warn`, raw still returned).
|
|
79031
|
+
*/
|
|
79032
|
+
async listServiceUniverses() {
|
|
79033
|
+
const raw = await this.dxSaasService.oiGet('oi/v2/universe/getAllUniverseList');
|
|
79034
|
+
const result = ServiceUniverseListResponseSchema.safeParse(raw);
|
|
79035
|
+
if (!result.success) {
|
|
79036
|
+
this.log.warn('ServiceUniverseListResponse validation warning:', result.error.message);
|
|
79037
|
+
}
|
|
79038
|
+
const all = raw ?? [];
|
|
79039
|
+
return all.filter((u) => (u.owner ?? '').toUpperCase() === 'OI');
|
|
79040
|
+
}
|
|
79041
|
+
/**
|
|
79042
|
+
* Returns a single service universe by its view id via
|
|
79043
|
+
* `POST views/queryView` (op:ID). Throws if not exactly one match.
|
|
79044
|
+
*/
|
|
79045
|
+
async getServiceUniverse(viewId) {
|
|
79046
|
+
const raw = await this.dxSaasService.tenantPost('views/queryView', {
|
|
79047
|
+
filter: { op: 'ID', ids: [viewId], input: { op: 'ALL' } },
|
|
79048
|
+
includeInactive: true,
|
|
79049
|
+
});
|
|
79050
|
+
const result = ServiceUniverseQueryResponseSchema.safeParse(raw);
|
|
79051
|
+
if (!result.success) {
|
|
79052
|
+
this.log.warn('ServiceUniverseQueryResponse validation warning:', result.error.message);
|
|
79053
|
+
}
|
|
79054
|
+
const views = raw.views ?? [];
|
|
79055
|
+
if (views.length !== 1) {
|
|
79056
|
+
throw new Error(`Expected exactly one universe with viewId '${viewId}', found ${views.length}.`);
|
|
79057
|
+
}
|
|
79058
|
+
return views[0];
|
|
79059
|
+
}
|
|
79060
|
+
/**
|
|
79061
|
+
* Creates a service universe via `POST views/view`.
|
|
79062
|
+
*
|
|
79063
|
+
* @throws ZodError if the body fails schema validation.
|
|
79064
|
+
*/
|
|
79065
|
+
async createServiceUniverse(body) {
|
|
79066
|
+
ServiceUniverseBodySchema.parse(body);
|
|
79067
|
+
return this.dxSaasService.tenantPost('views/view', body);
|
|
79068
|
+
}
|
|
79069
|
+
/**
|
|
79070
|
+
* Updates a service universe via `PUT views/view/{viewId}`.
|
|
79071
|
+
*
|
|
79072
|
+
* @throws ZodError if the body fails schema validation.
|
|
79073
|
+
*/
|
|
79074
|
+
async updateServiceUniverse(viewId, body) {
|
|
79075
|
+
ServiceUniverseBodySchema.parse(body);
|
|
79076
|
+
return this.dxSaasService.tenantPut(`views/view/${encodeURIComponent(viewId)}`, body);
|
|
79077
|
+
}
|
|
79078
|
+
/**
|
|
79079
|
+
* PUTs a full universe body to `views/view/{viewId}` **without** re-validating
|
|
79080
|
+
* it against the client schema. Used by the access commands, which round-trip
|
|
79081
|
+
* the universe's existing views verbatim (a UI-created universe may carry view
|
|
79082
|
+
* shapes our builder wouldn't reconstruct); only the `access` policy changes.
|
|
79083
|
+
*/
|
|
79084
|
+
async putServiceUniverse(viewId, body) {
|
|
79085
|
+
return this.dxSaasService.tenantPut(`views/view/${encodeURIComponent(viewId)}`, body);
|
|
79086
|
+
}
|
|
79087
|
+
/** Deletes a service universe via `DELETE views/view/{viewId}`. */
|
|
79088
|
+
async deleteServiceUniverse(viewId) {
|
|
79089
|
+
return this.dxSaasService.tenantDelete(`views/view/${encodeURIComponent(viewId)}`);
|
|
79090
|
+
}
|
|
79091
|
+
/**
|
|
79092
|
+
* Checks which of the given service names actually exist on the tenant, via
|
|
79093
|
+
* `GET oi/v2/sa/services/{name}` per name. A 404 means the service does not
|
|
79094
|
+
* exist; any other error is re-thrown (so a transient failure is never
|
|
79095
|
+
* silently reported as "missing").
|
|
79096
|
+
*
|
|
79097
|
+
* @throws Error if any name could not be verified for a non-404 reason.
|
|
79098
|
+
*/
|
|
79099
|
+
async resolveServiceNames(serviceNames) {
|
|
79100
|
+
const existing = [];
|
|
79101
|
+
const missing = [];
|
|
79102
|
+
const errored = [];
|
|
79103
|
+
await dist$1.PromisePool.for(serviceNames)
|
|
79104
|
+
.withConcurrency(5)
|
|
79105
|
+
.process(async (name) => {
|
|
79106
|
+
try {
|
|
79107
|
+
await this.dxSaasService.oiGet(`oi/v2/sa/services/${encodeURIComponent(name)}`, { subservices: false });
|
|
79108
|
+
existing.push(name);
|
|
79109
|
+
}
|
|
79110
|
+
catch (err) {
|
|
79111
|
+
if (err.httpCode === 404) {
|
|
79112
|
+
missing.push(name);
|
|
79113
|
+
}
|
|
79114
|
+
else {
|
|
79115
|
+
errored.push({ name, error: err });
|
|
79116
|
+
}
|
|
79117
|
+
}
|
|
79118
|
+
});
|
|
79119
|
+
if (errored.length > 0) {
|
|
79120
|
+
const first = errored[0].error;
|
|
79121
|
+
const reason = first instanceof Error ? first.message : String(first);
|
|
79122
|
+
throw new Error(`Could not verify ${errored.length} service name(s) (${errored
|
|
79123
|
+
.map((e) => e.name)
|
|
79124
|
+
.join(', ')}): ${reason}`);
|
|
79125
|
+
}
|
|
79126
|
+
return { existing, missing };
|
|
79127
|
+
}
|
|
79128
|
+
/**
|
|
79129
|
+
* "View sample": runs the SERVICE-scoped filter as a TAS graph query
|
|
79130
|
+
* (`POST tas/graph/query`) and returns the matching entities — the dry-run
|
|
79131
|
+
* preview of what a universe over `serviceNames` would contain.
|
|
79132
|
+
*
|
|
79133
|
+
* @remarks Response-validated (mismatch → `log.warn`, raw still returned).
|
|
79134
|
+
*/
|
|
79135
|
+
async sampleServices(serviceNames, options = {}) {
|
|
79136
|
+
const query = {
|
|
79137
|
+
filter: {
|
|
79138
|
+
op: 'OR',
|
|
79139
|
+
input: [
|
|
79140
|
+
{
|
|
79141
|
+
op: 'SERVICE',
|
|
79142
|
+
values: serviceNames,
|
|
79143
|
+
includeServiceHierarchy: options.includeServiceHierarchy ?? true,
|
|
79144
|
+
excludeSubServices: options.excludeSubServices ?? false,
|
|
79145
|
+
},
|
|
79146
|
+
],
|
|
79147
|
+
},
|
|
79148
|
+
authorizationView: 'VIEWALL',
|
|
79149
|
+
schema: 'SA',
|
|
79150
|
+
limit: options.limit ?? 200,
|
|
79151
|
+
};
|
|
79152
|
+
TasQuerySchema.parse(query);
|
|
79153
|
+
const raw = await this.dxSaasService.tenantPost('tas/graph/query', query);
|
|
79154
|
+
const result = TasGraphSchema.safeParse(raw);
|
|
79155
|
+
if (!result.success) {
|
|
79156
|
+
this.log.warn('ServiceUniverse sample (TasGraph) validation warning:', result.error.message);
|
|
79157
|
+
}
|
|
79158
|
+
return raw;
|
|
79159
|
+
}
|
|
79160
|
+
/**
|
|
79161
|
+
* Builds a service universe request body: a SERVICE-scoped TAS sub-view over
|
|
79162
|
+
* `serviceNames` (or an ALL view when empty) plus an ALL NASS sub-view. Mirrors
|
|
79163
|
+
* the shape the DXO2 Service Universe UI submits.
|
|
79164
|
+
*/
|
|
79165
|
+
/** A user/group access grant: READ+WRITE, no attribute scoping (per current UX). */
|
|
79166
|
+
static accessEntry(name, canManage) {
|
|
79167
|
+
return {
|
|
79168
|
+
name,
|
|
79169
|
+
permissions: ['READ', 'WRITE'],
|
|
79170
|
+
canManage,
|
|
79171
|
+
attributeInclude: [],
|
|
79172
|
+
attributeExclude: [],
|
|
79173
|
+
};
|
|
79174
|
+
}
|
|
79175
|
+
/**
|
|
79176
|
+
* Returns a copy of `existing` with a user/group access grant added (or
|
|
79177
|
+
* updated in place if the principal already has a grant). Preserves the
|
|
79178
|
+
* universe's server-managed fields and views verbatim — only `access`
|
|
79179
|
+
* changes. Pass exactly one of `user` / `group`.
|
|
79180
|
+
*/
|
|
79181
|
+
static withAccessEntry(existing, target) {
|
|
79182
|
+
const isGroup = !!target.group;
|
|
79183
|
+
const name = (target.user ?? target.group);
|
|
79184
|
+
const users = [...(existing.access?.users ?? [])];
|
|
79185
|
+
const groups = [...(existing.access?.groups ?? [])];
|
|
79186
|
+
const list = isGroup ? groups : users;
|
|
79187
|
+
const next = list.filter((e) => e.name !== name);
|
|
79188
|
+
next.push(this.accessEntry(name, target.canManage));
|
|
79189
|
+
const access = isGroup
|
|
79190
|
+
? { users, groups: next }
|
|
79191
|
+
: { users: next, groups };
|
|
79192
|
+
return {
|
|
79193
|
+
...existing,
|
|
79194
|
+
access,
|
|
79195
|
+
};
|
|
79196
|
+
}
|
|
79197
|
+
/**
|
|
79198
|
+
* Returns a copy of `existing` with a user/group access grant removed.
|
|
79199
|
+
* Preserves everything else verbatim. Pass exactly one of `user` / `group`.
|
|
79200
|
+
*/
|
|
79201
|
+
static withoutAccessEntry(existing, target) {
|
|
79202
|
+
const isGroup = !!target.group;
|
|
79203
|
+
const name = (target.user ?? target.group);
|
|
79204
|
+
const users = (existing.access?.users ?? []).filter((e) => isGroup || e.name !== name);
|
|
79205
|
+
const groups = (existing.access?.groups ?? []).filter((e) => !isGroup || e.name !== name);
|
|
79206
|
+
return {
|
|
79207
|
+
...existing,
|
|
79208
|
+
access: { users, groups },
|
|
79209
|
+
};
|
|
79210
|
+
}
|
|
79211
|
+
static buildBody(input) {
|
|
79212
|
+
const { label, description, serviceNames, inactive, includeServiceHierarchy, excludeSubServices, access, } = input;
|
|
79213
|
+
const tasFilter = serviceNames.length === 0
|
|
79214
|
+
? { op: 'ALL' }
|
|
79215
|
+
: {
|
|
79216
|
+
op: 'SERVICE',
|
|
79217
|
+
values: serviceNames,
|
|
79218
|
+
includeServiceHierarchy: includeServiceHierarchy ?? true,
|
|
79219
|
+
excludeSubServices: excludeSubServices ?? false,
|
|
79220
|
+
};
|
|
79221
|
+
return {
|
|
79222
|
+
inactive: inactive ?? false,
|
|
79223
|
+
attributes: { owner: 'OI', label, description: description ?? '' },
|
|
79224
|
+
access: access ?? { groups: [], users: [] },
|
|
79225
|
+
views: [
|
|
79226
|
+
{
|
|
79227
|
+
type: 'tas',
|
|
79228
|
+
filter: {
|
|
79229
|
+
filter: tasFilter,
|
|
79230
|
+
includeMetricFilter: false,
|
|
79231
|
+
projection: 'NO_TYPE',
|
|
79232
|
+
projectionFilter: { attributes: ['name'] },
|
|
79233
|
+
},
|
|
79234
|
+
permissions: ['READ', 'WRITE'],
|
|
79235
|
+
},
|
|
79236
|
+
{
|
|
79237
|
+
type: 'nass',
|
|
79238
|
+
filter: {
|
|
79239
|
+
filter: { op: 'ALL' },
|
|
79240
|
+
serviceFilter: serviceNames.length === 0
|
|
79241
|
+
? undefined
|
|
79242
|
+
: { op: 'SERVICE', values: serviceNames },
|
|
79243
|
+
},
|
|
79244
|
+
permissions: ['READ', 'WRITE'],
|
|
79245
|
+
},
|
|
79246
|
+
],
|
|
79247
|
+
};
|
|
79248
|
+
}
|
|
79249
|
+
}
|
|
79250
|
+
|
|
78709
79251
|
var NullSimpleLog = Logging.NullSimpleLog;
|
|
78710
79252
|
/**
|
|
78711
79253
|
* Creates and returns a container of all DX client services (ACC, alerts, alarms,
|
|
@@ -78740,6 +79282,7 @@ function createServiceMonolith(dxDoConfiguration, log = new NullSimpleLog()) {
|
|
|
78740
79282
|
dxDataStoreNASSService: new DataStoreNASSService(dxSaaSService, log),
|
|
78741
79283
|
dxDataStoreNASSQLService: new DataStoreNASSQLService(dxSaaSService, log),
|
|
78742
79284
|
dxDataStoreTASService: new DataStoreTASService(dxSaaSService, log),
|
|
79285
|
+
dxServiceUniverseService: new ServiceUniverseService(dxSaaSService, log),
|
|
78743
79286
|
dxEventService: new EventService(dxSaaSService, log),
|
|
78744
79287
|
dxExperienceService: new ExperienceService(dxSaaSService, log),
|
|
78745
79288
|
dxFeaturesService: new DataStoreFeaturesService(dxSaaSService, log),
|
|
@@ -78773,5 +79316,5 @@ function createServiceMonolith(dxDoConfiguration, log = new NullSimpleLog()) {
|
|
|
78773
79316
|
};
|
|
78774
79317
|
}
|
|
78775
79318
|
|
|
78776
|
-
export { AXAActivities, AccService, AgentService, AgentTrace, AlarmEnrichment, AlarmEnrichmentFilter, AlarmService, AlertDefinitionResponse, AlertResponse, AlertResponseV2, AlertService, AlignmentSchema, ApmUniverseService, AsmService, AttributeExpressionComparatorSchema, AttributeExpressionOperatorSchema, AttributeExpressionSchema, AttributeFilterOperator, AttributeNameAllSpecifierSchema, AttributeNameAndSpecifierSchema, AttributeNameAnyNumericSpecifierSchema, AttributeNameAttributeSpecifierSchema, AttributeNameChildrenSpecifierSchema, AttributeNameExactSpecifierSchema, AttributeNameFolderSpecifierSchema, AttributeNameNoneSpecifierSchema, AttributeNameNotSpecifierSchema, AttributeNameOperatorSpecifierSchema, AttributeNameOrSpecifierSchema, AttributeNameRegExSpecifierSchema, AttributeNameSpecifierSchema, AttributeNameTypeSpecifierSchema, AttributeService, AttributeValueAsFieldSchema, AuthorizationService, AxaService, BlobAllFilterSchema, BlobAsyncCommandSchema, BlobAsyncDeleteSchemaCommandSchema, BlobAsyncResultEntrySchema, BlobAsyncResultRequestSchema, BlobAsyncResultResponseSchema, BlobAsyncResultStateSchema, BlobAttributeExpressionSchema, BlobAttributeFilterSchema, BlobAttributesSchema, BlobBulkDeleteEntrySchema, BlobBulkDeleteRequestSchema, BlobBulkDeleteResponseSchema, BlobBulkItemSchema, BlobBulkStoreRequestSchema, BlobBulkStoreResponseSchema, BlobDeleteParamsSchema, BlobDeleteResponseSchema, BlobDeleteSchemaResultSchema, BlobExecuteAsyncRequestSchema, BlobExecuteAsyncResponseSchema, BlobFetchParamsSchema, BlobFileEnvelopeSchema, BlobFilterSchema, BlobMetadataSchema, BlobQueryRequestSchema, BlobQueryResponseSchema, BlobSchemaItemSchema, BlobSchemaListRequestSchema, BlobSchemaListResponseSchema, BlobService, BlobStoreParamsSchema, BlobStoreResponseSchema, CalendarIntervalSchema, ChannelService, DEFAULT_EXPERIENCE_REQUEST_BODY, DXChannel, DashboardPermissionsUpdateRequest, DashboardSearch, DashboardService, DataStoreAuditService, DataStoreAuthViewsService, DataStoreBlobStorageService, DataStoreFeaturesService, DataStoreMetricsMetadataService, DataStoreNASSQLService, DataStoreNASSService, DataStoreStatesService, DataStoreTASService, DataStoreTokensService, DxSaasService, DxoiService, EdgeNumericIdSchema, EventService, ExperienceService, FillModeSchema, FilterOperation, FolderNameAllSpecifierSchema, FolderNameAndSpecifierSchema, FolderNameChildrenSpecifierSchema, FolderNameExactSpecifierSchema, FolderNameNoneSpecifierSchema, FolderNameNotSpecifierSchema, FolderNameOrSpecifierSchema, FolderNameRegExSpecifierSchema, FolderNameSpecifierSchema, GraphResponse, GraphService, Inventory, InventoryAttributes, InventoryService, JoinTypeSchema, JsExtensionService, LogIngest, LogQuery, LogsService, METRIC_TYPE_ENUM, METRIC_TYPE_ENUM_NAMES, METRIC_TYPE_REGION, MServe, MaintenanceBulkDeleteResponseSchema, MaintenanceCreateRequestSchema, MaintenanceCreateResponseSchema, MaintenanceDeleteRequestSchema, MaintenanceDetailSchema, MaintenanceExcludedMemberSchema, MaintenanceFilterLeafSchema, MaintenanceFilterSchema, MaintenanceMemberSchema, MaintenanceMemberSourceSchema, MaintenanceMemberTypeSchema, MaintenancePreviewRequestSchema, MaintenancePreviewResponseSchema, MaintenanceScheduleSchema, MaintenanceSearchRequestSchema, MaintenanceSearchResponseSchema, MaintenanceService, MaintenanceSummarySchema, ManagementModuleIdSchema, ManagementModuleService, MatchType, MetadataMetricQueryResponseV2Schema, MetadataMetricQuerySchema, MetricAttributeSchema, MetricBatchService, MetricFolderSchema, MetricGroupingService, MetricRegisterRequestSchema, MetricRegisterResponseSchema, MetricRegisterSchema, MetricRegisterSourceSchema, MetricTypeEnumNameSchema, NASS, NASSService, NassDatapointSchema, NassExtensionDatapointSchema, NassRegularDatapointSchema, NassStoreRequestSchema, NassStoreResponseSchema, NassValueTypeSchema, NotificationService, NumericOperatorSchema, O2NotificationService, O2UniverseService, OIAlarm, OIService, OIUsersV2, OperatorSchema, PerspectiveService, PlatformAlertService, PlatformFilters, PlatformManagementModuleService, PlatformMetricGroupingService, QuantileMethodSchema, QueryAllSpecifierSchema, QueryAndSpecifierSchema, QueryAttributeExpressionSchema, QueryAttributeSpecifierSchema, QueryColumnTypeSpecSchema, QueryFilterPredicateSpecSchema, QueryFunctionSpecSchema, QueryHintForceRangeSchema, QueryHintSchema, QueryIdSpecifierSchema, QueryMetricGroupSpecifierSchema, QueryMetricIdSchema, QueryNoneSpecifierSchema, QueryNotSpecifierSchema, QueryOrSpecifierSchema, QueryRangeSpecSchema, QueryRequestSchema, QueryResultSchema, QuerySpecSpecifierSchema, QuerySpecifierSchema, RecurrencePattern, SLIService, SQLService, ServiceExport, ServiceFilterSpecifierSchema, ServiceService, ServiceTransform, SessionService, SimpleHTTPError, SituationLifecycle, SituationService, Situations, SliFilterSchema, SliGroupSchema, SliSaveRequestSchema, SliSaveResponseSchema, SliSearchRequestSchema, SliSearchResponseSchema, SourceNameAllSpecifierSchema, SourceNameAndSpecifierSchema, SourceNameExactSpecifierSchema, SourceNameNoneSpecifierSchema, SourceNameNotSpecifierSchema, SourceNameOrSpecifierSchema, SourceNamePartOperatorSpecifierSchema, SourceNameRegExSpecifierSchema, SourceNameSpecifierSchema, TAS, TASGraph, TASService, TasAddFlowsFilterSchema, TasAddTransitioningEdgesFilterSchema, TasAddWireContextFilterSchema, TasAddWiresFilterSchema, TasAllFilterSchema, TasAnalyticBaseSchema, TasAnalyticResultSchema, TasAndFilterSchema, TasAttributeAlertStatisticsSchema, TasAttributeFilterModeSchema, TasAttributeFilterSchema, TasAttributeNameSchema, TasAttributeTypeSchema, TasCollectAttributeNamesFilterSchema, TasCollectAttributeNamesResultSchema, TasCollectAttributeResultSchema, TasCollectAttributesFilterSchema, TasCollectCardInfoFilterSchema, TasCollectCardInfoResultSchema, TasCollectCardInfoTierSchema, TasCollectCountsFilterSchema, TasCollectCountsResultSchema, TasCollectExperienceAttributesFilterSchema, TasCollectExperienceSelectorSchema, TasCollectGroupingInfoFilterSchema, TasCollectGroupingInfoResultSchema, TasCollectVertexIdFilterSchema, TasCoverageFilterSchema, TasEdgeSchema, TasEmptyFilterSchema, TasExternalIdSchema, TasFilterSchema, TasFollowPathFilterSchema, TasFollowPathFlowFilterSchema, TasFollowPathTypeSchema, TasGraphSchema, TasGroupingAlertStatisticsSchema, TasGroupingInfoSchema, TasGroupingItemSchema, TasJoinFilterSchema, TasJoinTypeSchema, TasLayerFilterSchema, TasLegacyFilterSchema, TasLuceneFilterSchema, TasNotFilterSchema, TasOrFilterSchema, TasOrderSchema, TasProjectionFilterSchema, TasQuerySchema, TasServiceFilterSchema, TasStatusFilterSchema, TasStoreChangeSchema, TasStoreGraphInputSchema, TasStoreGraphResponseSchema, TasTakeEdgesFilterSchema, TasTakeFlowsFilterSchema, TasTakeVerticesFilterSchema, TasTraverseFilterSchema, TasVariableFilterSchema, TasVariableSchema, TasVertexIdFilterSchema, TasVertexSchema, TasViewSchema, Trace, TraversalEdgeFilterSchema, TraversalVertexFilterSchema, TraverseCollectSchema, TraverseDirectionSchema, TraverseSchema, VertexMappingConfigurationModule, VertexService, VertexStateExternalIdSchema, VertexStateNumericIdSchema, VertexStateSchema, VertexStatusChanges, ags, agsresponse, apiTokenCreate, apiTokenDelete, apiTokenGet, apiTokenList, apiTokenUpdate, checkGet, composeMetricTypeBits, contactActivate, contactDelete, contactTestSend, contactsBlockDelete, contactsBlockPut, contactsConfirm, contactsCreate, contactsGet, contactsGetDetail, contactsReplaceNotificationsWith, contactsRequestConfirmationCode, contactsUpdate, convertLegacyConfiguration, createPostmanRequest, createServiceMonolith, decodeMetricTypeBits, escapeRegExp, example, excludedAttributes, folderAccessGet, folderDelete, folderGet, folderPost, folderUpdate, foldersList, getDataStoreSchema, getUserTokenSub, getUserTokenTid, getVertexAttributeValue, getVertexAttributeValueOrNull, hasVertexAttribute, inventorizePreview, inventorizeResponse, inventorySearchRequestBodyExample, inventorySearchResponseBody, isDataStoreSchemaType, isTenantToken, isUserToken, listDataStoreSchemaOps, locationsCreate, locationsDelete, locationsGet, locationsGetAll, locationsGetByType, locationsLeafGetFilter, locationsPost, logGet, logGetEvent, maintenanceDelete, maintenanceDeleteWindows, maintenanceFilter, maintenanceGet, maintenanceGetDetail, maintenanceGetWindows, maintenanceGetWindowsDetail, maintenanceUpdateWindowsDetail, maintenancesCreate, maintenancesImmediateDelete, maintenancesImmediatePut, maintenancesPostWindows, maintenancesUpdate, messageGet, messagesList, monitorActivate, monitorCreate, monitorDeactivate, monitorDelete, monitorGet, monitorGetAll, monitorUpdate, oauthClientTokensCreate, oauthClientTokensDelete, oauthClientTokensGet, oauthClientTokensList, oauthClientTokensUpdate, oauthCreateToken, oauthGetRefreshTokenList, oauthGetTokenList, oauthRefreshTokenDeleteId, oauthTokenCognateDelete, oauthTokenCognateDeleteCurrent, oauthTokenDelete, oauthTokenDeleteCurrent, parseFilter, sampleServiceDetailRequestBody, searchUniverse, serviceDetailResponseBody, settingsGet, settingsGetDetail, settingsUpdate, stationDelete, stationsAgentType, stationsCreate, stationsDeleteMaintenance, stationsGet, stationsGetAgents, stationsLatest, stationsList, stationsOnpremiseConnected, stationsOnpremiseConnectedAll, stationsOnpremiseList, stationsPutMaintenance, stationsUpdate, statistic, summarizeDataStoreSchema, tagsGetAll, timezonesList, toSliSaveRequest, userBlockDelete, userBlockPut, userDelete, userGet, userLockDelete, userPut, userSubaccountsGet, userSubaccountsPost, verifyAndDumpLegacyConfiguration, verifyAndDumpVersion3Configuration, verifyAndDumpVersion4Configuration, vertexMatchesFilters };
|
|
79319
|
+
export { AXAActivities, AccService, AgentService, AgentTrace, AlarmEnrichment, AlarmEnrichmentFilter, AlarmService, AlertDefinitionResponse, AlertResponse, AlertResponseV2, AlertService, AlignmentSchema, ApmUniverseService, AsmService, AttributeExpressionComparatorSchema, AttributeExpressionOperatorSchema, AttributeExpressionSchema, AttributeFilterOperator, AttributeNameAllSpecifierSchema, AttributeNameAndSpecifierSchema, AttributeNameAnyNumericSpecifierSchema, AttributeNameAttributeSpecifierSchema, AttributeNameChildrenSpecifierSchema, AttributeNameExactSpecifierSchema, AttributeNameFolderSpecifierSchema, AttributeNameNoneSpecifierSchema, AttributeNameNotSpecifierSchema, AttributeNameOperatorSpecifierSchema, AttributeNameOrSpecifierSchema, AttributeNameRegExSpecifierSchema, AttributeNameSpecifierSchema, AttributeNameTypeSpecifierSchema, AttributeService, AttributeValueAsFieldSchema, AuthorizationService, AxaService, BlobAllFilterSchema, BlobAsyncCommandSchema, BlobAsyncDeleteSchemaCommandSchema, BlobAsyncResultEntrySchema, BlobAsyncResultRequestSchema, BlobAsyncResultResponseSchema, BlobAsyncResultStateSchema, BlobAttributeExpressionSchema, BlobAttributeFilterSchema, BlobAttributesSchema, BlobBulkDeleteEntrySchema, BlobBulkDeleteRequestSchema, BlobBulkDeleteResponseSchema, BlobBulkItemSchema, BlobBulkStoreRequestSchema, BlobBulkStoreResponseSchema, BlobDeleteParamsSchema, BlobDeleteResponseSchema, BlobDeleteSchemaResultSchema, BlobExecuteAsyncRequestSchema, BlobExecuteAsyncResponseSchema, BlobFetchParamsSchema, BlobFileEnvelopeSchema, BlobFilterSchema, BlobMetadataSchema, BlobQueryRequestSchema, BlobQueryResponseSchema, BlobSchemaItemSchema, BlobSchemaListRequestSchema, BlobSchemaListResponseSchema, BlobService, BlobStoreParamsSchema, BlobStoreResponseSchema, CalendarIntervalSchema, ChannelService, DEFAULT_EXPERIENCE_REQUEST_BODY, DXChannel, DashboardPermissionsUpdateRequest, DashboardSearch, DashboardService, DataStoreAuditService, DataStoreAuthViewsService, DataStoreBlobStorageService, DataStoreFeaturesService, DataStoreMetricsMetadataService, DataStoreNASSQLService, DataStoreNASSService, DataStoreStatesService, DataStoreTASService, DataStoreTokensService, DxSaasService, DxoiService, EdgeNumericIdSchema, EventService, ExperienceService, FillModeSchema, FilterOperation, FolderNameAllSpecifierSchema, FolderNameAndSpecifierSchema, FolderNameChildrenSpecifierSchema, FolderNameExactSpecifierSchema, FolderNameNoneSpecifierSchema, FolderNameNotSpecifierSchema, FolderNameOrSpecifierSchema, FolderNameRegExSpecifierSchema, FolderNameSpecifierSchema, GraphResponse, GraphService, Inventory, InventoryAttributes, InventoryService, JoinTypeSchema, JsExtensionService, LogIngest, LogQuery, LogsService, METRIC_TYPE_ENUM, METRIC_TYPE_ENUM_NAMES, METRIC_TYPE_REGION, MServe, MaintenanceBulkDeleteResponseSchema, MaintenanceCreateRequestSchema, MaintenanceCreateResponseSchema, MaintenanceDeleteRequestSchema, MaintenanceDetailSchema, MaintenanceExcludedMemberSchema, MaintenanceFilterLeafSchema, MaintenanceFilterSchema, MaintenanceMemberSchema, MaintenanceMemberSourceSchema, MaintenanceMemberTypeSchema, MaintenancePreviewRequestSchema, MaintenancePreviewResponseSchema, MaintenanceScheduleSchema, MaintenanceSearchRequestSchema, MaintenanceSearchResponseSchema, MaintenanceService, MaintenanceSummarySchema, ManagementModuleIdSchema, ManagementModuleService, MatchType, MetadataMetricQueryResponseV2Schema, MetadataMetricQuerySchema, MetricAttributeSchema, MetricBatchService, MetricFolderSchema, MetricGroupingService, MetricRegisterRequestSchema, MetricRegisterResponseSchema, MetricRegisterSchema, MetricRegisterSourceSchema, MetricTypeEnumNameSchema, NASS, NASSService, NassDatapointSchema, NassExtensionDatapointSchema, NassRegularDatapointSchema, NassStoreRequestSchema, NassStoreResponseSchema, NassValueTypeSchema, NotificationService, NumericOperatorSchema, O2NotificationService, O2UniverseService, OIAlarm, OIService, OIUsersV2, OperatorSchema, PerspectiveService, PlatformAlertService, PlatformFilters, PlatformManagementModuleService, PlatformMetricGroupingService, QuantileMethodSchema, QueryAllSpecifierSchema, QueryAndSpecifierSchema, QueryAttributeExpressionSchema, QueryAttributeSpecifierSchema, QueryColumnTypeSpecSchema, QueryFilterPredicateSpecSchema, QueryFunctionSpecSchema, QueryHintForceRangeSchema, QueryHintSchema, QueryIdSpecifierSchema, QueryMetricGroupSpecifierSchema, QueryMetricIdSchema, QueryNoneSpecifierSchema, QueryNotSpecifierSchema, QueryOrSpecifierSchema, QueryRangeSpecSchema, QueryRequestSchema, QueryResultSchema, QuerySpecSpecifierSchema, QuerySpecifierSchema, RecurrencePattern, SLIService, SQLService, ServiceExport, ServiceFilterSpecifierSchema, ServiceService, ServiceTransform, ServiceUniverseService, SessionService, SimpleHTTPError, SituationLifecycle, SituationService, Situations, SliFilterSchema, SliGroupSchema, SliSaveRequestSchema, SliSaveResponseSchema, SliSearchRequestSchema, SliSearchResponseSchema, SourceNameAllSpecifierSchema, SourceNameAndSpecifierSchema, SourceNameExactSpecifierSchema, SourceNameNoneSpecifierSchema, SourceNameNotSpecifierSchema, SourceNameOrSpecifierSchema, SourceNamePartOperatorSpecifierSchema, SourceNameRegExSpecifierSchema, SourceNameSpecifierSchema, TAS, TASGraph, TASService, TasAddFlowsFilterSchema, TasAddTransitioningEdgesFilterSchema, TasAddWireContextFilterSchema, TasAddWiresFilterSchema, TasAllFilterSchema, TasAnalyticBaseSchema, TasAnalyticResultSchema, TasAndFilterSchema, TasAttributeAlertStatisticsSchema, TasAttributeFilterModeSchema, TasAttributeFilterSchema, TasAttributeNameSchema, TasAttributeTypeSchema, TasCollectAttributeNamesFilterSchema, TasCollectAttributeNamesResultSchema, TasCollectAttributeResultSchema, TasCollectAttributesFilterSchema, TasCollectCardInfoFilterSchema, TasCollectCardInfoResultSchema, TasCollectCardInfoTierSchema, TasCollectCountsFilterSchema, TasCollectCountsResultSchema, TasCollectExperienceAttributesFilterSchema, TasCollectExperienceSelectorSchema, TasCollectGroupingInfoFilterSchema, TasCollectGroupingInfoResultSchema, TasCollectVertexIdFilterSchema, TasCoverageFilterSchema, TasEdgeSchema, TasEmptyFilterSchema, TasExternalIdSchema, TasFilterSchema, TasFollowPathFilterSchema, TasFollowPathFlowFilterSchema, TasFollowPathTypeSchema, TasGraphSchema, TasGroupingAlertStatisticsSchema, TasGroupingInfoSchema, TasGroupingItemSchema, TasJoinFilterSchema, TasJoinTypeSchema, TasLayerFilterSchema, TasLegacyFilterSchema, TasLuceneFilterSchema, TasNotFilterSchema, TasOrFilterSchema, TasOrderSchema, TasProjectionFilterSchema, TasQuerySchema, TasServiceFilterSchema, TasStatusFilterSchema, TasStoreChangeSchema, TasStoreGraphInputSchema, TasStoreGraphResponseSchema, TasTakeEdgesFilterSchema, TasTakeFlowsFilterSchema, TasTakeVerticesFilterSchema, TasTraverseFilterSchema, TasVariableFilterSchema, TasVariableSchema, TasVertexIdFilterSchema, TasVertexSchema, TasViewSchema, Trace, TraversalEdgeFilterSchema, TraversalVertexFilterSchema, TraverseCollectSchema, TraverseDirectionSchema, TraverseSchema, VertexMappingConfigurationModule, VertexService, VertexStateExternalIdSchema, VertexStateNumericIdSchema, VertexStateSchema, VertexStatusChanges, ags, agsresponse, apiTokenCreate, apiTokenDelete, apiTokenGet, apiTokenList, apiTokenUpdate, checkGet, composeMetricTypeBits, contactActivate, contactDelete, contactTestSend, contactsBlockDelete, contactsBlockPut, contactsConfirm, contactsCreate, contactsGet, contactsGetDetail, contactsReplaceNotificationsWith, contactsRequestConfirmationCode, contactsUpdate, convertLegacyConfiguration, createPostmanRequest, createServiceMonolith, decodeMetricTypeBits, escapeRegExp, example, excludedAttributes, folderAccessGet, folderDelete, folderGet, folderPost, folderUpdate, foldersList, getDataStoreSchema, getUserTokenSub, getUserTokenTid, getVertexAttributeValue, getVertexAttributeValueOrNull, hasVertexAttribute, inventorizePreview, inventorizeResponse, inventorySearchRequestBodyExample, inventorySearchResponseBody, isDataStoreSchemaType, isTenantToken, isUserToken, listDataStoreSchemaOps, locationsCreate, locationsDelete, locationsGet, locationsGetAll, locationsGetByType, locationsLeafGetFilter, locationsPost, logGet, logGetEvent, maintenanceDelete, maintenanceDeleteWindows, maintenanceFilter, maintenanceGet, maintenanceGetDetail, maintenanceGetWindows, maintenanceGetWindowsDetail, maintenanceUpdateWindowsDetail, maintenancesCreate, maintenancesImmediateDelete, maintenancesImmediatePut, maintenancesPostWindows, maintenancesUpdate, messageGet, messagesList, monitorActivate, monitorCreate, monitorDeactivate, monitorDelete, monitorGet, monitorGetAll, monitorUpdate, oauthClientTokensCreate, oauthClientTokensDelete, oauthClientTokensGet, oauthClientTokensList, oauthClientTokensUpdate, oauthCreateToken, oauthGetRefreshTokenList, oauthGetTokenList, oauthRefreshTokenDeleteId, oauthTokenCognateDelete, oauthTokenCognateDeleteCurrent, oauthTokenDelete, oauthTokenDeleteCurrent, parseFilter, sampleServiceDetailRequestBody, searchUniverse, serviceDetailResponseBody, settingsGet, settingsGetDetail, settingsUpdate, stationDelete, stationsAgentType, stationsCreate, stationsDeleteMaintenance, stationsGet, stationsGetAgents, stationsLatest, stationsList, stationsOnpremiseConnected, stationsOnpremiseConnectedAll, stationsOnpremiseList, stationsPutMaintenance, stationsUpdate, statistic, summarizeDataStoreSchema, tagsGetAll, timezonesList, toSliSaveRequest, userBlockDelete, userBlockPut, userDelete, userGet, userLockDelete, userPut, userSubaccountsGet, userSubaccountsPost, verifyAndDumpLegacyConfiguration, verifyAndDumpVersion3Configuration, verifyAndDumpVersion4Configuration, vertexMatchesFilters };
|
|
78777
79320
|
//# sourceMappingURL=index.esm.js.map
|