@versionone/agility-sdk 1.0.0-alpha.4 → 1.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -75,7 +75,7 @@ interface RequestOptions {
75
75
  /**
76
76
  * Called with a successful response's status and headers before its body
77
77
  * is read — for what the body alone does not say (an attachment's
78
- * Content-Type, say). A transport that cannot see headers may skip it.
78
+ * Content-Type, an ETag). A transport that cannot see headers may skip it.
79
79
  */
80
80
  onResponse?: (response: {
81
81
  status: number;
@@ -83,6 +83,12 @@ interface RequestOptions {
83
83
  get(name: string): string | null;
84
84
  };
85
85
  }) => void;
86
+ /**
87
+ * The request is conditional (an If-None-Match header is set) and a
88
+ * 304 Not Modified is an answer, not a failure: the promise then resolves
89
+ * to undefined after onResponse has seen the 304 and its headers.
90
+ */
91
+ acceptNotModified?: boolean;
86
92
  }
87
93
  interface Transport {
88
94
  request<T>(options: RequestOptions): Promise<T>;
@@ -99,7 +105,9 @@ interface Transport {
99
105
  * failure from an answer, but they are narrow on purpose: only requests the
100
106
  * caller marks idempotent (every GET is; a POST to api/asset is not — a
101
107
  * retried batch write after a timeout is a double write), and only on a
102
- * network error or a 5xx. A 4xx is an answer and is never retried.
108
+ * network error, a 5xx, or a 429 (the instance throttles per token; it
109
+ * sends no Retry-After, but one is honoured when present, up to 30 s). Any
110
+ * other 4xx is an answer and is never retried.
103
111
  */
104
112
  interface FetchTransportConfig {
105
113
  baseUrl: string;
@@ -115,7 +123,12 @@ interface FetchTransportConfig {
115
123
  * timeouts that turn into retries.
116
124
  */
117
125
  timeoutMs?: number;
118
- /** Extra attempts after the first, for idempotent requests only. Default 0. */
126
+ /**
127
+ * Extra attempts after the first, for idempotent requests only (a GET,
128
+ * a query.v1 read, a guarded batch that says so), after a network
129
+ * failure or a 5xx. Default 1: one resend, 150 ms later. 0 turns it off.
130
+ * A plain write is never resent whatever this says.
131
+ */
119
132
  retries?: number;
120
133
  fetchImpl?: typeof fetch;
121
134
  /**
@@ -4287,7 +4300,13 @@ declare function fromWireRow<Row extends Asset = Asset>(row: Record<string, unkn
4287
4300
  interface CommandFailureDetail {
4288
4301
  index: number | null;
4289
4302
  message: string;
4290
- echoed: Record<string, unknown>;
4303
+ /**
4304
+ * The command as the server echoed it, under a generated alias: what a
4305
+ * caller resends after correcting it. Readable on every failure but not
4306
+ * enumerable, so a serialised failure (a receipt, a log line) carries
4307
+ * index, message and violation and not the whole command.
4308
+ */
4309
+ readonly echoed: Record<string, unknown>;
4291
4310
  /** The message read as a validation violation, when it is one. */
4292
4311
  violation: Violation | null;
4293
4312
  }
@@ -4544,6 +4563,10 @@ declare class TypeCache {
4544
4563
  /** Loaded types; null records that the instance has no such type, so it is not asked for again. */
4545
4564
  readonly types: Map<string, AssetType | null>;
4546
4565
  readonly loading: Map<string, Promise<AssetType | null>>;
4566
+ /** The schema's tag the loaded types came with (meta.v1's ETag, one for the whole schema); null until a load, or for a seeded cache. */
4567
+ etag: string | null;
4568
+ /** Forget every loaded type (and the tag): the next query loads afresh. In-flight loads finish into the cache as before. */
4569
+ clear(): void;
4547
4570
  /** A cache seeded from a metamodel document. */
4548
4571
  static fromMetamodel(metamodel: Metamodel): TypeCache;
4549
4572
  }
@@ -4576,6 +4599,18 @@ declare class Schema implements AttributeLookup {
4576
4599
  * any other failure (auth, network) is thrown, not swallowed.
4577
4600
  */
4578
4601
  load(token: AssetTypeToken): Promise<AssetType | null>;
4602
+ /**
4603
+ * Has the instance's schema changed since these types were loaded? One
4604
+ * small conditional read of meta.v1. Unchanged: nothing happens.
4605
+ * Changed (or never tagged, or the transport cannot see headers): the
4606
+ * loaded types are dropped, so the next query loads them again, and the
4607
+ * new tag is kept. Answers whether it changed and the current tag. A
4608
+ * schema without a transport (seeded) never changes.
4609
+ */
4610
+ revalidate(): Promise<{
4611
+ changed: boolean;
4612
+ etag: string | null;
4613
+ }>;
4579
4614
  /**
4580
4615
  * Load whatever the queries in a batch need to have their rows translated:
4581
4616
  * the `from` types, then the types behind every relation hop and sub-select,
@@ -4980,6 +5015,108 @@ declare namespace loc2 {
4980
5015
  export type { loc2_Localizations as Localizations, loc2_LocalizeOptions as LocalizeOptions };
4981
5016
  }
4982
5017
 
5018
+ interface TokenRef {
5019
+ href: string;
5020
+ tokenref: AttributeTokenRef;
5021
+ }
5022
+ interface NameRef {
5023
+ href: string;
5024
+ nameref: AssetTypeToken;
5025
+ }
5026
+ interface AttributeDefinitionDocument {
5027
+ HREF?: string;
5028
+ _type: "AttributeDefinition";
5029
+ Name: string;
5030
+ Token: AttributeTokenRef;
5031
+ DisplayName: string;
5032
+ AttributeType: AttributeType;
5033
+ IsReadOnly: boolean;
5034
+ IsRequired: boolean;
5035
+ IsMultivalue: boolean;
5036
+ IsCanned: boolean;
5037
+ IsCustom: boolean;
5038
+ /** Present on an inherited attribute: the defining ancestor's attribute. */
5039
+ Base?: TokenRef;
5040
+ ReciprocalRelation?: TokenRef;
5041
+ OrderByAttribute?: TokenRef;
5042
+ DisplayByAttribute?: TokenRef;
5043
+ /** Present on a Relation. */
5044
+ RelatedAsset?: NameRef;
5045
+ }
5046
+ interface AssetTypeDocument {
5047
+ HREF?: string;
5048
+ Version?: string;
5049
+ _type: "AssetType";
5050
+ Token: AssetTypeToken;
5051
+ /** The delivered Name is a reference to the type's Name attribute; the token is the name. */
5052
+ Name: TokenRef | string;
5053
+ DisplayName: string;
5054
+ Abstract: boolean;
5055
+ /** Absent on a root type. */
5056
+ Base?: NameRef;
5057
+ DefaultOrderBy?: TokenRef;
5058
+ DefaultDisplayBy?: TokenRef;
5059
+ ShortName?: TokenRef;
5060
+ Description?: TokenRef;
5061
+ Attributes: Record<string, AttributeDefinitionDocument>;
5062
+ Operations?: Record<string, unknown>;
5063
+ Rules?: Record<string, unknown>;
5064
+ }
5065
+ interface MetamodelDocument {
5066
+ HREF?: string;
5067
+ Version: string;
5068
+ AssetTypes: Record<string, AssetTypeDocument>;
5069
+ }
5070
+ declare function toAttributeDefinition(doc: AttributeDefinitionDocument): AttributeDefinition;
5071
+ declare function toAssetType(doc: AssetTypeDocument): AssetType;
5072
+ declare function toMetamodel(doc: MetamodelDocument): Metamodel;
5073
+ /** Is this a metamodel document as meta.v1 delivers it? (A downloaded metamodel.json, say.) */
5074
+ declare function isMetamodelDocument(value: unknown): value is MetamodelDocument;
5075
+ /** A conditional read: the tag a previous answer carried. With it, an unchanged resource is null. */
5076
+ interface ConditionalOptions {
5077
+ ifNoneMatch?: string | null;
5078
+ }
5079
+ /** What a read answered, with the schema's tag as the server sent it (null when it sent none). */
5080
+ interface Tagged<T> {
5081
+ value: T;
5082
+ etag: string | null;
5083
+ }
5084
+ declare function getMetamodel(transport: Transport): Promise<Metamodel>;
5085
+ /** The metamodel with its tag; null when `ifNoneMatch` still matches (nothing was downloaded). */
5086
+ declare function readMetamodel(transport: Transport, options?: ConditionalOptions): Promise<Tagged<Metamodel> | null>;
5087
+ declare function getAssetType(transport: Transport, token: AssetTypeToken): Promise<AssetType>;
5088
+ /** One type with the schema's tag; null when `ifNoneMatch` still matches. */
5089
+ declare function readAssetType(transport: Transport, token: AssetTypeToken, options?: ConditionalOptions): Promise<Tagged<AssetType> | null>;
5090
+ /**
5091
+ * The schema's current tag, from one small read, or null when the server
5092
+ * sends none. With `ifNoneMatch`, "unchanged" is answered as that same tag
5093
+ * without a body — the cheapest way to ask whether anything in meta moved.
5094
+ */
5095
+ declare function etag(transport: Transport, options?: ConditionalOptions): Promise<string | null>;
5096
+ declare function getAttributeDefinition(transport: Transport, tokenref: AttributeTokenRef): Promise<AttributeDefinition>;
5097
+
5098
+ type meta_AssetTypeDocument = AssetTypeDocument;
5099
+ type meta_AttributeDefinitionDocument = AttributeDefinitionDocument;
5100
+ type meta_ConditionalOptions = ConditionalOptions;
5101
+ type meta_MetamodelDocument = MetamodelDocument;
5102
+ type meta_NameRef = NameRef;
5103
+ type meta_Tagged<T> = Tagged<T>;
5104
+ type meta_TokenRef = TokenRef;
5105
+ declare const meta_etag: typeof etag;
5106
+ declare const meta_getAssetType: typeof getAssetType;
5107
+ declare const meta_getAttributeDefinition: typeof getAttributeDefinition;
5108
+ declare const meta_getMetamodel: typeof getMetamodel;
5109
+ declare const meta_isMetamodelDocument: typeof isMetamodelDocument;
5110
+ declare const meta_readAssetType: typeof readAssetType;
5111
+ declare const meta_readMetamodel: typeof readMetamodel;
5112
+ declare const meta_toAssetType: typeof toAssetType;
5113
+ declare const meta_toAttributeDefinition: typeof toAttributeDefinition;
5114
+ declare const meta_toMetamodel: typeof toMetamodel;
5115
+ declare namespace meta {
5116
+ export { meta_etag as etag, meta_getAssetType as getAssetType, meta_getAttributeDefinition as getAttributeDefinition, meta_getMetamodel as getMetamodel, meta_isMetamodelDocument as isMetamodelDocument, meta_readAssetType as readAssetType, meta_readMetamodel as readMetamodel, meta_toAssetType as toAssetType, meta_toAttributeDefinition as toAttributeDefinition, meta_toMetamodel as toMetamodel };
5117
+ export type { meta_AssetTypeDocument as AssetTypeDocument, meta_AttributeDefinitionDocument as AttributeDefinitionDocument, meta_ConditionalOptions as ConditionalOptions, meta_MetamodelDocument as MetamodelDocument, meta_NameRef as NameRef, meta_Tagged as Tagged, meta_TokenRef as TokenRef };
5118
+ }
5119
+
4983
5120
  interface AssetRefDocument {
4984
5121
  _type: "Asset";
4985
5122
  href: string;
@@ -5213,11 +5350,21 @@ declare class AgilityApiClient {
5213
5350
  all<Row extends Asset = Asset>(q: QueryBody, options?: PagesOptions): Promise<Row[]>;
5214
5351
  /** The member these credentials belong to (Member.IsSelf, live 2026-11-12): what a comment's Author is. */
5215
5352
  me(): Promise<Me>;
5216
- /** meta.v1: the instance's schema, raw. (The translated, cached view is `schema`.) */
5353
+ /**
5354
+ * meta.v1: the instance's schema, raw. (The translated, cached view is
5355
+ * `schema`; `schema.revalidate()` drops it when the schema's tag moves.)
5356
+ * `read` and `readType` are conditional: pass the tag a previous answer
5357
+ * carried and an unchanged schema answers null without a download —
5358
+ * meta.v1 sends one strong ETag for the whole schema. `etag()` reads that
5359
+ * tag alone, from the smallest resource.
5360
+ */
5217
5361
  readonly meta: {
5218
5362
  metamodel: () => Promise<Metamodel>;
5363
+ read: (options?: ConditionalOptions) => Promise<Tagged<Metamodel> | null>;
5219
5364
  assetType: (token: string) => Promise<AssetType>;
5365
+ readType: (token: string, options?: ConditionalOptions) => Promise<Tagged<AssetType> | null>;
5220
5366
  attributeDefinition: (tokenref: `${string}.${string}`) => Promise<AttributeDefinition>;
5367
+ etag: (options?: ConditionalOptions) => Promise<string | null>;
5221
5368
  };
5222
5369
  /**
5223
5370
  * loc-2.v1: labels for tags, in one request (meta's DisplayName values are
@@ -5379,84 +5526,11 @@ declare class AgilityApiClient {
5379
5526
  };
5380
5527
  }
5381
5528
 
5382
- interface TokenRef {
5383
- href: string;
5384
- tokenref: AttributeTokenRef;
5385
- }
5386
- interface NameRef {
5387
- href: string;
5388
- nameref: AssetTypeToken;
5389
- }
5390
- interface AttributeDefinitionDocument {
5391
- HREF?: string;
5392
- _type: "AttributeDefinition";
5393
- Name: string;
5394
- Token: AttributeTokenRef;
5395
- DisplayName: string;
5396
- AttributeType: AttributeType;
5397
- IsReadOnly: boolean;
5398
- IsRequired: boolean;
5399
- IsMultivalue: boolean;
5400
- IsCanned: boolean;
5401
- IsCustom: boolean;
5402
- /** Present on an inherited attribute: the defining ancestor's attribute. */
5403
- Base?: TokenRef;
5404
- ReciprocalRelation?: TokenRef;
5405
- OrderByAttribute?: TokenRef;
5406
- DisplayByAttribute?: TokenRef;
5407
- /** Present on a Relation. */
5408
- RelatedAsset?: NameRef;
5409
- }
5410
- interface AssetTypeDocument {
5411
- HREF?: string;
5412
- Version?: string;
5413
- _type: "AssetType";
5414
- Token: AssetTypeToken;
5415
- /** The delivered Name is a reference to the type's Name attribute; the token is the name. */
5416
- Name: TokenRef | string;
5417
- DisplayName: string;
5418
- Abstract: boolean;
5419
- /** Absent on a root type. */
5420
- Base?: NameRef;
5421
- DefaultOrderBy?: TokenRef;
5422
- DefaultDisplayBy?: TokenRef;
5423
- ShortName?: TokenRef;
5424
- Description?: TokenRef;
5425
- Attributes: Record<string, AttributeDefinitionDocument>;
5426
- Operations?: Record<string, unknown>;
5427
- Rules?: Record<string, unknown>;
5428
- }
5429
- interface MetamodelDocument {
5430
- HREF?: string;
5431
- Version: string;
5432
- AssetTypes: Record<string, AssetTypeDocument>;
5433
- }
5434
- declare function toAttributeDefinition(doc: AttributeDefinitionDocument): AttributeDefinition;
5435
- declare function toAssetType(doc: AssetTypeDocument): AssetType;
5436
- declare function toMetamodel(doc: MetamodelDocument): Metamodel;
5437
- /** Is this a metamodel document as meta.v1 delivers it? (A downloaded metamodel.json, say.) */
5438
- declare function isMetamodelDocument(value: unknown): value is MetamodelDocument;
5439
- declare function getMetamodel(transport: Transport): Promise<Metamodel>;
5440
- declare function getAssetType(transport: Transport, token: AssetTypeToken): Promise<AssetType>;
5441
- declare function getAttributeDefinition(transport: Transport, tokenref: AttributeTokenRef): Promise<AttributeDefinition>;
5442
-
5443
- type meta_AssetTypeDocument = AssetTypeDocument;
5444
- type meta_AttributeDefinitionDocument = AttributeDefinitionDocument;
5445
- type meta_MetamodelDocument = MetamodelDocument;
5446
- type meta_NameRef = NameRef;
5447
- type meta_TokenRef = TokenRef;
5448
- declare const meta_getAssetType: typeof getAssetType;
5449
- declare const meta_getAttributeDefinition: typeof getAttributeDefinition;
5450
- declare const meta_getMetamodel: typeof getMetamodel;
5451
- declare const meta_isMetamodelDocument: typeof isMetamodelDocument;
5452
- declare const meta_toAssetType: typeof toAssetType;
5453
- declare const meta_toAttributeDefinition: typeof toAttributeDefinition;
5454
- declare const meta_toMetamodel: typeof toMetamodel;
5455
- declare namespace meta {
5456
- export { meta_getAssetType as getAssetType, meta_getAttributeDefinition as getAttributeDefinition, meta_getMetamodel as getMetamodel, meta_isMetamodelDocument as isMetamodelDocument, meta_toAssetType as toAssetType, meta_toAttributeDefinition as toAttributeDefinition, meta_toMetamodel as toMetamodel };
5457
- export type { meta_AssetTypeDocument as AssetTypeDocument, meta_AttributeDefinitionDocument as AttributeDefinitionDocument, meta_MetamodelDocument as MetamodelDocument, meta_NameRef as NameRef, meta_TokenRef as TokenRef };
5529
+ /** What query.v1 said about each refused query: its exception type and message. */
5530
+ interface QueryRejection {
5531
+ type: string | null;
5532
+ message: string;
5458
5533
  }
5459
-
5460
5534
  /**
5461
5535
  * Several queries in one request; one array of rows per query, in order, []
5462
5536
  * where a query matched nothing. A page is required on every query. A
@@ -5467,13 +5541,12 @@ declare function queries<Row extends Asset = Asset>(transport: Transport, qs: Qu
5467
5541
  /** One query, its rows. */
5468
5542
  declare function query<Row extends Asset = Asset>(transport: Transport, q: QueryBody, options?: ReadOptions): Promise<Row[]>;
5469
5543
 
5544
+ type queryV1_QueryRejection = QueryRejection;
5470
5545
  declare const queryV1_queries: typeof queries;
5471
5546
  declare const queryV1_query: typeof query;
5472
5547
  declare namespace queryV1 {
5473
- export {
5474
- queryV1_queries as queries,
5475
- queryV1_query as query,
5476
- };
5548
+ export { queryV1_queries as queries, queryV1_query as query };
5549
+ export type { queryV1_QueryRejection as QueryRejection };
5477
5550
  }
5478
5551
 
5479
5552
  /** The attributes shown for each type in the scopes given: a map from type token to sorted attribute names. */
@@ -5491,4 +5564,4 @@ declare namespace fields {
5491
5564
  }
5492
5565
 
5493
5566
  export { ASSET_STATE_CODES, AgilityApiClient, ApiError, AttachmentUploadError, BatchRecordError, BatchSendError, CommandFailureError, INLINE_LIMIT, INVERSE, NUMBER_ROOTS, CHUNK as RESOLVE_CHUNK, Schema, TypeCache, UNGUARDABLE_TYPES, UnguardableError, UsageError, WrappedError, assetApi, assetStateOf, attachment, createFetchTransport, describe as describeBatch, fields, guard, importantName, isAssetNumber, isOidToken, kindOf, loc2, meta, momentless, namesOf, parseOid, parseViolation, queryV1, resolveNumbers, resolveRef, rest1, reverseOf, reversible, runBatch, select, sendGuarded, snapshot, stampsOf, toOid, touchedBy, typeOfOid, unguardable };
5494
- export type { Access, Actual, Allocation, Application, Asset, AssetApiResponse, AssetChangedEventDefinition, AssetCreatedEventDefinition, AssetDocument, AssetNumberAttributeDefinition, AssetStateValue, AssetType, AssetTypeMap, AssetTypeName, AssetTypeToken, AssetsDocument, Attachment, AddOptions as AttachmentAddOptions, AttachmentCategory, AttachmentInfo, AttributeAddedEventDefinition, AttributeChangedEventDefinition, AttributeDefinition, AttributeLookup, AttributeRemovedEventDefinition, AttributeTokenRef, AttributeType, AttributeValue, BaseAsset, BatchOptions, Budget, BuildProject, BuildRun, BuildSource, BuildStatus, Bundle, BusinessRule, Bytes, CalendarEvent, CalendarEventCategory, Capacity, ChangeSet, ClassOfService, ClientConfig, ClientOptions, Command, CommandBody, CommandFailureDetail, CommandValue, Community, Concept, ConcreteAssetTypeName, Conversation, CreateBody, CreateType, CredentialsAttributeDefinition, CustomAttributes, CustomList, DateString, DefaultRule, Defect, DefectResolution, DefectType, Delivery, DeliveryCategory, Described, EmbeddedImage$1 as EmbeddedImage, Environment, Epic, EpicCategory, EpicPriority, EpicStatus, ErrorKind, ExecuteBody, ExecuteSecurityCheckAttributeDefinition, Expression, ExpressionImage, ExpressionSpace, ExternalAction, ExternalActionInvocation, FetchTransportConfig, FieldsOf, From, Goal, GoalCategory, GoalPriority, Grant, GuardedResult, HierarchyRelationDefinition, Idea, IdeaCategory, IdeaChangeSet, IdeaComment, IdeaForum, IdeaStatus, IdeaUser, IdeasUserCache, Image, Issue, IssueCategory, IssuePriority, IssueResolution, IssueStatus, KeyResult, KeyResultCommitment, KeyResultUnit, Label, Link, LinkCategory, List, Localizations, LocalizeOptions, ManyToManyRelationDefinition, Me, Member, MemberLabel, Message, MessageReceipt, Metamodel, Milestone, MilestoneCategory, MultivalueAttributeDefinition, NameLookupFailure, Named, NoteCategory, Oid, OidParts, Okr, OkrObjective, OkrSession, OneToManyRelationDefinition, OperationExecutedEventDefinition, OperationResult, Outcome, Page, PagesOptions, PasswordAttributeDefinition, Phase, PlanningLevel, PlanningRoom, PrimaryWorkitem, PrincipalAttributeDefinition, Publication, QueryBody, ReadOptions, ReadParams, ReadResult, Receipt, Ref, RegressionPlan, RegressionSuite, RegressionTest, RegressionTestStatus, Release, Request, RequestBody, RequestCategory, RequestOptions, RequestPriority, RequestResolution, RequestStatus, Resolution, ResolvedAsset, ResponseType, Retrospective, RetrospectivePrompt, RetrospectiveTopic, Reverse, Roadmap, Role, Room, RowContext, RowOf, RowsOf, SavedView, Schedule, Scheme, Scope, ScopeLabel, ScopeStatus, SelectKey, SelectPath, SelectValue, Selected, SendOptions, SimpleAttributeDefinition, State, Status, Story, StoryCategory, StorySource, StoryStatus, StrategicTheme, StrategicThemeLevel, Subscription, SubscriptionTerm, SyntheticAttributeDefinition, Task, TaskCategory, TaskSource, TaskStatus, Team, TeamRoom, TeamWorkflow, Template, Test, TestCategory, TestRun, TestSet, TestStatus, TestSuite, Theme, ThemeCategory, ThemeLabel, ThemeSource, ThemeStatus, Timebox, Timesheet, Topic, Transport, TriggerType, TypeOf, UnauthorizedContext, UnauthorizedDecision, Unguardable, UpdateBody, UpdateSecurityCheckAttributeDefinition, ValueStream, VersionLabel, Violation, Workflow, WorkflowTransition, Workitem, WorkitemPriority, WorkitemRisk };
5567
+ export type { Access, Actual, Allocation, Application, Asset, AssetApiResponse, AssetChangedEventDefinition, AssetCreatedEventDefinition, AssetDocument, AssetNumberAttributeDefinition, AssetStateValue, AssetType, AssetTypeMap, AssetTypeName, AssetTypeToken, AssetsDocument, Attachment, AddOptions as AttachmentAddOptions, AttachmentCategory, AttachmentInfo, AttributeAddedEventDefinition, AttributeChangedEventDefinition, AttributeDefinition, AttributeLookup, AttributeRemovedEventDefinition, AttributeTokenRef, AttributeType, AttributeValue, BaseAsset, BatchOptions, Budget, BuildProject, BuildRun, BuildSource, BuildStatus, Bundle, BusinessRule, Bytes, CalendarEvent, CalendarEventCategory, Capacity, ChangeSet, ClassOfService, ClientConfig, ClientOptions, Command, CommandBody, CommandFailureDetail, CommandValue, Community, Concept, ConcreteAssetTypeName, ConditionalOptions, Conversation, CreateBody, CreateType, CredentialsAttributeDefinition, CustomAttributes, CustomList, DateString, DefaultRule, Defect, DefectResolution, DefectType, Delivery, DeliveryCategory, Described, EmbeddedImage$1 as EmbeddedImage, Environment, Epic, EpicCategory, EpicPriority, EpicStatus, ErrorKind, ExecuteBody, ExecuteSecurityCheckAttributeDefinition, Expression, ExpressionImage, ExpressionSpace, ExternalAction, ExternalActionInvocation, FetchTransportConfig, FieldsOf, From, Goal, GoalCategory, GoalPriority, Grant, GuardedResult, HierarchyRelationDefinition, Idea, IdeaCategory, IdeaChangeSet, IdeaComment, IdeaForum, IdeaStatus, IdeaUser, IdeasUserCache, Image, Issue, IssueCategory, IssuePriority, IssueResolution, IssueStatus, KeyResult, KeyResultCommitment, KeyResultUnit, Label, Link, LinkCategory, List, Localizations, LocalizeOptions, ManyToManyRelationDefinition, Me, Member, MemberLabel, Message, MessageReceipt, Metamodel, Milestone, MilestoneCategory, MultivalueAttributeDefinition, NameLookupFailure, Named, NoteCategory, Oid, OidParts, Okr, OkrObjective, OkrSession, OneToManyRelationDefinition, OperationExecutedEventDefinition, OperationResult, Outcome, Page, PagesOptions, PasswordAttributeDefinition, Phase, PlanningLevel, PlanningRoom, PrimaryWorkitem, PrincipalAttributeDefinition, Publication, QueryBody, QueryRejection, ReadOptions, ReadParams, ReadResult, Receipt, Ref, RegressionPlan, RegressionSuite, RegressionTest, RegressionTestStatus, Release, Request, RequestBody, RequestCategory, RequestOptions, RequestPriority, RequestResolution, RequestStatus, Resolution, ResolvedAsset, ResponseType, Retrospective, RetrospectivePrompt, RetrospectiveTopic, Reverse, Roadmap, Role, Room, RowContext, RowOf, RowsOf, SavedView, Schedule, Scheme, Scope, ScopeLabel, ScopeStatus, SelectKey, SelectPath, SelectValue, Selected, SendOptions, SimpleAttributeDefinition, State, Status, Story, StoryCategory, StorySource, StoryStatus, StrategicTheme, StrategicThemeLevel, Subscription, SubscriptionTerm, SyntheticAttributeDefinition, Tagged, Task, TaskCategory, TaskSource, TaskStatus, Team, TeamRoom, TeamWorkflow, Template, Test, TestCategory, TestRun, TestSet, TestStatus, TestSuite, Theme, ThemeCategory, ThemeLabel, ThemeSource, ThemeStatus, Timebox, Timesheet, Topic, Transport, TriggerType, TypeOf, UnauthorizedContext, UnauthorizedDecision, Unguardable, UpdateBody, UpdateSecurityCheckAttributeDefinition, ValueStream, VersionLabel, Violation, Workflow, WorkflowTransition, Workitem, WorkitemPriority, WorkitemRisk };