comet_backup_ruby_sdk 1.12.0 → 1.13.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/Gemfile +0 -0
- data/Gemfile.lock +1 -1
- data/LICENSE +0 -0
- data/Rakefile +0 -0
- data/comet_backup_ruby_sdk.gemspec +1 -1
- data/lib/comet/comet_server.rb +57 -3
- data/lib/comet/definitions.rb +41 -4
- data/lib/comet/models/backup_job_advanced_options.rb +9 -0
- data/lib/comet/models/backup_job_detail.rb +11 -0
- data/lib/comet/models/backup_rule_config.rb +9 -0
- data/lib/comet/models/branding_options.rb +9 -0
- data/lib/comet/models/branding_properties.rb +9 -0
- data/lib/comet/models/days_of_week_config.rb +108 -0
- data/lib/comet/models/hour_sched_config.rb +84 -0
- data/lib/comet/models/job_entry.rb +1 -0
- data/lib/comet/models/mac_oscode_sign_properties.rb +69 -0
- data/lib/comet/models/private_branding_properties.rb +9 -0
- data/lib/comet/models/schedule_config.rb +36 -0
- data/lib/comet/models/stored_object.rb +1 -0
- data/lib/comet/models/update_campaign_options.rb +23 -0
- data/lib/comet/models/update_campaign_properties.rb +20 -0
- data/lib/comet/models/update_campaign_status.rb +20 -0
- data/lib/comet/models/user_profile_config.rb +9 -0
- data/lib/comet/models/vmdksnapshot_view_options.rb +90 -0
- data/lib/comet_backup_ruby_sdk.rb +3 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd41ef7f0ce9f54555af78b82719b073f2bdedb8a1fac79da00fcfff58a82aae
|
4
|
+
data.tar.gz: aca0a1786bd48d8ed2f61a080c02fda37ac8d6b2bffc75421c3a37ea51c993a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34d97b5cf4cd1bd01ee04602688b5f5355e2cbe3b5667aef32973d0f7298178cef7fb3678f4a26ecbd524cc88a03ebcce1837398be4ad1bb9e6656508ce53c8e
|
7
|
+
data.tar.gz: 2c205b4ead8426f4e380977510b99069a74d9233ede9d1dce74c6ca43bede641784c5edd275a9a863bfd3a938d0a40484fa87155a0d53e0bd69656723d0fc919
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,19 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 2022-05-10 v1.13.0
|
4
|
+
- Based on 22.3.5
|
5
|
+
- Add new `RestrictRuntime`, `FromTime`, `ToTime`, `RestrictDays`, `DaysSelect` types to ScheduleConfig to add time and day restrictions in a hourly schedule.
|
6
|
+
- Add new `TotalVmCount` to `BackupJobDetail` API.
|
7
|
+
- Add new fields to `MacOSCodeSignProperties` to support code signing.
|
8
|
+
- Add new `ForceUpgradeRunning`, `ApplyDeviceFilter`, and `DeviceFilter` fields to `UpdateCampaign` types to support sending a bulk upgrade to a custom query of users
|
9
|
+
- Add new `AdminBrandingGenerateClientSpkDsm6` and `AdminBrandingGenerateClientSpkDsm7` APIs and associated types for generating and downloading Synology SPKs
|
10
|
+
- Add new `PathAppIconImage` field to branding options types to support branding of the app icon when installed in Synology's Package Center (and other software managers)
|
11
|
+
- Add new constants for VMDK single file restore
|
12
|
+
|
3
13
|
## 2022-01-28 v1.12.0
|
4
14
|
- Based on 21.12.4
|
5
15
|
- Add `AdminStoragePingDestination` API to perform a server-side Test Connections action when configuring Storage Role
|
16
|
+
- Add `DestinationSize*` on `BackupJobDetail` struct, to track Storage Vault size measurements taken as part of jobs
|
6
17
|
- Add `HasLicense` on `Office365MixedVirtualAccount` struct, and add `TotalLicensedMailsCount` and `TotalUnlicensedMailsCount` on `BackupJobDetail` struct, to track Office 365 license usage
|
7
18
|
- Add `AdminWebAuthnRegistration` new `Type` field and `WEBAUTHN_DEVICE_TYPE` constants, to determine the type of hardware WebAuthn device
|
8
19
|
- Add deprecation comments to U2F types (use WebAuthn instead), to `B2DestinationLocation.MaxConnections`, and to `Office365CustomSetting` (use Office365CustomSettingV2 instead)
|
data/Gemfile
CHANGED
File without changes
|
data/Gemfile.lock
CHANGED
data/LICENSE
CHANGED
File without changes
|
data/Rakefile
CHANGED
File without changes
|
@@ -12,7 +12,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
12
12
|
|
13
13
|
Gem::Specification.new do |spec|
|
14
14
|
spec.name = 'comet_backup_ruby_sdk'
|
15
|
-
spec.version = '1.
|
15
|
+
spec.version = '1.13.0'
|
16
16
|
spec.authors = ['Comet Licensing Ltd.']
|
17
17
|
spec.email = ['hello@cometbackup.com']
|
18
18
|
|
data/lib/comet/comet_server.rb
CHANGED
@@ -551,6 +551,52 @@ module Comet
|
|
551
551
|
perform_request('api/v1/admin/branding/generate-client/macos-x86_64', submit_params)
|
552
552
|
end
|
553
553
|
|
554
|
+
# AdminBrandingGenerateClientSpkDsm6
|
555
|
+
#
|
556
|
+
# Download software (Synology SPK for DSM 6).
|
557
|
+
#
|
558
|
+
# This API requires administrator authentication credentials, unless the server is configured to allow unauthenticated software downloads.
|
559
|
+
# This API requires the Software Build Role to be enabled.
|
560
|
+
# This API requires the Auth Role to be enabled.
|
561
|
+
#
|
562
|
+
# @param [String] self_address (Optional) The external URL of this server, used to resolve conflicts
|
563
|
+
# @return [String]
|
564
|
+
def admin_branding_generate_client_spk_dsm_6(self_address = nil)
|
565
|
+
submit_params = {}
|
566
|
+
if self_address.nil?
|
567
|
+
submit_params['SelfAddress'] = @server_address
|
568
|
+
else
|
569
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
570
|
+
|
571
|
+
submit_params['SelfAddress'] = self_address
|
572
|
+
end
|
573
|
+
|
574
|
+
perform_request('api/v1/admin/branding/generate-client/spk-dsm6', submit_params)
|
575
|
+
end
|
576
|
+
|
577
|
+
# AdminBrandingGenerateClientSpkDsm7
|
578
|
+
#
|
579
|
+
# Download software (Synology SPK for DSM 7).
|
580
|
+
#
|
581
|
+
# This API requires administrator authentication credentials, unless the server is configured to allow unauthenticated software downloads.
|
582
|
+
# This API requires the Software Build Role to be enabled.
|
583
|
+
# This API requires the Auth Role to be enabled.
|
584
|
+
#
|
585
|
+
# @param [String] self_address (Optional) The external URL of this server, used to resolve conflicts
|
586
|
+
# @return [String]
|
587
|
+
def admin_branding_generate_client_spk_dsm_7(self_address = nil)
|
588
|
+
submit_params = {}
|
589
|
+
if self_address.nil?
|
590
|
+
submit_params['SelfAddress'] = @server_address
|
591
|
+
else
|
592
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
593
|
+
|
594
|
+
submit_params['SelfAddress'] = self_address
|
595
|
+
end
|
596
|
+
|
597
|
+
perform_request('api/v1/admin/branding/generate-client/spk-dsm7', submit_params)
|
598
|
+
end
|
599
|
+
|
554
600
|
# AdminBrandingGenerateClientTest
|
555
601
|
#
|
556
602
|
# Check if a software download is available.
|
@@ -828,8 +874,10 @@ module Comet
|
|
828
874
|
|
829
875
|
# AdminCreateInstallToken
|
830
876
|
#
|
831
|
-
# Create token for silent installation
|
877
|
+
# Create token for silent installation.
|
878
|
+
# Currently only supported for Windows & macOS only
|
832
879
|
# Provide the installation token to silently install the client on windows `install.exe /TOKEN=<installtoken>`
|
880
|
+
# Provide the installation token to silently install the client on Mac OS `sudo launchctl setenv BACKUP_APP_TOKEN "installtoken" && sudo /usr/sbin/installer -allowUntrusted -pkg "Comet Backup.pkg" -target /`
|
833
881
|
#
|
834
882
|
# You must supply administrator authentication credentials to use this API.
|
835
883
|
# This API requires the Auth Role to be enabled.
|
@@ -1631,9 +1679,10 @@ module Comet
|
|
1631
1679
|
# @param [String] target_id The live connection GUID
|
1632
1680
|
# @param [String] destination The Storage Vault ID
|
1633
1681
|
# @param [String] snapshot_id The selected backup job snapshot
|
1634
|
-
# @param [String] tree_id (Optional) Browse objects inside subdirectory of backup snapshot
|
1682
|
+
# @param [String] tree_id (Optional) Browse objects inside subdirectory of backup snapshot. If it is for VMDK single file restore, it should be the disk image's subtree ID.
|
1683
|
+
# @param [Comet::VMDKSnapshotViewOptions] options (Optional) Request a list of stored objects in vmdk file
|
1635
1684
|
# @return [Comet::DispatcherStoredObjectsResponse]
|
1636
|
-
def admin_dispatcher_request_stored_objects(target_id, destination, snapshot_id, tree_id = nil)
|
1685
|
+
def admin_dispatcher_request_stored_objects(target_id, destination, snapshot_id, tree_id = nil, options = nil)
|
1637
1686
|
submit_params = {}
|
1638
1687
|
raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
|
1639
1688
|
|
@@ -1649,6 +1698,11 @@ module Comet
|
|
1649
1698
|
|
1650
1699
|
submit_params['TreeID'] = tree_id
|
1651
1700
|
end
|
1701
|
+
unless options.nil?
|
1702
|
+
raise TypeError, "'options' expected Comet::VMDKSnapshotViewOptions, got #{options.class}" unless options.is_a? Comet::VMDKSnapshotViewOptions
|
1703
|
+
|
1704
|
+
submit_params['Options'] = options.to_json
|
1705
|
+
end
|
1652
1706
|
|
1653
1707
|
body = perform_request('api/v1/admin/dispatcher/request-stored-objects', submit_params)
|
1654
1708
|
json_body = JSON.parse body
|
data/lib/comet/definitions.rb
CHANGED
@@ -9,6 +9,18 @@
|
|
9
9
|
|
10
10
|
module Comet
|
11
11
|
|
12
|
+
# AutoRetentionLevel: The system will automatically choose how often to run an automatic Retention Pass after each backup job.
|
13
|
+
BACKUPJOBAUTORETENTION_AUTOMATIC = 0
|
14
|
+
|
15
|
+
# AutoRetentionLevel: The system will run a Retention Pass after every single backup job. This is more system-intensive, but is the most responsive at freeing storage space.
|
16
|
+
BACKUPJOBAUTORETENTION_IMMEDIATE = 1
|
17
|
+
|
18
|
+
# AutoRetentionLevel: The system will follow the automatic ruleset for a 'High Power' device.
|
19
|
+
BACKUPJOBAUTORETENTION_MORE_OFTEN = 2
|
20
|
+
|
21
|
+
# AutoRetentionLevel: The system will follow the automatic ruleset for a 'Low Power' device.
|
22
|
+
BACKUPJOBAUTORETENTION_LESS_OFTEN = 3
|
23
|
+
|
12
24
|
# JobClassification:
|
13
25
|
JOB_CLASSIFICATION__MIN = 4000
|
14
26
|
|
@@ -144,6 +156,8 @@ module Comet
|
|
144
156
|
# FtpsModeType:
|
145
157
|
FTPS_MODE_EXPLICIT = 2
|
146
158
|
|
159
|
+
INSTALLER_METADATA_FILE = 'installer.json'
|
160
|
+
|
147
161
|
# Severity:
|
148
162
|
SEVERITY_INFO = 'I'
|
149
163
|
|
@@ -197,6 +211,15 @@ module Comet
|
|
197
211
|
# RestoreType:
|
198
212
|
RESTORETYPE_OFFICE365_CLOUD = 6
|
199
213
|
|
214
|
+
# RestoreType:
|
215
|
+
RESTORETYPE_VMDK_FILE = 7
|
216
|
+
|
217
|
+
# RestoreType:
|
218
|
+
RESTORETYPE_VMDK_FILE_NULL = 8
|
219
|
+
|
220
|
+
# RestoreType:
|
221
|
+
RESTORETYPE_VMDK_FILE_ARCHIVE = 9
|
222
|
+
|
200
223
|
# RestoreType: RESTORETYPE_PROCESS_ARCHIVE
|
201
224
|
RESTORETYPE_PROCESS_TARBALL = 3
|
202
225
|
|
@@ -392,6 +415,18 @@ module Comet
|
|
392
415
|
# StoredObjectType:
|
393
416
|
STOREDOBJECTTYPE_MSSITELISTDRIVEENTITY = 'mssitelistdriveentity'
|
394
417
|
|
418
|
+
# StoredObjectType:
|
419
|
+
STOREDOBJECTTYPE_VMDK_FILE = 'vmdkfile'
|
420
|
+
|
421
|
+
# StoredObjectType:
|
422
|
+
STOREDOBJECTTYPE_VMDK_DIRECTORY = 'vmdkdir'
|
423
|
+
|
424
|
+
# StoredObjectType:
|
425
|
+
STOREDOBJECTTYPE_VMDK_WINEFS = 'vmdkwinefs'
|
426
|
+
|
427
|
+
# StoredObjectType:
|
428
|
+
STOREDOBJECTTYPE_VMDK_SYMLINK = 'vmdksymlink'
|
429
|
+
|
395
430
|
# ExtraFileExclusionOSRestriction:
|
396
431
|
OS_ANY = 0
|
397
432
|
|
@@ -430,13 +465,13 @@ module Comet
|
|
430
465
|
|
431
466
|
DEFAULT_TIMEZONE = 'UTC'
|
432
467
|
|
433
|
-
APPLICATION_VERSION = '
|
468
|
+
APPLICATION_VERSION = '22.3.5'
|
434
469
|
|
435
|
-
APPLICATION_VERSION_MAJOR =
|
470
|
+
APPLICATION_VERSION_MAJOR = 22
|
436
471
|
|
437
|
-
APPLICATION_VERSION_MINOR =
|
472
|
+
APPLICATION_VERSION_MINOR = 3
|
438
473
|
|
439
|
-
APPLICATION_VERSION_REVISION =
|
474
|
+
APPLICATION_VERSION_REVISION = 5
|
440
475
|
|
441
476
|
RELEASE_CODENAME = 'Voyager'
|
442
477
|
|
@@ -448,6 +483,8 @@ module Comet
|
|
448
483
|
|
449
484
|
TOTPREQUIRED_ERROR = 'ERR_TOTP_REQUIRED'
|
450
485
|
|
486
|
+
UNSUPPORT_VMDK_FILE_SYSTEM = 'ERR_UNSUPPORT_VMDK_FILE_SYSTEM'
|
487
|
+
|
451
488
|
EMAIL_WORKER_STATE_NOT_STARTED = 0
|
452
489
|
|
453
490
|
EMAIL_WORKER_STATE_STARTED = 1
|
@@ -32,6 +32,9 @@ module Comet
|
|
32
32
|
# @type [Boolean] allow_zero_files_success
|
33
33
|
attr_accessor :allow_zero_files_success
|
34
34
|
|
35
|
+
# @type [Number] auto_retention_level
|
36
|
+
attr_accessor :auto_retention_level
|
37
|
+
|
35
38
|
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
36
39
|
attr_accessor :unknown_json_fields
|
37
40
|
|
@@ -42,6 +45,7 @@ module Comet
|
|
42
45
|
def clear
|
43
46
|
@stop_after = 0
|
44
47
|
@limit_vault_speed_bps = 0
|
48
|
+
@auto_retention_level = 0
|
45
49
|
@unknown_json_fields = {}
|
46
50
|
end
|
47
51
|
|
@@ -74,6 +78,10 @@ module Comet
|
|
74
78
|
@use_on_disk_indexes = v
|
75
79
|
when 'AllowZeroFilesSuccess'
|
76
80
|
@allow_zero_files_success = v
|
81
|
+
when 'AutoRetentionLevel'
|
82
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
83
|
+
|
84
|
+
@auto_retention_level = v
|
77
85
|
else
|
78
86
|
@unknown_json_fields[k] = v
|
79
87
|
end
|
@@ -89,6 +97,7 @@ module Comet
|
|
89
97
|
ret['ReduceDiskConcurrency'] = @reduce_disk_concurrency
|
90
98
|
ret['UseOnDiskIndexes'] = @use_on_disk_indexes
|
91
99
|
ret['AllowZeroFilesSuccess'] = @allow_zero_files_success
|
100
|
+
ret['AutoRetentionLevel'] = @auto_retention_level
|
92
101
|
@unknown_json_fields.each do |k, v|
|
93
102
|
ret[k] = v
|
94
103
|
end
|
@@ -65,6 +65,9 @@ module Comet
|
|
65
65
|
# @type [Number] download_size
|
66
66
|
attr_accessor :download_size
|
67
67
|
|
68
|
+
# @type [Number] total_vm_count
|
69
|
+
attr_accessor :total_vm_count
|
70
|
+
|
68
71
|
# @type [Number] total_mails_count
|
69
72
|
attr_accessor :total_mails_count
|
70
73
|
|
@@ -117,6 +120,7 @@ module Comet
|
|
117
120
|
@total_chunks = 0
|
118
121
|
@upload_size = 0
|
119
122
|
@download_size = 0
|
123
|
+
@total_vm_count = 0
|
120
124
|
@total_mails_count = 0
|
121
125
|
@total_sites_count = 0
|
122
126
|
@total_accounts_count = 0
|
@@ -210,6 +214,10 @@ module Comet
|
|
210
214
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
211
215
|
|
212
216
|
@download_size = v
|
217
|
+
when 'TotalVmCount'
|
218
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
219
|
+
|
220
|
+
@total_vm_count = v
|
213
221
|
when 'TotalMailsCount'
|
214
222
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
215
223
|
|
@@ -271,6 +279,9 @@ module Comet
|
|
271
279
|
ret['TotalChunks'] = @total_chunks
|
272
280
|
ret['UploadSize'] = @upload_size
|
273
281
|
ret['DownloadSize'] = @download_size
|
282
|
+
unless @total_vm_count.nil?
|
283
|
+
ret['TotalVmCount'] = @total_vm_count
|
284
|
+
end
|
274
285
|
unless @total_mails_count.nil?
|
275
286
|
ret['TotalMailsCount'] = @total_mails_count
|
276
287
|
end
|
@@ -56,6 +56,9 @@ module Comet
|
|
56
56
|
# @type [Boolean] allow_zero_files_success
|
57
57
|
attr_accessor :allow_zero_files_success
|
58
58
|
|
59
|
+
# @type [Number] auto_retention_level
|
60
|
+
attr_accessor :auto_retention_level
|
61
|
+
|
59
62
|
# @type [Array<Comet::ScheduleConfig>] schedules
|
60
63
|
attr_accessor :schedules
|
61
64
|
|
@@ -80,6 +83,7 @@ module Comet
|
|
80
83
|
@destination = ''
|
81
84
|
@stop_after = 0
|
82
85
|
@limit_vault_speed_bps = 0
|
86
|
+
@auto_retention_level = 0
|
83
87
|
@schedules = []
|
84
88
|
@event_triggers = Comet::BackupRuleEventTriggers.new
|
85
89
|
@unknown_json_fields = {}
|
@@ -167,6 +171,10 @@ module Comet
|
|
167
171
|
@use_on_disk_indexes = v
|
168
172
|
when 'AllowZeroFilesSuccess'
|
169
173
|
@allow_zero_files_success = v
|
174
|
+
when 'AutoRetentionLevel'
|
175
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
176
|
+
|
177
|
+
@auto_retention_level = v
|
170
178
|
when 'Schedules'
|
171
179
|
if v.nil?
|
172
180
|
@schedules = []
|
@@ -203,6 +211,7 @@ module Comet
|
|
203
211
|
ret['ReduceDiskConcurrency'] = @reduce_disk_concurrency
|
204
212
|
ret['UseOnDiskIndexes'] = @use_on_disk_indexes
|
205
213
|
ret['AllowZeroFilesSuccess'] = @allow_zero_files_success
|
214
|
+
ret['AutoRetentionLevel'] = @auto_retention_level
|
206
215
|
ret['Schedules'] = @schedules
|
207
216
|
ret['EventTriggers'] = @event_triggers
|
208
217
|
@unknown_json_fields.each do |k, v|
|
@@ -71,6 +71,9 @@ module Comet
|
|
71
71
|
# @type [String] path_header_image
|
72
72
|
attr_accessor :path_header_image
|
73
73
|
|
74
|
+
# @type [String] path_app_icon_image
|
75
|
+
attr_accessor :path_app_icon_image
|
76
|
+
|
74
77
|
# @type [String] package_identifier
|
75
78
|
attr_accessor :package_identifier
|
76
79
|
|
@@ -128,6 +131,7 @@ module Comet
|
|
128
131
|
@path_eula_rtf = ''
|
129
132
|
@path_tile_png = ''
|
130
133
|
@path_header_image = ''
|
134
|
+
@path_app_icon_image = ''
|
131
135
|
@package_identifier = ''
|
132
136
|
@windows_code_sign_pkcs12file_path = ''
|
133
137
|
@windows_code_sign_pkcs12password_format = 0
|
@@ -225,6 +229,10 @@ module Comet
|
|
225
229
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
226
230
|
|
227
231
|
@path_header_image = v
|
232
|
+
when 'PathAppIconImage'
|
233
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
234
|
+
|
235
|
+
@path_app_icon_image = v
|
228
236
|
when 'PackageIdentifier'
|
229
237
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
230
238
|
|
@@ -296,6 +304,7 @@ module Comet
|
|
296
304
|
ret['PathEulaRtf'] = @path_eula_rtf
|
297
305
|
ret['PathTilePng'] = @path_tile_png
|
298
306
|
ret['PathHeaderImage'] = @path_header_image
|
307
|
+
ret['PathAppIconImage'] = @path_app_icon_image
|
299
308
|
ret['PackageIdentifier'] = @package_identifier
|
300
309
|
ret['WindowsCodeSignPKCS12FilePath'] = @windows_code_sign_pkcs12file_path
|
301
310
|
ret['WindowsCodeSignPKCS12PasswordFormat'] = @windows_code_sign_pkcs12password_format
|
@@ -56,6 +56,9 @@ module Comet
|
|
56
56
|
# @type [String] path_header_image
|
57
57
|
attr_accessor :path_header_image
|
58
58
|
|
59
|
+
# @type [String] path_app_icon_image
|
60
|
+
attr_accessor :path_app_icon_image
|
61
|
+
|
59
62
|
# @type [String] package_identifier
|
60
63
|
attr_accessor :package_identifier
|
61
64
|
|
@@ -109,6 +112,7 @@ module Comet
|
|
109
112
|
@path_eula_rtf = ''
|
110
113
|
@path_tile_png = ''
|
111
114
|
@path_header_image = ''
|
115
|
+
@path_app_icon_image = ''
|
112
116
|
@package_identifier = ''
|
113
117
|
@windows_code_sign_pkcs12file_path = ''
|
114
118
|
@windows_code_sign_pkcs12password_format = 0
|
@@ -188,6 +192,10 @@ module Comet
|
|
188
192
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
189
193
|
|
190
194
|
@path_header_image = v
|
195
|
+
when 'PathAppIconImage'
|
196
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
197
|
+
|
198
|
+
@path_app_icon_image = v
|
191
199
|
when 'PackageIdentifier'
|
192
200
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
193
201
|
|
@@ -254,6 +262,7 @@ module Comet
|
|
254
262
|
ret['PathEulaRtf'] = @path_eula_rtf
|
255
263
|
ret['PathTilePng'] = @path_tile_png
|
256
264
|
ret['PathHeaderImage'] = @path_header_image
|
265
|
+
ret['PathAppIconImage'] = @path_app_icon_image
|
257
266
|
ret['PackageIdentifier'] = @package_identifier
|
258
267
|
ret['WindowsCodeSignPKCS12FilePath'] = @windows_code_sign_pkcs12file_path
|
259
268
|
ret['WindowsCodeSignPKCS12PasswordFormat'] = @windows_code_sign_pkcs12password_format
|
@@ -0,0 +1,108 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
4
|
+
# Please see the LICENSE file for usage information.
|
5
|
+
#
|
6
|
+
# SPDX-License-Identifier: MIT
|
7
|
+
#
|
8
|
+
# frozen_string_literal: true
|
9
|
+
|
10
|
+
require 'json'
|
11
|
+
|
12
|
+
module Comet
|
13
|
+
|
14
|
+
# DaysOfWeekConfig is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class DaysOfWeekConfig
|
16
|
+
|
17
|
+
# @type [Boolean] sunday
|
18
|
+
attr_accessor :sunday
|
19
|
+
|
20
|
+
# @type [Boolean] monday
|
21
|
+
attr_accessor :monday
|
22
|
+
|
23
|
+
# @type [Boolean] tuesday
|
24
|
+
attr_accessor :tuesday
|
25
|
+
|
26
|
+
# @type [Boolean] wednesday
|
27
|
+
attr_accessor :wednesday
|
28
|
+
|
29
|
+
# @type [Boolean] thursday
|
30
|
+
attr_accessor :thursday
|
31
|
+
|
32
|
+
# @type [Boolean] friday
|
33
|
+
attr_accessor :friday
|
34
|
+
|
35
|
+
# @type [Boolean] saturday
|
36
|
+
attr_accessor :saturday
|
37
|
+
|
38
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
39
|
+
attr_accessor :unknown_json_fields
|
40
|
+
|
41
|
+
def initialize
|
42
|
+
clear
|
43
|
+
end
|
44
|
+
|
45
|
+
def clear
|
46
|
+
@unknown_json_fields = {}
|
47
|
+
end
|
48
|
+
|
49
|
+
# @param [String] json_string The complete object in JSON format
|
50
|
+
def from_json(json_string)
|
51
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
52
|
+
|
53
|
+
from_hash(JSON.parse(json_string))
|
54
|
+
end
|
55
|
+
|
56
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
57
|
+
def from_hash(obj)
|
58
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
59
|
+
|
60
|
+
obj.each do |k, v|
|
61
|
+
case k
|
62
|
+
when 'Sunday'
|
63
|
+
@sunday = v
|
64
|
+
when 'Monday'
|
65
|
+
@monday = v
|
66
|
+
when 'Tuesday'
|
67
|
+
@tuesday = v
|
68
|
+
when 'Wednesday'
|
69
|
+
@wednesday = v
|
70
|
+
when 'Thursday'
|
71
|
+
@thursday = v
|
72
|
+
when 'Friday'
|
73
|
+
@friday = v
|
74
|
+
when 'Saturday'
|
75
|
+
@saturday = v
|
76
|
+
else
|
77
|
+
@unknown_json_fields[k] = v
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# @return [Hash] The complete object as a Ruby hash
|
83
|
+
def to_hash
|
84
|
+
ret = {}
|
85
|
+
ret['Sunday'] = @sunday
|
86
|
+
ret['Monday'] = @monday
|
87
|
+
ret['Tuesday'] = @tuesday
|
88
|
+
ret['Wednesday'] = @wednesday
|
89
|
+
ret['Thursday'] = @thursday
|
90
|
+
ret['Friday'] = @friday
|
91
|
+
ret['Saturday'] = @saturday
|
92
|
+
@unknown_json_fields.each do |k, v|
|
93
|
+
ret[k] = v
|
94
|
+
end
|
95
|
+
ret
|
96
|
+
end
|
97
|
+
|
98
|
+
# @return [Hash] The complete object as a Ruby hash
|
99
|
+
def to_h
|
100
|
+
to_hash
|
101
|
+
end
|
102
|
+
|
103
|
+
# @return [String] The complete object as a JSON string
|
104
|
+
def to_json(options = {})
|
105
|
+
to_hash.to_json(options)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
4
|
+
# Please see the LICENSE file for usage information.
|
5
|
+
#
|
6
|
+
# SPDX-License-Identifier: MIT
|
7
|
+
#
|
8
|
+
# frozen_string_literal: true
|
9
|
+
|
10
|
+
require 'json'
|
11
|
+
|
12
|
+
module Comet
|
13
|
+
|
14
|
+
# HourSchedConfig is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class HourSchedConfig
|
16
|
+
|
17
|
+
# @type [Number] hour
|
18
|
+
attr_accessor :hour
|
19
|
+
|
20
|
+
# @type [Number] minutes
|
21
|
+
attr_accessor :minutes
|
22
|
+
|
23
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
24
|
+
attr_accessor :unknown_json_fields
|
25
|
+
|
26
|
+
def initialize
|
27
|
+
clear
|
28
|
+
end
|
29
|
+
|
30
|
+
def clear
|
31
|
+
@hour = 0
|
32
|
+
@minutes = 0
|
33
|
+
@unknown_json_fields = {}
|
34
|
+
end
|
35
|
+
|
36
|
+
# @param [String] json_string The complete object in JSON format
|
37
|
+
def from_json(json_string)
|
38
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
39
|
+
|
40
|
+
from_hash(JSON.parse(json_string))
|
41
|
+
end
|
42
|
+
|
43
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
44
|
+
def from_hash(obj)
|
45
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
46
|
+
|
47
|
+
obj.each do |k, v|
|
48
|
+
case k
|
49
|
+
when 'Hour'
|
50
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
51
|
+
|
52
|
+
@hour = v
|
53
|
+
when 'Minutes'
|
54
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
55
|
+
|
56
|
+
@minutes = v
|
57
|
+
else
|
58
|
+
@unknown_json_fields[k] = v
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# @return [Hash] The complete object as a Ruby hash
|
64
|
+
def to_hash
|
65
|
+
ret = {}
|
66
|
+
ret['Hour'] = @hour
|
67
|
+
ret['Minutes'] = @minutes
|
68
|
+
@unknown_json_fields.each do |k, v|
|
69
|
+
ret[k] = v
|
70
|
+
end
|
71
|
+
ret
|
72
|
+
end
|
73
|
+
|
74
|
+
# @return [Hash] The complete object as a Ruby hash
|
75
|
+
def to_h
|
76
|
+
to_hash
|
77
|
+
end
|
78
|
+
|
79
|
+
# @return [String] The complete object as a JSON string
|
80
|
+
def to_json(options = {})
|
81
|
+
to_hash.to_json(options)
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -17,6 +17,9 @@ module Comet
|
|
17
17
|
# @type [Number] level
|
18
18
|
attr_accessor :level
|
19
19
|
|
20
|
+
# @type [Boolean] sign_locally
|
21
|
+
attr_accessor :sign_locally
|
22
|
+
|
20
23
|
# @type [Comet::SSHConnection] sshserver
|
21
24
|
attr_accessor :sshserver
|
22
25
|
|
@@ -35,6 +38,27 @@ module Comet
|
|
35
38
|
# @type [Number] apple_idpass_format
|
36
39
|
attr_accessor :apple_idpass_format
|
37
40
|
|
41
|
+
# @type [String] certificate_file
|
42
|
+
attr_accessor :certificate_file
|
43
|
+
|
44
|
+
# @type [String] app_certificate_file
|
45
|
+
attr_accessor :app_certificate_file
|
46
|
+
|
47
|
+
# @type [String] pfx_file_password
|
48
|
+
attr_accessor :pfx_file_password
|
49
|
+
|
50
|
+
# @type [Number] pfx_file_password_format
|
51
|
+
attr_accessor :pfx_file_password_format
|
52
|
+
|
53
|
+
# @type [String] notary_apiissuer_id
|
54
|
+
attr_accessor :notary_apiissuer_id
|
55
|
+
|
56
|
+
# @type [String] notary_apikey_id
|
57
|
+
attr_accessor :notary_apikey_id
|
58
|
+
|
59
|
+
# @type [String] notary_apikey_file
|
60
|
+
attr_accessor :notary_apikey_file
|
61
|
+
|
38
62
|
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
39
63
|
attr_accessor :unknown_json_fields
|
40
64
|
|
@@ -50,6 +74,13 @@ module Comet
|
|
50
74
|
@apple_id = ''
|
51
75
|
@apple_idpass = ''
|
52
76
|
@apple_idpass_format = 0
|
77
|
+
@certificate_file = ''
|
78
|
+
@app_certificate_file = ''
|
79
|
+
@pfx_file_password = ''
|
80
|
+
@pfx_file_password_format = 0
|
81
|
+
@notary_apiissuer_id = ''
|
82
|
+
@notary_apikey_id = ''
|
83
|
+
@notary_apikey_file = ''
|
53
84
|
@unknown_json_fields = {}
|
54
85
|
end
|
55
86
|
|
@@ -70,6 +101,8 @@ module Comet
|
|
70
101
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
71
102
|
|
72
103
|
@level = v
|
104
|
+
when 'SignLocally'
|
105
|
+
@sign_locally = v
|
73
106
|
when 'SSHServer'
|
74
107
|
@sshserver = Comet::SSHConnection.new
|
75
108
|
@sshserver.from_hash(v)
|
@@ -93,6 +126,34 @@ module Comet
|
|
93
126
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
94
127
|
|
95
128
|
@apple_idpass_format = v
|
129
|
+
when 'CertificateFile'
|
130
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
131
|
+
|
132
|
+
@certificate_file = v
|
133
|
+
when 'AppCertificateFile'
|
134
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
135
|
+
|
136
|
+
@app_certificate_file = v
|
137
|
+
when 'PfxFilePassword'
|
138
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
139
|
+
|
140
|
+
@pfx_file_password = v
|
141
|
+
when 'PfxFilePasswordFormat'
|
142
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
143
|
+
|
144
|
+
@pfx_file_password_format = v
|
145
|
+
when 'NotaryAPIIssuerID'
|
146
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
147
|
+
|
148
|
+
@notary_apiissuer_id = v
|
149
|
+
when 'NotaryAPIKeyID'
|
150
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
151
|
+
|
152
|
+
@notary_apikey_id = v
|
153
|
+
when 'NotaryAPIKeyFile'
|
154
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
155
|
+
|
156
|
+
@notary_apikey_file = v
|
96
157
|
else
|
97
158
|
@unknown_json_fields[k] = v
|
98
159
|
end
|
@@ -103,12 +164,20 @@ module Comet
|
|
103
164
|
def to_hash
|
104
165
|
ret = {}
|
105
166
|
ret['Level'] = @level
|
167
|
+
ret['SignLocally'] = @sign_locally
|
106
168
|
ret['SSHServer'] = @sshserver
|
107
169
|
ret['CertificateName'] = @certificate_name
|
108
170
|
ret['AppCertificateName'] = @app_certificate_name
|
109
171
|
ret['AppleID'] = @apple_id
|
110
172
|
ret['AppleIDPass'] = @apple_idpass
|
111
173
|
ret['AppleIDPassFormat'] = @apple_idpass_format
|
174
|
+
ret['CertificateFile'] = @certificate_file
|
175
|
+
ret['AppCertificateFile'] = @app_certificate_file
|
176
|
+
ret['PfxFilePassword'] = @pfx_file_password
|
177
|
+
ret['PfxFilePasswordFormat'] = @pfx_file_password_format
|
178
|
+
ret['NotaryAPIIssuerID'] = @notary_apiissuer_id
|
179
|
+
ret['NotaryAPIKeyID'] = @notary_apikey_id
|
180
|
+
ret['NotaryAPIKeyFile'] = @notary_apikey_file
|
112
181
|
@unknown_json_fields.each do |k, v|
|
113
182
|
ret[k] = v
|
114
183
|
end
|
@@ -32,6 +32,9 @@ module Comet
|
|
32
32
|
# @type [String] path_header_image
|
33
33
|
attr_accessor :path_header_image
|
34
34
|
|
35
|
+
# @type [String] path_app_icon_image
|
36
|
+
attr_accessor :path_app_icon_image
|
37
|
+
|
35
38
|
# @type [String] package_identifier
|
36
39
|
attr_accessor :package_identifier
|
37
40
|
|
@@ -79,6 +82,7 @@ module Comet
|
|
79
82
|
@path_eula_rtf = ''
|
80
83
|
@path_tile_png = ''
|
81
84
|
@path_header_image = ''
|
85
|
+
@path_app_icon_image = ''
|
82
86
|
@package_identifier = ''
|
83
87
|
@windows_code_sign_pkcs12file_path = ''
|
84
88
|
@windows_code_sign_pkcs12password_format = 0
|
@@ -130,6 +134,10 @@ module Comet
|
|
130
134
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
131
135
|
|
132
136
|
@path_header_image = v
|
137
|
+
when 'PathAppIconImage'
|
138
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
139
|
+
|
140
|
+
@path_app_icon_image = v
|
133
141
|
when 'PackageIdentifier'
|
134
142
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
135
143
|
|
@@ -188,6 +196,7 @@ module Comet
|
|
188
196
|
ret['PathEulaRtf'] = @path_eula_rtf
|
189
197
|
ret['PathTilePng'] = @path_tile_png
|
190
198
|
ret['PathHeaderImage'] = @path_header_image
|
199
|
+
ret['PathAppIconImage'] = @path_app_icon_image
|
191
200
|
ret['PackageIdentifier'] = @package_identifier
|
192
201
|
ret['WindowsCodeSignPKCS12FilePath'] = @windows_code_sign_pkcs12file_path
|
193
202
|
ret['WindowsCodeSignPKCS12PasswordFormat'] = @windows_code_sign_pkcs12password_format
|
@@ -23,6 +23,21 @@ module Comet
|
|
23
23
|
# @type [Number] offset
|
24
24
|
attr_accessor :offset
|
25
25
|
|
26
|
+
# @type [Boolean] restrict_runtime
|
27
|
+
attr_accessor :restrict_runtime
|
28
|
+
|
29
|
+
# @type [Comet::HourSchedConfig] from_time
|
30
|
+
attr_accessor :from_time
|
31
|
+
|
32
|
+
# @type [Comet::HourSchedConfig] to_time
|
33
|
+
attr_accessor :to_time
|
34
|
+
|
35
|
+
# @type [Boolean] restrict_days
|
36
|
+
attr_accessor :restrict_days
|
37
|
+
|
38
|
+
# @type [Comet::DaysOfWeekConfig] days_select
|
39
|
+
attr_accessor :days_select
|
40
|
+
|
26
41
|
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
27
42
|
attr_accessor :unknown_json_fields
|
28
43
|
|
@@ -34,6 +49,9 @@ module Comet
|
|
34
49
|
@frequency_type = 0
|
35
50
|
@seconds_past = 0
|
36
51
|
@offset = 0
|
52
|
+
@from_time = Comet::HourSchedConfig.new
|
53
|
+
@to_time = Comet::HourSchedConfig.new
|
54
|
+
@days_select = Comet::DaysOfWeekConfig.new
|
37
55
|
@unknown_json_fields = {}
|
38
56
|
end
|
39
57
|
|
@@ -62,6 +80,19 @@ module Comet
|
|
62
80
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
63
81
|
|
64
82
|
@offset = v
|
83
|
+
when 'RestrictRuntime'
|
84
|
+
@restrict_runtime = v
|
85
|
+
when 'FromTime'
|
86
|
+
@from_time = Comet::HourSchedConfig.new
|
87
|
+
@from_time.from_hash(v)
|
88
|
+
when 'ToTime'
|
89
|
+
@to_time = Comet::HourSchedConfig.new
|
90
|
+
@to_time.from_hash(v)
|
91
|
+
when 'RestrictDays'
|
92
|
+
@restrict_days = v
|
93
|
+
when 'DaysSelect'
|
94
|
+
@days_select = Comet::DaysOfWeekConfig.new
|
95
|
+
@days_select.from_hash(v)
|
65
96
|
else
|
66
97
|
@unknown_json_fields[k] = v
|
67
98
|
end
|
@@ -76,6 +107,11 @@ module Comet
|
|
76
107
|
unless @offset.nil?
|
77
108
|
ret['Offset'] = @offset
|
78
109
|
end
|
110
|
+
ret['RestrictRuntime'] = @restrict_runtime
|
111
|
+
ret['FromTime'] = @from_time
|
112
|
+
ret['ToTime'] = @to_time
|
113
|
+
ret['RestrictDays'] = @restrict_days
|
114
|
+
ret['DaysSelect'] = @days_select
|
79
115
|
@unknown_json_fields.each do |k, v|
|
80
116
|
ret[k] = v
|
81
117
|
end
|
@@ -12,6 +12,9 @@ require 'json'
|
|
12
12
|
module Comet
|
13
13
|
|
14
14
|
# UpdateCampaignOptions is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
# This data structure describes which devices should receive a remote software upgrade. Both the
|
16
|
+
# target version criteria (UpgradeOlder/ReinstallCurrentVer/DowngradeNewer) and the target device
|
17
|
+
# criteria (ApplyDeviceFilter/DeviceFilter) must be met in order for the remote upgrade to be applied.
|
15
18
|
class UpdateCampaignOptions
|
16
19
|
|
17
20
|
# @type [Boolean] active
|
@@ -26,6 +29,15 @@ module Comet
|
|
26
29
|
# @type [Boolean] downgrade_newer
|
27
30
|
attr_accessor :downgrade_newer
|
28
31
|
|
32
|
+
# @type [Boolean] force_upgrade_running
|
33
|
+
attr_accessor :force_upgrade_running
|
34
|
+
|
35
|
+
# @type [Boolean] apply_device_filter
|
36
|
+
attr_accessor :apply_device_filter
|
37
|
+
|
38
|
+
# @type [Comet::SearchClause] device_filter
|
39
|
+
attr_accessor :device_filter
|
40
|
+
|
29
41
|
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
30
42
|
attr_accessor :unknown_json_fields
|
31
43
|
|
@@ -34,6 +46,7 @@ module Comet
|
|
34
46
|
end
|
35
47
|
|
36
48
|
def clear
|
49
|
+
@device_filter = Comet::SearchClause.new
|
37
50
|
@unknown_json_fields = {}
|
38
51
|
end
|
39
52
|
|
@@ -58,6 +71,13 @@ module Comet
|
|
58
71
|
@reinstall_current_ver = v
|
59
72
|
when 'DowngradeNewer'
|
60
73
|
@downgrade_newer = v
|
74
|
+
when 'ForceUpgradeRunning'
|
75
|
+
@force_upgrade_running = v
|
76
|
+
when 'ApplyDeviceFilter'
|
77
|
+
@apply_device_filter = v
|
78
|
+
when 'DeviceFilter'
|
79
|
+
@device_filter = Comet::SearchClause.new
|
80
|
+
@device_filter.from_hash(v)
|
61
81
|
else
|
62
82
|
@unknown_json_fields[k] = v
|
63
83
|
end
|
@@ -71,6 +91,9 @@ module Comet
|
|
71
91
|
ret['UpgradeOlder'] = @upgrade_older
|
72
92
|
ret['ReinstallCurrentVer'] = @reinstall_current_ver
|
73
93
|
ret['DowngradeNewer'] = @downgrade_newer
|
94
|
+
ret['ForceUpgradeRunning'] = @force_upgrade_running
|
95
|
+
ret['ApplyDeviceFilter'] = @apply_device_filter
|
96
|
+
ret['DeviceFilter'] = @device_filter
|
74
97
|
@unknown_json_fields.each do |k, v|
|
75
98
|
ret[k] = v
|
76
99
|
end
|
@@ -26,6 +26,15 @@ module Comet
|
|
26
26
|
# @type [Boolean] downgrade_newer
|
27
27
|
attr_accessor :downgrade_newer
|
28
28
|
|
29
|
+
# @type [Boolean] force_upgrade_running
|
30
|
+
attr_accessor :force_upgrade_running
|
31
|
+
|
32
|
+
# @type [Boolean] apply_device_filter
|
33
|
+
attr_accessor :apply_device_filter
|
34
|
+
|
35
|
+
# @type [Comet::SearchClause] device_filter
|
36
|
+
attr_accessor :device_filter
|
37
|
+
|
29
38
|
# @type [Number] start_time
|
30
39
|
attr_accessor :start_time
|
31
40
|
|
@@ -40,6 +49,7 @@ module Comet
|
|
40
49
|
end
|
41
50
|
|
42
51
|
def clear
|
52
|
+
@device_filter = Comet::SearchClause.new
|
43
53
|
@start_time = 0
|
44
54
|
@target_version = ''
|
45
55
|
@unknown_json_fields = {}
|
@@ -66,6 +76,13 @@ module Comet
|
|
66
76
|
@reinstall_current_ver = v
|
67
77
|
when 'DowngradeNewer'
|
68
78
|
@downgrade_newer = v
|
79
|
+
when 'ForceUpgradeRunning'
|
80
|
+
@force_upgrade_running = v
|
81
|
+
when 'ApplyDeviceFilter'
|
82
|
+
@apply_device_filter = v
|
83
|
+
when 'DeviceFilter'
|
84
|
+
@device_filter = Comet::SearchClause.new
|
85
|
+
@device_filter.from_hash(v)
|
69
86
|
when 'StartTime'
|
70
87
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
71
88
|
|
@@ -87,6 +104,9 @@ module Comet
|
|
87
104
|
ret['UpgradeOlder'] = @upgrade_older
|
88
105
|
ret['ReinstallCurrentVer'] = @reinstall_current_ver
|
89
106
|
ret['DowngradeNewer'] = @downgrade_newer
|
107
|
+
ret['ForceUpgradeRunning'] = @force_upgrade_running
|
108
|
+
ret['ApplyDeviceFilter'] = @apply_device_filter
|
109
|
+
ret['DeviceFilter'] = @device_filter
|
90
110
|
ret['StartTime'] = @start_time
|
91
111
|
ret['TargetVersion'] = @target_version
|
92
112
|
@unknown_json_fields.each do |k, v|
|
@@ -26,6 +26,15 @@ module Comet
|
|
26
26
|
# @type [Boolean] downgrade_newer
|
27
27
|
attr_accessor :downgrade_newer
|
28
28
|
|
29
|
+
# @type [Boolean] force_upgrade_running
|
30
|
+
attr_accessor :force_upgrade_running
|
31
|
+
|
32
|
+
# @type [Boolean] apply_device_filter
|
33
|
+
attr_accessor :apply_device_filter
|
34
|
+
|
35
|
+
# @type [Comet::SearchClause] device_filter
|
36
|
+
attr_accessor :device_filter
|
37
|
+
|
29
38
|
# @type [Number] start_time
|
30
39
|
attr_accessor :start_time
|
31
40
|
|
@@ -43,6 +52,7 @@ module Comet
|
|
43
52
|
end
|
44
53
|
|
45
54
|
def clear
|
55
|
+
@device_filter = Comet::SearchClause.new
|
46
56
|
@start_time = 0
|
47
57
|
@target_version = ''
|
48
58
|
@devices = []
|
@@ -70,6 +80,13 @@ module Comet
|
|
70
80
|
@reinstall_current_ver = v
|
71
81
|
when 'DowngradeNewer'
|
72
82
|
@downgrade_newer = v
|
83
|
+
when 'ForceUpgradeRunning'
|
84
|
+
@force_upgrade_running = v
|
85
|
+
when 'ApplyDeviceFilter'
|
86
|
+
@apply_device_filter = v
|
87
|
+
when 'DeviceFilter'
|
88
|
+
@device_filter = Comet::SearchClause.new
|
89
|
+
@device_filter.from_hash(v)
|
73
90
|
when 'StartTime'
|
74
91
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
75
92
|
|
@@ -101,6 +118,9 @@ module Comet
|
|
101
118
|
ret['UpgradeOlder'] = @upgrade_older
|
102
119
|
ret['ReinstallCurrentVer'] = @reinstall_current_ver
|
103
120
|
ret['DowngradeNewer'] = @downgrade_newer
|
121
|
+
ret['ForceUpgradeRunning'] = @force_upgrade_running
|
122
|
+
ret['ApplyDeviceFilter'] = @apply_device_filter
|
123
|
+
ret['DeviceFilter'] = @device_filter
|
104
124
|
ret['StartTime'] = @start_time
|
105
125
|
ret['TargetVersion'] = @target_version
|
106
126
|
ret['Devices'] = @devices
|
@@ -12,6 +12,7 @@ require 'json'
|
|
12
12
|
module Comet
|
13
13
|
|
14
14
|
# UserProfileConfig is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
# This is the main data structure for a user's profile.
|
15
16
|
class UserProfileConfig
|
16
17
|
|
17
18
|
# @type [String] username
|
@@ -26,6 +27,7 @@ module Comet
|
|
26
27
|
# @type [String] language_code
|
27
28
|
attr_accessor :language_code
|
28
29
|
|
30
|
+
# Tenant
|
29
31
|
# @type [String] organization_id
|
30
32
|
attr_accessor :organization_id
|
31
33
|
|
@@ -38,9 +40,11 @@ module Comet
|
|
38
40
|
# @type [Boolean] send_email_reports
|
39
41
|
attr_accessor :send_email_reports
|
40
42
|
|
43
|
+
# Storage Vaults
|
41
44
|
# @type [Hash{String => Comet::DestinationConfig}] destinations
|
42
45
|
attr_accessor :destinations
|
43
46
|
|
47
|
+
# Protected Items
|
44
48
|
# @type [Hash{String => Comet::SourceConfig}] sources
|
45
49
|
attr_accessor :sources
|
46
50
|
|
@@ -62,12 +66,17 @@ module Comet
|
|
62
66
|
# @type [Number] maximum_devices
|
63
67
|
attr_accessor :maximum_devices
|
64
68
|
|
69
|
+
# If the PolicyID field is set to a non-empty string, the Comet Server will enforce the contents of
|
70
|
+
# the Policy field based on the matching server's policy. Otherwise if the PolicyID field is set to an
|
71
|
+
# empty string, the administrator may configure any custom values in the Policy field.
|
65
72
|
# @type [String] policy_id
|
66
73
|
attr_accessor :policy_id
|
67
74
|
|
68
75
|
# @type [Comet::UserPolicy] policy
|
69
76
|
attr_accessor :policy
|
70
77
|
|
78
|
+
# To change the user's password, use the AdminResetUserPassword API instead of accessing these fields
|
79
|
+
# directly. Otherwise, other encrypted fields in the user profile may become corrupted.
|
71
80
|
# @type [Number] password_format
|
72
81
|
attr_accessor :password_format
|
73
82
|
|
@@ -0,0 +1,90 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
4
|
+
# Please see the LICENSE file for usage information.
|
5
|
+
#
|
6
|
+
# SPDX-License-Identifier: MIT
|
7
|
+
#
|
8
|
+
# frozen_string_literal: true
|
9
|
+
|
10
|
+
require 'json'
|
11
|
+
|
12
|
+
module Comet
|
13
|
+
|
14
|
+
# VMDKSnapshotViewOptions is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class VMDKSnapshotViewOptions
|
16
|
+
|
17
|
+
# @type [Boolean] enabled
|
18
|
+
attr_accessor :enabled
|
19
|
+
|
20
|
+
# @type [String] partition_guid
|
21
|
+
attr_accessor :partition_guid
|
22
|
+
|
23
|
+
# @type [String] list_path
|
24
|
+
attr_accessor :list_path
|
25
|
+
|
26
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
27
|
+
attr_accessor :unknown_json_fields
|
28
|
+
|
29
|
+
def initialize
|
30
|
+
clear
|
31
|
+
end
|
32
|
+
|
33
|
+
def clear
|
34
|
+
@partition_guid = ''
|
35
|
+
@list_path = ''
|
36
|
+
@unknown_json_fields = {}
|
37
|
+
end
|
38
|
+
|
39
|
+
# @param [String] json_string The complete object in JSON format
|
40
|
+
def from_json(json_string)
|
41
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
42
|
+
|
43
|
+
from_hash(JSON.parse(json_string))
|
44
|
+
end
|
45
|
+
|
46
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
47
|
+
def from_hash(obj)
|
48
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
49
|
+
|
50
|
+
obj.each do |k, v|
|
51
|
+
case k
|
52
|
+
when 'Enabled'
|
53
|
+
@enabled = v
|
54
|
+
when 'PartitionGUID'
|
55
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
56
|
+
|
57
|
+
@partition_guid = v
|
58
|
+
when 'ListPath'
|
59
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
60
|
+
|
61
|
+
@list_path = v
|
62
|
+
else
|
63
|
+
@unknown_json_fields[k] = v
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# @return [Hash] The complete object as a Ruby hash
|
69
|
+
def to_hash
|
70
|
+
ret = {}
|
71
|
+
ret['Enabled'] = @enabled
|
72
|
+
ret['PartitionGUID'] = @partition_guid
|
73
|
+
ret['ListPath'] = @list_path
|
74
|
+
@unknown_json_fields.each do |k, v|
|
75
|
+
ret[k] = v
|
76
|
+
end
|
77
|
+
ret
|
78
|
+
end
|
79
|
+
|
80
|
+
# @return [Hash] The complete object as a Ruby hash
|
81
|
+
def to_h
|
82
|
+
to_hash
|
83
|
+
end
|
84
|
+
|
85
|
+
# @return [String] The complete object as a JSON string
|
86
|
+
def to_json(options = {})
|
87
|
+
to_hash.to_json(options)
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -50,6 +50,7 @@ require_relative 'comet/models/content_measurement'
|
|
50
50
|
require_relative 'comet/models/content_measurement_component'
|
51
51
|
require_relative 'comet/models/create_group_policy_response'
|
52
52
|
require_relative 'comet/models/custom_remote_bucket_settings'
|
53
|
+
require_relative 'comet/models/days_of_week_config'
|
53
54
|
require_relative 'comet/models/default_email_report_policy'
|
54
55
|
require_relative 'comet/models/default_source_with_osrestriction'
|
55
56
|
require_relative 'comet/models/destination_config'
|
@@ -72,6 +73,7 @@ require_relative 'comet/models/get_group_policy_response'
|
|
72
73
|
require_relative 'comet/models/get_profile_and_hash_response_message'
|
73
74
|
require_relative 'comet/models/get_profile_hash_response_message'
|
74
75
|
require_relative 'comet/models/group_policy'
|
76
|
+
require_relative 'comet/models/hour_sched_config'
|
75
77
|
require_relative 'comet/models/hyper_vmachine_info'
|
76
78
|
require_relative 'comet/models/install_creds'
|
77
79
|
require_relative 'comet/models/install_token'
|
@@ -152,6 +154,7 @@ require_relative 'comet/models/user_policy'
|
|
152
154
|
require_relative 'comet/models/user_profile_config'
|
153
155
|
require_relative 'comet/models/user_profile_fragment'
|
154
156
|
require_relative 'comet/models/vault_snapshot'
|
157
|
+
require_relative 'comet/models/vmdksnapshot_view_options'
|
155
158
|
require_relative 'comet/models/vsscomponent'
|
156
159
|
require_relative 'comet/models/vsswriter_info'
|
157
160
|
require_relative 'comet/models/wasabi_virtual_storage_role_settings'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: comet_backup_ruby_sdk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.13.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Comet Licensing Ltd.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-05-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -126,6 +126,7 @@ files:
|
|
126
126
|
- lib/comet/models/content_measurement_component.rb
|
127
127
|
- lib/comet/models/create_group_policy_response.rb
|
128
128
|
- lib/comet/models/custom_remote_bucket_settings.rb
|
129
|
+
- lib/comet/models/days_of_week_config.rb
|
129
130
|
- lib/comet/models/default_email_report_policy.rb
|
130
131
|
- lib/comet/models/default_source_with_osrestriction.rb
|
131
132
|
- lib/comet/models/destination_config.rb
|
@@ -148,6 +149,7 @@ files:
|
|
148
149
|
- lib/comet/models/get_profile_and_hash_response_message.rb
|
149
150
|
- lib/comet/models/get_profile_hash_response_message.rb
|
150
151
|
- lib/comet/models/group_policy.rb
|
152
|
+
- lib/comet/models/hour_sched_config.rb
|
151
153
|
- lib/comet/models/hyper_vmachine_info.rb
|
152
154
|
- lib/comet/models/install_creds.rb
|
153
155
|
- lib/comet/models/install_token.rb
|
@@ -228,6 +230,7 @@ files:
|
|
228
230
|
- lib/comet/models/user_profile_config.rb
|
229
231
|
- lib/comet/models/user_profile_fragment.rb
|
230
232
|
- lib/comet/models/vault_snapshot.rb
|
233
|
+
- lib/comet/models/vmdksnapshot_view_options.rb
|
231
234
|
- lib/comet/models/vsscomponent.rb
|
232
235
|
- lib/comet/models/vsswriter_info.rb
|
233
236
|
- lib/comet/models/wasabi_virtual_storage_role_settings.rb
|