@spaciv/sdk 0.1.16 → 0.1.18

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.
Files changed (52) hide show
  1. package/README.md +2 -2
  2. package/dist/apis/AssistantApi.d.ts +16 -16
  3. package/dist/apis/AssistantApi.js +8 -8
  4. package/dist/apis/FloorPlansApi.d.ts +8 -8
  5. package/dist/apis/FloorPlansApi.js +4 -4
  6. package/dist/apis/ScenariosApi.d.ts +4 -4
  7. package/dist/apis/ScenariosApi.js +2 -2
  8. package/dist/esm/apis/AssistantApi.d.ts +16 -16
  9. package/dist/esm/apis/AssistantApi.js +8 -8
  10. package/dist/esm/apis/FloorPlansApi.d.ts +8 -8
  11. package/dist/esm/apis/FloorPlansApi.js +4 -4
  12. package/dist/esm/apis/ScenariosApi.d.ts +4 -4
  13. package/dist/esm/apis/ScenariosApi.js +2 -2
  14. package/dist/esm/models/AssistantChatPollBody.d.ts +12 -0
  15. package/dist/esm/models/AssistantChatPollBody.js +8 -0
  16. package/dist/esm/models/AssistantChatPollMessage.d.ts +6 -0
  17. package/dist/esm/models/AssistantChatPollMessage.js +4 -0
  18. package/dist/esm/models/AssistantTranscriptBody.d.ts +18 -0
  19. package/dist/esm/models/AssistantTranscriptBody.js +12 -0
  20. package/dist/esm/models/FloorplanCreateSpace.d.ts +12 -0
  21. package/dist/esm/models/FloorplanCreateSpace.js +4 -0
  22. package/dist/esm/models/FloorplanGetBody.d.ts +6 -0
  23. package/dist/esm/models/FloorplanGetBody.js +2 -0
  24. package/dist/esm/models/FloorplanGetBodySpace.d.ts +14 -2
  25. package/dist/esm/models/FloorplanGetBodySpace.js +4 -0
  26. package/dist/esm/models/FloorplanPatchParamsBody.d.ts +6 -0
  27. package/dist/esm/models/FloorplanPatchParamsBody.js +2 -0
  28. package/dist/models/AssistantChatPollBody.d.ts +12 -0
  29. package/dist/models/AssistantChatPollBody.js +8 -0
  30. package/dist/models/AssistantChatPollMessage.d.ts +6 -0
  31. package/dist/models/AssistantChatPollMessage.js +4 -0
  32. package/dist/models/AssistantTranscriptBody.d.ts +18 -0
  33. package/dist/models/AssistantTranscriptBody.js +12 -0
  34. package/dist/models/FloorplanCreateSpace.d.ts +12 -0
  35. package/dist/models/FloorplanCreateSpace.js +4 -0
  36. package/dist/models/FloorplanGetBody.d.ts +6 -0
  37. package/dist/models/FloorplanGetBody.js +2 -0
  38. package/dist/models/FloorplanGetBodySpace.d.ts +14 -2
  39. package/dist/models/FloorplanGetBodySpace.js +4 -0
  40. package/dist/models/FloorplanPatchParamsBody.d.ts +6 -0
  41. package/dist/models/FloorplanPatchParamsBody.js +2 -0
  42. package/package.json +1 -1
  43. package/src/apis/AssistantApi.ts +16 -16
  44. package/src/apis/FloorPlansApi.ts +8 -8
  45. package/src/apis/ScenariosApi.ts +4 -4
  46. package/src/models/AssistantChatPollBody.ts +18 -0
  47. package/src/models/AssistantChatPollMessage.ts +9 -0
  48. package/src/models/AssistantTranscriptBody.ts +27 -0
  49. package/src/models/FloorplanCreateSpace.ts +16 -0
  50. package/src/models/FloorplanGetBody.ts +8 -0
  51. package/src/models/FloorplanGetBodySpace.ts +18 -2
  52. package/src/models/FloorplanPatchParamsBody.ts +8 -0
@@ -48,6 +48,18 @@ export interface AssistantChatPollBody {
48
48
  * @memberof AssistantChatPollBody
49
49
  */
50
50
  status: string;
51
+ /**
52
+ * While a subsession is running, how many messages it has recorded so far, which grows with each of its steps even when it calls the same tool again. Zero when no subsession is running, including once it has ended and before the turn has recorded its result.
53
+ * @type {number}
54
+ * @memberof AssistantChatPollBody
55
+ */
56
+ subsessionSteps: number;
57
+ /**
58
+ * While a subsession is running, the tool it is running now. Empty while it is thinking, and when no subsession is running. The running subsession is the run_subsession action whose toolCallId is not yet among the finished tool calls.
59
+ * @type {string}
60
+ * @memberof AssistantChatPollBody
61
+ */
62
+ subsessionTool: string;
51
63
  }
52
64
  /**
53
65
  * Check if a given object implements the AssistantChatPollBody interface.
@@ -33,6 +33,10 @@ function instanceOfAssistantChatPollBody(value) {
33
33
  return false;
34
34
  if (!('status' in value) || value['status'] === undefined)
35
35
  return false;
36
+ if (!('subsessionSteps' in value) || value['subsessionSteps'] === undefined)
37
+ return false;
38
+ if (!('subsessionTool' in value) || value['subsessionTool'] === undefined)
39
+ return false;
36
40
  return true;
37
41
  }
38
42
  function AssistantChatPollBodyFromJSON(json) {
@@ -48,6 +52,8 @@ function AssistantChatPollBodyFromJSONTyped(json, ignoreDiscriminator) {
48
52
  'finishedToolCallIds': json['finishedToolCallIds'],
49
53
  'messages': (json['messages'].map(AssistantChatPollMessage_1.AssistantChatPollMessageFromJSON)),
50
54
  'status': json['status'],
55
+ 'subsessionSteps': json['subsessionSteps'],
56
+ 'subsessionTool': json['subsessionTool'],
51
57
  };
52
58
  }
53
59
  function AssistantChatPollBodyToJSON(json) {
@@ -63,5 +69,7 @@ function AssistantChatPollBodyToJSONTyped(value, ignoreDiscriminator = false) {
63
69
  'finishedToolCallIds': value['finishedToolCallIds'],
64
70
  'messages': (value['messages'].map(AssistantChatPollMessage_1.AssistantChatPollMessageToJSON)),
65
71
  'status': value['status'],
72
+ 'subsessionSteps': value['subsessionSteps'],
73
+ 'subsessionTool': value['subsessionTool'],
66
74
  };
67
75
  }
@@ -58,6 +58,12 @@ export interface AssistantChatPollMessage {
58
58
  * @memberof AssistantChatPollMessage
59
59
  */
60
60
  role: string;
61
+ /**
62
+ * Id of the conversation a run_subsession action message (kind 2) started, which is polled like any other conversation to follow the subsession's own steps. It is not found until the subsession has started. Empty on every other message.
63
+ * @type {string}
64
+ * @memberof AssistantChatPollMessage
65
+ */
66
+ subsessionId: string;
61
67
  /**
62
68
  *
63
69
  * @type {string}
@@ -37,6 +37,8 @@ function instanceOfAssistantChatPollMessage(value) {
37
37
  return false;
38
38
  if (!('role' in value) || value['role'] === undefined)
39
39
  return false;
40
+ if (!('subsessionId' in value) || value['subsessionId'] === undefined)
41
+ return false;
40
42
  if (!('text' in value) || value['text'] === undefined)
41
43
  return false;
42
44
  if (!('toolCallId' in value) || value['toolCallId'] === undefined)
@@ -58,6 +60,7 @@ function AssistantChatPollMessageFromJSONTyped(json, ignoreDiscriminator) {
58
60
  'payload': json['payload'],
59
61
  'requestId': json['requestId'],
60
62
  'role': json['role'],
63
+ 'subsessionId': json['subsessionId'],
61
64
  'text': json['text'],
62
65
  'toolCallId': json['toolCallId'],
63
66
  };
@@ -77,6 +80,7 @@ function AssistantChatPollMessageToJSONTyped(value, ignoreDiscriminator = false)
77
80
  'payload': value['payload'],
78
81
  'requestId': value['requestId'],
79
82
  'role': value['role'],
83
+ 'subsessionId': value['subsessionId'],
80
84
  'text': value['text'],
81
85
  'toolCallId': value['toolCallId'],
82
86
  };
@@ -16,12 +16,30 @@ import type { AssistantTranscriptMessage } from './AssistantTranscriptMessage';
16
16
  * @interface AssistantTranscriptBody
17
17
  */
18
18
  export interface AssistantTranscriptBody {
19
+ /**
20
+ *
21
+ * @type {string}
22
+ * @memberof AssistantTranscriptBody
23
+ */
24
+ conversationId: string;
19
25
  /**
20
26
  *
21
27
  * @type {Array<AssistantTranscriptMessage>}
22
28
  * @memberof AssistantTranscriptBody
23
29
  */
24
30
  messages: Array<AssistantTranscriptMessage>;
31
+ /**
32
+ * For a subsession, the id of the run_subsession tool call that started it. Empty for a conversation the user started.
33
+ * @type {string}
34
+ * @memberof AssistantTranscriptBody
35
+ */
36
+ parentToolCallId: string;
37
+ /**
38
+ * The transcript of each subsession the assistant started, in the order it started them. A subsession's messages are not part of messages: the tool message answering its run_subsession call holds only its reply. A subsession is never compacted and starts none of its own, so its summary fields and its own subsessions are empty.
39
+ * @type {Array<AssistantTranscriptBody>}
40
+ * @memberof AssistantTranscriptBody
41
+ */
42
+ subsessions: Array<AssistantTranscriptBody>;
25
43
  /**
26
44
  * What the assistant is told of the messages it no longer replays, once the conversation has been compacted. Empty until then.
27
45
  * @type {string}
@@ -23,8 +23,14 @@ const AssistantTranscriptMessage_1 = require("./AssistantTranscriptMessage");
23
23
  * Check if a given object implements the AssistantTranscriptBody interface.
24
24
  */
25
25
  function instanceOfAssistantTranscriptBody(value) {
26
+ if (!('conversationId' in value) || value['conversationId'] === undefined)
27
+ return false;
26
28
  if (!('messages' in value) || value['messages'] === undefined)
27
29
  return false;
30
+ if (!('parentToolCallId' in value) || value['parentToolCallId'] === undefined)
31
+ return false;
32
+ if (!('subsessions' in value) || value['subsessions'] === undefined)
33
+ return false;
28
34
  if (!('summary' in value) || value['summary'] === undefined)
29
35
  return false;
30
36
  if (!('summaryUpTo' in value) || value['summaryUpTo'] === undefined)
@@ -39,7 +45,10 @@ function AssistantTranscriptBodyFromJSONTyped(json, ignoreDiscriminator) {
39
45
  return json;
40
46
  }
41
47
  return {
48
+ 'conversationId': json['conversationId'],
42
49
  'messages': (json['messages'].map(AssistantTranscriptMessage_1.AssistantTranscriptMessageFromJSON)),
50
+ 'parentToolCallId': json['parentToolCallId'],
51
+ 'subsessions': (json['subsessions'].map(AssistantTranscriptBodyFromJSON)),
43
52
  'summary': json['summary'],
44
53
  'summaryUpTo': json['summaryUpTo'],
45
54
  };
@@ -52,7 +61,10 @@ function AssistantTranscriptBodyToJSONTyped(value, ignoreDiscriminator = false)
52
61
  return value;
53
62
  }
54
63
  return {
64
+ 'conversationId': value['conversationId'],
55
65
  'messages': (value['messages'].map(AssistantTranscriptMessage_1.AssistantTranscriptMessageToJSON)),
66
+ 'parentToolCallId': value['parentToolCallId'],
67
+ 'subsessions': (value['subsessions'].map(AssistantTranscriptBodyToJSON)),
56
68
  'summary': value['summary'],
57
69
  'summaryUpTo': value['summaryUpTo'],
58
70
  };
@@ -22,6 +22,12 @@ export interface FloorplanCreateSpace {
22
22
  * @memberof FloorplanCreateSpace
23
23
  */
24
24
  endHeight?: number;
25
+ /**
26
+ *
27
+ * @type {number}
28
+ * @memberof FloorplanCreateSpace
29
+ */
30
+ endHeightMetres?: number;
25
31
  /**
26
32
  *
27
33
  * @type {string}
@@ -40,6 +46,12 @@ export interface FloorplanCreateSpace {
40
46
  * @memberof FloorplanCreateSpace
41
47
  */
42
48
  startHeight?: number;
49
+ /**
50
+ *
51
+ * @type {number}
52
+ * @memberof FloorplanCreateSpace
53
+ */
54
+ startHeightMetres?: number;
43
55
  }
44
56
  /**
45
57
  * Check if a given object implements the FloorplanCreateSpace interface.
@@ -38,9 +38,11 @@ function FloorplanCreateSpaceFromJSONTyped(json, ignoreDiscriminator) {
38
38
  }
39
39
  return {
40
40
  'endHeight': json['endHeight'] == null ? undefined : json['endHeight'],
41
+ 'endHeightMetres': json['endHeightMetres'] == null ? undefined : json['endHeightMetres'],
41
42
  'location': json['location'],
42
43
  'paths': (json['paths'].map(FloorplanSpaceChangelogPath_1.FloorplanSpaceChangelogPathFromJSON)),
43
44
  'startHeight': json['startHeight'] == null ? undefined : json['startHeight'],
45
+ 'startHeightMetres': json['startHeightMetres'] == null ? undefined : json['startHeightMetres'],
44
46
  };
45
47
  }
46
48
  function FloorplanCreateSpaceToJSON(json) {
@@ -52,8 +54,10 @@ function FloorplanCreateSpaceToJSONTyped(value, ignoreDiscriminator = false) {
52
54
  }
53
55
  return {
54
56
  'endHeight': value['endHeight'],
57
+ 'endHeightMetres': value['endHeightMetres'],
55
58
  'location': value['location'],
56
59
  'paths': (value['paths'].map(FloorplanSpaceChangelogPath_1.FloorplanSpaceChangelogPathToJSON)),
57
60
  'startHeight': value['startHeight'],
61
+ 'startHeightMetres': value['startHeightMetres'],
58
62
  };
59
63
  }
@@ -65,6 +65,12 @@ export interface FloorplanGetBody {
65
65
  * @memberof FloorplanGetBody
66
66
  */
67
67
  spaces: Array<FloorplanGetBodySpace>;
68
+ /**
69
+ * How many of the spaces' path units make one metre, which scales space heights in 3D. Absent until the floor plan's scale has been set.
70
+ * @type {number}
71
+ * @memberof FloorplanGetBody
72
+ */
73
+ unitsPerMetre?: number;
68
74
  /**
69
75
  * Whether the floor plan can be shown in 2D, in 3D, or both. Defaults to 2d-and-3d.
70
76
  * @type {string}
@@ -65,6 +65,7 @@ function FloorplanGetBodyFromJSONTyped(json, ignoreDiscriminator) {
65
65
  'property': json['property'],
66
66
  'propertyNode': json['propertyNode'],
67
67
  'spaces': (json['spaces'].map(FloorplanGetBodySpace_1.FloorplanGetBodySpaceFromJSON)),
68
+ 'unitsPerMetre': json['unitsPerMetre'] == null ? undefined : json['unitsPerMetre'],
68
69
  'viewMode': json['viewMode'],
69
70
  };
70
71
  }
@@ -84,6 +85,7 @@ function FloorplanGetBodyToJSONTyped(value, ignoreDiscriminator = false) {
84
85
  'property': value['property'],
85
86
  'propertyNode': value['propertyNode'],
86
87
  'spaces': (value['spaces'].map(FloorplanGetBodySpace_1.FloorplanGetBodySpaceToJSON)),
88
+ 'unitsPerMetre': value['unitsPerMetre'],
87
89
  'viewMode': value['viewMode'],
88
90
  };
89
91
  }
@@ -17,11 +17,17 @@ import type { FloorplanGetBodySpacePoint } from './FloorplanGetBodySpacePoint';
17
17
  */
18
18
  export interface FloorplanGetBodySpace {
19
19
  /**
20
- * Height the space ends at in 3D, in the same units as its paths. Absent when the space uses the default heights.
20
+ * Height the space ends at in 3D, in the spaces' path units, as written by editors that predate metres. Absent once converted to metres.
21
21
  * @type {number}
22
22
  * @memberof FloorplanGetBodySpace
23
23
  */
24
24
  endHeight?: number;
25
+ /**
26
+ * Height the space ends at in 3D, in metres. Absent when the space uses the default heights.
27
+ * @type {number}
28
+ * @memberof FloorplanGetBodySpace
29
+ */
30
+ endHeightMetres?: number;
25
31
  /**
26
32
  *
27
33
  * @type {string}
@@ -35,11 +41,17 @@ export interface FloorplanGetBodySpace {
35
41
  */
36
42
  paths: Array<Array<FloorplanGetBodySpacePoint>>;
37
43
  /**
38
- * Height the space starts at in 3D, in the same units as its paths. Absent when the space uses the default heights.
44
+ * Height the space starts at in 3D, in the spaces' path units, as written by editors that predate metres. Absent once converted to metres.
39
45
  * @type {number}
40
46
  * @memberof FloorplanGetBodySpace
41
47
  */
42
48
  startHeight?: number;
49
+ /**
50
+ * Height the space starts at in 3D, in metres. Absent when the space uses the default heights.
51
+ * @type {number}
52
+ * @memberof FloorplanGetBodySpace
53
+ */
54
+ startHeightMetres?: number;
43
55
  }
44
56
  /**
45
57
  * Check if a given object implements the FloorplanGetBodySpace interface.
@@ -37,9 +37,11 @@ function FloorplanGetBodySpaceFromJSONTyped(json, ignoreDiscriminator) {
37
37
  }
38
38
  return {
39
39
  'endHeight': json['endHeight'] == null ? undefined : json['endHeight'],
40
+ 'endHeightMetres': json['endHeightMetres'] == null ? undefined : json['endHeightMetres'],
40
41
  'location': json['location'],
41
42
  'paths': json['paths'],
42
43
  'startHeight': json['startHeight'] == null ? undefined : json['startHeight'],
44
+ 'startHeightMetres': json['startHeightMetres'] == null ? undefined : json['startHeightMetres'],
43
45
  };
44
46
  }
45
47
  function FloorplanGetBodySpaceToJSON(json) {
@@ -51,8 +53,10 @@ function FloorplanGetBodySpaceToJSONTyped(value, ignoreDiscriminator = false) {
51
53
  }
52
54
  return {
53
55
  'endHeight': value['endHeight'],
56
+ 'endHeightMetres': value['endHeightMetres'],
54
57
  'location': value['location'],
55
58
  'paths': value['paths'],
56
59
  'startHeight': value['startHeight'],
60
+ 'startHeightMetres': value['startHeightMetres'],
57
61
  };
58
62
  }
@@ -65,6 +65,12 @@ export interface FloorplanPatchParamsBody {
65
65
  * @memberof FloorplanPatchParamsBody
66
66
  */
67
67
  spaces?: FloorplanCreateSpaceRepeated;
68
+ /**
69
+ *
70
+ * @type {number}
71
+ * @memberof FloorplanPatchParamsBody
72
+ */
73
+ unitsPerMetre?: number;
68
74
  /**
69
75
  *
70
76
  * @type {string}
@@ -42,6 +42,7 @@ function FloorplanPatchParamsBodyFromJSONTyped(json, ignoreDiscriminator) {
42
42
  'property': json['property'] == null ? undefined : json['property'],
43
43
  'propertyNode': json['propertyNode'] == null ? undefined : json['propertyNode'],
44
44
  'spaces': json['spaces'] == null ? undefined : (0, FloorplanCreateSpaceRepeated_1.FloorplanCreateSpaceRepeatedFromJSON)(json['spaces']),
45
+ 'unitsPerMetre': json['unitsPerMetre'] == null ? undefined : json['unitsPerMetre'],
45
46
  'viewMode': json['viewMode'] == null ? undefined : json['viewMode'],
46
47
  };
47
48
  }
@@ -61,6 +62,7 @@ function FloorplanPatchParamsBodyToJSONTyped(value, ignoreDiscriminator = false)
61
62
  'property': value['property'],
62
63
  'propertyNode': value['propertyNode'],
63
64
  'spaces': (0, FloorplanCreateSpaceRepeated_1.FloorplanCreateSpaceRepeatedToJSON)(value['spaces']),
65
+ 'unitsPerMetre': value['unitsPerMetre'],
64
66
  'viewMode': value['viewMode'],
65
67
  };
66
68
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spaciv/sdk",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "OpenAPI client for @spaciv/sdk",
5
5
  "author": "OpenAPI-Generator",
6
6
  "repository": {
@@ -79,7 +79,7 @@ export interface AssistantApiUpdateConfigRequest {
79
79
  */
80
80
  export interface AssistantApiInterface {
81
81
  /**
82
- * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Requires the *AI assistant* permission.
82
+ * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Returns `409` if `conversationId` names a conversation that cannot take messages: a subsession the assistant started for a tool call, which only ever answers the task it was given, or a deleted conversation. Requires the *AI assistant* permission.
83
83
  * @summary Send a chat message
84
84
  * @param {AssistantChatReq} [assistantChatReq]
85
85
  * @param {*} [options] Override http request option.
@@ -89,13 +89,13 @@ export interface AssistantApiInterface {
89
89
  createChatRaw(requestParameters: AssistantApiCreateChatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AssistantChatRes>>;
90
90
 
91
91
  /**
92
- * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Requires the *AI assistant* permission.
92
+ * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Returns `409` if `conversationId` names a conversation that cannot take messages: a subsession the assistant started for a tool call, which only ever answers the task it was given, or a deleted conversation. Requires the *AI assistant* permission.
93
93
  * Send a chat message
94
94
  */
95
95
  createChat(requestParameters: AssistantApiCreateChatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantChatRes>;
96
96
 
97
97
  /**
98
- * Permanently removes a conversation and all its messages. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
98
+ * Permanently removes a conversation, all its messages, and every subsession it started. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is deleted only with the conversation that started it. Requires the *AI assistant* permission.
99
99
  * @summary Delete a conversation
100
100
  * @param {string} id UUID of the conversation to delete.
101
101
  * @param {*} [options] Override http request option.
@@ -105,7 +105,7 @@ export interface AssistantApiInterface {
105
105
  deleteConversationsRaw(requestParameters: AssistantApiDeleteConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
106
106
 
107
107
  /**
108
- * Permanently removes a conversation and all its messages. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
108
+ * Permanently removes a conversation, all its messages, and every subsession it started. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is deleted only with the conversation that started it. Requires the *AI assistant* permission.
109
109
  * Delete a conversation
110
110
  */
111
111
  deleteConversations(requestParameters: AssistantApiDeleteConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
@@ -126,7 +126,7 @@ export interface AssistantApiInterface {
126
126
  getConfig(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantConfigBody>;
127
127
 
128
128
  /**
129
- * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, and the summary that replaces the earliest messages once the conversation has been compacted. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
129
+ * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, the summary that replaces the earliest messages once the conversation has been compacted, and the stored conversation of every subsession the assistant handed a task to. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
130
130
  * @summary Get a conversation\'s transcript
131
131
  * @param {string} id UUID of the conversation to read.
132
132
  * @param {*} [options] Override http request option.
@@ -136,7 +136,7 @@ export interface AssistantApiInterface {
136
136
  getConversationsTranscriptRaw(requestParameters: AssistantApiGetConversationsTranscriptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AssistantTranscriptBody>>;
137
137
 
138
138
  /**
139
- * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, and the summary that replaces the earliest messages once the conversation has been compacted. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
139
+ * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, the summary that replaces the earliest messages once the conversation has been compacted, and the stored conversation of every subsession the assistant handed a task to. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
140
140
  * Get a conversation\'s transcript
141
141
  */
142
142
  getConversationsTranscript(requestParameters: AssistantApiGetConversationsTranscriptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantTranscriptBody>;
@@ -189,7 +189,7 @@ export interface AssistantApiInterface {
189
189
  pollConversations(requestParameters: AssistantApiPollConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantChatPollBody>;
190
190
 
191
191
  /**
192
- * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
192
+ * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Stopping a conversation also stops a subsession it is running. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is stopped only by stopping the conversation that started it. Requires the *AI assistant* permission.
193
193
  * @summary Stop the running turn
194
194
  * @param {string} id UUID of the conversation whose turn to stop.
195
195
  * @param {*} [options] Override http request option.
@@ -199,7 +199,7 @@ export interface AssistantApiInterface {
199
199
  stopConversationsRaw(requestParameters: AssistantApiStopConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
200
200
 
201
201
  /**
202
- * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
202
+ * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Stopping a conversation also stops a subsession it is running. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is stopped only by stopping the conversation that started it. Requires the *AI assistant* permission.
203
203
  * Stop the running turn
204
204
  */
205
205
  stopConversations(requestParameters: AssistantApiStopConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
@@ -228,7 +228,7 @@ export interface AssistantApiInterface {
228
228
  export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterface {
229
229
 
230
230
  /**
231
- * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Requires the *AI assistant* permission.
231
+ * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Returns `409` if `conversationId` names a conversation that cannot take messages: a subsession the assistant started for a tool call, which only ever answers the task it was given, or a deleted conversation. Requires the *AI assistant* permission.
232
232
  * Send a chat message
233
233
  */
234
234
  async createChatRaw(requestParameters: AssistantApiCreateChatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AssistantChatRes>> {
@@ -261,7 +261,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
261
261
  }
262
262
 
263
263
  /**
264
- * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Requires the *AI assistant* permission.
264
+ * Submits a message to the assistant and dispatches it for asynchronous processing. Returns a `conversationId` and a `requestId` immediately; the reply arrives out-of-band, through `GET /v1/assistant/conversations/{id}/poll`. If `conversationId` is omitted a new conversation is started. `attachmentFileIds` attaches up to 10 distinct files from account file storage and requires View file storage permission. Files cannot be attached while the account has turned the assistant\'s tools off. Returns `409` if `conversationId` names a conversation that cannot take messages: a subsession the assistant started for a tool call, which only ever answers the task it was given, or a deleted conversation. Requires the *AI assistant* permission.
265
265
  * Send a chat message
266
266
  */
267
267
  async createChat(requestParameters: AssistantApiCreateChatRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantChatRes> {
@@ -270,7 +270,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
270
270
  }
271
271
 
272
272
  /**
273
- * Permanently removes a conversation and all its messages. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
273
+ * Permanently removes a conversation, all its messages, and every subsession it started. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is deleted only with the conversation that started it. Requires the *AI assistant* permission.
274
274
  * Delete a conversation
275
275
  */
276
276
  async deleteConversationsRaw(requestParameters: AssistantApiDeleteConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
@@ -308,7 +308,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
308
308
  }
309
309
 
310
310
  /**
311
- * Permanently removes a conversation and all its messages. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
311
+ * Permanently removes a conversation, all its messages, and every subsession it started. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is deleted only with the conversation that started it. Requires the *AI assistant* permission.
312
312
  * Delete a conversation
313
313
  */
314
314
  async deleteConversations(requestParameters: AssistantApiDeleteConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
@@ -355,7 +355,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
355
355
  }
356
356
 
357
357
  /**
358
- * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, and the summary that replaces the earliest messages once the conversation has been compacted. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
358
+ * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, the summary that replaces the earliest messages once the conversation has been compacted, and the stored conversation of every subsession the assistant handed a task to. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
359
359
  * Get a conversation\'s transcript
360
360
  */
361
361
  async getConversationsTranscriptRaw(requestParameters: AssistantApiGetConversationsTranscriptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<AssistantTranscriptBody>> {
@@ -393,7 +393,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
393
393
  }
394
394
 
395
395
  /**
396
- * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, and the summary that replaces the earliest messages once the conversation has been compacted. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
396
+ * Returns the conversation as it is stored, for debugging and evaluating the assistant: every message the assistant has been shown, including the results of its tool calls and the ids that pair each result with its call, the summary that replaces the earliest messages once the conversation has been compacted, and the stored conversation of every subsession the assistant handed a task to. Returns `404` if the conversation does not exist. Requires the *AI assistant* and *Download AI assistant conversation* permissions.
397
397
  * Get a conversation\'s transcript
398
398
  */
399
399
  async getConversationsTranscript(requestParameters: AssistantApiGetConversationsTranscriptRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<AssistantTranscriptBody> {
@@ -531,7 +531,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
531
531
  }
532
532
 
533
533
  /**
534
- * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
534
+ * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Stopping a conversation also stops a subsession it is running. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is stopped only by stopping the conversation that started it. Requires the *AI assistant* permission.
535
535
  * Stop the running turn
536
536
  */
537
537
  async stopConversationsRaw(requestParameters: AssistantApiStopConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {
@@ -569,7 +569,7 @@ export class AssistantApi extends runtime.BaseAPI implements AssistantApiInterfa
569
569
  }
570
570
 
571
571
  /**
572
- * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Returns `404` if the conversation does not exist. Requires the *AI assistant* permission.
572
+ * Asks the assistant to stop the turn it is working on. The turn ends at its next step - a tool call already sent finishes and is recorded - so the conversation stays usable and keeps everything the turn did before it was stopped. Succeeds with nothing to do if no turn is running. Stopping a conversation also stops a subsession it is running. Returns `404` if the conversation does not exist, and `409` if it is a subsession, which is stopped only by stopping the conversation that started it. Requires the *AI assistant* permission.
573
573
  * Stop the running turn
574
574
  */
575
575
  async stopConversations(requestParameters: AssistantApiStopConversationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {
@@ -104,7 +104,7 @@ export interface FloorPlansApiInterface {
104
104
  delete(requestParameters: FloorPlansApiDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object>;
105
105
 
106
106
  /**
107
- * Returns the floor plan\'s metadata, view mode, space overlay geometry with each space\'s 3D heights, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
107
+ * Returns the floor plan\'s metadata, view mode, scale, space overlay geometry with each space\'s 3D heights in metres, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
108
108
  * @summary Get a floor plan
109
109
  * @param {string} id
110
110
  * @param {*} [options] Override http request option.
@@ -114,7 +114,7 @@ export interface FloorPlansApiInterface {
114
114
  getRaw(requestParameters: FloorPlansApiGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FloorplanGetBody>>;
115
115
 
116
116
  /**
117
- * Returns the floor plan\'s metadata, view mode, space overlay geometry with each space\'s 3D heights, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
117
+ * Returns the floor plan\'s metadata, view mode, scale, space overlay geometry with each space\'s 3D heights in metres, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
118
118
  * Get a floor plan
119
119
  */
120
120
  get(requestParameters: FloorPlansApiGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FloorplanGetBody>;
@@ -153,7 +153,7 @@ export interface FloorPlansApiInterface {
153
153
  list(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<FloorplanBrief>>;
154
154
 
155
155
  /**
156
- * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. A space\'s `startHeight` and `endHeight` are in the same units as its paths, must be set together and the end must be above the start; a space without them is drawn at a default height scaled to the floor plan. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
156
+ * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, scale, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. `unitsPerMetre` is how many of the spaces\' path units make one metre; `0` clears the scale. A space\'s `startHeightMetres` and `endHeightMetres` must be set together and the end must be above the start; a space without them is drawn at a default height. `startHeight` and `endHeight` are the same in the spaces\' path units, from editors that predate metres, and follow the same rules. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
157
157
  * @summary Update a floor plan
158
158
  * @param {string} id
159
159
  * @param {FloorplanPatchParamsBody} [floorplanPatchParamsBody]
@@ -164,7 +164,7 @@ export interface FloorPlansApiInterface {
164
164
  updateRaw(requestParameters: FloorPlansApiUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>>;
165
165
 
166
166
  /**
167
- * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. A space\'s `startHeight` and `endHeight` are in the same units as its paths, must be set together and the end must be above the start; a space without them is drawn at a default height scaled to the floor plan. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
167
+ * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, scale, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. `unitsPerMetre` is how many of the spaces\' path units make one metre; `0` clears the scale. A space\'s `startHeightMetres` and `endHeightMetres` must be set together and the end must be above the start; a space without them is drawn at a default height. `startHeight` and `endHeight` are the same in the spaces\' path units, from editors that predate metres, and follow the same rules. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
168
168
  * Update a floor plan
169
169
  */
170
170
  update(requestParameters: FloorPlansApiUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object>;
@@ -296,7 +296,7 @@ export class FloorPlansApi extends runtime.BaseAPI implements FloorPlansApiInter
296
296
  }
297
297
 
298
298
  /**
299
- * Returns the floor plan\'s metadata, view mode, space overlay geometry with each space\'s 3D heights, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
299
+ * Returns the floor plan\'s metadata, view mode, scale, space overlay geometry with each space\'s 3D heights in metres, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
300
300
  * Get a floor plan
301
301
  */
302
302
  async getRaw(requestParameters: FloorPlansApiGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<FloorplanGetBody>> {
@@ -334,7 +334,7 @@ export class FloorPlansApi extends runtime.BaseAPI implements FloorPlansApiInter
334
334
  }
335
335
 
336
336
  /**
337
- * Returns the floor plan\'s metadata, view mode, space overlay geometry with each space\'s 3D heights, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
337
+ * Returns the floor plan\'s metadata, view mode, scale, space overlay geometry with each space\'s 3D heights in metres, and image offset. Returns an empty body (not 404) when the floor plan does not exist. Use `GET /v1/floorplans/{id}/images/{imageType}` to retrieve the drawing image. Requires the *View floorplans* permission.
338
338
  * Get a floor plan
339
339
  */
340
340
  async get(requestParameters: FloorPlansApiGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<FloorplanGetBody> {
@@ -445,7 +445,7 @@ export class FloorPlansApi extends runtime.BaseAPI implements FloorPlansApiInter
445
445
  }
446
446
 
447
447
  /**
448
- * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. A space\'s `startHeight` and `endHeight` are in the same units as its paths, must be set together and the end must be above the start; a space without them is drawn at a default height scaled to the floor plan. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
448
+ * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, scale, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. `unitsPerMetre` is how many of the spaces\' path units make one metre; `0` clears the scale. A space\'s `startHeightMetres` and `endHeightMetres` must be set together and the end must be above the start; a space without them is drawn at a default height. `startHeight` and `endHeight` are the same in the spaces\' path units, from editors that predate metres, and follow the same rules. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
449
449
  * Update a floor plan
450
450
  */
451
451
  async updateRaw(requestParameters: FloorPlansApiUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<object>> {
@@ -486,7 +486,7 @@ export class FloorPlansApi extends runtime.BaseAPI implements FloorPlansApiInter
486
486
  }
487
487
 
488
488
  /**
489
- * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. A space\'s `startHeight` and `endHeight` are in the same units as its paths, must be set together and the end must be above the start; a space without them is drawn at a default height scaled to the floor plan. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
489
+ * Partially updates the floor plan\'s name, linked property and node, creation timestamp, image overlay offset, background and foreground images, view mode, scale, and space geometry. Only fields present in the request body are changed, and the request fails with `409` if the floor plan keeps changing while they are. When `spaces` is provided the entire space overlay is replaced. `viewMode` is one of `2d-and-3d`, `3d-only` or `2d-only`. `unitsPerMetre` is how many of the spaces\' path units make one metre; `0` clears the scale. A space\'s `startHeightMetres` and `endHeightMetres` must be set together and the end must be above the start; a space without them is drawn at a default height. `startHeight` and `endHeight` are the same in the spaces\' path units, from editors that predate metres, and follow the same rules. Requires the *Edit floorplans* permission. `backgroundFile` and `foregroundFile` take the ID of an image in the account\'s file storage (see `/v1/account/files`), or an empty string to remove the layer\'s image; choosing a file also requires the *View file storage* permission. The file must be a PNG, JPEG, GIF, WebP or SVG image of at most 4 MB that is not quarantined, otherwise the request fails with `422` (`403` when quarantined) and nothing is changed. Setting or removing a layer\'s file also deletes any image previously uploaded to that layer through `PUT /v1/floorplans/{id}/images/{imageType}`.
490
490
  * Update a floor plan
491
491
  */
492
492
  async update(requestParameters: FloorPlansApiUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<object> {