connectwise-rest 0.23.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (288) hide show
  1. package/.eslintrc +19 -52
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/codeql-analysis.yml +70 -0
  4. package/.github/workflows/node.js.yml +42 -0
  5. package/.mocharc.json +5 -0
  6. package/.prettierrc +7 -0
  7. package/.travis.yml +4 -2
  8. package/README.md +243 -230
  9. package/api-extractor.json +364 -0
  10. package/dist/Automate/AVTemplatePoliciesAPI.d.ts +27 -0
  11. package/dist/Automate/AVTemplatePoliciesAPI.d.ts.map +1 -0
  12. package/dist/Automate/AVTemplatePoliciesAPI.js +87 -0
  13. package/dist/Automate/AVTemplatePoliciesAPI.js.map +1 -0
  14. package/dist/Automate/ClientsAPI.d.ts +34 -0
  15. package/dist/Automate/ClientsAPI.d.ts.map +1 -0
  16. package/dist/Automate/ClientsAPI.js +114 -0
  17. package/dist/Automate/ClientsAPI.js.map +1 -0
  18. package/dist/Automate/CommandsAPI.d.ts +15 -0
  19. package/dist/Automate/CommandsAPI.d.ts.map +1 -0
  20. package/dist/Automate/CommandsAPI.js +31 -0
  21. package/dist/Automate/CommandsAPI.js.map +1 -0
  22. package/dist/Automate/ComputersAPI.d.ts +94 -0
  23. package/dist/Automate/ComputersAPI.d.ts.map +1 -0
  24. package/dist/Automate/ComputersAPI.js +353 -0
  25. package/dist/Automate/ComputersAPI.js.map +1 -0
  26. package/dist/Automate/ContactsAPI.d.ts +18 -0
  27. package/dist/Automate/ContactsAPI.d.ts.map +1 -0
  28. package/dist/Automate/ContactsAPI.js +45 -0
  29. package/dist/Automate/ContactsAPI.js.map +1 -0
  30. package/dist/Automate/DataViewsAPI.d.ts +16 -0
  31. package/dist/Automate/DataViewsAPI.d.ts.map +1 -0
  32. package/dist/Automate/DataViewsAPI.js +31 -0
  33. package/dist/Automate/DataViewsAPI.js.map +1 -0
  34. package/dist/Automate/DrivesAPI.d.ts +19 -0
  35. package/dist/Automate/DrivesAPI.d.ts.map +1 -0
  36. package/dist/Automate/DrivesAPI.js +52 -0
  37. package/dist/Automate/DrivesAPI.js.map +1 -0
  38. package/dist/Automate/EventLogsAPI.d.ts +14 -0
  39. package/dist/Automate/EventLogsAPI.d.ts.map +1 -0
  40. package/dist/Automate/EventLogsAPI.js +24 -0
  41. package/dist/Automate/EventLogsAPI.js.map +1 -0
  42. package/dist/Automate/LocationsAPI.d.ts +42 -0
  43. package/dist/Automate/LocationsAPI.d.ts.map +1 -0
  44. package/dist/Automate/LocationsAPI.js +133 -0
  45. package/dist/Automate/LocationsAPI.js.map +1 -0
  46. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts +14 -0
  47. package/dist/Automate/MaintenanceWindowDefinitionsAPI.d.ts.map +1 -0
  48. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js +24 -0
  49. package/dist/Automate/MaintenanceWindowDefinitionsAPI.js.map +1 -0
  50. package/dist/Automate/MonitorsAPI.d.ts +23 -0
  51. package/dist/Automate/MonitorsAPI.d.ts.map +1 -0
  52. package/dist/Automate/MonitorsAPI.js +80 -0
  53. package/dist/Automate/MonitorsAPI.js.map +1 -0
  54. package/dist/Automate/NetworkDevicesAPI.d.ts +17 -0
  55. package/dist/Automate/NetworkDevicesAPI.d.ts.map +1 -0
  56. package/dist/Automate/NetworkDevicesAPI.js +38 -0
  57. package/dist/Automate/NetworkDevicesAPI.js.map +1 -0
  58. package/dist/Automate/PatchingAPI.d.ts +27 -0
  59. package/dist/Automate/PatchingAPI.d.ts.map +1 -0
  60. package/dist/Automate/PatchingAPI.js +94 -0
  61. package/dist/Automate/PatchingAPI.js.map +1 -0
  62. package/dist/Automate/RemoteAgentAPI.d.ts +18 -0
  63. package/dist/Automate/RemoteAgentAPI.d.ts.map +1 -0
  64. package/dist/Automate/RemoteAgentAPI.js +45 -0
  65. package/dist/Automate/RemoteAgentAPI.js.map +1 -0
  66. package/dist/Automate/ScriptingAPI.d.ts +32 -0
  67. package/dist/Automate/ScriptingAPI.d.ts.map +1 -0
  68. package/dist/Automate/ScriptingAPI.js +104 -0
  69. package/dist/Automate/ScriptingAPI.js.map +1 -0
  70. package/dist/Automate/SearchesAPI.d.ts +17 -0
  71. package/dist/Automate/SearchesAPI.d.ts.map +1 -0
  72. package/dist/Automate/SearchesAPI.js +38 -0
  73. package/dist/Automate/SearchesAPI.js.map +1 -0
  74. package/dist/Automate/SystemAPI.d.ts +72 -0
  75. package/dist/Automate/SystemAPI.d.ts.map +1 -0
  76. package/dist/Automate/SystemAPI.js +268 -0
  77. package/dist/Automate/SystemAPI.js.map +1 -0
  78. package/dist/Automate/TicketsAPI.d.ts +10 -0
  79. package/dist/Automate/TicketsAPI.d.ts.map +1 -0
  80. package/dist/Automate/TicketsAPI.js +24 -0
  81. package/dist/Automate/TicketsAPI.js.map +1 -0
  82. package/dist/Automate/UserProfilesAPI.d.ts +14 -0
  83. package/dist/Automate/UserProfilesAPI.d.ts.map +1 -0
  84. package/dist/Automate/UserProfilesAPI.js +23 -0
  85. package/dist/Automate/UserProfilesAPI.js.map +1 -0
  86. package/dist/Automate.d.ts +48 -0
  87. package/dist/Automate.d.ts.map +1 -0
  88. package/dist/Automate.js +167 -0
  89. package/dist/Automate.js.map +1 -0
  90. package/dist/AutomateAPI.d.ts +96 -0
  91. package/dist/AutomateAPI.d.ts.map +1 -0
  92. package/dist/AutomateAPI.js +168 -0
  93. package/dist/AutomateAPI.js.map +1 -0
  94. package/dist/AutomateTypes.d.ts +10437 -0
  95. package/dist/AutomateTypes.d.ts.map +1 -0
  96. package/dist/AutomateTypes.js +3 -0
  97. package/dist/AutomateTypes.js.map +1 -0
  98. package/dist/BaseAPI.d.ts +13 -0
  99. package/dist/BaseAPI.d.ts.map +1 -0
  100. package/dist/BaseAPI.js +53 -0
  101. package/dist/BaseAPI.js.map +1 -0
  102. package/dist/Manage/CompanyAPI.d.ts +573 -0
  103. package/dist/Manage/CompanyAPI.d.ts.map +1 -0
  104. package/dist/Manage/CompanyAPI.js +3294 -0
  105. package/dist/Manage/CompanyAPI.js.map +1 -0
  106. package/dist/Manage/ConfigurationsAPI.d.ts +24 -0
  107. package/dist/Manage/ConfigurationsAPI.d.ts.map +1 -0
  108. package/dist/Manage/ConfigurationsAPI.js +73 -0
  109. package/dist/Manage/ConfigurationsAPI.js.map +1 -0
  110. package/dist/Manage/ExpenseAPI.d.ts +68 -0
  111. package/dist/Manage/ExpenseAPI.d.ts.map +1 -0
  112. package/dist/Manage/ExpenseAPI.js +306 -0
  113. package/dist/Manage/ExpenseAPI.js.map +1 -0
  114. package/dist/Manage/FinanceAPI.d.ts +460 -0
  115. package/dist/Manage/FinanceAPI.d.ts.map +1 -0
  116. package/dist/Manage/FinanceAPI.js +2587 -0
  117. package/dist/Manage/FinanceAPI.js.map +1 -0
  118. package/dist/Manage/MarketingAPI.d.ts +120 -0
  119. package/dist/Manage/MarketingAPI.d.ts.map +1 -0
  120. package/dist/Manage/MarketingAPI.js +629 -0
  121. package/dist/Manage/MarketingAPI.js.map +1 -0
  122. package/dist/Manage/ProcurementAPI.d.ts +373 -0
  123. package/dist/Manage/ProcurementAPI.d.ts.map +1 -0
  124. package/dist/Manage/ProcurementAPI.js +2098 -0
  125. package/dist/Manage/ProcurementAPI.js.map +1 -0
  126. package/dist/Manage/ProjectAPI.d.ts +179 -0
  127. package/dist/Manage/ProjectAPI.d.ts.map +1 -0
  128. package/dist/Manage/ProjectAPI.js +940 -0
  129. package/dist/Manage/ProjectAPI.js.map +1 -0
  130. package/dist/Manage/SalesAPI.d.ts +254 -0
  131. package/dist/Manage/SalesAPI.d.ts.map +1 -0
  132. package/dist/Manage/SalesAPI.js +1392 -0
  133. package/dist/Manage/SalesAPI.js.map +1 -0
  134. package/dist/Manage/ScheduleAPI.d.ts +111 -0
  135. package/dist/Manage/ScheduleAPI.d.ts.map +1 -0
  136. package/dist/Manage/ScheduleAPI.js +575 -0
  137. package/dist/Manage/ScheduleAPI.js.map +1 -0
  138. package/dist/Manage/ServiceAPI.d.ts +419 -0
  139. package/dist/Manage/ServiceAPI.d.ts.map +1 -0
  140. package/dist/Manage/ServiceAPI.js +2334 -0
  141. package/dist/Manage/ServiceAPI.js.map +1 -0
  142. package/dist/Manage/SystemAPI.d.ts +809 -0
  143. package/dist/Manage/SystemAPI.d.ts.map +1 -0
  144. package/dist/Manage/SystemAPI.js +4531 -0
  145. package/dist/Manage/SystemAPI.js.map +1 -0
  146. package/dist/Manage/TimeAPI.d.ts +157 -0
  147. package/dist/Manage/TimeAPI.d.ts.map +1 -0
  148. package/dist/Manage/TimeAPI.js +835 -0
  149. package/dist/Manage/TimeAPI.js.map +1 -0
  150. package/dist/Manage.d.ts +34 -0
  151. package/dist/Manage.d.ts.map +1 -0
  152. package/dist/Manage.js +127 -0
  153. package/dist/Manage.js.map +1 -0
  154. package/dist/ManageAPI.d.ts +99 -0
  155. package/dist/ManageAPI.d.ts.map +1 -0
  156. package/dist/ManageAPI.js +112 -0
  157. package/dist/ManageAPI.js.map +1 -0
  158. package/dist/ManageTypes.d.ts +91320 -0
  159. package/dist/ManageTypes.d.ts.map +1 -0
  160. package/dist/ManageTypes.js +7 -0
  161. package/dist/ManageTypes.js.map +1 -0
  162. package/dist/index.d.ts +9 -0
  163. package/dist/index.d.ts.map +1 -0
  164. package/dist/index.js +38 -0
  165. package/dist/index.js.map +1 -0
  166. package/dist/types.d.ts +46 -0
  167. package/dist/types.d.ts.map +1 -0
  168. package/dist/types.js +21 -0
  169. package/dist/types.js.map +1 -0
  170. package/dist/utils/Callback.d.ts +67 -0
  171. package/dist/utils/Callback.d.ts.map +1 -0
  172. package/dist/utils/Callback.js +109 -0
  173. package/dist/utils/Callback.js.map +1 -0
  174. package/dist/utils/Series.d.ts +36 -0
  175. package/dist/utils/Series.d.ts.map +1 -0
  176. package/dist/utils/Series.js +64 -0
  177. package/dist/utils/Series.js.map +1 -0
  178. package/dist/utils/index.d.ts +7 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +11 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/generator/automate-generator.js +75 -0
  183. package/generator/automate-json.js +61 -0
  184. package/generator/automate-types.js +15 -0
  185. package/generator/generator.d.ts +67 -0
  186. package/generator/generator.js +255 -0
  187. package/generator/manage-generator.js +71 -0
  188. package/generator/manage-types.js +14 -0
  189. package/package.json +48 -21
  190. package/src/Automate/AVTemplatePoliciesAPI.ts +114 -0
  191. package/src/Automate/ClientsAPI.ts +161 -0
  192. package/src/Automate/CommandsAPI.ts +33 -0
  193. package/src/Automate/ComputersAPI.ts +550 -0
  194. package/src/Automate/ContactsAPI.ts +56 -0
  195. package/src/Automate/DataViewsAPI.ts +36 -0
  196. package/src/Automate/DrivesAPI.ts +74 -0
  197. package/src/Automate/EventLogsAPI.ts +25 -0
  198. package/src/Automate/LocationsAPI.ts +206 -0
  199. package/src/Automate/MaintenanceWindowDefinitionsAPI.ts +28 -0
  200. package/src/Automate/MonitorsAPI.ts +94 -0
  201. package/src/Automate/NetworkDevicesAPI.ts +44 -0
  202. package/src/Automate/PatchingAPI.ts +109 -0
  203. package/src/Automate/RemoteAgentAPI.ts +58 -0
  204. package/src/Automate/ScriptingAPI.ts +137 -0
  205. package/src/Automate/SearchesAPI.ts +42 -0
  206. package/src/Automate/SystemAPI.ts +386 -0
  207. package/src/Automate/TicketsAPI.ts +24 -0
  208. package/src/Automate/UserProfilesAPI.ts +25 -0
  209. package/src/Automate.ts +216 -0
  210. package/src/AutomateAPI.ts +144 -0
  211. package/src/AutomateTypes.ts +10492 -0
  212. package/src/BaseAPI.ts +83 -0
  213. package/src/Manage/CompanyAPI.ts +4851 -0
  214. package/src/Manage/ConfigurationsAPI.ts +107 -0
  215. package/src/Manage/ExpenseAPI.ts +395 -0
  216. package/src/Manage/FinanceAPI.ts +3851 -0
  217. package/src/Manage/MarketingAPI.ts +935 -0
  218. package/src/Manage/ProcurementAPI.ts +3044 -0
  219. package/src/Manage/ProjectAPI.ts +1400 -0
  220. package/src/Manage/SalesAPI.ts +1922 -0
  221. package/src/Manage/ScheduleAPI.ts +751 -0
  222. package/src/Manage/ServiceAPI.ts +3401 -0
  223. package/src/Manage/SystemAPI.ts +6269 -0
  224. package/src/Manage/TimeAPI.ts +1121 -0
  225. package/src/Manage.ts +152 -0
  226. package/src/ManageAPI.ts +133 -0
  227. package/src/ManageTypes.ts +91318 -0
  228. package/src/index.ts +18 -0
  229. package/src/types.ts +66 -0
  230. package/src/utils/Callback.ts +145 -0
  231. package/src/utils/Series.ts +83 -0
  232. package/src/utils/index.ts +7 -0
  233. package/swagger-errors.md +30 -0
  234. package/test/.env.example +12 -4
  235. package/test/test-utils.ts +27 -0
  236. package/test/test.ts +320 -0
  237. package/tsconfig.json +29 -0
  238. package/doc.md +0 -5984
  239. package/docs/jsdoc.json +0 -15
  240. package/index.js +0 -10
  241. package/src/CompanyAPI/Companies.js +0 -149
  242. package/src/CompanyAPI/CompanyCompanyTypeAssociations.js +0 -111
  243. package/src/CompanyAPI/CompanySites.js +0 -70
  244. package/src/CompanyAPI/CompanyTeams.js +0 -108
  245. package/src/CompanyAPI/CompanyTypeInfos.js +0 -58
  246. package/src/CompanyAPI/CompanyTypes.js +0 -52
  247. package/src/CompanyAPI/Configurations.js +0 -152
  248. package/src/CompanyAPI/ContactContactTypeAssociations.js +0 -55
  249. package/src/CompanyAPI/ContactRelationships.js +0 -36
  250. package/src/CompanyAPI/Contacts.js +0 -199
  251. package/src/CompanyAPI/index.js +0 -53
  252. package/src/ConnectWise.js +0 -339
  253. package/src/ConnectWiseRest.js +0 -512
  254. package/src/FinanceAPI/Additions.js +0 -127
  255. package/src/FinanceAPI/Adjustments.js +0 -109
  256. package/src/FinanceAPI/AgreementSites.js +0 -108
  257. package/src/FinanceAPI/Agreements.js +0 -220
  258. package/src/FinanceAPI/BoardDefaults.js +0 -109
  259. package/src/FinanceAPI/WorkRoles.js +0 -113
  260. package/src/FinanceAPI/WorkTypeExclusions.js +0 -78
  261. package/src/FinanceAPI/WorkTypes.js +0 -124
  262. package/src/FinanceAPI/index.js +0 -50
  263. package/src/ProjectAPI/Projects.js +0 -142
  264. package/src/ProjectAPI/index.js +0 -28
  265. package/src/SalesAPI/Activities.js +0 -149
  266. package/src/SalesAPI/index.js +0 -14
  267. package/src/ScheduleAPI/ScheduleEntries.js +0 -109
  268. package/src/ScheduleAPI/ScheduleTypes.js +0 -101
  269. package/src/ScheduleAPI/index.js +0 -30
  270. package/src/ServiceDeskAPI/BoardItems.js +0 -134
  271. package/src/ServiceDeskAPI/BoardSubTypes.js +0 -112
  272. package/src/ServiceDeskAPI/BoardTeams.js +0 -108
  273. package/src/ServiceDeskAPI/BoardTypes.js +0 -139
  274. package/src/ServiceDeskAPI/Boards.js +0 -100
  275. package/src/ServiceDeskAPI/Priorities.js +0 -47
  276. package/src/ServiceDeskAPI/ServiceNotes.js +0 -172
  277. package/src/ServiceDeskAPI/Statuses.js +0 -116
  278. package/src/ServiceDeskAPI/Tickets.js +0 -588
  279. package/src/ServiceDeskAPI/index.js +0 -53
  280. package/src/SystemAPI/Members.js +0 -139
  281. package/src/SystemAPI/Reports.js +0 -116
  282. package/src/SystemAPI/index.js +0 -32
  283. package/src/TimeAPI/TimeEntries.js +0 -121
  284. package/src/TimeAPI/index.js +0 -27
  285. package/src/utils/Callback.js +0 -125
  286. package/src/utils/Series.js +0 -64
  287. package/src/utils/index.js +0 -21
  288. package/test/test.js +0 -114
@@ -0,0 +1,216 @@
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
+ static async refreshToken({
144
+ username,
145
+ password,
146
+ serverUrl,
147
+ }: {
148
+ username: string
149
+ password: string
150
+ serverUrl: string
151
+ }) {
152
+ // @todo how
153
+ }
154
+
155
+ async verifyToken() {
156
+ try {
157
+ const result = await this.api({ path: '/api/v1/FeatureFlags', method: 'get' })
158
+ return true
159
+ } catch (err) {
160
+ return false
161
+ }
162
+ }
163
+
164
+ /**
165
+ * @internal
166
+ */
167
+ private async api({
168
+ path,
169
+ method,
170
+ params,
171
+ data,
172
+ }: RequestOptions): Promise<ErrorResponse | DataResponse> {
173
+ const { username, password, serverUrl, twoFactorPasscode } = this.config
174
+ if (!this.config.token || !this.instance) {
175
+ const result = await Automate.getToken({ username, password, serverUrl, twoFactorPasscode })
176
+ this.config.token = result.AccessToken
177
+ this.createAxiosInstance()
178
+ }
179
+
180
+ try {
181
+ const result = await this.instance({
182
+ url: path,
183
+ method,
184
+ params,
185
+ data,
186
+ })
187
+
188
+ return result?.data
189
+ } catch (error: any) {
190
+ if (error.isAxiosError()) {
191
+ return {
192
+ status: error.response?.status,
193
+ data: error.response?.data,
194
+ message: error?.message,
195
+ }
196
+ }
197
+
198
+ // something else catastrophic went wrong
199
+ throw error
200
+ }
201
+ }
202
+
203
+ private createAxiosInstance() {
204
+ const { serverUrl, timeout, clientId } = this.config
205
+ this.instance = axios.create({
206
+ timeout,
207
+ baseURL: `https://${serverUrl}/${DEFAULTS.entryPoint}`,
208
+ headers: {
209
+ Accept: `application/json`,
210
+ 'Cache-Control': 'no-cache',
211
+ Authorization: `Bearer ${this.config.token}`,
212
+ clientId,
213
+ },
214
+ })
215
+ }
216
+ }
@@ -0,0 +1,144 @@
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 TicketAPI from './Automate/TicketsAPI'
21
+ import UserProfilesAPI from './Automate/UserProfilesAPI'
22
+
23
+ export type {
24
+ AVTemplatePoliciesAPI,
25
+ ClientsAPI,
26
+ CommandsAPI,
27
+ ComputersAPI,
28
+ ContactsAPI,
29
+ DataViewsAPI,
30
+ DrivesAPI,
31
+ EventLogsAPI,
32
+ LocationsAPI,
33
+ MaintenanceWindowDefinitionsAPI,
34
+ MonitorsAPI,
35
+ NetworkDevicesAPI,
36
+ PatchingAPI,
37
+ RemoteAgentAPI,
38
+ ScriptingAPI,
39
+ SearchesAPI,
40
+ SystemAPI,
41
+ TicketAPI,
42
+ UserProfilesAPI,
43
+ }
44
+
45
+ /**
46
+ * @public
47
+ */
48
+ export type CWAOptions = {
49
+ serverUrl: string
50
+ username?: string
51
+ password?: string
52
+ twoFactorPasscode?: string
53
+ token?: string
54
+ clientId: string
55
+ timeout?: number
56
+ retry?: boolean
57
+ retryOptions?: RetryOptions
58
+ logger?: CWLogger
59
+ debug?: boolean
60
+ }
61
+
62
+ export type OrderBy = {
63
+ name?: string
64
+ type?: 'Undefined' | 'Ascending' | 'Descending'
65
+ }
66
+
67
+ /**
68
+ * @public
69
+ */
70
+ export type CommonParameters = {
71
+ orderBy?: OrderBy
72
+ page?: number
73
+ pageSize?: number
74
+ condition?: string
75
+ expands?: {
76
+ [key: string]: QueryOptionExpand
77
+ }
78
+ includedFields?: Array<string>
79
+ excludedFields?: Array<string>
80
+ ids?: Array<string>
81
+ timeout?: number
82
+ }
83
+
84
+ export type QueryOptionExpand = {
85
+ fieldName?: string
86
+ page?: number
87
+ pageSize?: number
88
+ condition?: string
89
+ expands?: {
90
+ [key: string]: QueryOptionExpand
91
+ }
92
+ orderBy?: OrderBy
93
+ includedFields?: string[]
94
+ excludedFields?: string[]
95
+ }
96
+
97
+ /**
98
+ * @public
99
+ */
100
+ export default class AutomateAPI extends Automate {
101
+ AVTemplatePoliciesAPI: AVTemplatePoliciesAPI
102
+ ClientsAPI: ClientsAPI
103
+ CommandsAPI: CommandsAPI
104
+ ComputersAPI: ComputersAPI
105
+ ContactsAPI: ContactsAPI
106
+ DataViewsAPI: DataViewsAPI
107
+ DrivesAPI: DrivesAPI
108
+ EventLogsAPI: EventLogsAPI
109
+ LocationsAPI: LocationsAPI
110
+ MaintenanceWindowDefinitionsAPI: MaintenanceWindowDefinitionsAPI
111
+ MonitorsAPI: MonitorsAPI
112
+ NetworkDevicesAPI: NetworkDevicesAPI
113
+ PatchingAPI: PatchingAPI
114
+ RemoteAgentAPI: RemoteAgentAPI
115
+ ScriptingAPI: ScriptingAPI
116
+ SearchesAPI: SearchesAPI
117
+ SystemAPI: SystemAPI
118
+ TicketAPI: TicketAPI
119
+ UserProfilesAPI: UserProfilesAPI
120
+
121
+ constructor(options: CWAOptions) {
122
+ super(options)
123
+
124
+ this.AVTemplatePoliciesAPI = new AVTemplatePoliciesAPI(options)
125
+ this.ClientsAPI = new ClientsAPI(options)
126
+ this.CommandsAPI = new CommandsAPI(options)
127
+ this.ComputersAPI = new ComputersAPI(options)
128
+ this.ContactsAPI = new ContactsAPI(options)
129
+ this.DataViewsAPI = new DataViewsAPI(options)
130
+ this.DrivesAPI = new DrivesAPI(options)
131
+ this.EventLogsAPI = new EventLogsAPI(options)
132
+ this.LocationsAPI = new LocationsAPI(options)
133
+ this.MaintenanceWindowDefinitionsAPI = new MaintenanceWindowDefinitionsAPI(options)
134
+ this.MonitorsAPI = new MonitorsAPI(options)
135
+ this.NetworkDevicesAPI = new NetworkDevicesAPI(options)
136
+ this.PatchingAPI = new PatchingAPI(options)
137
+ this.RemoteAgentAPI = new RemoteAgentAPI(options)
138
+ this.ScriptingAPI = new ScriptingAPI(options)
139
+ this.SearchesAPI = new SearchesAPI(options)
140
+ this.SystemAPI = new SystemAPI(options)
141
+ this.TicketAPI = new TicketAPI(options)
142
+ this.UserProfilesAPI = new UserProfilesAPI(options)
143
+ }
144
+ }