node-autotask 0.39.4 → 0.40.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/ARCHITECTURE.md +6 -2
- package/CHANGELOG.md +26 -0
- package/MCP_TOOL_CATALOG.json +3 -3
- package/MCP_TOOL_MANIFEST.md +5 -5
- package/N8N_MCP_MANIFEST.json +2 -2
- package/N8N_MCP_MANIFEST.md +3 -3
- package/README.md +28 -36
- package/capabilities.json +1315 -1320
- package/dist/base-CVx2VMSj.d.cts +103 -0
- package/dist/base-CVx2VMSj.d.ts +103 -0
- package/dist/capabilities.cjs +2 -2
- package/dist/capabilities.js +1 -1
- package/dist/{chunk-H4S4KSXX.cjs → chunk-E5W24BZB.cjs} +143 -143
- package/dist/{chunk-DJCRQLQE.cjs → chunk-EUGSF3U4.cjs} +287 -292
- package/dist/{chunk-VR6RYXTD.cjs → chunk-EVDVESQM.cjs} +1314 -1319
- package/dist/{chunk-SGKGNJEI.cjs → chunk-FEYVLIHD.cjs} +764 -1726
- package/dist/{chunk-JBQ55HYG.js → chunk-MTFRSD7P.js} +2 -2
- package/dist/{chunk-DBLXPY4B.js → chunk-O32L6GS5.js} +4 -9
- package/dist/{chunk-GHRB46YN.js → chunk-VDVBXXJW.js} +566 -1528
- package/dist/{chunk-GDSCYY2G.js → chunk-Y6YJYKBZ.js} +1314 -1319
- package/dist/{index-DkZVRMeW.d.ts → index-BKp8_P2L.d.cts} +125 -806
- package/dist/{index-DkZVRMeW.d.cts → index-BKp8_P2L.d.ts} +125 -806
- package/dist/index.cjs +22 -50
- package/dist/index.d.cts +103 -102
- package/dist/index.d.ts +103 -102
- package/dist/index.js +18 -46
- package/dist/operations/index.cjs +178 -178
- package/dist/operations/index.d.cts +5 -4
- package/dist/operations/index.d.ts +5 -4
- package/dist/operations/index.js +3 -3
- package/dist/pool.cjs +17 -60
- package/dist/pool.d.cts +5 -13
- package/dist/pool.d.ts +5 -13
- package/dist/pool.js +13 -56
- package/dist/resources/index.cjs +4 -4
- package/dist/resources/index.d.cts +1 -1
- package/dist/resources/index.d.ts +1 -1
- package/dist/resources/index.js +3 -3
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/docs/API.md +130 -319
- package/docs/N8N-ADAPTER.md +7 -7
- package/examples/mcp-server-http.ts +18 -18
- package/package.json +1 -1
|
@@ -1,50 +1,57 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* entries are purged first (a long-lived MCP server must not grow without
|
|
3
|
-
* bound between lazy purges). */
|
|
1
|
+
/** Default bound of the read cache (a long-lived server must not grow without bound). */
|
|
4
2
|
declare const READ_CACHE_MAX_ENTRIES = 4096;
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
/** Read-cache TTL of the reference tables: human-timescale lookups served for an hour. */
|
|
4
|
+
declare const REFERENCE_TTL_MS = 3600000;
|
|
5
|
+
/** The reference tables (the wire entity segment of the cached path). */
|
|
6
|
+
declare const REFERENCE_ENTITIES: readonly string[];
|
|
7
|
+
/** The three metadata reads one entity can serve. */
|
|
8
|
+
declare const FIELD_CACHE_KINDS: readonly ["info", "fields", "udf"];
|
|
9
|
+
/** One of the per-entity metadata reads. */
|
|
10
|
+
type FieldCacheKind = (typeof FIELD_CACHE_KINDS)[number];
|
|
11
|
+
/** The field-cache key of one entity's metadata read (`tickets:fields`). */
|
|
12
|
+
declare function fieldKey(resourceKey: string, kind: FieldCacheKind): string;
|
|
13
|
+
/** The read-cache TTL for a key: the reference tables live `REFERENCE_TTL_MS` (or `ttlMs` when longer). */
|
|
14
|
+
declare function readTtlFor(key: string, ttlMs: number): number;
|
|
15
|
+
interface TtlCacheOptions {
|
|
16
|
+
/** Entry bound (positive integer; default `READ_CACHE_MAX_ENTRIES`). */
|
|
17
|
+
maxEntries?: number;
|
|
18
|
+
/** Per-key TTL in ms (default: `ttlMs` for every key). */
|
|
19
|
+
ttlFor?: (key: string) => number;
|
|
20
|
+
}
|
|
21
|
+
/** A TTL map with clone-on-read, an invalidation epoch and in-flight de-duplication. */
|
|
22
|
+
declare class TtlCache {
|
|
14
23
|
readonly ttlMs: number;
|
|
15
|
-
|
|
16
|
-
readonly
|
|
24
|
+
readonly maxEntries: number;
|
|
25
|
+
private readonly ttlFor;
|
|
17
26
|
private readonly store;
|
|
27
|
+
private readonly inflightMap;
|
|
18
28
|
private epochCounter;
|
|
19
|
-
constructor(ttlMs: number,
|
|
20
|
-
/**
|
|
21
|
-
* The TTL (ms) for a resource plan key: the `perResourceTtlMs` override
|
|
22
|
-
* when the map is present and names the resource, else the base
|
|
23
|
-
* `ttlMs` (absent map, absent key, and `undefined` all fall back).
|
|
24
|
-
*/
|
|
25
|
-
ttlFor(resource?: string): number;
|
|
26
|
-
/**
|
|
27
|
-
* Read-through lookup: the live entry's value, or `undefined` (absent OR
|
|
28
|
-
* expired — an expired entry is purged lazily on this read).
|
|
29
|
-
*/
|
|
29
|
+
constructor(ttlMs: number, options?: TtlCacheOptions);
|
|
30
|
+
/** The live value (a copy), or `undefined` when absent or expired. */
|
|
30
31
|
get(key: string): unknown;
|
|
31
|
-
/** Store
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
/** Store `value` under `key`. `epoch` is the value the caller read BEFORE its
|
|
33
|
+
* wire request: a read that straddled a `clear()` (a write) is dropped. */
|
|
34
|
+
set(key: string, value: unknown, epoch?: number): void;
|
|
35
|
+
/** `{ hit, age }` without consuming or cloning the entry (age in ms since stored). */
|
|
36
|
+
peek(key: string): {
|
|
37
|
+
hit: boolean;
|
|
38
|
+
age: number | null;
|
|
39
|
+
};
|
|
40
|
+
/** The shared in-flight read for `key`, if any. */
|
|
41
|
+
inflight(key: string): Promise<unknown> | undefined;
|
|
42
|
+
/** Register an in-flight read so concurrent callers share it; dropped on settle. */
|
|
43
|
+
track(key: string, promise: Promise<unknown>): Promise<unknown>;
|
|
44
|
+
/** Drop one key. */
|
|
45
|
+
delete(key: string): boolean;
|
|
46
|
+
/** Drop every stored and in-flight key that starts with `prefix`. */
|
|
47
|
+
invalidate(prefix: string): void;
|
|
37
48
|
/** Drop every expired entry (returns the number removed). */
|
|
38
49
|
purgeExpired(): number;
|
|
39
|
-
/**
|
|
50
|
+
/** Stored entry count (live + not-yet-purged expired). */
|
|
40
51
|
get size(): number;
|
|
41
|
-
/**
|
|
42
|
-
delete(key: string): boolean;
|
|
43
|
-
/** The invalidation epoch: bumped by `clear()`; capture it before a wire
|
|
44
|
-
* read and pass it to `set` so a read in flight across a write cannot
|
|
45
|
-
* re-store its stale answer. */
|
|
52
|
+
/** Bumped by `clear()`; capture it before a wire read and pass it to `set`. */
|
|
46
53
|
get epoch(): number;
|
|
47
|
-
/** Drop everything
|
|
54
|
+
/** Drop everything and bump the epoch. */
|
|
48
55
|
clear(): void;
|
|
49
56
|
}
|
|
50
57
|
|
|
@@ -395,7 +402,7 @@ interface AuditEvent {
|
|
|
395
402
|
body?: unknown;
|
|
396
403
|
/** Set when the request ended in an error; the stable machine code. */
|
|
397
404
|
errorCode?: string;
|
|
398
|
-
/** True when the call was refused locally (the tenant cooldown gate) and never sent. */
|
|
405
|
+
/** True when the call was refused locally (the tenant cooldown or zone maintenance gate) and never sent. */
|
|
399
406
|
notSent?: boolean;
|
|
400
407
|
}
|
|
401
408
|
/** Bounded client-scan caps for resolution (section 19.2; per-client). */
|
|
@@ -429,501 +436,6 @@ interface OperationMetadata {
|
|
|
429
436
|
dryRun: boolean;
|
|
430
437
|
}
|
|
431
438
|
|
|
432
|
-
/** The three metadata reads one entity can serve (closed set). */
|
|
433
|
-
declare const FIELD_CACHE_KINDS: readonly ["info", "fields", "udf"];
|
|
434
|
-
/** One of the three per-entity metadata channels. */
|
|
435
|
-
type FieldCacheKind = (typeof FIELD_CACHE_KINDS)[number];
|
|
436
|
-
/**
|
|
437
|
-
* A read-through TTL cache for successful entity-metadata reads (lazy
|
|
438
|
-
* purge on read; expiry is `Date.now()` based). Constructed by
|
|
439
|
-
* `resolveConfig` from `fieldCache: { ttlMs, maxEntities }` — a
|
|
440
|
-
* positive-integer `ttlMs` is required (validated here, as in ReadCache).
|
|
441
|
-
*/
|
|
442
|
-
declare class FieldCache {
|
|
443
|
-
/** The configured TTL in ms. */
|
|
444
|
-
readonly ttlMs: number;
|
|
445
|
-
/** The entity bound (the cap applies to STORED entries; inflight never counts). */
|
|
446
|
-
readonly maxEntities: number;
|
|
447
|
-
private readonly store;
|
|
448
|
-
private readonly inflightMap;
|
|
449
|
-
constructor(ttlMs: number, maxEntities?: number);
|
|
450
|
-
/** The composite key: one entity's catalogs are one key apart. */
|
|
451
|
-
static key(resourceKey: string, kind: FieldCacheKind): string;
|
|
452
|
-
/**
|
|
453
|
-
* Read-through lookup: the live entry's value (a copy), or `undefined`
|
|
454
|
-
* (absent OR expired — an expired entry is purged lazily on this read).
|
|
455
|
-
*/
|
|
456
|
-
get(resourceKey: string, kind: FieldCacheKind): unknown;
|
|
457
|
-
/**
|
|
458
|
-
* Store a SUCCESSFUL, NON-EMPTY metadata value under (entity, kind),
|
|
459
|
-
* live for `ttlMs`. An EMPTY value (`[]` / `{}` / null) is refused
|
|
460
|
-
* silently (never cached — an empty is not an answer): the next call
|
|
461
|
-
* refetches.
|
|
462
|
-
*/
|
|
463
|
-
set(resourceKey: string, kind: FieldCacheKind, value: unknown): void;
|
|
464
|
-
/** True for the values that must never be cached (an empty is not an answer). */
|
|
465
|
-
static isEmpty(value: unknown): boolean;
|
|
466
|
-
/**
|
|
467
|
-
* In-flight de-duplication: the shared in-flight promise for
|
|
468
|
-
* (entity, kind), or `undefined` (nothing in flight — the caller
|
|
469
|
-
* issues the request and registers it with `track`).
|
|
470
|
-
*/
|
|
471
|
-
inflight(resourceKey: string, kind: FieldCacheKind): Promise<unknown> | undefined;
|
|
472
|
-
/**
|
|
473
|
-
* Register an in-flight metadata read: concurrent callers for the same
|
|
474
|
-
* (entity, kind) await the SAME promise (one wire request). The entry
|
|
475
|
-
* is dropped on settle — success OR failure (a failure is never
|
|
476
|
-
* cached; the next caller refetches).
|
|
477
|
-
*/
|
|
478
|
-
track(resourceKey: string, kind: FieldCacheKind, promise: Promise<unknown>): Promise<unknown>;
|
|
479
|
-
/**
|
|
480
|
-
* The drift signal: drop the entity's STORED entries AND its in-flight
|
|
481
|
-
* promise (a refetch must not join a request whose premise just moved).
|
|
482
|
-
* A no-op when the entity holds nothing.
|
|
483
|
-
*/
|
|
484
|
-
invalidate(resourceKey: string): void;
|
|
485
|
-
/**
|
|
486
|
-
* A non-mutating probe for the served op's per-row `cache` report:
|
|
487
|
-
* `hit` = a live (unexpired) entry exists; `age` = ms since that entry
|
|
488
|
-
* was stored (null when `hit` is false). Never purges, never clones.
|
|
489
|
-
*/
|
|
490
|
-
peek(resourceKey: string, kind: FieldCacheKind): {
|
|
491
|
-
hit: boolean;
|
|
492
|
-
age: number | null;
|
|
493
|
-
};
|
|
494
|
-
/** Drop every expired entry (returns the number removed). */
|
|
495
|
-
purgeExpired(): number;
|
|
496
|
-
/** Current entry count (live + not-yet-purged expired). */
|
|
497
|
-
get size(): number;
|
|
498
|
-
/** Drop everything (e.g. a caller that knows the tenant was reset). */
|
|
499
|
-
clear(): void;
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
/** One stored name answer: the resolved name (null when the vendor
|
|
503
|
-
* returned no name part) + the blind marker (the vendor's true
|
|
504
|
-
* not-found for this id). */
|
|
505
|
-
interface ResourceNameEntry {
|
|
506
|
-
/** The composed display name (`firstName [middleName] lastName`,
|
|
507
|
-
* single spaces); null when the record exists but carries no name
|
|
508
|
-
* part (a vendor data gap — distinct from blind). */
|
|
509
|
-
name: string | null;
|
|
510
|
-
/** True when the per-id read is the vendor's true not-found (404 or
|
|
511
|
-
* `200 item: null`) — the table-invisible case the op reports with
|
|
512
|
-
* the id kept and no error. */
|
|
513
|
-
blind: boolean;
|
|
514
|
-
}
|
|
515
|
-
/**
|
|
516
|
-
* A read-through TTL cache for `operations.expandResourceNames` name
|
|
517
|
-
* answers (lazy purge on read; expiry is `Date.now()` based).
|
|
518
|
-
* Constructed by `resolveConfig` from
|
|
519
|
-
* `resourceNameCache: { ttlMs, maxEntries }` — a positive-integer
|
|
520
|
-
* `ttlMs` is required (validated here, as in ReadCache / FieldCache).
|
|
521
|
-
*/
|
|
522
|
-
declare class ResourceNameCache {
|
|
523
|
-
/** The configured TTL in ms. */
|
|
524
|
-
readonly ttlMs: number;
|
|
525
|
-
/** The entry bound (the cap applies to STORED entries; inflight never counts). */
|
|
526
|
-
readonly maxEntries: number;
|
|
527
|
-
private readonly store;
|
|
528
|
-
private readonly inflightMap;
|
|
529
|
-
private epochCounter;
|
|
530
|
-
constructor(ttlMs: number, maxEntries?: number);
|
|
531
|
-
/** The namespaced key: `resources:<canonical id>` (the namespace
|
|
532
|
-
* leaves a documented path to future FK tables — v1 serves
|
|
533
|
-
* `resources` only). */
|
|
534
|
-
static key(id: Identifier): string;
|
|
535
|
-
/**
|
|
536
|
-
* Read-through lookup: the live entry (a copy), or `undefined`
|
|
537
|
-
* (absent OR expired — an expired entry is purged lazily on this
|
|
538
|
-
* read).
|
|
539
|
-
*/
|
|
540
|
-
get(id: Identifier): ResourceNameEntry | undefined;
|
|
541
|
-
/**
|
|
542
|
-
* Store a name answer under the id, live for `ttlMs`. ALWAYS stores
|
|
543
|
-
* (the no-name-part answer `{ name: null, blind: false }` is a stable
|
|
544
|
-
* fact and is cached — the documented difference from the fieldCache
|
|
545
|
-
* empty rule); past the cap, purge expired first, then evict the
|
|
546
|
-
* oldest-inserted (Map insertion order; refreshes re-insert so the
|
|
547
|
-
* memory guard drops the OLDEST-inserted entries first).
|
|
548
|
-
*/
|
|
549
|
-
set(id: Identifier, value: ResourceNameEntry, epoch?: number): void;
|
|
550
|
-
/**
|
|
551
|
-
* In-flight de-duplication: the shared in-flight promise for the id,
|
|
552
|
-
* or `undefined` (nothing in flight — the caller issues the request
|
|
553
|
-
* and registers it with `track`).
|
|
554
|
-
*/
|
|
555
|
-
inflight(id: Identifier): Promise<unknown> | undefined;
|
|
556
|
-
/**
|
|
557
|
-
* Register an in-flight name read: concurrent callers for the same id
|
|
558
|
-
* await the SAME promise (one wire request). The entry is dropped on
|
|
559
|
-
* settle — success OR failure (a failure is never cached; the next
|
|
560
|
-
* caller refetches).
|
|
561
|
-
*/
|
|
562
|
-
track(id: Identifier, promise: Promise<unknown>): Promise<unknown>;
|
|
563
|
-
/** Drop every expired entry (returns the number removed). */
|
|
564
|
-
purgeExpired(): number;
|
|
565
|
-
/** The invalidation epoch: bumped by `clear()`; capture it before a wire
|
|
566
|
-
* read and pass it to `set` so a stale answer is dropped. */
|
|
567
|
-
get epoch(): number;
|
|
568
|
-
/** Current entry count (live + not-yet-purged expired). */
|
|
569
|
-
get size(): number;
|
|
570
|
-
/**
|
|
571
|
-
* Drop everything — the SCOPED invalidation target: a real write to
|
|
572
|
-
* the `resources` resource through the same client (a rename via this
|
|
573
|
-
* client is always fresh).
|
|
574
|
-
*/
|
|
575
|
-
clear(): void;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
/**
|
|
579
|
-
* AutotaskError hierarchy (ARCHITECTURE section 10).
|
|
580
|
-
*
|
|
581
|
-
* Every error carries the structured contract: `code` (stable SCREAMING_SNAKE
|
|
582
|
-
* machine code), `category`, `retryable`, plus `operation`, `httpStatus`,
|
|
583
|
-
* `vendorError` (the vendor payload under a documented key, deep-redacted —
|
|
584
|
-
* the INV-A1 hotfix), `resourceIds` (the LEGACY unlabeled id list — the
|
|
585
|
-
* stamp sites name records of several vendor entities and say nothing about
|
|
586
|
-
* which; every SDK stamp site that sets it also sets `details.idRefs`, the
|
|
587
|
-
* labeled `{ entity, id }` companion — issue #116),
|
|
588
|
-
* `suggestedAction` (deterministic next step only), `correlationId` and `url`.
|
|
589
|
-
*
|
|
590
|
-
* `item: null` on a single GET (HTTP 200) is a NOT FOUND, not a success — the
|
|
591
|
-
* vendor's not-found signal (G1 envelope.md). The vendor documents no error
|
|
592
|
-
* bodies; the shape `{ errors: [{ message, field?, code? }] }` is pinned from
|
|
593
|
-
* the node's errorHandler and parsed defensively here.
|
|
594
|
-
*/
|
|
595
|
-
type ErrorCategory = 'auth' | 'not_found' | 'validation' | 'conflict' | 'rate_limit' | 'server' | 'network' | 'timeout' | 'resolution' | 'policy';
|
|
596
|
-
/**
|
|
597
|
-
* A labeled id reference (issue #116). The legacy `resourceIds` field reads
|
|
598
|
-
* as Autotask **Resource** (staff) ids, but the special ops stamp ids of
|
|
599
|
-
* many other entities into it (ticket / company / contact / billing-code /
|
|
600
|
-
* the failed record's own id on a generic `get`), unlabeled — so feeding an
|
|
601
|
-
* error's `resourceIds` to `operations.expandResourceNames` (whose only wire
|
|
602
|
-
* verb is `GET /V1.0/Resources/{id}`) resolves a colliding non-staff id to
|
|
603
|
-
* an unrelated person's name. Every SDK stamp site that sets `resourceIds`
|
|
604
|
-
* now also sets `details.idRefs` — the same ids, each labeled with the vendor entity
|
|
605
|
-
* it identifies — so consumers can resolve against the entity the error
|
|
606
|
-
* actually names instead of parsing the message.
|
|
607
|
-
*
|
|
608
|
-
* `entity` is the vendor entity name (singular snake_case — `company`,
|
|
609
|
-
* `ticket`, `contact`, `billing_code`, `resource`, ...; the de-pluralized
|
|
610
|
-
* vendor table name — the same word the error message uses; the SDK
|
|
611
|
-
* resource key is the same word plural). `resource` (staff) is the ONLY
|
|
612
|
-
* entity `operations.expandResourceNames` resolves — a ref of any other
|
|
613
|
-
* entity must NOT be fed to it.
|
|
614
|
-
*/
|
|
615
|
-
interface ErrorIdRef {
|
|
616
|
-
/** The vendor entity the id identifies (singular snake_case, e.g. `company`, `ticket`, `resource` = staff). */
|
|
617
|
-
entity: string;
|
|
618
|
-
/** The value that addresses the record at that entity's endpoint: the
|
|
619
|
-
* vendor id (a safe integer, or the canonical integer-string form) —
|
|
620
|
-
* except `resource_time_off_balances.getByYear`, where the endpoint's
|
|
621
|
-
* path key is the YEAR (the vendor defines no record-id read for this
|
|
622
|
-
* entity). */
|
|
623
|
-
id: number | string;
|
|
624
|
-
}
|
|
625
|
-
interface AutotaskErrorOptions {
|
|
626
|
-
code?: string;
|
|
627
|
-
category?: ErrorCategory;
|
|
628
|
-
operation?: string;
|
|
629
|
-
httpStatus?: number;
|
|
630
|
-
vendorError?: unknown;
|
|
631
|
-
/**
|
|
632
|
-
* The ids the error is about. LEGACY, unlabeled: reads as Resource
|
|
633
|
-
* (staff) ids but the stamp sites name records of several entities
|
|
634
|
-
* (issue #116). Kept for compatibility; the labeled form rides on
|
|
635
|
-
* `details.idRefs` (`ErrorIdRef[]`) and is what consumers should use.
|
|
636
|
-
* The pairing above is a guarantee of the SDK stamp sites — an error you
|
|
637
|
-
* construct yourself may set `resourceIds` without `details.idRefs`.
|
|
638
|
-
*/
|
|
639
|
-
resourceIds?: (number | string)[];
|
|
640
|
-
suggestedAction?: string;
|
|
641
|
-
correlationId?: string;
|
|
642
|
-
retryable?: boolean;
|
|
643
|
-
url?: string;
|
|
644
|
-
/**
|
|
645
|
-
* The structured, deterministic extras that ride on the error WITHOUT
|
|
646
|
-
* changing its contract: issue #9 — the recovery refusals' payload
|
|
647
|
-
* (`{ resource, reason/note, ... }` on DELETE_BOUNDARY /
|
|
648
|
-
* MARKER_UNSAFE_ID / RECOVERY_TRUNCATED); issue #14 — `emptyReason`
|
|
649
|
-
* (the typed reason a miss / drift carries — { kind, note, authority,
|
|
650
|
-
* remedy }) and `pointerNote` (the known-unusable-op pointer sentence);
|
|
651
|
-
* issue #116 — `idRefs` (`ErrorIdRef[]`, the labeled `{ entity, id }`
|
|
652
|
-
* companion of the legacy `resourceIds` — every SDK stamp site that sets
|
|
653
|
-
* `resourceIds` also sets it). Additive only — the status, code, message
|
|
654
|
-
* and retryability are never derived from it.
|
|
655
|
-
*/
|
|
656
|
-
details?: Record<string, unknown>;
|
|
657
|
-
}
|
|
658
|
-
declare class AutotaskError extends Error {
|
|
659
|
-
code: string;
|
|
660
|
-
category: ErrorCategory;
|
|
661
|
-
operation?: string;
|
|
662
|
-
httpStatus?: number;
|
|
663
|
-
vendorError?: unknown;
|
|
664
|
-
/** Legacy unlabeled id list (issue #116) — see `AutotaskErrorOptions.resourceIds`; the labeled companion rides on `details.idRefs`. */
|
|
665
|
-
resourceIds?: (number | string)[];
|
|
666
|
-
suggestedAction?: string;
|
|
667
|
-
correlationId?: string;
|
|
668
|
-
retryable: boolean;
|
|
669
|
-
url?: string;
|
|
670
|
-
/** Issue #9/#14: the additive structured extras (recovery refusal payload; emptyReason / pointerNote) — never changes the error contract. */
|
|
671
|
-
details?: Record<string, unknown>;
|
|
672
|
-
constructor(message: string, options?: AutotaskErrorOptions);
|
|
673
|
-
}
|
|
674
|
-
declare class AutotaskConfigError extends AutotaskError {
|
|
675
|
-
constructor(message: string, options?: AutotaskErrorOptions);
|
|
676
|
-
}
|
|
677
|
-
/** Type guard for the hierarchy. */
|
|
678
|
-
declare function isAutotaskError(err: unknown): err is AutotaskError;
|
|
679
|
-
|
|
680
|
-
/**
|
|
681
|
-
* The optional per-host circuit breaker at the transport (issue #26).
|
|
682
|
-
*
|
|
683
|
-
* #6 gates a TENANT after a 429. Nothing equivalent existed for a vendor
|
|
684
|
-
* that is DOWN: during an outage or a maintenance window every call burns
|
|
685
|
-
* its full retry budget and the agent keeps issuing new ones. The breaker
|
|
686
|
-
* counts SERVICE-FAILURE outcomes per HOST (a zone outage hits every tenant
|
|
687
|
-
* on that zone — vendor health is host-scoped, so the key is the host of
|
|
688
|
-
* the configured base URL, not #6's `user@host`) and fails further calls
|
|
689
|
-
* for that host LOCALLY — a typed `CircuitBreakerError` (`code:
|
|
690
|
-
* 'CIRCUIT_BREAKER_OPEN'`, `notSent: true`, `retryable: true`, `retryAfter`
|
|
691
|
-
* = the remaining open time) with zero upstream calls — until the open
|
|
692
|
-
* period passes and `successesToClose` probe successes prove the host is
|
|
693
|
-
* healthy again.
|
|
694
|
-
*
|
|
695
|
-
* OFF by default (`circuitBreaker: { enabled: true }` opts in). Defaults
|
|
696
|
-
* from the prior art (tphakala/go-autotask `circuitbreaker.go`): 5 counted
|
|
697
|
-
* failures in a 10-second window open the circuit for 30 seconds;
|
|
698
|
-
* `successesToClose` 2 probe successes close it; `halfOpenProbes` bounds the
|
|
699
|
-
* probes admitted while half-open (default `= successesToClose`, validated
|
|
700
|
-
* `>= successesToClose` — a breaker that can never close is a misconfiguration
|
|
701
|
-
* and is refused fail-closed at construction).
|
|
702
|
-
*
|
|
703
|
-
* Timer-free (the #6 cooldown design decision): the state is pure
|
|
704
|
-
* timestamps and everything is derived from `Date.now()` lazily at each
|
|
705
|
-
* request — `closed` (no entry / nothing armed), `open` (until
|
|
706
|
-
* `openedAt + openTimeoutMs`), then the lazy `half-open` transition on the
|
|
707
|
-
* first request after the open period. No `setInterval`, no injected clock
|
|
708
|
-
* (the test suite fakes time with `vi.useFakeTimers()`, exactly like
|
|
709
|
-
* `test/cooldown.test.ts`).
|
|
710
|
-
*
|
|
711
|
-
* The DEFAULT failure predicate counts exactly: `NETWORK_ERROR`, `TIMEOUT`,
|
|
712
|
-
* a vendor 429 (by status — a surfaced 429 may carry an ADOPTED vendor
|
|
713
|
-
* machine code, e.g. the thread-threshold `Itgenatr005`), a 5xx EXCEPT the
|
|
714
|
-
* deterministic field-validation 500 (keyed on #23's `details.deterministic`
|
|
715
|
-
* signal — by that signal only), and `UNEXPECTED_CONTENT_TYPE` (the #24
|
|
716
|
-
* maintenance page, by code — NEVER `INVALID_RESPONSE`: the W-A7 shape-drift
|
|
717
|
-
* and the #13 marker-recovery key are untouched). Never counted: `ABORTED`
|
|
718
|
-
* (a caller's cancellation says nothing about service health), any 4xx, and
|
|
719
|
-
* local/policy refusals (the cooldown gate's `notSent` refusal, the local
|
|
720
|
-
* hourly limiter, config errors) — a call that never reached the vendor is
|
|
721
|
-
* never a service failure.
|
|
722
|
-
*
|
|
723
|
-
* Store: the default is the in-process in-memory map shared by every client
|
|
724
|
-
* instance (entries capped at 1024, evicting the OLDEST last-activity first
|
|
725
|
-
* — failing open: the longest-idle host loses state, an actively failing or
|
|
726
|
-
* open host keeps its). The default store is deliberately NOT anchored on
|
|
727
|
-
* globalThis (the #6 precedent): a process that loads both the ESM and the
|
|
728
|
-
* CJS build gets one map per build — inject one shared `CircuitBreakerStore`
|
|
729
|
-
* if you need cross-build sharing (the interface leaves room for a
|
|
730
|
-
* Redis-backed store). The state RIDES THE STORE, not the client: a pool
|
|
731
|
-
* LRU eviction of a tenant client loses nothing (an evicted-then-recreated
|
|
732
|
-
* tenant on the same host hits the same shared state). On a shared-host
|
|
733
|
-
* gateway (one host, many credential tuples) the breaker is PER HOST — one
|
|
734
|
-
* tenant's outage opens the circuit for that host's other tenants too (the
|
|
735
|
-
* documented consequence of the host-only key; `enabled` is off by default,
|
|
736
|
-
* so nothing changes unless opted in). `thresholdInformation.get()` bypasses
|
|
737
|
-
* the REFUSAL so a downed host can still be probed for headroom — its
|
|
738
|
-
* outcome is still RECORDED (a 2xx closes toward recovery; a failure
|
|
739
|
-
* re-arms; the #6 ThresholdInformation-bypass semantics).
|
|
740
|
-
*/
|
|
741
|
-
|
|
742
|
-
/**
|
|
743
|
-
* One host's breaker state (all epoch ms). `openedAt === null` = closed;
|
|
744
|
-
* `openedAt + openTimeoutMs > now` = open; after that the state is
|
|
745
|
-
* half-open (the lazy transition — no timers). `probes` bounds the probes
|
|
746
|
-
* admitted while half-open (`halfOpenProbes`); every probe completion
|
|
747
|
-
* (success OR a NON-COUNTED outcome, issue #262) decrements it, but only
|
|
748
|
-
* when it settles in the window it was admitted in (`windowOpenedAt` — a
|
|
749
|
-
* probe of a dead window is voided, issue #271). The transport never
|
|
750
|
-
* stores an empty closed entry: closing the circuit DELETES the entry
|
|
751
|
-
* (a healthy host leaves no trace — the #6 delete-on-2xx precedent).
|
|
752
|
-
*/
|
|
753
|
-
interface CircuitBreakerState {
|
|
754
|
-
/** Counted-failure timestamps (pruned to the failure window at record time). */
|
|
755
|
-
failures: number[];
|
|
756
|
-
/** When the circuit (re)opened (epoch ms); null while closed. */
|
|
757
|
-
openedAt: number | null;
|
|
758
|
-
/** Probe successes toward `successesToClose` (the current open/half-open phase). */
|
|
759
|
-
successes: number;
|
|
760
|
-
/** Probes admitted while half-open (in flight or awaiting a verdict). */
|
|
761
|
-
probes: number;
|
|
762
|
-
/**
|
|
763
|
-
* When the CURRENT open window opened (epoch ms): set once at the open
|
|
764
|
-
* transition and never moved by a re-arm (a counted failure moves
|
|
765
|
-
* `openedAt` from now, but not this); null while closed. OPTIONAL: a store
|
|
766
|
-
* that never persists it (or an older build re-arming a shared entry)
|
|
767
|
-
* leaves the probe unpinned — the pre-#271 behaviour. A probe's
|
|
768
|
-
* settlement is pinned to it: a probe admitted in a different window
|
|
769
|
-
* (the entry was deleted on close and re-created on the next open) is
|
|
770
|
-
* voided, never settled against the newer window (the #43 void
|
|
771
|
-
* precedent, window-scoped — issue #271).
|
|
772
|
-
*/
|
|
773
|
-
windowOpenedAt?: number | null;
|
|
774
|
-
}
|
|
775
|
-
/**
|
|
776
|
-
* Per-host breaker state: the SAME get/set/delete shape as `CooldownStore`
|
|
777
|
-
* (`src/cooldown.ts`), over the richer `CircuitBreakerState` (a single
|
|
778
|
-
* deadline number cannot hold a state machine + counters).
|
|
779
|
-
*/
|
|
780
|
-
interface CircuitBreakerStore {
|
|
781
|
-
/** The host's state, or undefined when nothing is recorded for it (= closed). */
|
|
782
|
-
get(hostKey: string): CircuitBreakerState | undefined;
|
|
783
|
-
/** Store (or replace) the host's state. */
|
|
784
|
-
set(hostKey: string, state: CircuitBreakerState): void;
|
|
785
|
-
/** Delete the host's entry (close reset, a healthy host leaves no trace). */
|
|
786
|
-
delete(hostKey: string): void;
|
|
787
|
-
}
|
|
788
|
-
/** Counted-failure window: "5 failures in 10 s" (the prior-art default). */
|
|
789
|
-
declare const DEFAULT_CIRCUIT_BREAKER_WINDOW_MS = 10000;
|
|
790
|
-
/** Counted failures inside the window that open the circuit. */
|
|
791
|
-
declare const DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD = 5;
|
|
792
|
-
/** How long the circuit stays open before the half-open probes. */
|
|
793
|
-
declare const DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS = 30000;
|
|
794
|
-
/** Probe successes that close the circuit. */
|
|
795
|
-
declare const DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE = 2;
|
|
796
|
-
/** Entry cap of the default in-memory store. */
|
|
797
|
-
declare const DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES = 1024;
|
|
798
|
-
/**
|
|
799
|
-
* The default in-memory store: a capped Map, evicting the entry with the
|
|
800
|
-
* OLDEST last-activity first when full (failing open — the longest-idle
|
|
801
|
-
* host goes; an actively failing or an open host keeps its state).
|
|
802
|
-
* Last-activity = `openedAt` when armed, else the newest `failures`
|
|
803
|
-
* timestamp (a closed entry always carries >= 1 failure).
|
|
804
|
-
*/
|
|
805
|
-
declare class InMemoryCircuitBreakerStore implements CircuitBreakerStore {
|
|
806
|
-
private readonly maxEntries;
|
|
807
|
-
private readonly states;
|
|
808
|
-
constructor(maxEntries?: number);
|
|
809
|
-
get(hostKey: string): CircuitBreakerState | undefined;
|
|
810
|
-
set(hostKey: string, state: CircuitBreakerState): void;
|
|
811
|
-
delete(hostKey: string): void;
|
|
812
|
-
/** Drop every entry (test helper surface; also used by resetDefaultCircuitBreakerStore). */
|
|
813
|
-
clear(): void;
|
|
814
|
-
}
|
|
815
|
-
/** The default in-process store, created on first call. */
|
|
816
|
-
declare function defaultCircuitBreakerStore(): CircuitBreakerStore;
|
|
817
|
-
/** Reset helper for tests: clears the shared default store. */
|
|
818
|
-
declare function resetDefaultCircuitBreakerStore(): void;
|
|
819
|
-
/**
|
|
820
|
-
* The breaker key: the lowercased HOST of the (normalised) base URL —
|
|
821
|
-
* host-only (issue #26's "per-host keying"; decision: vendor health is
|
|
822
|
-
* host-scoped, not credential-scoped). A host can never contain `@` or
|
|
823
|
-
* `:`-ambiguity beyond the standard `host:port` form; impersonation (a
|
|
824
|
-
* header, not key material) does not change it. The same derivation as
|
|
825
|
-
* `buildTenantKey`'s host part (`src/cooldown.ts`).
|
|
826
|
-
*/
|
|
827
|
-
declare function buildBreakerKey(baseUrl: string): string;
|
|
828
|
-
/**
|
|
829
|
-
* The DEFAULT failure predicate (injectable via
|
|
830
|
-
* `config.circuitBreaker.isFailure`): what counts against the circuit.
|
|
831
|
-
* Counts exactly — `NETWORK_ERROR`, `TIMEOUT`, a vendor 429 (by STATUS: a
|
|
832
|
-
* surfaced 429 may carry an adopted vendor machine code as its stable
|
|
833
|
-
* code, e.g. the thread-threshold `Itgenatr005`), a 5xx EXCEPT the
|
|
834
|
-
* deterministic field-validation 500 (#23's `details.deterministic`
|
|
835
|
-
* signal — by that signal only), and `UNEXPECTED_CONTENT_TYPE` (the #24
|
|
836
|
-
* maintenance page, by code). Never counts: `ABORTED`, any 4xx, a
|
|
837
|
-
* local/policy refusal (`notSent` — a local refusal, the cooldown's or the
|
|
838
|
-
* breaker's own, never reached the vendor), or `INVALID_RESPONSE` (the
|
|
839
|
-
* W-A7 shape-drift / #13 marker-recovery key).
|
|
840
|
-
*/
|
|
841
|
-
declare function isBreakerFailure(err: AutotaskError): boolean;
|
|
842
|
-
|
|
843
|
-
/**
|
|
844
|
-
* Per-tenant 429 cooldown gate (issue #6).
|
|
845
|
-
*
|
|
846
|
-
* Once the transport has used up its retries on a 429 (or the Retry-After is
|
|
847
|
-
* too long to wait, or the method is non-retriable), the vendor has said
|
|
848
|
-
* "stop" — but an agent that repeats the same calls within seconds keeps
|
|
849
|
-
* hitting a tenant that is already over its threshold, and the repeats can
|
|
850
|
-
* prolong the throttle. The gate remembers the cooldown DEADLINE per tenant
|
|
851
|
-
* (lowercased username + lowercased host; impersonation does not change the
|
|
852
|
-
* key) and fails every further call for that tenant LOCALLY — a typed
|
|
853
|
-
* `RateLimitError` with `notSent: true`, zero upstream calls — until the
|
|
854
|
-
* deadline passes.
|
|
855
|
-
*
|
|
856
|
-
* Defaults (decisions from the issue): ON by default with a 15-minute hard
|
|
857
|
-
* cap; `Retry-After` missing or unparseable -> a 60-second window; the
|
|
858
|
-
* thread-threshold 429 (vendor code `Itgenatr005`, clears in seconds) arms
|
|
859
|
-
* only a short window: min(Retry-After, 10 s), default 5 s. A 2xx from a
|
|
860
|
-
* call that got through clears the gate early; expiry is lazy (the first
|
|
861
|
-
* call after the deadline deletes the entry and proceeds); a hostile
|
|
862
|
-
* Retry-After is clamped to the cap, so a lock-out is always bounded.
|
|
863
|
-
*
|
|
864
|
-
* Store: the default is the in-process in-memory map shared by every client
|
|
865
|
-
* instance (entries capped at 1024, evicting the EARLIEST deadline first —
|
|
866
|
-
* failing open; a tenant that keeps 429-ing keeps its fresh deadline). The
|
|
867
|
-
* default store is deliberately NOT anchored on globalThis: a process that
|
|
868
|
-
* loads both the ESM and the CJS build gets one map per build — inject one
|
|
869
|
-
* shared `CooldownStore` if you need cross-build sharing (the interface
|
|
870
|
-
* leaves room for a Redis-backed store). `thresholdInformation.get()`
|
|
871
|
-
* bypasses the gate so a throttled tenant can still read its own headroom
|
|
872
|
-
* (a 2xx clears; a 429 re-arms).
|
|
873
|
-
*/
|
|
874
|
-
/** One tenant's armed cooldown: get/set/delete of the deadline (epoch ms). */
|
|
875
|
-
interface CooldownStore {
|
|
876
|
-
/** The armed deadline (epoch ms) for the tenant key, or undefined when not armed. */
|
|
877
|
-
get(tenantKey: string): number | undefined;
|
|
878
|
-
/** Arm (or re-arm) the tenant's gate until `deadline` (epoch ms). */
|
|
879
|
-
set(tenantKey: string, deadline: number): void;
|
|
880
|
-
/** Delete the tenant's entry (lazy expiry, early clear on 2xx). */
|
|
881
|
-
delete(tenantKey: string): void;
|
|
882
|
-
}
|
|
883
|
-
/** Hard cap on a tenant lock-out: a hostile `Retry-After` is clamped here. */
|
|
884
|
-
declare const DEFAULT_COOLDOWN_MAX_MS: number;
|
|
885
|
-
/** Window when `Retry-After` is missing or unparseable. */
|
|
886
|
-
declare const DEFAULT_COOLDOWN_DEFAULT_MS = 60000;
|
|
887
|
-
/** Entry cap of the default in-memory store. */
|
|
888
|
-
declare const DEFAULT_COOLDOWN_MAX_ENTRIES = 1024;
|
|
889
|
-
/**
|
|
890
|
-
* The default in-memory store: a capped Map, evicting the entry with the
|
|
891
|
-
* EARLIEST deadline first when full (failing open — a tenant that keeps
|
|
892
|
-
* 429-ing keeps its fresh deadline; the soonest-to-expire entries go).
|
|
893
|
-
*/
|
|
894
|
-
declare class InMemoryCooldownStore implements CooldownStore {
|
|
895
|
-
private readonly maxEntries;
|
|
896
|
-
private readonly deadlines;
|
|
897
|
-
constructor(maxEntries?: number);
|
|
898
|
-
get(tenantKey: string): number | undefined;
|
|
899
|
-
set(tenantKey: string, deadline: number): void;
|
|
900
|
-
delete(tenantKey: string): void;
|
|
901
|
-
/** Drop every entry (test helper surface; also used by resetDefaultCooldownStore). */
|
|
902
|
-
clear(): void;
|
|
903
|
-
}
|
|
904
|
-
/** The default in-process store, created on first call. */
|
|
905
|
-
declare function defaultCooldownStore(): CooldownStore;
|
|
906
|
-
/** Reset helper for tests: clears the shared default store. */
|
|
907
|
-
declare function resetDefaultCooldownStore(): void;
|
|
908
|
-
/**
|
|
909
|
-
* The tenant key: lowercased username + `@` + lowercased host. A host can
|
|
910
|
-
* never contain `@`, so the key is unambiguous; impersonation (a header,
|
|
911
|
-
* not part of the key) does not change it.
|
|
912
|
-
*/
|
|
913
|
-
declare function buildTenantKey(userName: string, baseUrl: string): string;
|
|
914
|
-
/**
|
|
915
|
-
* The cooldown window (ms) for a 429 about to surface. `retryAfterSecs` is
|
|
916
|
-
* the parsed `Retry-After` (undefined when missing/unparseable — the parser
|
|
917
|
-
* never returns negatives). Normal 429: Retry-After clamped to `maxMs`,
|
|
918
|
-
* defaulting to `defaultMs`. Thread-threshold 429 (`Itgenatr005`): a short
|
|
919
|
-
* window — min(Retry-After, 10 s), default 5 s — it clears in seconds.
|
|
920
|
-
*/
|
|
921
|
-
declare function cooldownDurationMs(retryAfterSecs: number | undefined, opts: {
|
|
922
|
-
maxMs: number;
|
|
923
|
-
defaultMs: number;
|
|
924
|
-
threadThreshold?: boolean;
|
|
925
|
-
}): number;
|
|
926
|
-
|
|
927
439
|
/**
|
|
928
440
|
* Logger hook + credential redaction (ARCHITECTURE sections 14, 9).
|
|
929
441
|
*
|
|
@@ -994,11 +506,16 @@ interface AutotaskConfig {
|
|
|
994
506
|
* Maintenance-window auto-retry (the weekly Autotask maintenance window — the
|
|
995
507
|
* edge answers a non-JSON HTML page before the vendor application ever sees
|
|
996
508
|
* the request). The page is recognised from the first 256 bytes of the body
|
|
997
|
-
* at ANY status
|
|
998
|
-
*
|
|
999
|
-
*
|
|
1000
|
-
*
|
|
1001
|
-
*
|
|
509
|
+
* at ANY status, and it opens the zone's shared maintenance gate (issue
|
|
510
|
+
* #285, always on): while open, every other call on the zone fails at once
|
|
511
|
+
* with `MaintenanceError` (`code: 'MAINTENANCE'`, `notSent: true`), and one
|
|
512
|
+
* call per `maintenancePollMs` goes upstream as the probe; the first
|
|
513
|
+
* non-maintenance response closes the gate. The call that owns the probe
|
|
514
|
+
* slot waits `maintenancePollMs` and retries, up to this many ms from the
|
|
515
|
+
* first maintenance response. Default 3_600_000 (1 hour; the observed median
|
|
516
|
+
* window is about 2 h and the ceiling 4 h — `MAINTENANCE_WINDOW_MAX_MS`);
|
|
517
|
+
* `0` disables the wait: the call throws `MaintenanceError` at once and the
|
|
518
|
+
* gate still opens.
|
|
1002
519
|
*
|
|
1003
520
|
* A non-JSON `2xx` page applies to READS AND WRITES: it is edge-served before
|
|
1004
521
|
* execution, which is exactly the case where a bounded auto-retry is safe.
|
|
@@ -1011,7 +528,7 @@ interface AutotaskConfig {
|
|
|
1011
528
|
* is bounded per call.
|
|
1012
529
|
*/
|
|
1013
530
|
maintenanceMaxWaitMs?: number;
|
|
1014
|
-
/** Poll interval while waiting out a maintenance page. Default 30_000. */
|
|
531
|
+
/** Poll interval while waiting out a maintenance page, and the gate's probe interval. Default 30_000. */
|
|
1015
532
|
maintenancePollMs?: number;
|
|
1016
533
|
/** Optional request log sink. Default: no-op. */
|
|
1017
534
|
logger?: Logger;
|
|
@@ -1035,53 +552,15 @@ interface AutotaskConfig {
|
|
|
1035
552
|
* wait out, on a non-retriable method), further calls for that tenant
|
|
1036
553
|
* (lowercased username + lowercased host) fail LOCALLY with
|
|
1037
554
|
* `RateLimitError` (`code: 'RATE_LIMITED_COOLDOWN'`, `notSent: true`)
|
|
1038
|
-
* until the deadline passes
|
|
1039
|
-
*
|
|
1040
|
-
*
|
|
1041
|
-
*
|
|
1042
|
-
* is the in-process in-memory map shared by every client instance).
|
|
555
|
+
* until the deadline passes. `enabled: false` disables the gate; `maxMs`
|
|
556
|
+
* caps the window (default 15 minutes); `defaultMs` is the window when
|
|
557
|
+
* Retry-After is missing/unparseable (default 60 s). The state is one
|
|
558
|
+
* in-process map shared by every client.
|
|
1043
559
|
*/
|
|
1044
560
|
cooldown?: {
|
|
1045
561
|
enabled?: boolean;
|
|
1046
562
|
maxMs?: number;
|
|
1047
563
|
defaultMs?: number;
|
|
1048
|
-
store?: CooldownStore;
|
|
1049
|
-
};
|
|
1050
|
-
/**
|
|
1051
|
-
* Optional per-host circuit breaker at the transport (issue #26): OFF by
|
|
1052
|
-
* default. Counts SERVICE-FAILURE outcomes per host (the host of the
|
|
1053
|
-
* base URL — a zone outage hits every tenant on that zone, so the key is
|
|
1054
|
-
* host-only; a different tenant on a different host is unaffected, and
|
|
1055
|
-
* on a shared host one tenant's outage opens the circuit for the others
|
|
1056
|
-
* — the documented consequence of the host-only key) and, once
|
|
1057
|
-
* `failureThreshold` counted failures land inside the `failureWindowMs`
|
|
1058
|
-
* window, refuses further calls for that host LOCALLY (`CircuitBreakerError`,
|
|
1059
|
-
* `code: 'CIRCUIT_BREAKER_OPEN'`, `notSent: true`, `retryable: true`,
|
|
1060
|
-
* `retryAfter` = remaining open seconds — the deliberate divergence from
|
|
1061
|
-
* #6's `retryable: false`: the open period is bounded and advertised)
|
|
1062
|
-
* until `openTimeoutMs` passes and `successesToClose` probe successes
|
|
1063
|
-
* close it. `halfOpenProbes` bounds the probes admitted while half-open
|
|
1064
|
-
* (default `= successesToClose`; MUST be `>= successesToClose` — a
|
|
1065
|
-
* breaker that can never close is refused fail-closed at construction).
|
|
1066
|
-
* `store` injects a custom `CircuitBreakerStore` (the default is the
|
|
1067
|
-
* in-process in-memory map shared by every client instance); `isFailure`
|
|
1068
|
-
* injects the failure predicate (the default counts NETWORK_ERROR,
|
|
1069
|
-
* TIMEOUT, a vendor 429, a 5xx EXCEPT the deterministic validation 500,
|
|
1070
|
-
* and UNEXPECTED_CONTENT_TYPE — never ABORTED, a 4xx, or a local
|
|
1071
|
-
* refusal). Gated calls emit the audit event with `notSent` and consume
|
|
1072
|
-
* no `rateLimit.perHour` stamp; `thresholdInformation.get()` bypasses the
|
|
1073
|
-
* refusal (its outcome is still recorded). Timer-free: everything is
|
|
1074
|
-
* derived from `Date.now()` lazily, like the #6 cooldown.
|
|
1075
|
-
*/
|
|
1076
|
-
circuitBreaker?: {
|
|
1077
|
-
enabled?: boolean;
|
|
1078
|
-
failureWindowMs?: number;
|
|
1079
|
-
failureThreshold?: number;
|
|
1080
|
-
openTimeoutMs?: number;
|
|
1081
|
-
successesToClose?: number;
|
|
1082
|
-
halfOpenProbes?: number;
|
|
1083
|
-
store?: CircuitBreakerStore;
|
|
1084
|
-
isFailure?: (err: AutotaskError) => boolean;
|
|
1085
564
|
};
|
|
1086
565
|
/**
|
|
1087
566
|
* Bounded client-scan for resolution (section 19.2). A bare-value
|
|
@@ -1118,82 +597,31 @@ interface AutotaskConfig {
|
|
|
1118
597
|
*/
|
|
1119
598
|
redactPersonalData?: boolean;
|
|
1120
599
|
/**
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1123
|
-
*
|
|
1124
|
-
*
|
|
1125
|
-
*
|
|
1126
|
-
*
|
|
1127
|
-
*
|
|
1128
|
-
*
|
|
1129
|
-
*
|
|
1130
|
-
*
|
|
1131
|
-
*
|
|
1132
|
-
*
|
|
1133
|
-
*
|
|
1134
|
-
* resource plan key -> TTL in ms whose entries OVERRIDE the default
|
|
1135
|
-
* table per resource (operator entry > table entry > `ttlMs`); a
|
|
1136
|
-
* resource named in neither falls back to `ttlMs`. Every value is a
|
|
1137
|
-
* positive integer (validated fail-closed like `ttlMs`). The key
|
|
1138
|
-
* contract (docs section 11.15): the entry takes the override for the
|
|
1139
|
-
* plan key of the entity the read path points to — a contact read
|
|
1140
|
-
* through `tickets.getContext` expires on the contact's TTL. The
|
|
1141
|
-
* plan-derived default table (`DEFAULT_PER_RESOURCE_TTL_MS` in
|
|
1142
|
-
* `src/cache-ttl-tables.ts`, reference class 1h vs default class 5min)
|
|
1143
|
-
* IS the default per-resource map (issue #80 — applied by default, not
|
|
1144
|
-
* just a reference).
|
|
600
|
+
* The SDK's in-memory caches (issue #286), ON by default: an absent block
|
|
601
|
+
* builds them with the defaults; `cache: false` turns every channel off
|
|
602
|
+
* (every read goes to the wire). Two channels:
|
|
603
|
+
* - single-record reads (get-by-id, the id branch of `resolve`, the
|
|
604
|
+
* composite FK reads and `operations.expandResourceNames` names): `ttlMs`
|
|
605
|
+
* (default `DEFAULT_READ_CACHE_TTL_MS`, 5 min); the reference tables
|
|
606
|
+
* (`REFERENCE_ENTITIES`) live 1 h. Any real write through the client
|
|
607
|
+
* clears this channel; writes made elsewhere show up once the TTL expires.
|
|
608
|
+
* - entity field metadata: `fieldTtlMs` (default
|
|
609
|
+
* `DEFAULT_FIELD_CACHE_TTL_MS`, 5 min); a vendor drift signal drops the
|
|
610
|
+
* entity's entries.
|
|
611
|
+
* Lists, queries, counts, mutations and errors are never cached. TTLs are
|
|
612
|
+
* positive integers (ms).
|
|
1145
613
|
*/
|
|
1146
614
|
cache?: false | {
|
|
1147
615
|
ttlMs?: number;
|
|
1148
|
-
|
|
616
|
+
fieldTtlMs?: number;
|
|
1149
617
|
/**
|
|
1150
|
-
* Advanced (issue #219 N6): supply the
|
|
1151
|
-
* letting the client build one
|
|
618
|
+
* Advanced (issue #219 N6): supply the record-cache INSTANCE instead of
|
|
619
|
+
* letting the client build one. `ClientPool` shares one per tenant
|
|
1152
620
|
* across the clients it builds, so a write through any pooled client
|
|
1153
|
-
* voids
|
|
1154
|
-
*
|
|
1155
|
-
* `ReadCache` is exported from the SDK root (`import { ReadCache } from 'node-autotask'`).
|
|
621
|
+
* voids it for all of them. The instance owns its TTL: combining it
|
|
622
|
+
* with `ttlMs` refuses. `TtlCache` is exported from the SDK root.
|
|
1156
623
|
*/
|
|
1157
|
-
store?:
|
|
1158
|
-
};
|
|
1159
|
-
/**
|
|
1160
|
-
* Live field-metadata channel for the entityInformation trio
|
|
1161
|
-
* (`getEntityInfo` / `getFieldInfo` / `getUdfInfo`). ON by default
|
|
1162
|
-
* (issue #80): an ABSENT block builds the default instance
|
|
1163
|
-
* (`DEFAULT_FIELD_CACHE_TTL_MS` — 5 min — with `FIELD_CACHE_MAX_ENTITIES`);
|
|
1164
|
-
* `fieldCache: false` is the explicit opt-out (no instance — the trio
|
|
1165
|
-
* is the uncached wire path, bit-for-bit); an object merges over the
|
|
1166
|
-
* defaults. Live reads are snapshots at fetch time: a vendor drift (a
|
|
1167
|
-
* deterministic validation 500, or an INVALID_RESPONSE on a metadata
|
|
1168
|
-
* read) invalidates the entity's entries so the next call refetches;
|
|
1169
|
-
* anything the drift signals do not name shows up once `ttlMs` expires.
|
|
1170
|
-
* Field metadata only — record reads are `cache`, a different channel.
|
|
1171
|
-
* `ttlMs` must be a positive integer (ms) when present; `maxEntities`
|
|
1172
|
-
* (optional, positive integer) bounds the in-memory store.
|
|
1173
|
-
*/
|
|
1174
|
-
fieldCache?: false | {
|
|
1175
|
-
ttlMs?: number;
|
|
1176
|
-
maxEntities?: number;
|
|
1177
|
-
};
|
|
1178
|
-
/**
|
|
1179
|
-
* Resource-name channel for `operations.expandResourceNames` (issue
|
|
1180
|
-
* #65). ON by default (issue #80): an ABSENT block builds the default
|
|
1181
|
-
* instance (`DEFAULT_RESOURCE_NAME_CACHE_TTL_MS` — 1 h — with
|
|
1182
|
-
* `RESOURCE_NAME_CACHE_MAX_ENTRIES`); `resourceNameCache: false` is
|
|
1183
|
-
* the explicit opt-out (no instance, and the op is the uncached per-id
|
|
1184
|
-
* path, bit-for-bit — per-call de-duplication still applies); an
|
|
1185
|
-
* object merges over the defaults. Stores the op's name projection per
|
|
1186
|
-
* resource id (a resolved name, or the vendor's true not-found as a
|
|
1187
|
-
* blind marker — a repeat miss costs no wire); failures are never
|
|
1188
|
-
* cached. Live names are snapshots at fetch time: a `resources` write
|
|
1189
|
-
* through the same client clears the channel; a rename made elsewhere
|
|
1190
|
-
* shows up once `ttlMs` expires. `ttlMs` must be a positive integer
|
|
1191
|
-
* (ms) when present; `maxEntries` (optional, positive integer) bounds
|
|
1192
|
-
* the in-memory store.
|
|
1193
|
-
*/
|
|
1194
|
-
resourceNameCache?: false | {
|
|
1195
|
-
ttlMs?: number;
|
|
1196
|
-
maxEntries?: number;
|
|
624
|
+
store?: TtlCache;
|
|
1197
625
|
};
|
|
1198
626
|
/**
|
|
1199
627
|
* Opt-in PUT item-path fallback for updates (issue #34). OFF by default
|
|
@@ -1226,7 +654,7 @@ interface AutotaskConfig {
|
|
|
1226
654
|
* base DIFFERS from the client's live base: the client re-points its live
|
|
1227
655
|
* base URL (process-lifetime — never persisted) and retries the SAME
|
|
1228
656
|
* request ONCE against it; the re-pointed host starts with fresh per-host
|
|
1229
|
-
* transport state (no cooldown/
|
|
657
|
+
* transport state (no cooldown/maintenance-gate inheritance from the stale host).
|
|
1230
658
|
* A resolved base identical to the live one, or a discovery fault
|
|
1231
659
|
* (network / non-200 / malformed / missing `url`), propagates today's
|
|
1232
660
|
* typed 401 untouched (zero retry — the recovery must not turn a
|
|
@@ -1297,21 +725,6 @@ interface ResolvedAutotaskConfig {
|
|
|
1297
725
|
enabled: boolean;
|
|
1298
726
|
maxMs: number;
|
|
1299
727
|
defaultMs: number;
|
|
1300
|
-
store?: CooldownStore;
|
|
1301
|
-
};
|
|
1302
|
-
/**
|
|
1303
|
-
* Resolved per-host circuit breaker (final values; OFF by default). When
|
|
1304
|
-
* `enabled` is false the transport keeps no breaker state at all.
|
|
1305
|
-
*/
|
|
1306
|
-
circuitBreaker: {
|
|
1307
|
-
enabled: boolean;
|
|
1308
|
-
failureWindowMs: number;
|
|
1309
|
-
failureThreshold: number;
|
|
1310
|
-
openTimeoutMs: number;
|
|
1311
|
-
successesToClose: number;
|
|
1312
|
-
halfOpenProbes: number;
|
|
1313
|
-
store?: CircuitBreakerStore;
|
|
1314
|
-
isFailure?: (err: AutotaskError) => boolean;
|
|
1315
728
|
};
|
|
1316
729
|
/** Resolved scan caps (final values; defaults 500 records / 4 pages; scanOnMiss default false). */
|
|
1317
730
|
resolution: {
|
|
@@ -1323,12 +736,10 @@ interface ResolvedAutotaskConfig {
|
|
|
1323
736
|
onAudit?: (event: AuditEvent) => void;
|
|
1324
737
|
/** Response redaction for PII + CONFIDENTIAL fields (resolved; default true). */
|
|
1325
738
|
redactPersonalData: boolean;
|
|
1326
|
-
/** The read cache (
|
|
1327
|
-
readCache?:
|
|
1328
|
-
/** The field-metadata cache (
|
|
1329
|
-
fieldCache?:
|
|
1330
|
-
/** The resource-name cache (the default instance when `resourceNameCache` is absent; absent only for explicit `resourceNameCache: false`, issue #65). */
|
|
1331
|
-
resourceNameCache?: ResourceNameCache;
|
|
739
|
+
/** The record-read cache (absent only for `cache: false`). */
|
|
740
|
+
readCache?: TtlCache;
|
|
741
|
+
/** The field-metadata cache (absent only for `cache: false`). */
|
|
742
|
+
fieldCache?: TtlCache;
|
|
1332
743
|
/** Resolved update fallback gate (final value; OFF by default, issue #34). */
|
|
1333
744
|
update: {
|
|
1334
745
|
putFallback: boolean;
|
|
@@ -1421,16 +832,6 @@ interface RequestOptions {
|
|
|
1421
832
|
* call clears the gate; a 429 re-arms it).
|
|
1422
833
|
*/
|
|
1423
834
|
bypassCooldown?: boolean;
|
|
1424
|
-
/**
|
|
1425
|
-
* INTERNAL (SDK-only, never a caller surface): bypass the host circuit
|
|
1426
|
-
* breaker's REFUSAL for this one call (issue #26 — the #6
|
|
1427
|
-
* ThresholdInformation bypass applies). Used by
|
|
1428
|
-
* `thresholdInformation.get()` so a downed host can still be probed for
|
|
1429
|
-
* headroom. The call's outcome is still RECORDED against the circuit
|
|
1430
|
-
* (a 2xx counts toward closing; a counted failure re-arms the open
|
|
1431
|
-
* period).
|
|
1432
|
-
*/
|
|
1433
|
-
bypassCircuitBreaker?: boolean;
|
|
1434
835
|
}
|
|
1435
836
|
/**
|
|
1436
837
|
* The legacy retriable method set (kept exported for the public-surface
|
|
@@ -1443,57 +844,11 @@ interface RequestOptions {
|
|
|
1443
844
|
*/
|
|
1444
845
|
declare const IDEMPOTENT_METHODS: readonly string[];
|
|
1445
846
|
|
|
1446
|
-
/**
|
|
1447
|
-
* A short-TTL in-memory cache of the `latest` walk's count probes (lazy
|
|
1448
|
-
* purge on read; expiry is `Date.now()` based; LRU-ish eviction at the cap).
|
|
1449
|
-
* Plain `number` values only — `set` refuses a non-finite number silently
|
|
1450
|
-
* (the sentinel record never reaches it by construction; the guard keeps
|
|
1451
|
-
* the store's type honest if a caller ever does).
|
|
1452
|
-
*/
|
|
1453
|
-
declare class LatestCountCache {
|
|
1454
|
-
/** The TTL in ms. */
|
|
1455
|
-
readonly ttlMs: number;
|
|
1456
|
-
/** The entry bound (applies to STORED entries). */
|
|
1457
|
-
readonly maxEntries: number;
|
|
1458
|
-
private readonly store;
|
|
1459
|
-
/** The invalidation epoch (the `ReadCache` pattern — issue #139): bumped
|
|
1460
|
-
* by `clear()`; capture it before a wire read and pass it to `set` so a
|
|
1461
|
-
* probe in flight across a write cannot re-store its stale answer. */
|
|
1462
|
-
private epochCounter;
|
|
1463
|
-
constructor(ttlMs: number, maxEntries?: number);
|
|
1464
|
-
/** The composite key: (resource plan key, canonical filter serialisation)
|
|
1465
|
-
* — the `\u0000` separator is unencodable in a filter value, so no two
|
|
1466
|
-
* (resource, conditions) pairs collide. */
|
|
1467
|
-
static key(resourceKey: string, conditions: readonly FilterCondition[] | undefined): string;
|
|
1468
|
-
/** The live entry's count, or `undefined` (absent OR expired — an expired
|
|
1469
|
-
* entry is purged lazily on this read). */
|
|
1470
|
-
get(key: string): number | undefined;
|
|
1471
|
-
/** The invalidation epoch: bumped by `clear()`; capture it before a wire
|
|
1472
|
-
* read and pass it to `set` so a probe in flight across a write cannot
|
|
1473
|
-
* re-store its stale answer (issue #139, the `ReadCache` pattern). */
|
|
1474
|
-
get epoch(): number;
|
|
1475
|
-
/** Store a SUCCESSFUL plain-number count under `key`, live for `ttlMs`.
|
|
1476
|
-
* `epoch` is the invalidation epoch the caller captured BEFORE its wire
|
|
1477
|
-
* read: a probe that straddled a `clear()` (a write) is dropped, never
|
|
1478
|
-
* re-stored with its pre-write body (issue #139). Past the cap: purge
|
|
1479
|
-
* expired entries first, then evict the oldest-inserted (Map iteration
|
|
1480
|
-
* order = insertion order). */
|
|
1481
|
-
set(key: string, value: number, epoch?: number): void;
|
|
1482
|
-
/** Drop one entry (absent = no-op). Issue #157: the stale-LOW recovery
|
|
1483
|
-
* deletes the cached total before its one fresh wire re-probe, so the
|
|
1484
|
-
* re-probe cannot be served by the entry it is meant to replace. */
|
|
1485
|
-
delete(key: string): void;
|
|
1486
|
-
/** Clear every entry (a real write through the owning client — the
|
|
1487
|
-
* write-then-read re-fetch rule) and bump the invalidation epoch: a
|
|
1488
|
-
* `set` captured before this `clear` is discarded (issue #139). */
|
|
1489
|
-
clear(): void;
|
|
1490
|
-
}
|
|
1491
|
-
|
|
1492
847
|
/**
|
|
1493
848
|
* HttpClient — fetch transport (ARCHITECTURE section 8). Split from http.ts
|
|
1494
849
|
* (issue #166); see src/http.ts for the barrel and the behaviour summary.
|
|
1495
850
|
*
|
|
1496
|
-
* `request()` is an orchestrator over: the pre-send gates (cooldown,
|
|
851
|
+
* `request()` is an orchestrator over: the pre-send gates (cooldown, maintenance),
|
|
1497
852
|
* a per-attempt loop (`sendOnce` -> `handleSuccess` | `handleFailureStatus`
|
|
1498
853
|
* each yielding "done" or "retry"), and the settle steps (success/failure
|
|
1499
854
|
* bookkeeping, audit, cache invalidation).
|
|
@@ -1520,17 +875,10 @@ declare class HttpClient {
|
|
|
1520
875
|
readonly timeoutMs: number;
|
|
1521
876
|
/** Bounded client-scan caps for resolution (section 19.2; per-client). */
|
|
1522
877
|
readonly resolution: ResolutionCaps;
|
|
1523
|
-
/**
|
|
1524
|
-
readonly readCache:
|
|
1525
|
-
/** Field-metadata cache for the entityInformation trio (
|
|
1526
|
-
readonly fieldCache:
|
|
1527
|
-
/** Resource-name cache for `operations.expandResourceNames` (issue #80: the default instance when `resourceNameCache` is absent; undefined only when the user set `false` explicitly, issue #65). */
|
|
1528
|
-
readonly resourceNameCache: ResourceNameCache | undefined;
|
|
1529
|
-
/** The `latest` walk's count-probe cache (issue #127: the short-TTL
|
|
1530
|
-
* per-client count cache — ALWAYS on, process-internal: no config
|
|
1531
|
-
* surface, no served keys; the plain `count` op and `operations.aggregate`
|
|
1532
|
-
* bypass it by construction and promise fresh totals). */
|
|
1533
|
-
readonly latestCountCache: LatestCountCache;
|
|
878
|
+
/** Record-read cache (absent only for `cache: false`; issue #286). */
|
|
879
|
+
readonly readCache: TtlCache | undefined;
|
|
880
|
+
/** Field-metadata cache for the entityInformation trio (absent only for `cache: false`). */
|
|
881
|
+
readonly fieldCache: TtlCache | undefined;
|
|
1534
882
|
/** Resolved update fallback gate (issue #34; OFF by default). */
|
|
1535
883
|
readonly update: {
|
|
1536
884
|
putFallback: boolean;
|
|
@@ -1545,8 +893,8 @@ declare class HttpClient {
|
|
|
1545
893
|
private readonly hourly;
|
|
1546
894
|
/** FIFO semaphore bounding in-flight requests to `maxConcurrent`. */
|
|
1547
895
|
private readonly semaphore;
|
|
1548
|
-
/** Tenant 429 cooldown gate
|
|
1549
|
-
private readonly
|
|
896
|
+
/** Tenant 429 cooldown gate (issue #6; ON by default). */
|
|
897
|
+
private readonly cooldownEnabled;
|
|
1550
898
|
private readonly cooldownMaxMs;
|
|
1551
899
|
private readonly cooldownDefaultMs;
|
|
1552
900
|
/** The live base URL (issue #43 — the `baseUrl` getter's backing field;
|
|
@@ -1565,18 +913,9 @@ declare class HttpClient {
|
|
|
1565
913
|
* Gates the issue-#43 re-point target: a refused host is a discovery
|
|
1566
914
|
* fault (the original 401 propagates byte-identically, zero wire). */
|
|
1567
915
|
private readonly hostPolicy;
|
|
1568
|
-
/** The
|
|
1569
|
-
* Re-derived on a zone re-point (issue #43 — the re-pointed host starts
|
|
1570
|
-
* with fresh per-host state). */
|
|
916
|
+
/** The cooldown key (`user@host`) and the maintenance-gate key (host); re-derived on a zone re-point (issue #43). */
|
|
1571
917
|
private tenantKey;
|
|
1572
|
-
|
|
1573
|
-
* breaker is off — the default, in which case the gate/recording sites
|
|
1574
|
-
* are skipped and no store entry is ever written). */
|
|
1575
|
-
private readonly breaker;
|
|
1576
|
-
/** The breaker key for this client's host (lowercased host of the base
|
|
1577
|
-
* URL — host-only: vendor health is host-scoped, issue #26). Re-derived
|
|
1578
|
-
* on a zone re-point (issue #43). */
|
|
1579
|
-
private breakerKey;
|
|
918
|
+
private hostKey;
|
|
1580
919
|
private readonly logger;
|
|
1581
920
|
/** Response redaction policy (the INV-A1 hotfix; PII/CONFIDENTIAL default on, SECRET always).
|
|
1582
921
|
* Public read so the single dry-run envelope builder (base.ts `buildDryRunResult`)
|
|
@@ -1609,38 +948,14 @@ declare class HttpClient {
|
|
|
1609
948
|
private emitAudit;
|
|
1610
949
|
/**
|
|
1611
950
|
* Issue #43: re-point the client to the tenant's newly resolved zone
|
|
1612
|
-
* base. The
|
|
1613
|
-
*
|
|
1614
|
-
* the
|
|
1615
|
-
* the shared stores for the other clients that still talk to it; nothing
|
|
1616
|
-
* is copied across). The configured base (config.baseUrl) is untouched;
|
|
951
|
+
* base. The gate keys are RE-DERIVED, so the re-pointed host starts
|
|
952
|
+
* fresh: no cooldown/maintenance inheritance from the stale host (its
|
|
953
|
+
* entries stay for the other clients that still talk to it). The configured base (config.baseUrl) is untouched;
|
|
1617
954
|
* the LIVE base is `baseUrl` (the getter over liveBaseUrl), and the
|
|
1618
955
|
* re-point is logged (a transport fact — the success path is unchanged,
|
|
1619
956
|
* no envelope change).
|
|
1620
957
|
*/
|
|
1621
958
|
private repointZoneBase;
|
|
1622
|
-
/**
|
|
1623
|
-
* Breaker success recording (issue #26). A probe admitted on one host must
|
|
1624
|
-
* never record onto another: if the call re-pointed (issue #43) the
|
|
1625
|
-
* outcome was measured on a different host — void the probe (the admitted
|
|
1626
|
-
* budget on the original host dangles for the rest of the open period;
|
|
1627
|
-
* bounded, conservative, nothing crosses hosts).
|
|
1628
|
-
*/
|
|
1629
|
-
private recordBreakerSuccess;
|
|
1630
|
-
/** Breaker failure recording (issue #26); same host-pinning as the success recorder (issue #43). */
|
|
1631
|
-
private recordBreakerFailure;
|
|
1632
|
-
/**
|
|
1633
|
-
* Breaker probe settlement for a NON-COUNTED outcome (issue #262): the
|
|
1634
|
-
* failure predicate said the outcome is not a service failure (any 4xx,
|
|
1635
|
-
* ABORTED, EMPTY_RESPONSE, INVALID_RESPONSE, REDIRECT_BLOCKED, the
|
|
1636
|
-
* deterministic validation 500), so nothing is counted and the open
|
|
1637
|
-
* period is NOT re-armed — but the probe SETTLED, so its admitted
|
|
1638
|
-
* half-open slot is released (the contract in `circuit-breaker.ts`: every
|
|
1639
|
-
* probe completion decrements `probes`). Same host-pinning as the
|
|
1640
|
-
* recorders (issue #43): a re-pointed probe is voided, never settled
|
|
1641
|
-
* cross-host.
|
|
1642
|
-
*/
|
|
1643
|
-
private settleBreakerProbe;
|
|
1644
959
|
/** The caller's signal wins over the deadline when both fired. */
|
|
1645
960
|
private interrupted;
|
|
1646
961
|
/** A retry only runs when its wait fits inside what is left of the call budget. */
|
|
@@ -1655,28 +970,32 @@ declare class HttpClient {
|
|
|
1655
970
|
* `maintenanceMaxWaitMs` from the FIRST such response (one budget shared
|
|
1656
971
|
* by the 2xx-page and any-status sites), polling `maintenancePollMs`, a
|
|
1657
972
|
* fresh per-attempt deadline after each wait; does not consume
|
|
1658
|
-
* `maxRetries`.
|
|
1659
|
-
*
|
|
973
|
+
* `maxRetries`. Only the call that owns the zone's probe slot waits (one
|
|
974
|
+
* prober per zone); any other call gets false at once. True when a wait
|
|
975
|
+
* happened (loop again); false when the budget is spent
|
|
976
|
+
* (`maintenanceBudgetSpent` is set) or another call owns the slot.
|
|
1660
977
|
*/
|
|
1661
978
|
private waitOutMaintenance;
|
|
1662
979
|
/** The wait is a FACT for the request: stamp `details.maintenance` (and the exhaustion action) on a surfaced error. */
|
|
1663
980
|
private stampMaintenance;
|
|
1664
|
-
private auditNotSent;
|
|
1665
981
|
/**
|
|
1666
|
-
*
|
|
1667
|
-
*
|
|
1668
|
-
*
|
|
982
|
+
* Issue #285: the call itself received the maintenance page and will not
|
|
983
|
+
* (or may not) wait it out — the same typed `MAINTENANCE` the gate's
|
|
984
|
+
* refusals carry, so a consumer maps one code. Unlike a refusal the call
|
|
985
|
+
* WAS sent (`httpStatus` set, no `notSent`). A mutation answered at a
|
|
986
|
+
* non-2xx status (review F1) is not retryable: a proxy can serve that page
|
|
987
|
+
* after forwarding the write, so the outcome is unknown.
|
|
1669
988
|
*/
|
|
1670
|
-
private
|
|
989
|
+
private maintenancePageError;
|
|
990
|
+
private auditNotSent;
|
|
1671
991
|
/**
|
|
1672
|
-
*
|
|
1673
|
-
*
|
|
1674
|
-
*
|
|
1675
|
-
*
|
|
1676
|
-
*
|
|
1677
|
-
* (`bypassCircuitBreaker`) but its outcome is still recorded.
|
|
992
|
+
* The pre-send gates (OUTSIDE the retry loop, before the hourly limiter,
|
|
993
|
+
* the semaphore and fetch: a refusal makes zero fetches). The tenant 429
|
|
994
|
+
* cooldown (issue #6; `thresholdInformation.get()` bypasses it), then the
|
|
995
|
+
* zone maintenance gate (issue #285), which admits one probe per poll
|
|
996
|
+
* interval while open. An already-aborted caller still gets the abort error.
|
|
1678
997
|
*/
|
|
1679
|
-
private
|
|
998
|
+
private gate;
|
|
1680
999
|
/**
|
|
1681
1000
|
* Take the hourly slot and a semaphore permit, fetch, and read the body.
|
|
1682
1001
|
* `retry` when a network error is retriable (already waited); throws the
|
|
@@ -1737,7 +1056,7 @@ declare class HttpClient {
|
|
|
1737
1056
|
* queryBounded noteChars free-text cap (issue #61 — response-side only);
|
|
1738
1057
|
* - docs/API.md §11.7/§11.8/§11.9/§11.10/§11.11/§11.12 render the same facts.
|
|
1739
1058
|
*
|
|
1740
|
-
* planHash:
|
|
1059
|
+
* planHash: eaa2bea2d3107fffc8b10fb9efef5475e457595d585d790871bec7c221802672
|
|
1741
1060
|
*/
|
|
1742
1061
|
|
|
1743
1062
|
/** One pinned blind-surface stamp (the result-time sentinel object). */
|
|
@@ -2418,7 +1737,7 @@ declare abstract class MetaBase<T = Record<string, unknown>> extends QueryBase<T
|
|
|
2418
1737
|
protected scopedItemPath(parentId: Identifier, id: Identifier): string;
|
|
2419
1738
|
/** `GET /V1.0/<E>/entityInformation` → `{ info }` unwrapped.
|
|
2420
1739
|
* Goes through the field cache when it is present (issue #80:
|
|
2421
|
-
* default-on; `
|
|
1740
|
+
* default-on; `cache: false` = the bit-for-bit uncached wire
|
|
2422
1741
|
* path). A fresh
|
|
2423
1742
|
* (bypass + refresh) metadata read is the caller's act: drop the
|
|
2424
1743
|
* entity's entries via the fieldCache's `invalidate` first — the trio
|
|
@@ -2426,7 +1745,7 @@ declare abstract class MetaBase<T = Record<string, unknown>> extends QueryBase<T
|
|
|
2426
1745
|
getEntityInfo(): Promise<EntityInformationModel>;
|
|
2427
1746
|
/** `GET /V1.0/<E>/entityInformation/fields` → `{ fields }` unwrapped.
|
|
2428
1747
|
* Goes through the field cache when it is present (issue #80:
|
|
2429
|
-
* default-on; `
|
|
1748
|
+
* default-on; `cache: false` = the bit-for-bit uncached wire
|
|
2430
1749
|
* path). A fresh
|
|
2431
1750
|
* (bypass + refresh) metadata read is the caller's act: drop the
|
|
2432
1751
|
* entity's entries via the fieldCache's `invalidate` first — the trio
|
|
@@ -2434,7 +1753,7 @@ declare abstract class MetaBase<T = Record<string, unknown>> extends QueryBase<T
|
|
|
2434
1753
|
getFieldInfo(): Promise<FieldInformationModel[]>;
|
|
2435
1754
|
/** `GET /V1.0/<E>/entityInformation/userDefinedFields` → `{ fields }` unwrapped.
|
|
2436
1755
|
* Goes through the field cache when it is present (issue #80:
|
|
2437
|
-
* default-on; `
|
|
1756
|
+
* default-on; `cache: false` = the bit-for-bit uncached wire
|
|
2438
1757
|
* path). A fresh
|
|
2439
1758
|
* (bypass + refresh) metadata read is the caller's act: drop the
|
|
2440
1759
|
* entity's entries via the fieldCache's `invalidate` first — the trio
|
|
@@ -2469,16 +1788,16 @@ declare abstract class MetaBase<T = Record<string, unknown>> extends QueryBase<T
|
|
|
2469
1788
|
*
|
|
2470
1789
|
* Issue #36 (negative caching, the pinned hazard): the vendor's true
|
|
2471
1790
|
* not-found (the HTTP 404 or the 200 `item: null` signal — both surface
|
|
2472
|
-
* as `NotFoundError`) is stored as an ABSENT marker in the SAME
|
|
1791
|
+
* as `NotFoundError`) is stored as an ABSENT marker in the SAME read cache
|
|
2473
1792
|
* under a namespaced key the positive get path never constructs, so a
|
|
2474
1793
|
* repeat composite call serves 'absent' with zero wire for that part.
|
|
2475
|
-
* The marker expires on the READ entity's TTL (the
|
|
2476
|
-
*
|
|
2477
|
-
* cleared by any real write through the client (the
|
|
1794
|
+
* The marker expires on the READ entity's TTL (the key carries the read
|
|
1795
|
+
* path, so `readTtlFor` applies) and is
|
|
1796
|
+
* cleared by any real write through the client (the read cache clear).
|
|
2478
1797
|
* A transient fault (5xx, shape drift, network) is NEVER stored as an
|
|
2479
1798
|
* ABSENT marker — it propagates and the next call re-wires (no
|
|
2480
1799
|
* poisoning; a malformed 200 body may still land under the POSITIVE
|
|
2481
|
-
* key — pre-existing
|
|
1800
|
+
* key — pre-existing read cache behaviour, out of this mechanism's
|
|
2482
1801
|
* scope). The marker is consulted BEFORE the positive lookup, but a
|
|
2483
1802
|
* POSITIVE entry that exists alongside a live marker means a newer
|
|
2484
1803
|
* positive outcome (this client read/created the record after the
|
|
@@ -17177,4 +16496,4 @@ declare class AutotaskClient {
|
|
|
17177
16496
|
}): Promise<PromiseSettledResult<R>[]>;
|
|
17178
16497
|
}
|
|
17179
16498
|
|
|
17180
|
-
export { type BillingItemApprovalLevelSummary as $, type AutotaskConfig as A, AppointmentsResource as B, type CreateIfNotExistsResult as C, type AppointmentsResourceQueryParams as D, type ExpenseItem as E, type FilterOperator as F, type AuditEvent as G, type Holiday as H, type Identifier as I, type AuthTokenResultModel as J, AuthenticateResource as K, AutotaskConfigError as L, type AutotaskVersionResultModel as M, type BillingCode as N, type OperationResult as O, type PagingModel as P, type QueryParams as Q, ReadCache as R, type BillingCodeCreate as S, type TicketAdditionalConfigurationItem as T, type BillingCodeSummary as U, type BillingCodeUpdate as V, BillingCodesResource as W, type BillingCodesResourceQueryParams as X, type BillingItemApprovalLevel as Y, type ZoneName as Z, type BillingItemApprovalLevelCreate as _, AutotaskClient as a, type CompanySiteConfigurationsUpdate as a$, type BillingItemApprovalLevelUpdate as a0, BillingItemApprovalLevelsResource as a1, type BillingItemApprovalLevelsResourceQueryParams as a2, type BillingItems as a3, type BillingItemsCreate as a4, BillingItemsResource as a5, type BillingItemsResourceQueryParams as a6, type BillingItemsSummary as a7, type BillingItemsUpdate as a8, CREDENTIAL_HEADER_NAMES as a9, type CompaniesResourceQueryParams as aA, type Company as aB, type CompanyAlert as aC, type CompanyAlertCreate as aD, type CompanyAlertSummary as aE, type CompanyAlertUpdate as aF, CompanyAlertsResource as aG, type CompanyAlertsResourceQueryParams as aH, type CompanyContext as aI, type CompanyCreate as aJ, type CompanyLocation as aK, type CompanyLocationCreate as aL, type CompanyLocationSummary as aM, type CompanyLocationUpdate as aN, CompanyLocationsResource as aO, type CompanyLocationsResourceQueryParams as aP, type CompanyNote as aQ, type CompanyNoteCreate as aR, type CompanyNoteSummary as aS, type CompanyNoteUpdate as aT, CompanyNotesResource as aU, type CompanyNotesResourceQueryParams as aV, type CompanySiteConfigurations as aW, type CompanySiteConfigurationsCreate as aX, CompanySiteConfigurationsResource as aY, type CompanySiteConfigurationsResourceQueryParams as aZ, type CompanySiteConfigurationsSummary as a_, type ChangeRequestLinkCreate as aa, type ChangeRequestLinkSummary as ab, type ChangeRequestLinkUpdate as ac, ChangeRequestLinksResource as ad, type ChangeRequestLinksResourceQueryParams as ae, ChecklistLibrariesResource as af, type ChecklistLibrariesResourceQueryParams as ag, type ChecklistLibrary as ah, type ChecklistLibraryChecklistItem as ai, type ChecklistLibraryChecklistItemCreate as aj, type ChecklistLibraryChecklistItemSummary as ak, type ChecklistLibraryChecklistItemUpdate as al, ChecklistLibraryChecklistItemsResource as am, type ChecklistLibraryChecklistItemsResourceQueryParams as an, type ChecklistLibraryCreate as ao, type ChecklistLibrarySummary as ap, type ChecklistLibraryUpdate as aq, type CircuitBreakerState as ar, type CircuitBreakerStore as as, type ClassificationIcon as at, type ClassificationIconCreate as au, type ClassificationIconSummary as av, type ClassificationIconUpdate as aw, ClassificationIconsResource as ax, type ClassificationIconsResourceQueryParams as ay, CompaniesResource as az, AutotaskError as b, type ConfigurationItemWebhookSummary as b$, type CompanySummary as b0, type CompanyUpdate as b1, type CompanyWebhook as b2, type CompanyWebhookCreate as b3, type CompanyWebhookSummary as b4, type CompanyWebhookUpdate as b5, CompanyWebhooksResource as b6, type CompanyWebhooksResourceQueryParams as b7, type ConfigProfile as b8, type ConfigurationItemBillingProductAssociations as b9, type ConfigurationItemNoteCreate as bA, type ConfigurationItemNoteSummary as bB, type ConfigurationItemNoteUpdate as bC, ConfigurationItemNotesResource as bD, type ConfigurationItemNotesResourceQueryParams as bE, type ConfigurationItemRelatedItem as bF, type ConfigurationItemRelatedItemCreate as bG, type ConfigurationItemRelatedItemSummary as bH, type ConfigurationItemRelatedItemUpdate as bI, ConfigurationItemRelatedItemsResource as bJ, type ConfigurationItemRelatedItemsResourceQueryParams as bK, type ConfigurationItemSslSubjectAlternativeName as bL, type ConfigurationItemSslSubjectAlternativeNameCreate as bM, type ConfigurationItemSslSubjectAlternativeNameSummary as bN, type ConfigurationItemSslSubjectAlternativeNameUpdate as bO, ConfigurationItemSslSubjectAlternativeNamesResource as bP, type ConfigurationItemSslSubjectAlternativeNamesResourceQueryParams as bQ, type ConfigurationItemSummary as bR, type ConfigurationItemType as bS, type ConfigurationItemTypeCreate as bT, type ConfigurationItemTypeSummary as bU, type ConfigurationItemTypeUpdate as bV, ConfigurationItemTypesResource as bW, type ConfigurationItemTypesResourceQueryParams as bX, type ConfigurationItemUpdate as bY, type ConfigurationItemWebhook as bZ, type ConfigurationItemWebhookCreate as b_, type ConfigurationItemBillingProductAssociationsCreate as ba, ConfigurationItemBillingProductAssociationsResource as bb, type ConfigurationItemBillingProductAssociationsResourceQueryParams as bc, type ConfigurationItemBillingProductAssociationsSummary as bd, type ConfigurationItemBillingProductAssociationsUpdate as be, ConfigurationItemCategoriesResource as bf, type ConfigurationItemCategoriesResourceQueryParams as bg, type ConfigurationItemCategory as bh, type ConfigurationItemCategoryCreate as bi, type ConfigurationItemCategorySummary as bj, type ConfigurationItemCategoryUdfAssociation as bk, type ConfigurationItemCategoryUdfAssociationCreate as bl, type ConfigurationItemCategoryUdfAssociationSummary as bm, type ConfigurationItemCategoryUdfAssociationUpdate as bn, ConfigurationItemCategoryUdfAssociationsResource as bo, type ConfigurationItemCategoryUdfAssociationsResourceQueryParams as bp, type ConfigurationItemCategoryUpdate as bq, type ConfigurationItemContext as br, type ConfigurationItemCreate as bs, type ConfigurationItemDnsRecord as bt, type ConfigurationItemDnsRecordCreate as bu, type ConfigurationItemDnsRecordSummary as bv, type ConfigurationItemDnsRecordUpdate as bw, ConfigurationItemDnsRecordsResource as bx, type ConfigurationItemDnsRecordsResourceQueryParams as by, type ConfigurationItemNote as bz, type AutotaskErrorOptions as c, type ContractExclusionRolesResourceQueryParams as c$, type ConfigurationItemWebhookUpdate as c0, ConfigurationItemWebhooksResource as c1, type ConfigurationItemWebhooksResourceQueryParams as c2, ConfigurationItemsResource as c3, type ConfigurationItemsResourceQueryParams as c4, type Contact as c5, type ContactContext as c6, type ContactCreate as c7, type ContactGroupContacts as c8, type ContactGroupContactsCreate as c9, type ContractBlock as cA, type ContractBlockCreate as cB, type ContractBlockHourFactor as cC, type ContractBlockHourFactorCreate as cD, type ContractBlockHourFactorSummary as cE, type ContractBlockHourFactorUpdate as cF, ContractBlockHourFactorsResource as cG, type ContractBlockHourFactorsResourceQueryParams as cH, type ContractBlockSummary as cI, type ContractBlockUpdate as cJ, ContractBlocksResource as cK, type ContractBlocksResourceQueryParams as cL, type ContractChargeCreate as cM, type ContractChargeSummary as cN, type ContractChargeUpdate as cO, ContractChargesResource as cP, type ContractChargesResourceQueryParams as cQ, type ContractCreate as cR, type ContractExclusionBillingCode as cS, type ContractExclusionBillingCodeCreate as cT, type ContractExclusionBillingCodeSummary as cU, type ContractExclusionBillingCodeUpdate as cV, ContractExclusionBillingCodesResource as cW, type ContractExclusionBillingCodesResourceQueryParams as cX, type ContractExclusionRoles as cY, type ContractExclusionRolesCreate as cZ, ContractExclusionRolesResource as c_, ContactGroupContactsResource as ca, type ContactGroupContactsResourceQueryParams as cb, type ContactGroupContactsSummary as cc, type ContactGroupContactsUpdate as cd, type ContactGroups as ce, type ContactGroupsCreate as cf, ContactGroupsResource as cg, type ContactGroupsResourceQueryParams as ch, type ContactGroupsSummary as ci, type ContactGroupsUpdate as cj, type ContactSummary as ck, type ContactUpdate as cl, type ContactWebhook as cm, type ContactWebhookCreate as cn, type ContactWebhookSummary as co, type ContactWebhookUpdate as cp, ContactWebhooksResource as cq, type ContactWebhooksResourceQueryParams as cr, ContactsResource as cs, type ContactsResourceQueryParams as ct, type ContractBillingRule as cu, type ContractBillingRuleCreate as cv, type ContractBillingRuleSummary as cw, type ContractBillingRuleUpdate as cx, ContractBillingRulesResource as cy, type ContractBillingRulesResourceQueryParams as cz, type ResolvedAutotaskConfig as d, type ContractServiceBundleAdjustmentsResourceQueryParams as d$, type ContractExclusionRolesSummary as d0, type ContractExclusionRolesUpdate as d1, type ContractExclusionSetExcludedRoles as d2, type ContractExclusionSetExcludedRolesCreate as d3, ContractExclusionSetExcludedRolesResource as d4, type ContractExclusionSetExcludedRolesResourceQueryParams as d5, type ContractExclusionSetExcludedRolesSummary as d6, type ContractExclusionSetExcludedRolesUpdate as d7, type ContractExclusionSetExcludedWorkTypes as d8, type ContractExclusionSetExcludedWorkTypesCreate as d9, type ContractRateUpdate as dA, ContractRatesResource as dB, type ContractRatesResourceQueryParams as dC, type ContractRetainers as dD, type ContractRetainersCreate as dE, ContractRetainersResource as dF, type ContractRetainersResourceQueryParams as dG, type ContractRetainersSummary as dH, type ContractRetainersUpdate as dI, type ContractRoleCosts as dJ, type ContractRoleCostsCreate as dK, ContractRoleCostsResource as dL, type ContractRoleCostsResourceQueryParams as dM, type ContractRoleCostsSummary as dN, type ContractRoleCostsUpdate as dO, type ContractServiceAdjustment as dP, type ContractServiceAdjustmentCreate as dQ, type ContractServiceAdjustmentSummary as dR, type ContractServiceAdjustmentUpdate as dS, ContractServiceAdjustmentsResource as dT, type ContractServiceAdjustmentsResourceQueryParams as dU, type ContractServiceBundle as dV, type ContractServiceBundleAdjustment as dW, type ContractServiceBundleAdjustmentCreate as dX, type ContractServiceBundleAdjustmentSummary as dY, type ContractServiceBundleAdjustmentUpdate as dZ, ContractServiceBundleAdjustmentsResource as d_, ContractExclusionSetExcludedWorkTypesResource as da, type ContractExclusionSetExcludedWorkTypesResourceQueryParams as db, type ContractExclusionSetExcludedWorkTypesSummary as dc, type ContractExclusionSetExcludedWorkTypesUpdate as dd, type ContractExclusionSets as de, type ContractExclusionSetsCreate as df, ContractExclusionSetsResource as dg, type ContractExclusionSetsResourceQueryParams as dh, type ContractExclusionSetsSummary as di, type ContractExclusionSetsUpdate as dj, type ContractMilestone as dk, type ContractMilestoneCreate as dl, type ContractMilestoneSummary as dm, type ContractMilestoneUpdate as dn, ContractMilestonesResource as dp, type ContractMilestonesResourceQueryParams as dq, type ContractNote as dr, type ContractNoteCreate as ds, type ContractNoteSummary as dt, type ContractNoteUpdate as du, ContractNotesResource as dv, type ContractNotesResourceQueryParams as dw, type ContractRate as dx, type ContractRateCreate as dy, type ContractRateSummary as dz, type RequestOptions as e, type DomainRegistrar as e$, type ContractServiceBundleCreate as e0, type ContractServiceBundleSummary as e1, type ContractServiceBundleUnit as e2, type ContractServiceBundleUnitCreate as e3, type ContractServiceBundleUnitSummary as e4, type ContractServiceBundleUnitUpdate as e5, ContractServiceBundleUnitsResource as e6, type ContractServiceBundleUnitsResourceQueryParams as e7, type ContractServiceBundleUpdate as e8, ContractServiceBundlesResource as e9, type CountriesResourceQueryParams as eA, type Country as eB, type CountryCreate as eC, type CountrySummary as eD, type CountryUpdate as eE, CurrenciesResource as eF, type CurrenciesResourceQueryParams as eG, type Currency as eH, type CurrencyCreate as eI, type CurrencySummary as eJ, type CurrencyUpdate as eK, DEFAULT_CIRCUIT_BREAKER_FAILURE_THRESHOLD as eL, DEFAULT_CIRCUIT_BREAKER_MAX_ENTRIES as eM, DEFAULT_CIRCUIT_BREAKER_OPEN_TIMEOUT_MS as eN, DEFAULT_CIRCUIT_BREAKER_SUCCESSES_TO_CLOSE as eO, DEFAULT_CIRCUIT_BREAKER_WINDOW_MS as eP, DEFAULT_COOLDOWN_DEFAULT_MS as eQ, DEFAULT_COOLDOWN_MAX_ENTRIES as eR, DEFAULT_COOLDOWN_MAX_MS as eS, DEFAULT_ZONE as eT, type Department as eU, type DepartmentCreate as eV, type DepartmentSummary as eW, type DepartmentUpdate as eX, DepartmentsResource as eY, type DepartmentsResourceQueryParams as eZ, type DocumentChecklistLibrary as e_, type ContractServiceBundlesResourceQueryParams as ea, type ContractServiceCreate as eb, type ContractServiceSummary as ec, type ContractServiceUnit as ed, type ContractServiceUnitCreate as ee, type ContractServiceUnitSummary as ef, type ContractServiceUnitUpdate as eg, ContractServiceUnitsResource as eh, type ContractServiceUnitsResourceQueryParams as ei, type ContractServiceUpdate as ej, ContractServicesResource as ek, type ContractServicesResourceQueryParams as el, type ContractSummary as em, type ContractTicketPurchases as en, type ContractTicketPurchasesCreate as eo, ContractTicketPurchasesResource as ep, type ContractTicketPurchasesResourceQueryParams as eq, type ContractTicketPurchasesSummary as er, type ContractTicketPurchasesUpdate as es, type ContractUpdate as et, type ContractsProfitabilityResult as eu, ContractsResource as ev, type ContractsResourceQueryParams as ew, type CooldownStore as ex, type CostRateResolution as ey, CountriesResource as ez, type FilterCondition as f, type InvoiceTemplateSummary as f$, type DomainRegistrarCreate as f0, type DomainRegistrarSummary as f1, type DomainRegistrarUpdate as f2, DomainRegistrarsResource as f3, type DomainRegistrarsResourceQueryParams as f4, type DryRunResult as f5, type EmptyReasonInfo as f6, type EmptyReasonKind as f7, type EntityInformationModel as f8, EntityInformationResource as f9, type HolidaySetCreate as fA, type HolidaySetSummary as fB, type HolidaySetUpdate as fC, HolidaySetsResource as fD, type HolidaySetsResourceQueryParams as fE, type HolidaySummary as fF, type HolidayUpdate as fG, HolidaysResource as fH, type HolidaysResourceQueryParams as fI, HttpClient as fJ, IDEMPOTENT_METHODS as fK, InMemoryCircuitBreakerStore as fL, InMemoryCooldownStore as fM, type InventoryProduct as fN, type InventoryProductCreate as fO, type InventoryProductSummary as fP, type InventoryProductUpdate as fQ, InventoryProductsResource as fR, type InventoryProductsResourceQueryParams as fS, type InventoryStockedItemAdd as fT, type InventoryStockedItemRemove as fU, type InventoryStockedItemTransfer as fV, type Invoice as fW, type InvoiceCreate as fX, type InvoiceSummary as fY, type InvoiceTemplate as fZ, type InvoiceTemplateCreate as f_, type EntityInformationResultModel as fa, type ErrorCategory as fb, type ErrorIdRef as fc, type ExpenseItemAttachment as fd, type ExpenseItemAttachmentCreate as fe, type ExpenseItemAttachmentSummary as ff, type ExpenseItemAttachmentUpdate as fg, ExpenseItemAttachmentsResource as fh, type ExpenseItemAttachmentsResourceQueryParams as fi, type ExpenseItemCreate as fj, type ExpenseItemSummary as fk, type ExpenseItemUpdate as fl, ExpenseItemsResource as fm, type ExpenseItemsResourceQueryParams as fn, type ExpenseReport as fo, type ExpenseReportCreate as fp, type ExpenseReportSummary as fq, type ExpenseReportUpdate as fr, ExpenseReportsResource as fs, type ExpenseReportsResourceQueryParams as ft, type Field as fu, type FieldDiff as fv, type FieldInformationModel as fw, type FilterValue as fx, type GlobalEntityInformationResultModel as fy, type HolidayCreate as fz, type Filter as g, type PhasesResourceQueryParams as g$, type InvoiceTemplateUpdate as g0, InvoiceTemplatesResource as g1, type InvoiceTemplatesResourceQueryParams as g2, type InvoiceUpdate as g3, InvoicesResource as g4, type InvoicesResourceQueryParams as g5, type KeyValuePair as g6, type Logger as g7, MAX_PAGES as g8, type ModuleAccessResultModel as g9, type OpportunityUpdate as gA, type OrganizationalLevel1 as gB, type OrganizationalLevel1Create as gC, type OrganizationalLevel1Summary as gD, type OrganizationalLevel1Update as gE, OrganizationalLevel1sResource as gF, type OrganizationalLevel1sResourceQueryParams as gG, type OrganizationalLevel2 as gH, type OrganizationalLevel2Create as gI, type OrganizationalLevel2Summary as gJ, type OrganizationalLevel2Update as gK, OrganizationalLevel2sResource as gL, type OrganizationalLevel2sResourceQueryParams as gM, type OrganizationalLevelAssociation as gN, type OrganizationalLevelAssociationCreate as gO, type OrganizationalLevelAssociationSummary as gP, type OrganizationalLevelAssociationUpdate as gQ, OrganizationalLevelAssociationsResource as gR, type OrganizationalLevelAssociationsResourceQueryParams as gS, type Page as gT, type PageFetcher as gU, type PaginateOptions as gV, type Phase as gW, type PhaseCreate as gX, type PhaseSummary as gY, type PhaseUpdate as gZ, PhasesResource as g_, ModulesResource as ga, NoopLogger as gb, type NotificationHistory as gc, type NotificationHistoryCreate as gd, NotificationHistoryResource as ge, type NotificationHistoryResourceQueryParams as gf, type NotificationHistorySummary as gg, type NotificationHistoryUpdate as gh, type OperationMetadata as gi, type OperationShapeDrift as gj, OpportunitiesResource as gk, type OpportunitiesResourceQueryParams as gl, type OpportunityAttachment as gm, type OpportunityAttachmentCreate as gn, type OpportunityAttachmentSummary as go, type OpportunityAttachmentUpdate as gp, OpportunityAttachmentsResource as gq, type OpportunityAttachmentsResourceQueryParams as gr, OpportunityCategoriesResource as gs, type OpportunityCategoriesResourceQueryParams as gt, type OpportunityCategory as gu, type OpportunityCategoryCreate as gv, type OpportunityCategorySummary as gw, type OpportunityCategoryUpdate as gx, type OpportunityCreate as gy, type OpportunitySummary as gz, type ChangeRequestLink as h, PurchaseOrdersResource as h$, type PickListValue as h0, type Product as h1, type ProductCreate as h2, type ProductSummary as h3, type ProductUpdate as h4, type ProductVendors as h5, type ProductVendorsCreate as h6, ProductVendorsResource as h7, type ProductVendorsResourceQueryParams as h8, type ProductVendorsSummary as h9, type ProjectNoteUpdate as hA, ProjectNotesResource as hB, type ProjectNotesResourceQueryParams as hC, type ProjectSummary as hD, type ProjectUpdate as hE, ProjectsResource as hF, type ProjectsResourceQueryParams as hG, type PurchaseApprovals as hH, type PurchaseApprovalsCreate as hI, PurchaseApprovalsResource as hJ, type PurchaseApprovalsResourceQueryParams as hK, type PurchaseApprovalsSummary as hL, type PurchaseApprovalsUpdate as hM, type PurchaseOrderItemReceiving as hN, type PurchaseOrderItemReceivingCreate as hO, PurchaseOrderItemReceivingResource as hP, type PurchaseOrderItemReceivingResourceQueryParams as hQ, type PurchaseOrderItemReceivingSummary as hR, type PurchaseOrderItemReceivingUpdate as hS, type PurchaseOrderItems as hT, type PurchaseOrderItemsCreate as hU, PurchaseOrderItemsResource as hV, type PurchaseOrderItemsResourceQueryParams as hW, type PurchaseOrderItemsSummary as hX, type PurchaseOrderItemsUpdate as hY, type PurchaseOrders as hZ, type PurchaseOrdersCreate as h_, type ProductVendorsUpdate as ha, ProductsResource as hb, type ProductsResourceQueryParams as hc, type ProfitRateSource as hd, type ProfitabilityActivityCategory as he, type ProfitabilityDataQualityWarning as hf, type ProfitabilityHighestCostTicket as hg, type ProfitabilityLabourCostMethod as hh, type ProfitabilityMiscoding as hi, type ProfitabilityMonthlyRow as hj, type ProfitabilityOpenRenewalItem as hk, type ProfitabilityOptions as hl, type ProfitabilityPart as hm, type ProfitabilityPartDigest as hn, type ProfitabilityRevenueByType as ho, type Project as hp, type ProjectChargeCreate as hq, type ProjectChargeSummary as hr, type ProjectChargeUpdate as hs, ProjectChargesResource as ht, type ProjectChargesResourceQueryParams as hu, type ProjectContext as hv, type ProjectCreate as hw, type ProjectNote as hx, type ProjectNoteCreate as hy, type ProjectNoteSummary as hz, type ConfigurationItem as i, type ResourceTimeOffApproverUpdate as i$, type PurchaseOrdersResourceQueryParams as i0, type PurchaseOrdersSummary as i1, type PurchaseOrdersUpdate as i2, type Quote as i3, type QuoteCreate as i4, type QuoteItem as i5, type QuoteItemCreate as i6, type QuoteItemSummary as i7, type QuoteItemUpdate as i8, QuoteItemsResource as i9, type ResourceRoleCreate as iA, type ResourceRoleQueue as iB, type ResourceRoleQueueCreate as iC, type ResourceRoleQueueSummary as iD, type ResourceRoleQueueUpdate as iE, ResourceRoleQueuesResource as iF, type ResourceRoleQueuesResourceQueryParams as iG, type ResourceRoleSummary as iH, type ResourceRoleUpdate as iI, ResourceRolesResource as iJ, type ResourceRolesResourceQueryParams as iK, type ResourceSkill as iL, type ResourceSkillCreate as iM, type ResourceSkillSummary as iN, type ResourceSkillUpdate as iO, ResourceSkillsResource as iP, type ResourceSkillsResourceQueryParams as iQ, type ResourceSummary as iR, type ResourceTimeOffAdditional as iS, type ResourceTimeOffAdditionalCreate as iT, ResourceTimeOffAdditionalResource as iU, type ResourceTimeOffAdditionalResourceQueryParams as iV, type ResourceTimeOffAdditionalSummary as iW, type ResourceTimeOffAdditionalUpdate as iX, type ResourceTimeOffApprover as iY, type ResourceTimeOffApproverCreate as iZ, type ResourceTimeOffApproverSummary as i_, type QuoteItemsResourceQueryParams as ia, type QuoteLocation as ib, type QuoteLocationCreate as ic, type QuoteLocationSummary as id, type QuoteLocationUpdate as ie, QuoteLocationsResource as ig, type QuoteLocationsResourceQueryParams as ih, type QuoteSummary as ii, type QuoteTemplate as ij, type QuoteTemplateCreate as ik, type QuoteTemplateSummary as il, type QuoteTemplateUpdate as im, QuoteTemplatesResource as io, type QuoteTemplatesResourceQueryParams as ip, type QuoteUpdate as iq, QuotesResource as ir, type QuotesResourceQueryParams as is, READ_CACHE_MAX_ENTRIES as it, REDACTED as iu, type Resolution as iv, type ResolutionCaps as iw, type Resource as ix, type ResourceCreate as iy, type ResourceRole as iz, type ContractCharge as j, ServicesResource as j$, ResourceTimeOffApproversResource as j0, type ResourceTimeOffApproversResourceQueryParams as j1, type ResourceTimeOffBalance as j2, type ResourceTimeOffBalanceCreate as j3, type ResourceTimeOffBalanceSummary as j4, type ResourceTimeOffBalanceUpdate as j5, ResourceTimeOffBalancesResource as j6, type ResourceTimeOffBalancesResourceQueryParams as j7, type ResourceUpdate as j8, ResourcesResource as j9, type ServiceCallTaskUpdate as jA, ServiceCallTasksResource as jB, type ServiceCallTasksResourceQueryParams as jC, type ServiceCallTicket as jD, type ServiceCallTicketCreate as jE, type ServiceCallTicketResource as jF, type ServiceCallTicketResourceCreate as jG, type ServiceCallTicketResourceSummary as jH, type ServiceCallTicketResourceUpdate as jI, ServiceCallTicketResourcesResource as jJ, type ServiceCallTicketResourcesResourceQueryParams as jK, type ServiceCallTicketSummary as jL, type ServiceCallTicketUpdate as jM, ServiceCallTicketsResource as jN, type ServiceCallTicketsResourceQueryParams as jO, type ServiceCallUpdate as jP, ServiceCallsResource as jQ, type ServiceCallsResourceQueryParams as jR, type ServiceCreate as jS, type ServiceLevelAgreementResults as jT, type ServiceLevelAgreementResultsCreate as jU, ServiceLevelAgreementResultsResource as jV, type ServiceLevelAgreementResultsResourceQueryParams as jW, type ServiceLevelAgreementResultsSummary as jX, type ServiceLevelAgreementResultsUpdate as jY, type ServiceSummary as jZ, type ServiceUpdate as j_, type ResourcesResourceQueryParams as ja, type Role as jb, type RoleCreate as jc, type RoleSummary as jd, type RoleUpdate as je, RolesResource as jf, type RolesResourceQueryParams as jg, type SalesOrder as jh, type SalesOrderCreate as ji, type SalesOrderSummary as jj, type SalesOrderUpdate as jk, SalesOrdersResource as jl, type SalesOrdersResourceQueryParams as jm, type Service as jn, type ServiceCall as jo, type ServiceCallCreate as jp, type ServiceCallSummary as jq, type ServiceCallTask as jr, type ServiceCallTaskCreate as js, type ServiceCallTaskResource as jt, type ServiceCallTaskResourceCreate as ju, type ServiceCallTaskResourceSummary as jv, type ServiceCallTaskResourceUpdate as jw, ServiceCallTaskResourcesResource as jx, type ServiceCallTaskResourcesResourceQueryParams as jy, type ServiceCallTaskSummary as jz, type Contract as k, type TaxRegionSummary as k$, type ServicesResourceQueryParams as k0, type Skill as k1, type SkillCreate as k2, type SkillSummary as k3, type SkillUpdate as k4, SkillsResource as k5, type SkillsResourceQueryParams as k6, type Subscription as k7, type SubscriptionCreate as k8, type SubscriptionPeriod as k9, TagAliasesResource as kA, type TagAliasesResourceQueryParams as kB, type TagCreate as kC, type TagGroup as kD, type TagGroupCreate as kE, type TagGroupSummary as kF, type TagGroupUpdate as kG, TagGroupsResource as kH, type TagGroupsResourceQueryParams as kI, type TagSummary as kJ, type TagUpdate as kK, TagsResource as kL, type TagsResourceQueryParams as kM, type Task as kN, type TaskCreate as kO, type TaskSecondaryResource as kP, type TaskSecondaryResourceCreate as kQ, type TaskSecondaryResourceSummary as kR, type TaskSecondaryResourceUpdate as kS, TaskSecondaryResourcesResource as kT, type TaskSecondaryResourcesResourceQueryParams as kU, type TaskSummary as kV, type TaskUpdate as kW, TasksResource as kX, type TasksResourceQueryParams as kY, type TaxRegion as kZ, type TaxRegionCreate as k_, type SubscriptionPeriodCreate as ka, type SubscriptionPeriodSummary as kb, type SubscriptionPeriodUpdate as kc, SubscriptionPeriodsResource as kd, type SubscriptionPeriodsResourceQueryParams as ke, type SubscriptionSummary as kf, type SubscriptionUpdate as kg, SubscriptionsResource as kh, type SubscriptionsResourceQueryParams as ki, type Survey as kj, type SurveyCreate as kk, type SurveyResults as kl, type SurveyResultsCreate as km, SurveyResultsResource as kn, type SurveyResultsResourceQueryParams as ko, type SurveyResultsSummary as kp, type SurveyResultsUpdate as kq, type SurveySummary as kr, type SurveyUpdate as ks, SurveysResource as kt, type SurveysResourceQueryParams as ku, type Tag as kv, type TagAlias as kw, type TagAliasCreate as kx, type TagAliasSummary as ky, type TagAliasUpdate as kz, type ContractService as l, type TicketHistorySummary as l$, type TaxRegionUpdate as l0, TaxRegionsResource as l1, type TaxRegionsResourceQueryParams as l2, ThresholdInformationResource as l3, type ThresholdStatusResultModel as l4, type Ticket as l5, type TicketAdditionalConfigurationItemCreate as l6, type TicketAdditionalConfigurationItemSummary as l7, type TicketAdditionalConfigurationItemUpdate as l8, TicketAdditionalConfigurationItemsResource as l9, type TicketChangeRequestApprovalSummary as lA, type TicketChangeRequestApprovalUpdate as lB, TicketChangeRequestApprovalsResource as lC, type TicketChangeRequestApprovalsResourceQueryParams as lD, type TicketChargeCreate as lE, type TicketChargeSummary as lF, type TicketChargeUpdate as lG, TicketChargesResource as lH, type TicketChargesResourceQueryParams as lI, type TicketChecklistItem as lJ, type TicketChecklistItemCreate as lK, type TicketChecklistItemSummary as lL, type TicketChecklistItemUpdate as lM, TicketChecklistItemsResource as lN, type TicketChecklistItemsResourceQueryParams as lO, TicketChecklistLibrariesResource as lP, type TicketChecklistLibrariesResourceQueryParams as lQ, type TicketChecklistLibrary as lR, type TicketChecklistLibraryCreate as lS, type TicketChecklistLibrarySummary as lT, type TicketChecklistLibraryUpdate as lU, type TicketContext as lV, type TicketCreate as lW, type TicketHistory as lX, type TicketHistoryCreate as lY, TicketHistoryResource as lZ, type TicketHistoryResourceQueryParams as l_, type TicketAdditionalConfigurationItemsResourceQueryParams as la, type TicketAdditionalContactCreate as lb, type TicketAdditionalContactSummary as lc, type TicketAdditionalContactUpdate as ld, TicketAdditionalContactsResource as le, type TicketAdditionalContactsResourceQueryParams as lf, type TicketAttachment as lg, type TicketAttachmentCreate as lh, type TicketAttachmentSummary as li, type TicketAttachmentUpdate as lj, TicketAttachmentsResource as lk, type TicketAttachmentsResourceQueryParams as ll, TicketCategoriesResource as lm, type TicketCategoriesResourceQueryParams as ln, type TicketCategory as lo, type TicketCategoryCreate as lp, type TicketCategoryFieldDefault as lq, type TicketCategoryFieldDefaultCreate as lr, type TicketCategoryFieldDefaultSummary as ls, type TicketCategoryFieldDefaultUpdate as lt, TicketCategoryFieldDefaultsResource as lu, type TicketCategoryFieldDefaultsResourceQueryParams as lv, type TicketCategorySummary as lw, type TicketCategoryUpdate as lx, type TicketChangeRequestApproval as ly, type TicketChangeRequestApprovalCreate as lz, type HolidaySet as m, type UdfField as m$, type TicketHistoryUpdate as m0, type TicketNote as m1, type TicketNoteAttachment as m2, type TicketNoteAttachmentCreate as m3, type TicketNoteAttachmentSummary as m4, type TicketNoteAttachmentUpdate as m5, TicketNoteAttachmentsResource as m6, type TicketNoteAttachmentsResourceQueryParams as m7, type TicketNoteCreate as m8, type TicketNoteSummary as m9, type TimeEntriesPostedPagingOptions as mA, type TimeEntriesPostedStateResult as mB, type TimeEntriesPostedWindowCountOptions as mC, type TimeEntriesPostedWindowListOptions as mD, type TimeEntriesPostedWindowOptions as mE, type TimeEntriesPostedWindowResult as mF, TimeEntriesResource as mG, type TimeEntriesResourceQueryParams as mH, type TimeEntriesStatusCountOptions as mI, type TimeEntriesStatusListOptions as mJ, type TimeEntriesStatusOptions as mK, type TimeEntryAttachment as mL, type TimeEntryAttachmentCreate as mM, type TimeEntryAttachmentSummary as mN, type TimeEntryAttachmentUpdate as mO, TimeEntryAttachmentsResource as mP, type TimeEntryAttachmentsResourceQueryParams as mQ, type TimeEntryCreate as mR, type TimeEntrySummary as mS, type TimeEntryUpdate as mT, type TimeOffRequest as mU, type TimeOffRequestCreate as mV, type TimeOffRequestReject as mW, type TimeOffRequestSummary as mX, type TimeOffRequestUpdate as mY, TimeOffRequestsResource as mZ, type TimeOffRequestsResourceQueryParams as m_, type TicketNoteUpdate as ma, type TicketNoteWebhook as mb, type TicketNoteWebhookCreate as mc, type TicketNoteWebhookSummary as md, type TicketNoteWebhookUpdate as me, TicketNoteWebhooksResource as mf, type TicketNoteWebhooksResourceQueryParams as mg, TicketNotesResource as mh, type TicketNotesResourceQueryParams as mi, type TicketSecondaryResource as mj, type TicketSecondaryResourceCreate as mk, type TicketSecondaryResourceSummary as ml, type TicketSecondaryResourceUpdate as mm, TicketSecondaryResourcesResource as mn, type TicketSecondaryResourcesResourceQueryParams as mo, type TicketSummary as mp, type TicketUpdate as mq, type TicketWebhook as mr, type TicketWebhookCreate as ms, type TicketWebhookSummary as mt, type TicketWebhookUpdate as mu, TicketWebhooksResource as mv, type TicketWebhooksResourceQueryParams as mw, TicketsResource as mx, type TicketsResourceQueryParams as my, type TimeEntriesPostedCountResult as mz, type Opportunity as n, VersionInformationResource as n0, VersionResource as n1, ZONES as n2, ZONE_CATALOG as n3, ZoneInformationResource as n4, type ZoneInformationResultModel as n5, buildBreakerKey as n6, buildTenantKey as n7, clampPageSize as n8, collectAll as n9, FIELD_CATALOG_HONESTY_NOTE as nA, type FieldCacheKind as nB, type FieldCatalogCompactFieldRow as nC, type FieldCatalogFieldRow as nD, type FieldCatalogOptions as nE, type FieldCatalogResult as nF, type FieldCatalogRow as nG, type FieldCatalogRowError as nH, type FieldCatalogTrimKind as nI, type FieldCatalogTruncation as nJ, type FieldDerivation as nK, MAX_FIELD_CATALOG_WIRE as nL, MIN_FIELD_CATALOG_MAX_BYTES as nM, PICKLIST_CATALOG_UNAVAILABLE_NOTE as nN, PICKLIST_VALUE_NOT_SERVED_NOTE as nO, fieldCatalog as nP, cooldownDurationMs as na, defaultCircuitBreakerStore as nb, defaultCooldownStore as nc, isAutotaskError as nd, isBreakerFailure as ne, isCredentialHeaderName as nf, paginate as ng, paginateItems as nh, redactRecord as ni, resetDefaultCircuitBreakerStore as nj, resetDefaultCooldownStore as nk, resolveBaseUrl as nl, toArray as nm, totalPagesFor as nn, zoneUrl as no, type RowNamesSummary as np, type BlindSurfaceInfo as nq, type RelationshipResource as nr, type BlindSurfaceInventory as ns, type BlindSurfaceRow as nt, type CreateGuidanceValueRequirement as nu, type CreateGuidanceRow as nv, type CreateBlockerKind as nw, type CreateGuidanceReport as nx, type DerivationRule as ny, FIELD_CACHE_KINDS as nz, type ProjectCharge as o, type TicketAdditionalContact as p, type TicketCharge as q, type TimeEntry as r, type TicketChangeStatusResult as s, type TicketChangeStatusNoChange as t, AGENT_PROFILE as u, type ApiVersionResultModel as v, type Appointment as w, type AppointmentCreate as x, type AppointmentSummary as y, type AppointmentUpdate as z };
|
|
16499
|
+
export { type BillingItemApprovalLevelsResourceQueryParams as $, type AutotaskConfig as A, type AuditEvent as B, type CreateIfNotExistsResult as C, type AuthTokenResultModel as D, type ExpenseItem as E, type FilterOperator as F, AuthenticateResource as G, type Holiday as H, type Identifier as I, type AutotaskVersionResultModel as J, type BillingCode as K, type BillingCodeCreate as L, type BillingCodeSummary as M, type BillingCodeUpdate as N, type OperationResult as O, type PagingModel as P, type QueryParams as Q, type ResolvedAutotaskConfig as R, BillingCodesResource as S, TtlCache as T, type BillingCodesResourceQueryParams as U, type BillingItemApprovalLevel as V, type BillingItemApprovalLevelCreate as W, type BillingItemApprovalLevelSummary as X, type BillingItemApprovalLevelUpdate as Y, type ZoneName as Z, BillingItemApprovalLevelsResource as _, AutotaskClient as a, type CompanyWebhookSummary as a$, type BillingItems as a0, type BillingItemsCreate as a1, BillingItemsResource as a2, type BillingItemsResourceQueryParams as a3, type BillingItemsSummary as a4, type BillingItemsUpdate as a5, CREDENTIAL_HEADER_NAMES as a6, type ChangeRequestLinkCreate as a7, type ChangeRequestLinkSummary as a8, type ChangeRequestLinkUpdate as a9, type CompanyAlertUpdate as aA, CompanyAlertsResource as aB, type CompanyAlertsResourceQueryParams as aC, type CompanyContext as aD, type CompanyCreate as aE, type CompanyLocation as aF, type CompanyLocationCreate as aG, type CompanyLocationSummary as aH, type CompanyLocationUpdate as aI, CompanyLocationsResource as aJ, type CompanyLocationsResourceQueryParams as aK, type CompanyNote as aL, type CompanyNoteCreate as aM, type CompanyNoteSummary as aN, type CompanyNoteUpdate as aO, CompanyNotesResource as aP, type CompanyNotesResourceQueryParams as aQ, type CompanySiteConfigurations as aR, type CompanySiteConfigurationsCreate as aS, CompanySiteConfigurationsResource as aT, type CompanySiteConfigurationsResourceQueryParams as aU, type CompanySiteConfigurationsSummary as aV, type CompanySiteConfigurationsUpdate as aW, type CompanySummary as aX, type CompanyUpdate as aY, type CompanyWebhook as aZ, type CompanyWebhookCreate as a_, ChangeRequestLinksResource as aa, type ChangeRequestLinksResourceQueryParams as ab, ChecklistLibrariesResource as ac, type ChecklistLibrariesResourceQueryParams as ad, type ChecklistLibrary as ae, type ChecklistLibraryChecklistItem as af, type ChecklistLibraryChecklistItemCreate as ag, type ChecklistLibraryChecklistItemSummary as ah, type ChecklistLibraryChecklistItemUpdate as ai, ChecklistLibraryChecklistItemsResource as aj, type ChecklistLibraryChecklistItemsResourceQueryParams as ak, type ChecklistLibraryCreate as al, type ChecklistLibrarySummary as am, type ChecklistLibraryUpdate as an, type ClassificationIcon as ao, type ClassificationIconCreate as ap, type ClassificationIconSummary as aq, type ClassificationIconUpdate as ar, ClassificationIconsResource as as, type ClassificationIconsResourceQueryParams as at, CompaniesResource as au, type CompaniesResourceQueryParams as av, type Company as aw, type CompanyAlert as ax, type CompanyAlertCreate as ay, type CompanyAlertSummary as az, type RequestOptions as b, type ConfigurationItemsResourceQueryParams as b$, type CompanyWebhookUpdate as b0, CompanyWebhooksResource as b1, type CompanyWebhooksResourceQueryParams as b2, type ConfigProfile as b3, type ConfigurationItemBillingProductAssociations as b4, type ConfigurationItemBillingProductAssociationsCreate as b5, ConfigurationItemBillingProductAssociationsResource as b6, type ConfigurationItemBillingProductAssociationsResourceQueryParams as b7, type ConfigurationItemBillingProductAssociationsSummary as b8, type ConfigurationItemBillingProductAssociationsUpdate as b9, type ConfigurationItemRelatedItem as bA, type ConfigurationItemRelatedItemCreate as bB, type ConfigurationItemRelatedItemSummary as bC, type ConfigurationItemRelatedItemUpdate as bD, ConfigurationItemRelatedItemsResource as bE, type ConfigurationItemRelatedItemsResourceQueryParams as bF, type ConfigurationItemSslSubjectAlternativeName as bG, type ConfigurationItemSslSubjectAlternativeNameCreate as bH, type ConfigurationItemSslSubjectAlternativeNameSummary as bI, type ConfigurationItemSslSubjectAlternativeNameUpdate as bJ, ConfigurationItemSslSubjectAlternativeNamesResource as bK, type ConfigurationItemSslSubjectAlternativeNamesResourceQueryParams as bL, type ConfigurationItemSummary as bM, type ConfigurationItemType as bN, type ConfigurationItemTypeCreate as bO, type ConfigurationItemTypeSummary as bP, type ConfigurationItemTypeUpdate as bQ, ConfigurationItemTypesResource as bR, type ConfigurationItemTypesResourceQueryParams as bS, type ConfigurationItemUpdate as bT, type ConfigurationItemWebhook as bU, type ConfigurationItemWebhookCreate as bV, type ConfigurationItemWebhookSummary as bW, type ConfigurationItemWebhookUpdate as bX, ConfigurationItemWebhooksResource as bY, type ConfigurationItemWebhooksResourceQueryParams as bZ, ConfigurationItemsResource as b_, ConfigurationItemCategoriesResource as ba, type ConfigurationItemCategoriesResourceQueryParams as bb, type ConfigurationItemCategory as bc, type ConfigurationItemCategoryCreate as bd, type ConfigurationItemCategorySummary as be, type ConfigurationItemCategoryUdfAssociation as bf, type ConfigurationItemCategoryUdfAssociationCreate as bg, type ConfigurationItemCategoryUdfAssociationSummary as bh, type ConfigurationItemCategoryUdfAssociationUpdate as bi, ConfigurationItemCategoryUdfAssociationsResource as bj, type ConfigurationItemCategoryUdfAssociationsResourceQueryParams as bk, type ConfigurationItemCategoryUpdate as bl, type ConfigurationItemContext as bm, type ConfigurationItemCreate as bn, type ConfigurationItemDnsRecord as bo, type ConfigurationItemDnsRecordCreate as bp, type ConfigurationItemDnsRecordSummary as bq, type ConfigurationItemDnsRecordUpdate as br, ConfigurationItemDnsRecordsResource as bs, type ConfigurationItemDnsRecordsResourceQueryParams as bt, type ConfigurationItemNote as bu, type ConfigurationItemNoteCreate as bv, type ConfigurationItemNoteSummary as bw, type ConfigurationItemNoteUpdate as bx, ConfigurationItemNotesResource as by, type ConfigurationItemNotesResourceQueryParams as bz, type FilterCondition as c, ContractExclusionSetExcludedRolesResource as c$, type Contact as c0, type ContactContext as c1, type ContactCreate as c2, type ContactGroupContacts as c3, type ContactGroupContactsCreate as c4, ContactGroupContactsResource as c5, type ContactGroupContactsResourceQueryParams as c6, type ContactGroupContactsSummary as c7, type ContactGroupContactsUpdate as c8, type ContactGroups as c9, type ContractBlockHourFactorUpdate as cA, ContractBlockHourFactorsResource as cB, type ContractBlockHourFactorsResourceQueryParams as cC, type ContractBlockSummary as cD, type ContractBlockUpdate as cE, ContractBlocksResource as cF, type ContractBlocksResourceQueryParams as cG, type ContractChargeCreate as cH, type ContractChargeSummary as cI, type ContractChargeUpdate as cJ, ContractChargesResource as cK, type ContractChargesResourceQueryParams as cL, type ContractCreate as cM, type ContractExclusionBillingCode as cN, type ContractExclusionBillingCodeCreate as cO, type ContractExclusionBillingCodeSummary as cP, type ContractExclusionBillingCodeUpdate as cQ, ContractExclusionBillingCodesResource as cR, type ContractExclusionBillingCodesResourceQueryParams as cS, type ContractExclusionRoles as cT, type ContractExclusionRolesCreate as cU, ContractExclusionRolesResource as cV, type ContractExclusionRolesResourceQueryParams as cW, type ContractExclusionRolesSummary as cX, type ContractExclusionRolesUpdate as cY, type ContractExclusionSetExcludedRoles as cZ, type ContractExclusionSetExcludedRolesCreate as c_, type ContactGroupsCreate as ca, ContactGroupsResource as cb, type ContactGroupsResourceQueryParams as cc, type ContactGroupsSummary as cd, type ContactGroupsUpdate as ce, type ContactSummary as cf, type ContactUpdate as cg, type ContactWebhook as ch, type ContactWebhookCreate as ci, type ContactWebhookSummary as cj, type ContactWebhookUpdate as ck, ContactWebhooksResource as cl, type ContactWebhooksResourceQueryParams as cm, ContactsResource as cn, type ContactsResourceQueryParams as co, type ContractBillingRule as cp, type ContractBillingRuleCreate as cq, type ContractBillingRuleSummary as cr, type ContractBillingRuleUpdate as cs, ContractBillingRulesResource as ct, type ContractBillingRulesResourceQueryParams as cu, type ContractBlock as cv, type ContractBlockCreate as cw, type ContractBlockHourFactor as cx, type ContractBlockHourFactorCreate as cy, type ContractBlockHourFactorSummary as cz, type Filter as d, type ContractServiceBundleUnitSummary as d$, type ContractExclusionSetExcludedRolesResourceQueryParams as d0, type ContractExclusionSetExcludedRolesSummary as d1, type ContractExclusionSetExcludedRolesUpdate as d2, type ContractExclusionSetExcludedWorkTypes as d3, type ContractExclusionSetExcludedWorkTypesCreate as d4, ContractExclusionSetExcludedWorkTypesResource as d5, type ContractExclusionSetExcludedWorkTypesResourceQueryParams as d6, type ContractExclusionSetExcludedWorkTypesSummary as d7, type ContractExclusionSetExcludedWorkTypesUpdate as d8, type ContractExclusionSets as d9, ContractRetainersResource as dA, type ContractRetainersResourceQueryParams as dB, type ContractRetainersSummary as dC, type ContractRetainersUpdate as dD, type ContractRoleCosts as dE, type ContractRoleCostsCreate as dF, ContractRoleCostsResource as dG, type ContractRoleCostsResourceQueryParams as dH, type ContractRoleCostsSummary as dI, type ContractRoleCostsUpdate as dJ, type ContractServiceAdjustment as dK, type ContractServiceAdjustmentCreate as dL, type ContractServiceAdjustmentSummary as dM, type ContractServiceAdjustmentUpdate as dN, ContractServiceAdjustmentsResource as dO, type ContractServiceAdjustmentsResourceQueryParams as dP, type ContractServiceBundle as dQ, type ContractServiceBundleAdjustment as dR, type ContractServiceBundleAdjustmentCreate as dS, type ContractServiceBundleAdjustmentSummary as dT, type ContractServiceBundleAdjustmentUpdate as dU, ContractServiceBundleAdjustmentsResource as dV, type ContractServiceBundleAdjustmentsResourceQueryParams as dW, type ContractServiceBundleCreate as dX, type ContractServiceBundleSummary as dY, type ContractServiceBundleUnit as dZ, type ContractServiceBundleUnitCreate as d_, type ContractExclusionSetsCreate as da, ContractExclusionSetsResource as db, type ContractExclusionSetsResourceQueryParams as dc, type ContractExclusionSetsSummary as dd, type ContractExclusionSetsUpdate as de, type ContractMilestone as df, type ContractMilestoneCreate as dg, type ContractMilestoneSummary as dh, type ContractMilestoneUpdate as di, ContractMilestonesResource as dj, type ContractMilestonesResourceQueryParams as dk, type ContractNote as dl, type ContractNoteCreate as dm, type ContractNoteSummary as dn, type ContractNoteUpdate as dp, ContractNotesResource as dq, type ContractNotesResourceQueryParams as dr, type ContractRate as ds, type ContractRateCreate as dt, type ContractRateSummary as du, type ContractRateUpdate as dv, ContractRatesResource as dw, type ContractRatesResourceQueryParams as dx, type ContractRetainers as dy, type ContractRetainersCreate as dz, type ChangeRequestLink as e, type ExpenseItemAttachmentSummary as e$, type ContractServiceBundleUnitUpdate as e0, ContractServiceBundleUnitsResource as e1, type ContractServiceBundleUnitsResourceQueryParams as e2, type ContractServiceBundleUpdate as e3, ContractServiceBundlesResource as e4, type ContractServiceBundlesResourceQueryParams as e5, type ContractServiceCreate as e6, type ContractServiceSummary as e7, type ContractServiceUnit as e8, type ContractServiceUnitCreate as e9, type CurrenciesResourceQueryParams as eA, type Currency as eB, type CurrencyCreate as eC, type CurrencySummary as eD, type CurrencyUpdate as eE, DEFAULT_ZONE as eF, type Department as eG, type DepartmentCreate as eH, type DepartmentSummary as eI, type DepartmentUpdate as eJ, DepartmentsResource as eK, type DepartmentsResourceQueryParams as eL, type DocumentChecklistLibrary as eM, type DomainRegistrar as eN, type DomainRegistrarCreate as eO, type DomainRegistrarSummary as eP, type DomainRegistrarUpdate as eQ, DomainRegistrarsResource as eR, type DomainRegistrarsResourceQueryParams as eS, type DryRunResult as eT, type EmptyReasonInfo as eU, type EmptyReasonKind as eV, type EntityInformationModel as eW, EntityInformationResource as eX, type EntityInformationResultModel as eY, type ExpenseItemAttachment as eZ, type ExpenseItemAttachmentCreate as e_, type ContractServiceUnitSummary as ea, type ContractServiceUnitUpdate as eb, ContractServiceUnitsResource as ec, type ContractServiceUnitsResourceQueryParams as ed, type ContractServiceUpdate as ee, ContractServicesResource as ef, type ContractServicesResourceQueryParams as eg, type ContractSummary as eh, type ContractTicketPurchases as ei, type ContractTicketPurchasesCreate as ej, ContractTicketPurchasesResource as ek, type ContractTicketPurchasesResourceQueryParams as el, type ContractTicketPurchasesSummary as em, type ContractTicketPurchasesUpdate as en, type ContractUpdate as eo, type ContractsProfitabilityResult as ep, ContractsResource as eq, type ContractsResourceQueryParams as er, type CostRateResolution as es, CountriesResource as et, type CountriesResourceQueryParams as eu, type Country as ev, type CountryCreate as ew, type CountrySummary as ex, type CountryUpdate as ey, CurrenciesResource as ez, type ConfigurationItem as f, type NotificationHistoryResourceQueryParams as f$, type ExpenseItemAttachmentUpdate as f0, ExpenseItemAttachmentsResource as f1, type ExpenseItemAttachmentsResourceQueryParams as f2, type ExpenseItemCreate as f3, type ExpenseItemSummary as f4, type ExpenseItemUpdate as f5, ExpenseItemsResource as f6, type ExpenseItemsResourceQueryParams as f7, type ExpenseReport as f8, type ExpenseReportCreate as f9, type InventoryProductUpdate as fA, InventoryProductsResource as fB, type InventoryProductsResourceQueryParams as fC, type InventoryStockedItemAdd as fD, type InventoryStockedItemRemove as fE, type InventoryStockedItemTransfer as fF, type Invoice as fG, type InvoiceCreate as fH, type InvoiceSummary as fI, type InvoiceTemplate as fJ, type InvoiceTemplateCreate as fK, type InvoiceTemplateSummary as fL, type InvoiceTemplateUpdate as fM, InvoiceTemplatesResource as fN, type InvoiceTemplatesResourceQueryParams as fO, type InvoiceUpdate as fP, InvoicesResource as fQ, type InvoicesResourceQueryParams as fR, type KeyValuePair as fS, type Logger as fT, MAX_PAGES as fU, type ModuleAccessResultModel as fV, ModulesResource as fW, NoopLogger as fX, type NotificationHistory as fY, type NotificationHistoryCreate as fZ, NotificationHistoryResource as f_, type ExpenseReportSummary as fa, type ExpenseReportUpdate as fb, ExpenseReportsResource as fc, type ExpenseReportsResourceQueryParams as fd, FIELD_CACHE_KINDS as fe, type Field as ff, type FieldCacheKind as fg, type FieldDiff as fh, type FieldInformationModel as fi, type FilterValue as fj, type GlobalEntityInformationResultModel as fk, type HolidayCreate as fl, type HolidaySetCreate as fm, type HolidaySetSummary as fn, type HolidaySetUpdate as fo, HolidaySetsResource as fp, type HolidaySetsResourceQueryParams as fq, type HolidaySummary as fr, type HolidayUpdate as fs, HolidaysResource as ft, type HolidaysResourceQueryParams as fu, HttpClient as fv, IDEMPOTENT_METHODS as fw, type InventoryProduct as fx, type InventoryProductCreate as fy, type InventoryProductSummary as fz, type ContractCharge as g, type ProfitabilityDataQualityWarning as g$, type NotificationHistorySummary as g0, type NotificationHistoryUpdate as g1, type OperationMetadata as g2, type OperationShapeDrift as g3, OpportunitiesResource as g4, type OpportunitiesResourceQueryParams as g5, type OpportunityAttachment as g6, type OpportunityAttachmentCreate as g7, type OpportunityAttachmentSummary as g8, type OpportunityAttachmentUpdate as g9, type OrganizationalLevelAssociationUpdate as gA, OrganizationalLevelAssociationsResource as gB, type OrganizationalLevelAssociationsResourceQueryParams as gC, type Page as gD, type PageFetcher as gE, type PaginateOptions as gF, type Phase as gG, type PhaseCreate as gH, type PhaseSummary as gI, type PhaseUpdate as gJ, PhasesResource as gK, type PhasesResourceQueryParams as gL, type PickListValue as gM, type Product as gN, type ProductCreate as gO, type ProductSummary as gP, type ProductUpdate as gQ, type ProductVendors as gR, type ProductVendorsCreate as gS, ProductVendorsResource as gT, type ProductVendorsResourceQueryParams as gU, type ProductVendorsSummary as gV, type ProductVendorsUpdate as gW, ProductsResource as gX, type ProductsResourceQueryParams as gY, type ProfitRateSource as gZ, type ProfitabilityActivityCategory as g_, OpportunityAttachmentsResource as ga, type OpportunityAttachmentsResourceQueryParams as gb, OpportunityCategoriesResource as gc, type OpportunityCategoriesResourceQueryParams as gd, type OpportunityCategory as ge, type OpportunityCategoryCreate as gf, type OpportunityCategorySummary as gg, type OpportunityCategoryUpdate as gh, type OpportunityCreate as gi, type OpportunitySummary as gj, type OpportunityUpdate as gk, type OrganizationalLevel1 as gl, type OrganizationalLevel1Create as gm, type OrganizationalLevel1Summary as gn, type OrganizationalLevel1Update as go, OrganizationalLevel1sResource as gp, type OrganizationalLevel1sResourceQueryParams as gq, type OrganizationalLevel2 as gr, type OrganizationalLevel2Create as gs, type OrganizationalLevel2Summary as gt, type OrganizationalLevel2Update as gu, OrganizationalLevel2sResource as gv, type OrganizationalLevel2sResourceQueryParams as gw, type OrganizationalLevelAssociation as gx, type OrganizationalLevelAssociationCreate as gy, type OrganizationalLevelAssociationSummary as gz, type Contract as h, QuoteLocationsResource as h$, type ProfitabilityHighestCostTicket as h0, type ProfitabilityLabourCostMethod as h1, type ProfitabilityMiscoding as h2, type ProfitabilityMonthlyRow as h3, type ProfitabilityOpenRenewalItem as h4, type ProfitabilityOptions as h5, type ProfitabilityPart as h6, type ProfitabilityPartDigest as h7, type ProfitabilityRevenueByType as h8, type Project as h9, type PurchaseOrderItemReceivingResourceQueryParams as hA, type PurchaseOrderItemReceivingSummary as hB, type PurchaseOrderItemReceivingUpdate as hC, type PurchaseOrderItems as hD, type PurchaseOrderItemsCreate as hE, PurchaseOrderItemsResource as hF, type PurchaseOrderItemsResourceQueryParams as hG, type PurchaseOrderItemsSummary as hH, type PurchaseOrderItemsUpdate as hI, type PurchaseOrders as hJ, type PurchaseOrdersCreate as hK, PurchaseOrdersResource as hL, type PurchaseOrdersResourceQueryParams as hM, type PurchaseOrdersSummary as hN, type PurchaseOrdersUpdate as hO, type Quote as hP, type QuoteCreate as hQ, type QuoteItem as hR, type QuoteItemCreate as hS, type QuoteItemSummary as hT, type QuoteItemUpdate as hU, QuoteItemsResource as hV, type QuoteItemsResourceQueryParams as hW, type QuoteLocation as hX, type QuoteLocationCreate as hY, type QuoteLocationSummary as hZ, type QuoteLocationUpdate as h_, type ProjectChargeCreate as ha, type ProjectChargeSummary as hb, type ProjectChargeUpdate as hc, ProjectChargesResource as hd, type ProjectChargesResourceQueryParams as he, type ProjectContext as hf, type ProjectCreate as hg, type ProjectNote as hh, type ProjectNoteCreate as hi, type ProjectNoteSummary as hj, type ProjectNoteUpdate as hk, ProjectNotesResource as hl, type ProjectNotesResourceQueryParams as hm, type ProjectSummary as hn, type ProjectUpdate as ho, ProjectsResource as hp, type ProjectsResourceQueryParams as hq, type PurchaseApprovals as hr, type PurchaseApprovalsCreate as hs, PurchaseApprovalsResource as ht, type PurchaseApprovalsResourceQueryParams as hu, type PurchaseApprovalsSummary as hv, type PurchaseApprovalsUpdate as hw, type PurchaseOrderItemReceiving as hx, type PurchaseOrderItemReceivingCreate as hy, PurchaseOrderItemReceivingResource as hz, type ContractService as i, type RoleSummary as i$, type QuoteLocationsResourceQueryParams as i0, type QuoteSummary as i1, type QuoteTemplate as i2, type QuoteTemplateCreate as i3, type QuoteTemplateSummary as i4, type QuoteTemplateUpdate as i5, QuoteTemplatesResource as i6, type QuoteTemplatesResourceQueryParams as i7, type QuoteUpdate as i8, QuotesResource as i9, type ResourceSkillUpdate as iA, ResourceSkillsResource as iB, type ResourceSkillsResourceQueryParams as iC, type ResourceSummary as iD, type ResourceTimeOffAdditional as iE, type ResourceTimeOffAdditionalCreate as iF, ResourceTimeOffAdditionalResource as iG, type ResourceTimeOffAdditionalResourceQueryParams as iH, type ResourceTimeOffAdditionalSummary as iI, type ResourceTimeOffAdditionalUpdate as iJ, type ResourceTimeOffApprover as iK, type ResourceTimeOffApproverCreate as iL, type ResourceTimeOffApproverSummary as iM, type ResourceTimeOffApproverUpdate as iN, ResourceTimeOffApproversResource as iO, type ResourceTimeOffApproversResourceQueryParams as iP, type ResourceTimeOffBalance as iQ, type ResourceTimeOffBalanceCreate as iR, type ResourceTimeOffBalanceSummary as iS, type ResourceTimeOffBalanceUpdate as iT, ResourceTimeOffBalancesResource as iU, type ResourceTimeOffBalancesResourceQueryParams as iV, type ResourceUpdate as iW, ResourcesResource as iX, type ResourcesResourceQueryParams as iY, type Role as iZ, type RoleCreate as i_, type QuotesResourceQueryParams as ia, READ_CACHE_MAX_ENTRIES as ib, REDACTED as ic, REFERENCE_ENTITIES as id, REFERENCE_TTL_MS as ie, type Resolution as ig, type ResolutionCaps as ih, type Resource as ii, type ResourceCreate as ij, type ResourceRole as ik, type ResourceRoleCreate as il, type ResourceRoleQueue as im, type ResourceRoleQueueCreate as io, type ResourceRoleQueueSummary as ip, type ResourceRoleQueueUpdate as iq, ResourceRoleQueuesResource as ir, type ResourceRoleQueuesResourceQueryParams as is, type ResourceRoleSummary as it, type ResourceRoleUpdate as iu, ResourceRolesResource as iv, type ResourceRolesResourceQueryParams as iw, type ResourceSkill as ix, type ResourceSkillCreate as iy, type ResourceSkillSummary as iz, type HolidaySet as j, SubscriptionPeriodsResource as j$, type RoleUpdate as j0, RolesResource as j1, type RolesResourceQueryParams as j2, type SalesOrder as j3, type SalesOrderCreate as j4, type SalesOrderSummary as j5, type SalesOrderUpdate as j6, SalesOrdersResource as j7, type SalesOrdersResourceQueryParams as j8, type Service as j9, type ServiceCallTicketsResourceQueryParams as jA, type ServiceCallUpdate as jB, ServiceCallsResource as jC, type ServiceCallsResourceQueryParams as jD, type ServiceCreate as jE, type ServiceLevelAgreementResults as jF, type ServiceLevelAgreementResultsCreate as jG, ServiceLevelAgreementResultsResource as jH, type ServiceLevelAgreementResultsResourceQueryParams as jI, type ServiceLevelAgreementResultsSummary as jJ, type ServiceLevelAgreementResultsUpdate as jK, type ServiceSummary as jL, type ServiceUpdate as jM, ServicesResource as jN, type ServicesResourceQueryParams as jO, type Skill as jP, type SkillCreate as jQ, type SkillSummary as jR, type SkillUpdate as jS, SkillsResource as jT, type SkillsResourceQueryParams as jU, type Subscription as jV, type SubscriptionCreate as jW, type SubscriptionPeriod as jX, type SubscriptionPeriodCreate as jY, type SubscriptionPeriodSummary as jZ, type SubscriptionPeriodUpdate as j_, type ServiceCall as ja, type ServiceCallCreate as jb, type ServiceCallSummary as jc, type ServiceCallTask as jd, type ServiceCallTaskCreate as je, type ServiceCallTaskResource as jf, type ServiceCallTaskResourceCreate as jg, type ServiceCallTaskResourceSummary as jh, type ServiceCallTaskResourceUpdate as ji, ServiceCallTaskResourcesResource as jj, type ServiceCallTaskResourcesResourceQueryParams as jk, type ServiceCallTaskSummary as jl, type ServiceCallTaskUpdate as jm, ServiceCallTasksResource as jn, type ServiceCallTasksResourceQueryParams as jo, type ServiceCallTicket as jp, type ServiceCallTicketCreate as jq, type ServiceCallTicketResource as jr, type ServiceCallTicketResourceCreate as js, type ServiceCallTicketResourceSummary as jt, type ServiceCallTicketResourceUpdate as ju, ServiceCallTicketResourcesResource as jv, type ServiceCallTicketResourcesResourceQueryParams as jw, type ServiceCallTicketSummary as jx, type ServiceCallTicketUpdate as jy, ServiceCallTicketsResource as jz, type Opportunity as k, type TicketAdditionalContactUpdate as k$, type SubscriptionPeriodsResourceQueryParams as k0, type SubscriptionSummary as k1, type SubscriptionUpdate as k2, SubscriptionsResource as k3, type SubscriptionsResourceQueryParams as k4, type Survey as k5, type SurveyCreate as k6, type SurveyResults as k7, type SurveyResultsCreate as k8, SurveyResultsResource as k9, type TaskCreate as kA, type TaskSecondaryResource as kB, type TaskSecondaryResourceCreate as kC, type TaskSecondaryResourceSummary as kD, type TaskSecondaryResourceUpdate as kE, TaskSecondaryResourcesResource as kF, type TaskSecondaryResourcesResourceQueryParams as kG, type TaskSummary as kH, type TaskUpdate as kI, TasksResource as kJ, type TasksResourceQueryParams as kK, type TaxRegion as kL, type TaxRegionCreate as kM, type TaxRegionSummary as kN, type TaxRegionUpdate as kO, TaxRegionsResource as kP, type TaxRegionsResourceQueryParams as kQ, ThresholdInformationResource as kR, type ThresholdStatusResultModel as kS, type Ticket as kT, type TicketAdditionalConfigurationItemCreate as kU, type TicketAdditionalConfigurationItemSummary as kV, type TicketAdditionalConfigurationItemUpdate as kW, TicketAdditionalConfigurationItemsResource as kX, type TicketAdditionalConfigurationItemsResourceQueryParams as kY, type TicketAdditionalContactCreate as kZ, type TicketAdditionalContactSummary as k_, type SurveyResultsResourceQueryParams as ka, type SurveyResultsSummary as kb, type SurveyResultsUpdate as kc, type SurveySummary as kd, type SurveyUpdate as ke, SurveysResource as kf, type SurveysResourceQueryParams as kg, type Tag as kh, type TagAlias as ki, type TagAliasCreate as kj, type TagAliasSummary as kk, type TagAliasUpdate as kl, TagAliasesResource as km, type TagAliasesResourceQueryParams as kn, type TagCreate as ko, type TagGroup as kp, type TagGroupCreate as kq, type TagGroupSummary as kr, type TagGroupUpdate as ks, TagGroupsResource as kt, type TagGroupsResourceQueryParams as ku, type TagSummary as kv, type TagUpdate as kw, TagsResource as kx, type TagsResourceQueryParams as ky, type Task as kz, type ProjectCharge as l, type TicketNoteWebhookSummary as l$, TicketAdditionalContactsResource as l0, type TicketAdditionalContactsResourceQueryParams as l1, type TicketAttachment as l2, type TicketAttachmentCreate as l3, type TicketAttachmentSummary as l4, type TicketAttachmentUpdate as l5, TicketAttachmentsResource as l6, type TicketAttachmentsResourceQueryParams as l7, TicketCategoriesResource as l8, type TicketCategoriesResourceQueryParams as l9, type TicketChecklistItemsResourceQueryParams as lA, TicketChecklistLibrariesResource as lB, type TicketChecklistLibrariesResourceQueryParams as lC, type TicketChecklistLibrary as lD, type TicketChecklistLibraryCreate as lE, type TicketChecklistLibrarySummary as lF, type TicketChecklistLibraryUpdate as lG, type TicketContext as lH, type TicketCreate as lI, type TicketHistory as lJ, type TicketHistoryCreate as lK, TicketHistoryResource as lL, type TicketHistoryResourceQueryParams as lM, type TicketHistorySummary as lN, type TicketHistoryUpdate as lO, type TicketNote as lP, type TicketNoteAttachment as lQ, type TicketNoteAttachmentCreate as lR, type TicketNoteAttachmentSummary as lS, type TicketNoteAttachmentUpdate as lT, TicketNoteAttachmentsResource as lU, type TicketNoteAttachmentsResourceQueryParams as lV, type TicketNoteCreate as lW, type TicketNoteSummary as lX, type TicketNoteUpdate as lY, type TicketNoteWebhook as lZ, type TicketNoteWebhookCreate as l_, type TicketCategory as la, type TicketCategoryCreate as lb, type TicketCategoryFieldDefault as lc, type TicketCategoryFieldDefaultCreate as ld, type TicketCategoryFieldDefaultSummary as le, type TicketCategoryFieldDefaultUpdate as lf, TicketCategoryFieldDefaultsResource as lg, type TicketCategoryFieldDefaultsResourceQueryParams as lh, type TicketCategorySummary as li, type TicketCategoryUpdate as lj, type TicketChangeRequestApproval as lk, type TicketChangeRequestApprovalCreate as ll, type TicketChangeRequestApprovalSummary as lm, type TicketChangeRequestApprovalUpdate as ln, TicketChangeRequestApprovalsResource as lo, type TicketChangeRequestApprovalsResourceQueryParams as lp, type TicketChargeCreate as lq, type TicketChargeSummary as lr, type TicketChargeUpdate as ls, TicketChargesResource as lt, type TicketChargesResourceQueryParams as lu, type TicketChecklistItem as lv, type TicketChecklistItemCreate as lw, type TicketChecklistItemSummary as lx, type TicketChecklistItemUpdate as ly, TicketChecklistItemsResource as lz, type TicketAdditionalConfigurationItem as m, readTtlFor as m$, type TicketNoteWebhookUpdate as m0, TicketNoteWebhooksResource as m1, type TicketNoteWebhooksResourceQueryParams as m2, TicketNotesResource as m3, type TicketNotesResourceQueryParams as m4, type TicketSecondaryResource as m5, type TicketSecondaryResourceCreate as m6, type TicketSecondaryResourceSummary as m7, type TicketSecondaryResourceUpdate as m8, TicketSecondaryResourcesResource as m9, type TimeEntryAttachmentUpdate as mA, TimeEntryAttachmentsResource as mB, type TimeEntryAttachmentsResourceQueryParams as mC, type TimeEntryCreate as mD, type TimeEntrySummary as mE, type TimeEntryUpdate as mF, type TimeOffRequest as mG, type TimeOffRequestCreate as mH, type TimeOffRequestReject as mI, type TimeOffRequestSummary as mJ, type TimeOffRequestUpdate as mK, TimeOffRequestsResource as mL, type TimeOffRequestsResourceQueryParams as mM, type TtlCacheOptions as mN, type UdfField as mO, VersionInformationResource as mP, VersionResource as mQ, ZONES as mR, ZONE_CATALOG as mS, ZoneInformationResource as mT, type ZoneInformationResultModel as mU, clampPageSize as mV, collectAll as mW, fieldKey as mX, isCredentialHeaderName as mY, paginate as mZ, paginateItems as m_, type TicketSecondaryResourcesResourceQueryParams as ma, type TicketSummary as mb, type TicketUpdate as mc, type TicketWebhook as md, type TicketWebhookCreate as me, type TicketWebhookSummary as mf, type TicketWebhookUpdate as mg, TicketWebhooksResource as mh, type TicketWebhooksResourceQueryParams as mi, TicketsResource as mj, type TicketsResourceQueryParams as mk, type TimeEntriesPostedCountResult as ml, type TimeEntriesPostedPagingOptions as mm, type TimeEntriesPostedStateResult as mn, type TimeEntriesPostedWindowCountOptions as mo, type TimeEntriesPostedWindowListOptions as mp, type TimeEntriesPostedWindowOptions as mq, type TimeEntriesPostedWindowResult as mr, TimeEntriesResource as ms, type TimeEntriesResourceQueryParams as mt, type TimeEntriesStatusCountOptions as mu, type TimeEntriesStatusListOptions as mv, type TimeEntriesStatusOptions as mw, type TimeEntryAttachment as mx, type TimeEntryAttachmentCreate as my, type TimeEntryAttachmentSummary as mz, type TicketAdditionalContact as n, redactRecord as n0, resolveBaseUrl as n1, toArray as n2, totalPagesFor as n3, zoneUrl as n4, type RowNamesSummary as n5, type BlindSurfaceInfo as n6, type RelationshipResource as n7, type BlindSurfaceInventory as n8, type BlindSurfaceRow as n9, type CreateGuidanceValueRequirement as na, type CreateGuidanceRow as nb, type CreateBlockerKind as nc, type CreateGuidanceReport as nd, type DerivationRule as ne, FIELD_CATALOG_HONESTY_NOTE as nf, type FieldCatalogCompactFieldRow as ng, type FieldCatalogFieldRow as nh, type FieldCatalogOptions as ni, type FieldCatalogResult as nj, type FieldCatalogRow as nk, type FieldCatalogRowError as nl, type FieldCatalogTrimKind as nm, type FieldCatalogTruncation as nn, type FieldDerivation as no, MAX_FIELD_CATALOG_WIRE as np, MIN_FIELD_CATALOG_MAX_BYTES as nq, PICKLIST_CATALOG_UNAVAILABLE_NOTE as nr, PICKLIST_VALUE_NOT_SERVED_NOTE as ns, fieldCatalog as nt, type TicketCharge as o, type TimeEntry as p, type TicketChangeStatusResult as q, type TicketChangeStatusNoChange as r, AGENT_PROFILE as s, type ApiVersionResultModel as t, type Appointment as u, type AppointmentCreate as v, type AppointmentSummary as w, type AppointmentUpdate as x, AppointmentsResource as y, type AppointmentsResourceQueryParams as z };
|