connectwise-rest 0.25.1 → 1.0.2

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 (282) hide show
  1. package/.eslintrc +17 -52
  2. package/.gitattributes +1 -0
  3. package/.mocharc.json +5 -0
  4. package/.prettierrc +7 -0
  5. package/README.md +293 -230
  6. package/api-extractor.json +364 -0
  7. package/dist/Automate/AVTemplatePoliciesAPI.d.ts +36 -0
  8. package/dist/Automate/AVTemplatePoliciesAPI.d.ts.map +1 -0
  9. package/dist/Automate/AVTemplatePoliciesAPI.js +92 -0
  10. package/dist/Automate/AVTemplatePoliciesAPI.js.map +1 -0
  11. package/dist/Automate/ClientsAPI.d.ts +44 -0
  12. package/dist/Automate/ClientsAPI.d.ts.map +1 -0
  13. package/dist/Automate/ClientsAPI.js +119 -0
  14. package/dist/Automate/ClientsAPI.js.map +1 -0
  15. package/dist/Automate/CommandsAPI.d.ts +20 -0
  16. package/dist/Automate/CommandsAPI.d.ts.map +1 -0
  17. package/dist/Automate/CommandsAPI.js +36 -0
  18. package/dist/Automate/CommandsAPI.js.map +1 -0
  19. package/dist/Automate/ComputersAPI.d.ts +131 -0
  20. package/dist/Automate/ComputersAPI.d.ts.map +1 -0
  21. package/dist/Automate/ComputersAPI.js +358 -0
  22. package/dist/Automate/ComputersAPI.js.map +1 -0
  23. package/dist/Automate/ContactsAPI.d.ts +24 -0
  24. package/dist/Automate/ContactsAPI.d.ts.map +1 -0
  25. package/dist/Automate/ContactsAPI.js +50 -0
  26. package/dist/Automate/ContactsAPI.js.map +1 -0
  27. package/dist/Automate/DataViewsAPI.d.ts +22 -0
  28. package/dist/Automate/DataViewsAPI.d.ts.map +1 -0
  29. package/dist/Automate/DataViewsAPI.js +36 -0
  30. package/dist/Automate/DataViewsAPI.js.map +1 -0
  31. package/dist/Automate/DrivesAPI.d.ts +25 -0
  32. package/dist/Automate/DrivesAPI.d.ts.map +1 -0
  33. package/dist/Automate/DrivesAPI.js +57 -0
  34. package/dist/Automate/DrivesAPI.js.map +1 -0
  35. package/dist/Automate/EventLogsAPI.d.ts +19 -0
  36. package/dist/Automate/EventLogsAPI.d.ts.map +1 -0
  37. package/dist/Automate/EventLogsAPI.js +29 -0
  38. package/dist/Automate/EventLogsAPI.js.map +1 -0
  39. package/dist/Automate/LocationsAPI.d.ts +57 -0
  40. package/dist/Automate/LocationsAPI.d.ts.map +1 -0
  41. package/dist/Automate/LocationsAPI.js +138 -0
  42. package/dist/Automate/LocationsAPI.js.map +1 -0
  43. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts +19 -0
  44. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts.map +1 -0
  45. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js +29 -0
  46. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js.map +1 -0
  47. package/dist/Automate/MonitorsAPI.d.ts +29 -0
  48. package/dist/Automate/MonitorsAPI.d.ts.map +1 -0
  49. package/dist/Automate/MonitorsAPI.js +85 -0
  50. package/dist/Automate/MonitorsAPI.js.map +1 -0
  51. package/dist/Automate/NetworkDevicesAPI.d.ts +23 -0
  52. package/dist/Automate/NetworkDevicesAPI.d.ts.map +1 -0
  53. package/dist/Automate/NetworkDevicesAPI.js +43 -0
  54. package/dist/Automate/NetworkDevicesAPI.js.map +1 -0
  55. package/dist/Automate/PatchingAPI.d.ts +33 -0
  56. package/dist/Automate/PatchingAPI.d.ts.map +1 -0
  57. package/dist/Automate/PatchingAPI.js +99 -0
  58. package/dist/Automate/PatchingAPI.js.map +1 -0
  59. package/dist/Automate/RemoteAgentAPI.d.ts +24 -0
  60. package/dist/Automate/RemoteAgentAPI.d.ts.map +1 -0
  61. package/dist/Automate/RemoteAgentAPI.js +50 -0
  62. package/dist/Automate/RemoteAgentAPI.js.map +1 -0
  63. package/dist/Automate/ScriptingAPI.d.ts +41 -0
  64. package/dist/Automate/ScriptingAPI.d.ts.map +1 -0
  65. package/dist/Automate/ScriptingAPI.js +109 -0
  66. package/dist/Automate/ScriptingAPI.js.map +1 -0
  67. package/dist/Automate/SearchesAPI.d.ts +23 -0
  68. package/dist/Automate/SearchesAPI.d.ts.map +1 -0
  69. package/dist/Automate/SearchesAPI.js +43 -0
  70. package/dist/Automate/SearchesAPI.js.map +1 -0
  71. package/dist/Automate/SystemAPI.d.ts +97 -0
  72. package/dist/Automate/SystemAPI.d.ts.map +1 -0
  73. package/dist/Automate/SystemAPI.js +273 -0
  74. package/dist/Automate/SystemAPI.js.map +1 -0
  75. package/dist/Automate/TicketsAPI.d.ts +14 -0
  76. package/dist/Automate/TicketsAPI.d.ts.map +1 -0
  77. package/dist/Automate/TicketsAPI.js +29 -0
  78. package/dist/Automate/TicketsAPI.js.map +1 -0
  79. package/dist/Automate/UserProfilesAPI.d.ts +19 -0
  80. package/dist/Automate/UserProfilesAPI.d.ts.map +1 -0
  81. package/dist/Automate/UserProfilesAPI.js +28 -0
  82. package/dist/Automate/UserProfilesAPI.js.map +1 -0
  83. package/dist/Automate.d.ts +43 -0
  84. package/dist/Automate.d.ts.map +1 -0
  85. package/dist/Automate.js +164 -0
  86. package/dist/Automate.js.map +1 -0
  87. package/dist/AutomateAPI.d.ts +129 -0
  88. package/dist/AutomateAPI.d.ts.map +1 -0
  89. package/dist/AutomateAPI.js +175 -0
  90. package/dist/AutomateAPI.js.map +1 -0
  91. package/dist/AutomateTypes.d.ts +10437 -0
  92. package/dist/AutomateTypes.d.ts.map +1 -0
  93. package/dist/AutomateTypes.js +3 -0
  94. package/dist/AutomateTypes.js.map +1 -0
  95. package/dist/BaseAPI.d.ts +26 -0
  96. package/dist/BaseAPI.d.ts.map +1 -0
  97. package/dist/BaseAPI.js +116 -0
  98. package/dist/BaseAPI.js.map +1 -0
  99. package/dist/Manage/CompanyAPI.d.ts +662 -0
  100. package/dist/Manage/CompanyAPI.d.ts.map +1 -0
  101. package/dist/Manage/CompanyAPI.js +3299 -0
  102. package/dist/Manage/CompanyAPI.js.map +1 -0
  103. package/dist/Manage/ConfigurationsAPI.d.ts +32 -0
  104. package/dist/Manage/ConfigurationsAPI.d.ts.map +1 -0
  105. package/dist/Manage/ConfigurationsAPI.js +78 -0
  106. package/dist/Manage/ConfigurationsAPI.js.map +1 -0
  107. package/dist/Manage/ExpenseAPI.d.ts +85 -0
  108. package/dist/Manage/ExpenseAPI.d.ts.map +1 -0
  109. package/dist/Manage/ExpenseAPI.js +311 -0
  110. package/dist/Manage/ExpenseAPI.js.map +1 -0
  111. package/dist/Manage/FinanceAPI.d.ts +538 -0
  112. package/dist/Manage/FinanceAPI.d.ts.map +1 -0
  113. package/dist/Manage/FinanceAPI.js +2592 -0
  114. package/dist/Manage/FinanceAPI.js.map +1 -0
  115. package/dist/Manage/MarketingAPI.d.ts +142 -0
  116. package/dist/Manage/MarketingAPI.d.ts.map +1 -0
  117. package/dist/Manage/MarketingAPI.js +634 -0
  118. package/dist/Manage/MarketingAPI.js.map +1 -0
  119. package/dist/Manage/ProcurementAPI.d.ts +435 -0
  120. package/dist/Manage/ProcurementAPI.d.ts.map +1 -0
  121. package/dist/Manage/ProcurementAPI.js +2103 -0
  122. package/dist/Manage/ProcurementAPI.js.map +1 -0
  123. package/dist/Manage/ProjectAPI.d.ts +215 -0
  124. package/dist/Manage/ProjectAPI.d.ts.map +1 -0
  125. package/dist/Manage/ProjectAPI.js +945 -0
  126. package/dist/Manage/ProjectAPI.js.map +1 -0
  127. package/dist/Manage/SalesAPI.d.ts +299 -0
  128. package/dist/Manage/SalesAPI.d.ts.map +1 -0
  129. package/dist/Manage/SalesAPI.js +1397 -0
  130. package/dist/Manage/SalesAPI.js.map +1 -0
  131. package/dist/Manage/ScheduleAPI.d.ts +132 -0
  132. package/dist/Manage/ScheduleAPI.d.ts.map +1 -0
  133. package/dist/Manage/ScheduleAPI.js +580 -0
  134. package/dist/Manage/ScheduleAPI.js.map +1 -0
  135. package/dist/Manage/ServiceAPI.d.ts +493 -0
  136. package/dist/Manage/ServiceAPI.d.ts.map +1 -0
  137. package/dist/Manage/ServiceAPI.js +2339 -0
  138. package/dist/Manage/ServiceAPI.js.map +1 -0
  139. package/dist/Manage/SystemAPI.d.ts +954 -0
  140. package/dist/Manage/SystemAPI.d.ts.map +1 -0
  141. package/dist/Manage/SystemAPI.js +4536 -0
  142. package/dist/Manage/SystemAPI.js.map +1 -0
  143. package/dist/Manage/TimeAPI.d.ts +186 -0
  144. package/dist/Manage/TimeAPI.d.ts.map +1 -0
  145. package/dist/Manage/TimeAPI.js +840 -0
  146. package/dist/Manage/TimeAPI.js.map +1 -0
  147. package/dist/Manage.d.ts +39 -0
  148. package/dist/Manage.d.ts.map +1 -0
  149. package/dist/Manage.js +137 -0
  150. package/dist/Manage.js.map +1 -0
  151. package/dist/ManageAPI.d.ts +135 -0
  152. package/dist/ManageAPI.d.ts.map +1 -0
  153. package/dist/ManageAPI.js +115 -0
  154. package/dist/ManageAPI.js.map +1 -0
  155. package/dist/ManageTypes.d.ts +91320 -0
  156. package/dist/ManageTypes.d.ts.map +1 -0
  157. package/dist/ManageTypes.js +7 -0
  158. package/dist/ManageTypes.js.map +1 -0
  159. package/dist/connectwise-rest.d.ts +108638 -0
  160. package/dist/index.d.ts +12 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +36 -0
  163. package/dist/index.js.map +1 -0
  164. package/dist/tsdoc-metadata.json +11 -0
  165. package/dist/types.d.ts +48 -0
  166. package/dist/types.d.ts.map +1 -0
  167. package/dist/types.js +21 -0
  168. package/dist/types.js.map +1 -0
  169. package/dist/utils/Callback.d.ts +70 -0
  170. package/dist/utils/Callback.d.ts.map +1 -0
  171. package/dist/utils/Callback.js +109 -0
  172. package/dist/utils/Callback.js.map +1 -0
  173. package/dist/utils/Series.d.ts +42 -0
  174. package/dist/utils/Series.d.ts.map +1 -0
  175. package/dist/utils/Series.js +68 -0
  176. package/dist/utils/Series.js.map +1 -0
  177. package/dist/utils/index.d.ts +7 -0
  178. package/dist/utils/index.d.ts.map +1 -0
  179. package/dist/utils/index.js +11 -0
  180. package/dist/utils/index.js.map +1 -0
  181. package/package.json +50 -19
  182. package/src/Automate/AVTemplatePoliciesAPI.ts +124 -0
  183. package/src/Automate/ClientsAPI.ts +172 -0
  184. package/src/Automate/CommandsAPI.ts +39 -0
  185. package/src/Automate/ComputersAPI.ts +588 -0
  186. package/src/Automate/ContactsAPI.ts +63 -0
  187. package/src/Automate/DataViewsAPI.ts +43 -0
  188. package/src/Automate/DrivesAPI.ts +81 -0
  189. package/src/Automate/EventLogsAPI.ts +31 -0
  190. package/src/Automate/LocationsAPI.ts +222 -0
  191. package/src/Automate/MaintenanceWindowDefinitionsAPI.ts +34 -0
  192. package/src/Automate/MonitorsAPI.ts +101 -0
  193. package/src/Automate/NetworkDevicesAPI.ts +51 -0
  194. package/src/Automate/PatchingAPI.ts +116 -0
  195. package/src/Automate/RemoteAgentAPI.ts +65 -0
  196. package/src/Automate/ScriptingAPI.ts +147 -0
  197. package/src/Automate/SearchesAPI.ts +49 -0
  198. package/src/Automate/SystemAPI.ts +412 -0
  199. package/src/Automate/TicketsAPI.ts +29 -0
  200. package/src/Automate/UserProfilesAPI.ts +31 -0
  201. package/src/Automate.ts +204 -0
  202. package/src/AutomateAPI.ts +178 -0
  203. package/src/AutomateTypes.ts +10492 -0
  204. package/src/BaseAPI.ts +180 -0
  205. package/src/Manage/CompanyAPI.ts +4941 -0
  206. package/src/Manage/ConfigurationsAPI.ts +116 -0
  207. package/src/Manage/ExpenseAPI.ts +413 -0
  208. package/src/Manage/FinanceAPI.ts +3930 -0
  209. package/src/Manage/MarketingAPI.ts +958 -0
  210. package/src/Manage/ProcurementAPI.ts +3107 -0
  211. package/src/Manage/ProjectAPI.ts +1437 -0
  212. package/src/Manage/SalesAPI.ts +1968 -0
  213. package/src/Manage/ScheduleAPI.ts +773 -0
  214. package/src/Manage/ServiceAPI.ts +3476 -0
  215. package/src/Manage/SystemAPI.ts +6415 -0
  216. package/src/Manage/TimeAPI.ts +1151 -0
  217. package/src/Manage.ts +161 -0
  218. package/src/ManageAPI.ts +170 -0
  219. package/src/ManageTypes.ts +91318 -0
  220. package/src/index.ts +13 -0
  221. package/src/types.ts +68 -0
  222. package/src/utils/Callback.ts +148 -0
  223. package/src/utils/Series.ts +89 -0
  224. package/src/utils/index.ts +7 -0
  225. package/swagger-errors.md +25 -0
  226. package/test/.env.example +12 -6
  227. package/test/test-utils.ts +27 -0
  228. package/test/test.js +331 -108
  229. package/tsconfig.json +29 -0
  230. package/.travis.yml +0 -9
  231. package/doc.md +0 -5984
  232. package/docs/jsdoc.json +0 -15
  233. package/index.js +0 -10
  234. package/src/CompanyAPI/Companies.js +0 -149
  235. package/src/CompanyAPI/CompanyCompanyTypeAssociations.js +0 -111
  236. package/src/CompanyAPI/CompanySites.js +0 -80
  237. package/src/CompanyAPI/CompanyTeams.js +0 -108
  238. package/src/CompanyAPI/CompanyTypeInfos.js +0 -58
  239. package/src/CompanyAPI/CompanyTypes.js +0 -52
  240. package/src/CompanyAPI/Configurations.js +0 -152
  241. package/src/CompanyAPI/ContactContactTypeAssociations.js +0 -55
  242. package/src/CompanyAPI/ContactRelationships.js +0 -36
  243. package/src/CompanyAPI/Contacts.js +0 -199
  244. package/src/CompanyAPI/index.js +0 -53
  245. package/src/ConnectWise.js +0 -339
  246. package/src/ConnectWiseRest.js +0 -515
  247. package/src/FinanceAPI/Additions.js +0 -127
  248. package/src/FinanceAPI/Adjustments.js +0 -109
  249. package/src/FinanceAPI/AgreementSites.js +0 -108
  250. package/src/FinanceAPI/Agreements.js +0 -220
  251. package/src/FinanceAPI/BoardDefaults.js +0 -109
  252. package/src/FinanceAPI/WorkRoles.js +0 -113
  253. package/src/FinanceAPI/WorkTypeExclusions.js +0 -78
  254. package/src/FinanceAPI/WorkTypes.js +0 -124
  255. package/src/FinanceAPI/index.js +0 -50
  256. package/src/ProcurementAPI/CatalogItems.js +0 -94
  257. package/src/ProcurementAPI/index.js +0 -22
  258. package/src/ProjectAPI/Projects.js +0 -142
  259. package/src/ProjectAPI/index.js +0 -28
  260. package/src/SalesAPI/Activities.js +0 -149
  261. package/src/SalesAPI/index.js +0 -14
  262. package/src/ScheduleAPI/ScheduleEntries.js +0 -109
  263. package/src/ScheduleAPI/ScheduleTypes.js +0 -101
  264. package/src/ScheduleAPI/index.js +0 -30
  265. package/src/ServiceDeskAPI/BoardItems.js +0 -134
  266. package/src/ServiceDeskAPI/BoardSubTypes.js +0 -112
  267. package/src/ServiceDeskAPI/BoardTeams.js +0 -108
  268. package/src/ServiceDeskAPI/BoardTypes.js +0 -139
  269. package/src/ServiceDeskAPI/Boards.js +0 -100
  270. package/src/ServiceDeskAPI/Priorities.js +0 -47
  271. package/src/ServiceDeskAPI/ServiceNotes.js +0 -172
  272. package/src/ServiceDeskAPI/Statuses.js +0 -116
  273. package/src/ServiceDeskAPI/Tickets.js +0 -588
  274. package/src/ServiceDeskAPI/index.js +0 -53
  275. package/src/SystemAPI/Members.js +0 -139
  276. package/src/SystemAPI/Reports.js +0 -116
  277. package/src/SystemAPI/index.js +0 -32
  278. package/src/TimeAPI/TimeEntries.js +0 -121
  279. package/src/TimeAPI/index.js +0 -27
  280. package/src/utils/Callback.js +0 -124
  281. package/src/utils/Series.js +0 -63
  282. package/src/utils/index.js +0 -21
@@ -0,0 +1,31 @@
1
+ /* This file was auto-generated, do not manually edit. */
2
+ import Automate from '../Automate'
3
+ import { components } from '../AutomateTypes'
4
+ import { CommonParameters, CWAOptions } from '../AutomateAPI'
5
+ import { NoContentResponse, OctetStreamResponse, PDFResponse, HTMLResponse } from '../types'
6
+ type schemas = components['schemas']
7
+ type requestBodies = components['requestBodies']
8
+ /** {@link LabTechRepositoriesMySQLDomainModelsPresentationLayerUserProfile} */
9
+ export type LabTechRepositoriesMySQLDomainModelsPresentationLayerUserProfile =
10
+ schemas['LabTech.Repositories.MySQL.Domain.Models.PresentationLayer.UserProfile']
11
+
12
+ /**
13
+ * @module UserProfilesAPI
14
+ */
15
+
16
+ /**
17
+ * UserProfiles module
18
+ * @public
19
+ */
20
+ export class UserProfilesAPI extends Automate {
21
+ constructor(props: CWAOptions) {
22
+ super(props)
23
+ }
24
+
25
+ getUserProfile(): Promise<LabTechRepositoriesMySQLDomainModelsPresentationLayerUserProfile> {
26
+ return this.request({
27
+ path: `/api/v1/UserProfiles`,
28
+ method: 'get',
29
+ })
30
+ }
31
+ }
@@ -0,0 +1,204 @@
1
+ import axios, { AxiosInstance, AxiosError } from 'axios'
2
+ import { CWLogger, DataResponse, ErrorResponse, RequestOptions, RetryOptions } from './types'
3
+ import { CWAOptions } from './AutomateAPI'
4
+ import { components } from './AutomateTypes'
5
+ import { makeRequest } from './BaseAPI'
6
+ type schemas = components['schemas']
7
+ type TokenResult = schemas['Automate.Api.Domain.Contracts.Security.TokenResult']
8
+
9
+ const CW_AUTOMATE_DEBUG = !!process.env.CW_AUTOMATE_DEBUG
10
+
11
+ export const DEFAULTS: {
12
+ entryPoint: string
13
+ retryOptions: RetryOptions
14
+ logger: (debug: boolean) => CWLogger
15
+ } = {
16
+ entryPoint: 'cwa',
17
+ retryOptions: {
18
+ retries: 4,
19
+ minTimeout: 50,
20
+ maxTimeout: 20000,
21
+ randomize: true,
22
+ },
23
+ logger:
24
+ (debug = false) =>
25
+ (level, text, meta) => {
26
+ switch (level) {
27
+ case 'error':
28
+ console.error(`${level}: ${text}`, meta)
29
+ return
30
+ case 'warn':
31
+ if (debug) {
32
+ console.log(`${level}: ${text}`, meta)
33
+ }
34
+ return
35
+ case 'info': {
36
+ if (debug) {
37
+ console.info(`${level}: ${text}`, meta)
38
+ }
39
+ return
40
+ }
41
+ default:
42
+ console.log(`${level}: ${text}`, meta)
43
+ return
44
+ }
45
+ },
46
+ }
47
+
48
+ export interface AutomateConfig extends CWAOptions {
49
+ logger: CWLogger
50
+ retry: boolean
51
+ retryOptions: RetryOptions
52
+ }
53
+
54
+ /**
55
+ * @internal
56
+ */
57
+ export default class Automate {
58
+ config: AutomateConfig
59
+ private instance: AxiosInstance
60
+ /**
61
+ * @public
62
+ */
63
+ request: (args: RequestOptions) => Promise<any>
64
+
65
+ constructor({
66
+ serverUrl,
67
+ username,
68
+ password,
69
+ twoFactorPasscode,
70
+ token,
71
+ clientId,
72
+ timeout = 20000,
73
+ retry = false,
74
+ retryOptions = DEFAULTS.retryOptions,
75
+ logger,
76
+ debug,
77
+ }: CWAOptions) {
78
+ if (token && username && password) {
79
+ throw new Error(
80
+ 'Authenticate with token or username and password only, do not pass both methods',
81
+ )
82
+ }
83
+
84
+ if (!token && !username && !password) {
85
+ throw new Error('Missing options [token] or [username, password]')
86
+ }
87
+
88
+ if (!clientId) {
89
+ throw new Error('Missing option [clientId]')
90
+ }
91
+
92
+ this.config = {
93
+ serverUrl,
94
+ username,
95
+ password,
96
+ twoFactorPasscode,
97
+ clientId,
98
+ timeout,
99
+ retry,
100
+ retryOptions: { ...DEFAULTS.retryOptions, ...retryOptions },
101
+ logger: logger ? logger : DEFAULTS.logger(debug || CW_AUTOMATE_DEBUG),
102
+ debug: debug || CW_AUTOMATE_DEBUG,
103
+ }
104
+
105
+ this.instance = axios.create()
106
+
107
+ if (token) {
108
+ this.config.token = token
109
+ this.createAxiosInstance()
110
+ }
111
+
112
+ this.request = makeRequest({ config: this.config, api: this.api, thisObj: this })
113
+ }
114
+
115
+ get token() {
116
+ return this.config.token
117
+ }
118
+
119
+ set token(token) {
120
+ this.config.token = token
121
+ }
122
+
123
+ static async getToken({
124
+ username,
125
+ password,
126
+ twoFactorPasscode,
127
+ serverUrl,
128
+ }: {
129
+ username?: string
130
+ password?: string
131
+ twoFactorPasscode?: string
132
+ serverUrl: string
133
+ }): Promise<TokenResult> {
134
+ const result = await axios.post(`https://${serverUrl}/${DEFAULTS.entryPoint}/api/v1/apitoken`, {
135
+ username,
136
+ password,
137
+ twoFactorPasscode,
138
+ })
139
+
140
+ return result.data
141
+ }
142
+
143
+ async verifyToken() {
144
+ try {
145
+ const result = await this.api({ path: '/api/v1/FeatureFlags', method: 'get' })
146
+ return true
147
+ } catch (err) {
148
+ return false
149
+ }
150
+ }
151
+
152
+ /**
153
+ * @internal
154
+ */
155
+ private async api({
156
+ path,
157
+ method,
158
+ params,
159
+ data,
160
+ }: RequestOptions): Promise<ErrorResponse | DataResponse> {
161
+ const { username, password, serverUrl, twoFactorPasscode } = this.config
162
+ if (!this.config.token || !this.instance) {
163
+ const result = await Automate.getToken({ username, password, serverUrl, twoFactorPasscode })
164
+ this.config.token = result.AccessToken
165
+ this.createAxiosInstance()
166
+ }
167
+
168
+ try {
169
+ const result = await this.instance({
170
+ url: path,
171
+ method,
172
+ params,
173
+ data,
174
+ })
175
+
176
+ return result?.data
177
+ } catch (error: any) {
178
+ if (error.isAxiosError) {
179
+ throw {
180
+ status: error.response?.status,
181
+ data: error.response?.data,
182
+ message: error?.message,
183
+ }
184
+ }
185
+
186
+ // something else catastrophic went wrong
187
+ throw error
188
+ }
189
+ }
190
+
191
+ private createAxiosInstance() {
192
+ const { serverUrl, timeout, clientId } = this.config
193
+ this.instance = axios.create({
194
+ timeout,
195
+ baseURL: `https://${serverUrl}/${DEFAULTS.entryPoint}`,
196
+ headers: {
197
+ Accept: `application/json`,
198
+ 'Cache-Control': 'no-cache',
199
+ Authorization: `Bearer ${this.config.token}`,
200
+ clientId,
201
+ },
202
+ })
203
+ }
204
+ }
@@ -0,0 +1,178 @@
1
+ import Automate from './Automate'
2
+ import { CWLogger, RetryOptions } from './types'
3
+ import { AVTemplatePoliciesAPI } from './Automate/AVTemplatePoliciesAPI'
4
+ import { ClientsAPI } from './Automate/ClientsAPI'
5
+ import { CommandsAPI } from './Automate/CommandsAPI'
6
+ import { ComputersAPI } from './Automate/ComputersAPI'
7
+ import { ContactsAPI } from './Automate/ContactsAPI'
8
+ import { DataViewsAPI } from './Automate/DataViewsAPI'
9
+ import { DrivesAPI } from './Automate/DrivesAPI'
10
+ import { EventLogsAPI } from './Automate/EventLogsAPI'
11
+ import { LocationsAPI } from './Automate/LocationsAPI'
12
+ import { MaintenanceWindowDefinitionsAPI } from './Automate/MaintenanceWindowDefinitionsAPI'
13
+ import { MonitorsAPI } from './Automate/MonitorsAPI'
14
+ import { NetworkDevicesAPI } from './Automate/NetworkDevicesAPI'
15
+ import { PatchingAPI } from './Automate/PatchingAPI'
16
+ import { RemoteAgentAPI } from './Automate/RemoteAgentAPI'
17
+ import { ScriptingAPI } from './Automate/ScriptingAPI'
18
+ import { SearchesAPI } from './Automate/SearchesAPI'
19
+ import { SystemAPI } from './Automate/SystemAPI'
20
+ import { TicketsAPI } from './Automate/TicketsAPI'
21
+ import { UserProfilesAPI } from './Automate/UserProfilesAPI'
22
+
23
+ import type * as AVTemplatePoliciesAPITypes from './Automate/AVTemplatePoliciesAPI'
24
+ import type * as ClientsAPITypes from './Automate/ClientsAPI'
25
+ import type * as CommandsAPITypes from './Automate/CommandsAPI'
26
+ import type * as ComputersAPITypes from './Automate/ComputersAPI'
27
+ import type * as ContactsAPITypes from './Automate/ContactsAPI'
28
+ import type * as DataViewsAPITypes from './Automate/DataViewsAPI'
29
+ import type * as DrivesAPITypes from './Automate/DrivesAPI'
30
+ import type * as EventLogsAPITypes from './Automate/EventLogsAPI'
31
+ import type * as LocationsAPITypes from './Automate/LocationsAPI'
32
+ import type * as MaintenanceWindowDefinitionsAPITypes from './Automate/MaintenanceWindowDefinitionsAPI'
33
+ import type * as MonitorsAPITypes from './Automate/MonitorsAPI'
34
+ import type * as NetworkDevicesAPITypes from './Automate/NetworkDevicesAPI'
35
+ import type * as PatchingAPITypes from './Automate/PatchingAPI'
36
+ import type * as RemoteAgentAPITypes from './Automate/RemoteAgentAPI'
37
+ import type * as ScriptingAPITypes from './Automate/ScriptingAPI'
38
+ import type * as SearchesAPITypes from './Automate/SearchesAPI'
39
+ import type * as SystemAPITypes from './Automate/SystemAPI'
40
+ import type * as TicketsAPITypes from './Automate/TicketsAPI'
41
+ import type * as UserProfilesAPITypes from './Automate/UserProfilesAPI'
42
+
43
+ /**
44
+ * @public
45
+ */
46
+ export type CWAOptions = {
47
+ serverUrl: string
48
+ username?: string
49
+ password?: string
50
+ twoFactorPasscode?: string
51
+ token?: string
52
+ clientId: string
53
+ timeout?: number
54
+ retry?: boolean
55
+ retryOptions?: RetryOptions
56
+ logger?: CWLogger
57
+ debug?: boolean
58
+ }
59
+
60
+ /**
61
+ * @public
62
+ */
63
+ export type OrderBy = {
64
+ name?: string
65
+ type?: 'Undefined' | 'Ascending' | 'Descending'
66
+ }
67
+
68
+ /**
69
+ * @public
70
+ */
71
+ export type CommonParameters = {
72
+ orderBy?: OrderBy
73
+ page?: number
74
+ pageSize?: number
75
+ condition?: string
76
+ expands?: {
77
+ [key: string]: QueryOptionExpand
78
+ }
79
+ includedFields?: Array<string>
80
+ excludedFields?: Array<string>
81
+ ids?: Array<string>
82
+ timeout?: number
83
+ }
84
+
85
+ /**
86
+ * @public
87
+ */
88
+ export type QueryOptionExpand = {
89
+ fieldName?: string
90
+ page?: number
91
+ pageSize?: number
92
+ condition?: string
93
+ expands?: {
94
+ [key: string]: QueryOptionExpand
95
+ }
96
+ orderBy?: OrderBy
97
+ includedFields?: string[]
98
+ excludedFields?: string[]
99
+ }
100
+
101
+ /**
102
+ * @module AutomateAPI
103
+ * @public
104
+ */
105
+ class AutomateAPI extends Automate {
106
+ /**
107
+ * @public
108
+ */
109
+ AVTemplatePoliciesAPI: AVTemplatePoliciesAPI
110
+ ClientsAPI: ClientsAPI
111
+ CommandsAPI: CommandsAPI
112
+ ComputersAPI: ComputersAPI
113
+ ContactsAPI: ContactsAPI
114
+ DataViewsAPI: DataViewsAPI
115
+ DrivesAPI: DrivesAPI
116
+ EventLogsAPI: EventLogsAPI
117
+ LocationsAPI: LocationsAPI
118
+ MaintenanceWindowDefinitionsAPI: MaintenanceWindowDefinitionsAPI
119
+ MonitorsAPI: MonitorsAPI
120
+ NetworkDevicesAPI: NetworkDevicesAPI
121
+ PatchingAPI: PatchingAPI
122
+ RemoteAgentAPI: RemoteAgentAPI
123
+ ScriptingAPI: ScriptingAPI
124
+ SearchesAPI: SearchesAPI
125
+ SystemAPI: SystemAPI
126
+ TicketsAPI: TicketsAPI
127
+ UserProfilesAPI: UserProfilesAPI
128
+
129
+ constructor(options: CWAOptions) {
130
+ super(options)
131
+
132
+ this.AVTemplatePoliciesAPI = new AVTemplatePoliciesAPI(options)
133
+ this.ClientsAPI = new ClientsAPI(options)
134
+ this.CommandsAPI = new CommandsAPI(options)
135
+ this.ComputersAPI = new ComputersAPI(options)
136
+ this.ContactsAPI = new ContactsAPI(options)
137
+ this.DataViewsAPI = new DataViewsAPI(options)
138
+ this.DrivesAPI = new DrivesAPI(options)
139
+ this.EventLogsAPI = new EventLogsAPI(options)
140
+ this.LocationsAPI = new LocationsAPI(options)
141
+ this.MaintenanceWindowDefinitionsAPI = new MaintenanceWindowDefinitionsAPI(options)
142
+ this.MonitorsAPI = new MonitorsAPI(options)
143
+ this.NetworkDevicesAPI = new NetworkDevicesAPI(options)
144
+ this.PatchingAPI = new PatchingAPI(options)
145
+ this.RemoteAgentAPI = new RemoteAgentAPI(options)
146
+ this.ScriptingAPI = new ScriptingAPI(options)
147
+ this.SearchesAPI = new SearchesAPI(options)
148
+ this.SystemAPI = new SystemAPI(options)
149
+ this.TicketsAPI = new TicketsAPI(options)
150
+ this.UserProfilesAPI = new UserProfilesAPI(options)
151
+ }
152
+ }
153
+
154
+ /**
155
+ * @public
156
+ */
157
+ export default AutomateAPI
158
+ export type {
159
+ AVTemplatePoliciesAPITypes,
160
+ ClientsAPITypes,
161
+ CommandsAPITypes,
162
+ ComputersAPITypes,
163
+ ContactsAPITypes,
164
+ DataViewsAPITypes,
165
+ DrivesAPITypes,
166
+ EventLogsAPITypes,
167
+ LocationsAPITypes,
168
+ MaintenanceWindowDefinitionsAPITypes,
169
+ MonitorsAPITypes,
170
+ NetworkDevicesAPITypes,
171
+ PatchingAPITypes,
172
+ RemoteAgentAPITypes,
173
+ ScriptingAPITypes,
174
+ SearchesAPITypes,
175
+ SystemAPITypes,
176
+ TicketsAPITypes,
177
+ UserProfilesAPITypes,
178
+ }