@licensespring/node-sdk 1.2.0 → 1.3.0-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +8 -6
- package/dist/src/api.d.ts +3 -1
- package/dist/src/api.js +26 -16
- package/dist/src/api.js.map +1 -1
- package/dist/src/floating-api.d.ts +487 -0
- package/dist/src/floating-api.js +432 -0
- package/dist/src/floating-api.js.map +1 -0
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/license-manager.d.ts +1 -1
- package/dist/src/service.d.ts +12 -0
- package/dist/src/service.js +99 -0
- package/dist/src/service.js.map +1 -1
- package/dist/src/storage-file.js +10 -2
- package/dist/src/storage-file.js.map +1 -1
- package/package.json +8 -6
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
import { HardwareIdAlgorithm, LogLevel } from './types';
|
|
2
|
+
import { AxiosProxyConfig } from 'axios';
|
|
3
|
+
type FloatingAPIConfig = {
|
|
4
|
+
apiPath: string;
|
|
5
|
+
hardwareID?: string;
|
|
6
|
+
hardwareIDMethod?: number;
|
|
7
|
+
logLevel?: LogLevel;
|
|
8
|
+
proxy?: AxiosProxyConfig;
|
|
9
|
+
certChain: string;
|
|
10
|
+
publicKey: string;
|
|
11
|
+
} & ({
|
|
12
|
+
apiKey: string;
|
|
13
|
+
sharedKey: string;
|
|
14
|
+
} | {
|
|
15
|
+
clientID: string;
|
|
16
|
+
clientSecret: string;
|
|
17
|
+
tokenUrl: string;
|
|
18
|
+
});
|
|
19
|
+
export declare class FloatingAPI {
|
|
20
|
+
private readonly config;
|
|
21
|
+
private readonly service;
|
|
22
|
+
private readonly hardwareIDmanual?;
|
|
23
|
+
private certsVerified;
|
|
24
|
+
constructor(config: FloatingAPIConfig);
|
|
25
|
+
private verifyCertChain;
|
|
26
|
+
setLogLevel(level: LogLevel): void;
|
|
27
|
+
getHardwareID(algorithm?: HardwareIdAlgorithm): string;
|
|
28
|
+
ping(): Promise<boolean>;
|
|
29
|
+
authAddUser(user: User): Promise<string>;
|
|
30
|
+
authChangePassword(body: ChangePasswordReq): Promise<boolean>;
|
|
31
|
+
authInitialPassword(body: SetPasswordReq): Promise<boolean>;
|
|
32
|
+
authLogin(body: LoginUser): Promise<LoginResponse>;
|
|
33
|
+
authMe(): Promise<AuthMeResponseBody>;
|
|
34
|
+
authUsersList(): Promise<User[]>;
|
|
35
|
+
authUsersDelete(): Promise<string>;
|
|
36
|
+
getConfig(): Promise<CloudConfig>;
|
|
37
|
+
patchConfig(input: CloudConfigUpdate): Promise<string>;
|
|
38
|
+
bundleActivate(body: BundleRequest): Promise<ActivateBundleResponse>;
|
|
39
|
+
bundleDeactivate(id: number): Promise<DeactivateBundleResponse>;
|
|
40
|
+
bundleOfflineActivationGenerate(body: OfflineRequestInput): Promise<GenerateOfflineRequestResponse>;
|
|
41
|
+
bundleOfflineDeactivationGenerate(body: OfflineRequestInput): Promise<GenerateOfflineRequestResponse>;
|
|
42
|
+
bundleOfflineActivationUpload(product: string, file: File | Blob): Promise<ActivateBundleResponse>;
|
|
43
|
+
listLicenses(params?: {
|
|
44
|
+
product?: string;
|
|
45
|
+
}): Promise<LicenseData[]>;
|
|
46
|
+
activateLicense(body: AddLicenseRequest): Promise<ActivateLicenseResponse>;
|
|
47
|
+
getLicenseById(id: string): Promise<LicenseData>;
|
|
48
|
+
deactivateLicense(id: number): Promise<boolean>;
|
|
49
|
+
addLicenseConsumption(id: number, body: AddConsumptionRequest): Promise<ConsumptionResponse>;
|
|
50
|
+
addFeatureConsumption(id: number, body: AddFeatureConsumptionRequest): Promise<FeatureConsumptionResponse>;
|
|
51
|
+
listLicenseFeatureUsers(id: number): Promise<AllFeatureUsersResponse>;
|
|
52
|
+
registerFeatureForUser(id: number, body: RegisterFeatureRequest): Promise<RegisterFeatureResponse>;
|
|
53
|
+
releaseFeatureForUser(id: number, body: UnregisterFeatureRequest): Promise<boolean>;
|
|
54
|
+
releaseFeatureForAllUsers(id: number, body: AllFeatureUsersRequest): Promise<FeatureReleasedAllResponse>;
|
|
55
|
+
listLicenseUsers(id: number): Promise<FloatingUser[]>;
|
|
56
|
+
registerUserToLicense(id: number, body: RegisterRequestBody): Promise<LicenseData>;
|
|
57
|
+
unregisterUserFromLicense(id: number, body: UsernameRequest): Promise<boolean>;
|
|
58
|
+
unregisterAllUsersFromLicense(id: number): Promise<UnregisterAllUsersResponse>;
|
|
59
|
+
borrowLicenseForUser(id: number, body: BorrowUserRequest): Promise<BorrowResponse>;
|
|
60
|
+
offlineActivationGenerate(body: OfflineRequestInput): Promise<GenerateOfflineRequestResponse>;
|
|
61
|
+
offlineActivationUpload(product: string, file: File | Blob): Promise<ActivateBundleResponse | ActivateLicenseResponse>;
|
|
62
|
+
offlineDeactivationGenerate(body: OfflineRequestInput): Promise<GenerateOfflineRequestResponse>;
|
|
63
|
+
airgapGenerateActivation(body: GenerateAirgapRequestBody): Promise<AirgapActivationCodeResponse>;
|
|
64
|
+
airgapGenerateDeactivation(body: GenerateAirgapDeactivationRequestBody): Promise<AirgapDeactivationCodeResponse>;
|
|
65
|
+
airgapDeactivate(body: DeactivateAirgapRequestBody): Promise<AirgapeDeactivatedResponse>;
|
|
66
|
+
airgapActivate(file: File | Blob, jsonFile: File | Blob): Promise<AirgapActivatedResponse>;
|
|
67
|
+
getSyncConfig(): Promise<SyncConfig>;
|
|
68
|
+
setSyncMode(body: SyncEnableReq): Promise<boolean>;
|
|
69
|
+
triggerSync(): Promise<boolean>;
|
|
70
|
+
}
|
|
71
|
+
type AnyJson = Record<string, any>;
|
|
72
|
+
type RFC3339 = string;
|
|
73
|
+
interface LoginResponse {
|
|
74
|
+
token: string;
|
|
75
|
+
expires_at: RFC3339;
|
|
76
|
+
expires_in: number;
|
|
77
|
+
}
|
|
78
|
+
interface User {
|
|
79
|
+
id: number;
|
|
80
|
+
username: string;
|
|
81
|
+
role: 'admin' | 'user';
|
|
82
|
+
created_at: RFC3339;
|
|
83
|
+
updated_at: RFC3339;
|
|
84
|
+
}
|
|
85
|
+
interface LoginUser {
|
|
86
|
+
username: string;
|
|
87
|
+
password: string;
|
|
88
|
+
}
|
|
89
|
+
interface ChangePasswordReq {
|
|
90
|
+
username: string;
|
|
91
|
+
old_password: string;
|
|
92
|
+
new_password: string;
|
|
93
|
+
}
|
|
94
|
+
interface SetPasswordReq {
|
|
95
|
+
password: string;
|
|
96
|
+
}
|
|
97
|
+
type AuthMeSuccessBody = {
|
|
98
|
+
expires_at?: string;
|
|
99
|
+
ExpiresAt?: string;
|
|
100
|
+
[key: string]: unknown;
|
|
101
|
+
};
|
|
102
|
+
interface AuthMeErrorBody {
|
|
103
|
+
error: string;
|
|
104
|
+
}
|
|
105
|
+
type AuthMeResponseBody = AuthMeSuccessBody | AuthMeErrorBody;
|
|
106
|
+
interface CloudConfig {
|
|
107
|
+
airGapPublicKey: string;
|
|
108
|
+
apikey: string;
|
|
109
|
+
apiprefix: string;
|
|
110
|
+
baseURL: string;
|
|
111
|
+
cacertificatePath: string;
|
|
112
|
+
certificatePath: string;
|
|
113
|
+
clientId: string;
|
|
114
|
+
clientSecret: string;
|
|
115
|
+
disableSync: boolean;
|
|
116
|
+
id: number;
|
|
117
|
+
privateKeyPath: string;
|
|
118
|
+
serverPublicKey: string;
|
|
119
|
+
sharedKey: string;
|
|
120
|
+
syncIntervalHours: number;
|
|
121
|
+
syncIntervalMinutes: number;
|
|
122
|
+
useHardwareKey: boolean;
|
|
123
|
+
useOAuth: boolean;
|
|
124
|
+
}
|
|
125
|
+
interface CloudConfigUpdate {
|
|
126
|
+
airgap_public_key?: string;
|
|
127
|
+
api_key?: string;
|
|
128
|
+
api_prefix?: string;
|
|
129
|
+
base_url?: string;
|
|
130
|
+
client_id?: string;
|
|
131
|
+
client_secret?: string;
|
|
132
|
+
server_public_key?: string;
|
|
133
|
+
shared_key?: string;
|
|
134
|
+
use_oauth?: boolean;
|
|
135
|
+
}
|
|
136
|
+
interface AddLicenseRequest {
|
|
137
|
+
product?: string;
|
|
138
|
+
license_key?: string;
|
|
139
|
+
}
|
|
140
|
+
interface Company {
|
|
141
|
+
id: number;
|
|
142
|
+
}
|
|
143
|
+
interface LicenseUser {
|
|
144
|
+
id: number;
|
|
145
|
+
email: string;
|
|
146
|
+
is_active?: boolean;
|
|
147
|
+
first_name: string;
|
|
148
|
+
last_name: string;
|
|
149
|
+
phone_number: string;
|
|
150
|
+
is_initial_password: boolean;
|
|
151
|
+
initial_password?: string;
|
|
152
|
+
license_id?: number;
|
|
153
|
+
order_store_id?: string;
|
|
154
|
+
order_id?: number;
|
|
155
|
+
max_activations: number;
|
|
156
|
+
allow_unlimited_activations: boolean;
|
|
157
|
+
total_activations: number;
|
|
158
|
+
}
|
|
159
|
+
interface ProductDetails {
|
|
160
|
+
product_id: number;
|
|
161
|
+
product_name: string;
|
|
162
|
+
short_code: string;
|
|
163
|
+
authorization_method: string;
|
|
164
|
+
metadata: AnyJson | null;
|
|
165
|
+
company_id: number;
|
|
166
|
+
trial_days?: number;
|
|
167
|
+
allow_overages?: boolean;
|
|
168
|
+
max_overages?: number;
|
|
169
|
+
prevent_vm?: boolean;
|
|
170
|
+
floating_timeout?: number;
|
|
171
|
+
validity_period?: string | null;
|
|
172
|
+
}
|
|
173
|
+
interface CustomerAccount {
|
|
174
|
+
code: string;
|
|
175
|
+
id: number;
|
|
176
|
+
name: string;
|
|
177
|
+
}
|
|
178
|
+
interface Customer {
|
|
179
|
+
email: string;
|
|
180
|
+
first_name: string;
|
|
181
|
+
last_name: string;
|
|
182
|
+
company_name: string;
|
|
183
|
+
phone: string;
|
|
184
|
+
reference: string;
|
|
185
|
+
address: string;
|
|
186
|
+
postcode: string;
|
|
187
|
+
city: string;
|
|
188
|
+
country: string;
|
|
189
|
+
state: string;
|
|
190
|
+
customer_account?: CustomerAccount;
|
|
191
|
+
metadata: AnyJson | null;
|
|
192
|
+
}
|
|
193
|
+
interface CustomField {
|
|
194
|
+
name: string;
|
|
195
|
+
value: string;
|
|
196
|
+
data_type: string;
|
|
197
|
+
}
|
|
198
|
+
interface LicenseData {
|
|
199
|
+
product?: string;
|
|
200
|
+
hardware_id?: string;
|
|
201
|
+
policy_id: number;
|
|
202
|
+
is_licensed?: boolean;
|
|
203
|
+
is_unlicensed_copy?: boolean;
|
|
204
|
+
is_valid?: boolean;
|
|
205
|
+
is_dirty?: boolean;
|
|
206
|
+
local_consumptions?: number;
|
|
207
|
+
last_check?: RFC3339;
|
|
208
|
+
last_usage_date?: RFC3339;
|
|
209
|
+
grace_period_start?: RFC3339;
|
|
210
|
+
floating_vp?: RFC3339;
|
|
211
|
+
custom_fields: CustomField[] | null;
|
|
212
|
+
user_data?: Record<string, string>;
|
|
213
|
+
metadata: AnyJson | null;
|
|
214
|
+
id: number;
|
|
215
|
+
license_active: boolean;
|
|
216
|
+
license_enabled: boolean;
|
|
217
|
+
is_expired: boolean;
|
|
218
|
+
license_type: string;
|
|
219
|
+
start_date: RFC3339 | null;
|
|
220
|
+
signature?: string;
|
|
221
|
+
is_trial?: boolean;
|
|
222
|
+
trial_days: number;
|
|
223
|
+
validity_period: RFC3339 | null;
|
|
224
|
+
maintenance_period: RFC3339 | null;
|
|
225
|
+
allow_overages: boolean;
|
|
226
|
+
max_overages: number;
|
|
227
|
+
max_consumptions: number;
|
|
228
|
+
total_consumptions: number;
|
|
229
|
+
allow_unlimited_consumptions: boolean;
|
|
230
|
+
allow_negative_consumptions?: boolean;
|
|
231
|
+
reset_consumption: boolean;
|
|
232
|
+
consumption_period: string | null;
|
|
233
|
+
is_floating_cloud: boolean;
|
|
234
|
+
is_floating: boolean;
|
|
235
|
+
floating_timeout: number;
|
|
236
|
+
floating_in_use_devices: number;
|
|
237
|
+
floating_users: number;
|
|
238
|
+
max_borrow_time: number;
|
|
239
|
+
prevent_vm: boolean;
|
|
240
|
+
is_air_gapped: boolean;
|
|
241
|
+
times_activated: number;
|
|
242
|
+
max_activations: number;
|
|
243
|
+
transfer_count: number;
|
|
244
|
+
max_transfers: number;
|
|
245
|
+
is_borrowed: boolean;
|
|
246
|
+
offline_activated?: boolean;
|
|
247
|
+
grace_period: number;
|
|
248
|
+
is_bundle_activated?: boolean;
|
|
249
|
+
bundle_license_id?: number;
|
|
250
|
+
bundle_licenses?: LicenseData[];
|
|
251
|
+
is_bundle?: boolean;
|
|
252
|
+
customer: Customer;
|
|
253
|
+
user?: LicenseUser;
|
|
254
|
+
product_details: ProductDetails;
|
|
255
|
+
license_features: LicenseFeature[];
|
|
256
|
+
company?: Company;
|
|
257
|
+
variables: DeviceVariable[];
|
|
258
|
+
channel: string;
|
|
259
|
+
enable_maintenance_period: boolean;
|
|
260
|
+
environment: string;
|
|
261
|
+
eula_link: string;
|
|
262
|
+
hash_md5: string;
|
|
263
|
+
installation_file: string;
|
|
264
|
+
is_hardware_key_auth: boolean;
|
|
265
|
+
offline_signature: string;
|
|
266
|
+
license_signature_v2: string;
|
|
267
|
+
release_date: string;
|
|
268
|
+
release_notes_link: string;
|
|
269
|
+
requires_version: string;
|
|
270
|
+
size: string;
|
|
271
|
+
version: string;
|
|
272
|
+
max_license_users: number;
|
|
273
|
+
allow_grace_period: boolean;
|
|
274
|
+
allow_unlimited_activations: boolean;
|
|
275
|
+
can_borrow: boolean;
|
|
276
|
+
device_id: number;
|
|
277
|
+
license_signature: string;
|
|
278
|
+
order_store_id: string;
|
|
279
|
+
}
|
|
280
|
+
interface DeviceVariable {
|
|
281
|
+
id?: number;
|
|
282
|
+
name?: string;
|
|
283
|
+
value?: string;
|
|
284
|
+
variable?: string;
|
|
285
|
+
created_at: RFC3339;
|
|
286
|
+
device_id?: number;
|
|
287
|
+
}
|
|
288
|
+
interface LicenseFeature {
|
|
289
|
+
id: number;
|
|
290
|
+
code: string;
|
|
291
|
+
name: string;
|
|
292
|
+
feature_type: string;
|
|
293
|
+
expiry_date: string;
|
|
294
|
+
max_consumption: number;
|
|
295
|
+
total_consumptions: number;
|
|
296
|
+
local_consumptions?: number;
|
|
297
|
+
allow_overages: boolean;
|
|
298
|
+
max_overages: number;
|
|
299
|
+
allow_unlimited_consumptions: boolean;
|
|
300
|
+
allow_negative_consumptions?: boolean;
|
|
301
|
+
reset_consumption: boolean;
|
|
302
|
+
consumption_period: string | null;
|
|
303
|
+
is_floating_cloud: boolean;
|
|
304
|
+
is_floating: boolean;
|
|
305
|
+
floating_timeout?: number;
|
|
306
|
+
floating_users?: number;
|
|
307
|
+
floating_in_use_devices?: number;
|
|
308
|
+
floating_start?: RFC3339;
|
|
309
|
+
floating_end?: RFC3339;
|
|
310
|
+
metadata: AnyJson | null;
|
|
311
|
+
}
|
|
312
|
+
interface ActivateBundleResponse {
|
|
313
|
+
status: 'ok';
|
|
314
|
+
message: 'bundle added';
|
|
315
|
+
license_ids: number[];
|
|
316
|
+
bundle_license_id: number;
|
|
317
|
+
}
|
|
318
|
+
interface DeactivateBundleResponse {
|
|
319
|
+
status: 'ok';
|
|
320
|
+
message: 'bundle deactivated';
|
|
321
|
+
}
|
|
322
|
+
interface FloatingUser {
|
|
323
|
+
id?: number;
|
|
324
|
+
username: string;
|
|
325
|
+
email: string;
|
|
326
|
+
license_id: number;
|
|
327
|
+
product: string;
|
|
328
|
+
product_id: number;
|
|
329
|
+
floating_amount: number;
|
|
330
|
+
floating_end_time: RFC3339;
|
|
331
|
+
created_at: RFC3339;
|
|
332
|
+
last_check: RFC3339;
|
|
333
|
+
vendor_id: number;
|
|
334
|
+
is_borrowed: boolean;
|
|
335
|
+
}
|
|
336
|
+
interface ActivateLicenseResponse {
|
|
337
|
+
status: 'ok';
|
|
338
|
+
message: 'license added';
|
|
339
|
+
product: string;
|
|
340
|
+
license_id: number;
|
|
341
|
+
}
|
|
342
|
+
interface AddConsumptionRequest {
|
|
343
|
+
consumptions: number;
|
|
344
|
+
allow_overages?: boolean;
|
|
345
|
+
max_overages?: number;
|
|
346
|
+
}
|
|
347
|
+
interface ConsumptionResponse {
|
|
348
|
+
id: number;
|
|
349
|
+
max_consumptions: number;
|
|
350
|
+
total_consumptions: number;
|
|
351
|
+
allow_unlimited_consumptions: boolean;
|
|
352
|
+
allow_negative_consumptions: boolean;
|
|
353
|
+
allow_overages: boolean;
|
|
354
|
+
max_overages: number;
|
|
355
|
+
reset_consumption: boolean;
|
|
356
|
+
consumption_period: string | null;
|
|
357
|
+
license_signature: string;
|
|
358
|
+
}
|
|
359
|
+
interface FeatureConsumptionResponse extends ConsumptionResponse {
|
|
360
|
+
is_floating_cloud: boolean;
|
|
361
|
+
is_floating: boolean;
|
|
362
|
+
floating_timeout: number;
|
|
363
|
+
floating_users: number;
|
|
364
|
+
}
|
|
365
|
+
interface AddFeatureConsumptionRequest {
|
|
366
|
+
consumptions: number;
|
|
367
|
+
feature: string;
|
|
368
|
+
}
|
|
369
|
+
interface RegisterFeatureRequest {
|
|
370
|
+
username: string;
|
|
371
|
+
feature?: string;
|
|
372
|
+
email?: string;
|
|
373
|
+
}
|
|
374
|
+
interface UnregisterFeatureRequest {
|
|
375
|
+
username?: string;
|
|
376
|
+
feature?: string;
|
|
377
|
+
}
|
|
378
|
+
interface AllFeatureUsersRequest {
|
|
379
|
+
feature?: string;
|
|
380
|
+
}
|
|
381
|
+
interface RegisterRequestBody {
|
|
382
|
+
username: string;
|
|
383
|
+
email?: string;
|
|
384
|
+
}
|
|
385
|
+
interface UsernameRequest {
|
|
386
|
+
username: string;
|
|
387
|
+
}
|
|
388
|
+
interface BorrowUserRequest {
|
|
389
|
+
username: string;
|
|
390
|
+
borrowed_until?: string;
|
|
391
|
+
}
|
|
392
|
+
interface BorrowResponse {
|
|
393
|
+
license_id?: number;
|
|
394
|
+
device_id?: string;
|
|
395
|
+
borrowed_until?: string;
|
|
396
|
+
license_signature?: string;
|
|
397
|
+
max_borrow_time?: number;
|
|
398
|
+
}
|
|
399
|
+
interface OfflineRequestInput {
|
|
400
|
+
product?: string;
|
|
401
|
+
license_key?: string;
|
|
402
|
+
}
|
|
403
|
+
interface BundleRequest {
|
|
404
|
+
bundle: string;
|
|
405
|
+
license_key: string;
|
|
406
|
+
}
|
|
407
|
+
interface GenerateOfflineRequestResponse {
|
|
408
|
+
status: 'ok';
|
|
409
|
+
request_data: string;
|
|
410
|
+
}
|
|
411
|
+
interface GenerateAirgapRequestBody {
|
|
412
|
+
initialization_code: string;
|
|
413
|
+
license_key: string;
|
|
414
|
+
product: string;
|
|
415
|
+
}
|
|
416
|
+
interface GenerateAirgapDeactivationRequestBody {
|
|
417
|
+
initialization_code: string;
|
|
418
|
+
license_key: string;
|
|
419
|
+
}
|
|
420
|
+
interface DeactivateAirgapRequestBody {
|
|
421
|
+
confirmation_code: string;
|
|
422
|
+
license_key: string;
|
|
423
|
+
}
|
|
424
|
+
interface SyncConfig {
|
|
425
|
+
enabled: boolean;
|
|
426
|
+
hours: number;
|
|
427
|
+
minutes: number;
|
|
428
|
+
}
|
|
429
|
+
interface SyncEnableReq {
|
|
430
|
+
enabled: boolean;
|
|
431
|
+
hours?: number;
|
|
432
|
+
minutes?: number;
|
|
433
|
+
}
|
|
434
|
+
interface FloatingFeatureUser {
|
|
435
|
+
feature_id: number;
|
|
436
|
+
username: string;
|
|
437
|
+
email: string;
|
|
438
|
+
license_id: number;
|
|
439
|
+
feature: string;
|
|
440
|
+
product: string;
|
|
441
|
+
floating_amount: number;
|
|
442
|
+
floating_end_time: string;
|
|
443
|
+
created_at: string;
|
|
444
|
+
last_check: string;
|
|
445
|
+
vendor_code: string;
|
|
446
|
+
vendor_id: number;
|
|
447
|
+
}
|
|
448
|
+
interface FeatureCodeID {
|
|
449
|
+
feature_id: number;
|
|
450
|
+
feature_code: string;
|
|
451
|
+
users_list: FloatingFeatureUser[];
|
|
452
|
+
}
|
|
453
|
+
type AllFeatureUsersResponse = FeatureCodeID[];
|
|
454
|
+
interface RegisterFeatureResponse extends LicenseFeature {
|
|
455
|
+
license_id: number;
|
|
456
|
+
}
|
|
457
|
+
interface FeatureReleasedAllResponse {
|
|
458
|
+
status: 'ok';
|
|
459
|
+
message: 'all features released';
|
|
460
|
+
license_id: number;
|
|
461
|
+
feature: string;
|
|
462
|
+
}
|
|
463
|
+
interface UnregisterAllUsersResponse {
|
|
464
|
+
status: 'ok';
|
|
465
|
+
message: 'all users unregistered';
|
|
466
|
+
license_id: number;
|
|
467
|
+
}
|
|
468
|
+
interface AirgapActivationCodeResponse {
|
|
469
|
+
status: 'ok';
|
|
470
|
+
hardware_id: string;
|
|
471
|
+
activation_code: string;
|
|
472
|
+
}
|
|
473
|
+
interface AirgapDeactivationCodeResponse {
|
|
474
|
+
status: 'ok';
|
|
475
|
+
hardware_id: string;
|
|
476
|
+
deactivation_code: string;
|
|
477
|
+
}
|
|
478
|
+
interface AirgapeDeactivatedResponse {
|
|
479
|
+
status: 'ok';
|
|
480
|
+
message: 'license_deactivated';
|
|
481
|
+
}
|
|
482
|
+
interface AirgapActivatedResponse {
|
|
483
|
+
status: 'ok';
|
|
484
|
+
message: 'airgap license activated';
|
|
485
|
+
license_id: number;
|
|
486
|
+
}
|
|
487
|
+
export {};
|