comet_backup_ruby_sdk 1.12.0 → 1.15.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 +22 -0
- data/Gemfile +0 -0
- data/Gemfile.lock +1 -1
- data/LICENSE +0 -0
- data/README.md +3 -2
- data/Rakefile +0 -0
- data/comet_backup_ruby_sdk.gemspec +1 -1
- data/lib/comet/comet_server.rb +104 -11
- data/lib/comet/definitions.rb +75 -5
- data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +93 -0
- 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/remote_server_address.rb +21 -0
- data/lib/comet/models/remote_storage_option.rb +21 -0
- data/lib/comet/models/s3generic_virtual_storage_role.rb +111 -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 +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 856c001592ef3dad994ed3d321f8fa68e9f01829770a33117f688a4d22312801
|
4
|
+
data.tar.gz: b31ac9bbebfd4b3696d079b15ede4fcab8c7a927e087f84651861714a38a8172
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cf63478b5051ef36b844cbc82c8f20344e27a12e73898aec44e7f31f09a1cbd07e9d17ab58c0d1685de10716467d4643d90662208a331c0a3ec99eb0c96cfa2
|
7
|
+
data.tar.gz: ee74bad01ce9338fa8536c02a38a66e9d8838b1dfe5560b1180163f978a81a75a8c438b885a95f6c4049d15cf26908ca60146b9b51689da4e5ef12f18454c24b
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,30 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 2022-06-03 v1.15.0
|
4
|
+
- Based on 22.5.0
|
5
|
+
- Add `COMPRESS_*` compression settings for Self-Backups
|
6
|
+
- Add `RESTOREARCHIVEFORMAT_TARZSTD` for using the tar.zst archive restore format
|
7
|
+
- Add `target_organization` parameter to support cross-tenant operations in some API methods
|
8
|
+
|
9
|
+
## 2022-05-25 v1.14.0
|
10
|
+
- Based on 22.3.7
|
11
|
+
- Add new `REMOTESERVER_S3_GENERIC` `RemoteServerType`
|
12
|
+
- add new `S3GenericVirtualStorageRole` support to the `RemoteServerAddress`
|
13
|
+
|
14
|
+
## 2022-05-10 v1.13.0
|
15
|
+
- Based on 22.3.5
|
16
|
+
- Add new `RestrictRuntime`, `FromTime`, `ToTime`, `RestrictDays`, `DaysSelect` types to ScheduleConfig to add time and day restrictions in a hourly schedule.
|
17
|
+
- Add new `TotalVmCount` to `BackupJobDetail` API.
|
18
|
+
- Add new fields to `MacOSCodeSignProperties` to support code signing.
|
19
|
+
- Add new `ForceUpgradeRunning`, `ApplyDeviceFilter`, and `DeviceFilter` fields to `UpdateCampaign` types to support sending a bulk upgrade to a custom query of users
|
20
|
+
- Add new `AdminBrandingGenerateClientSpkDsm6` and `AdminBrandingGenerateClientSpkDsm7` APIs and associated types for generating and downloading Synology SPKs
|
21
|
+
- 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)
|
22
|
+
- Add new constants for VMDK single file restore
|
23
|
+
|
3
24
|
## 2022-01-28 v1.12.0
|
4
25
|
- Based on 21.12.4
|
5
26
|
- Add `AdminStoragePingDestination` API to perform a server-side Test Connections action when configuring Storage Role
|
27
|
+
- Add `DestinationSize*` on `BackupJobDetail` struct, to track Storage Vault size measurements taken as part of jobs
|
6
28
|
- Add `HasLicense` on `Office365MixedVirtualAccount` struct, and add `TotalLicensedMailsCount` and `TotalUnlicensedMailsCount` on `BackupJobDetail` struct, to track Office 365 license usage
|
7
29
|
- Add `AdminWebAuthnRegistration` new `Type` field and `WEBAUTHN_DEVICE_TYPE` constants, to determine the type of hardware WebAuthn device
|
8
30
|
- 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/README.md
CHANGED
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.15.0'
|
16
16
|
spec.authors = ['Comet Licensing Ltd.']
|
17
17
|
spec.email = ['hello@cometbackup.com']
|
18
18
|
|
data/lib/comet/comet_server.rb
CHANGED
@@ -314,8 +314,9 @@ module Comet
|
|
314
314
|
# @param [String] target_password New account password
|
315
315
|
# @param [Number] store_recovery_code (Optional) If set to 1, store and keep a password recovery code for the generated user (>= 18.3.9)
|
316
316
|
# @param [Number] require_password_change (Optional) If set to 1, require to reset password at the first login for the generated user (>= 20.3.4)
|
317
|
+
# @param [String] target_organization (Optional) If present, create the user account on behalf of another organization. Only allowed for administrator accounts in the top-level organization. (>= 22.3.7)
|
317
318
|
# @return [Comet::CometAPIResponseMessage]
|
318
|
-
def admin_add_user(target_user, target_password, store_recovery_code = nil, require_password_change = nil)
|
319
|
+
def admin_add_user(target_user, target_password, store_recovery_code = nil, require_password_change = nil, target_organization = nil)
|
319
320
|
submit_params = {}
|
320
321
|
raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
|
321
322
|
|
@@ -333,6 +334,11 @@ module Comet
|
|
333
334
|
|
334
335
|
submit_params['RequirePasswordChange'] = require_password_change
|
335
336
|
end
|
337
|
+
unless target_organization.nil?
|
338
|
+
raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
|
339
|
+
|
340
|
+
submit_params['TargetOrganization'] = target_organization
|
341
|
+
end
|
336
342
|
|
337
343
|
body = perform_request('api/v1/admin/add-user', submit_params)
|
338
344
|
json_body = JSON.parse body
|
@@ -352,8 +358,9 @@ module Comet
|
|
352
358
|
#
|
353
359
|
# @param [String] target_user New account username
|
354
360
|
# @param [Comet::UserProfileConfig] profile_data New account profile
|
361
|
+
# @param [String] target_organization (Optional) If present, create the user account on behalf of another organization. Only allowed for administrator accounts in the top-level organization. (>= 22.3.7)
|
355
362
|
# @return [Comet::CometAPIResponseMessage]
|
356
|
-
def admin_add_user_from_profile(target_user, profile_data)
|
363
|
+
def admin_add_user_from_profile(target_user, profile_data, target_organization = nil)
|
357
364
|
submit_params = {}
|
358
365
|
raise TypeError, "'target_user' expected String, got #{target_user.class}" unless target_user.is_a? String
|
359
366
|
|
@@ -361,6 +368,11 @@ module Comet
|
|
361
368
|
raise TypeError, "'profile_data' expected Comet::UserProfileConfig, got #{profile_data.class}" unless profile_data.is_a? Comet::UserProfileConfig
|
362
369
|
|
363
370
|
submit_params['ProfileData'] = profile_data.to_json
|
371
|
+
unless target_organization.nil?
|
372
|
+
raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
|
373
|
+
|
374
|
+
submit_params['TargetOrganization'] = target_organization
|
375
|
+
end
|
364
376
|
|
365
377
|
body = perform_request('api/v1/admin/add-user-from-profile', submit_params)
|
366
378
|
json_body = JSON.parse body
|
@@ -551,6 +563,52 @@ module Comet
|
|
551
563
|
perform_request('api/v1/admin/branding/generate-client/macos-x86_64', submit_params)
|
552
564
|
end
|
553
565
|
|
566
|
+
# AdminBrandingGenerateClientSpkDsm6
|
567
|
+
#
|
568
|
+
# Download software (Synology SPK for DSM 6).
|
569
|
+
#
|
570
|
+
# This API requires administrator authentication credentials, unless the server is configured to allow unauthenticated software downloads.
|
571
|
+
# This API requires the Software Build Role to be enabled.
|
572
|
+
# This API requires the Auth Role to be enabled.
|
573
|
+
#
|
574
|
+
# @param [String] self_address (Optional) The external URL of this server, used to resolve conflicts
|
575
|
+
# @return [String]
|
576
|
+
def admin_branding_generate_client_spk_dsm_6(self_address = nil)
|
577
|
+
submit_params = {}
|
578
|
+
if self_address.nil?
|
579
|
+
submit_params['SelfAddress'] = @server_address
|
580
|
+
else
|
581
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
582
|
+
|
583
|
+
submit_params['SelfAddress'] = self_address
|
584
|
+
end
|
585
|
+
|
586
|
+
perform_request('api/v1/admin/branding/generate-client/spk-dsm6', submit_params)
|
587
|
+
end
|
588
|
+
|
589
|
+
# AdminBrandingGenerateClientSpkDsm7
|
590
|
+
#
|
591
|
+
# Download software (Synology SPK for DSM 7).
|
592
|
+
#
|
593
|
+
# This API requires administrator authentication credentials, unless the server is configured to allow unauthenticated software downloads.
|
594
|
+
# This API requires the Software Build Role to be enabled.
|
595
|
+
# This API requires the Auth Role to be enabled.
|
596
|
+
#
|
597
|
+
# @param [String] self_address (Optional) The external URL of this server, used to resolve conflicts
|
598
|
+
# @return [String]
|
599
|
+
def admin_branding_generate_client_spk_dsm_7(self_address = nil)
|
600
|
+
submit_params = {}
|
601
|
+
if self_address.nil?
|
602
|
+
submit_params['SelfAddress'] = @server_address
|
603
|
+
else
|
604
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
605
|
+
|
606
|
+
submit_params['SelfAddress'] = self_address
|
607
|
+
end
|
608
|
+
|
609
|
+
perform_request('api/v1/admin/branding/generate-client/spk-dsm7', submit_params)
|
610
|
+
end
|
611
|
+
|
554
612
|
# AdminBrandingGenerateClientTest
|
555
613
|
#
|
556
614
|
# Check if a software download is available.
|
@@ -828,8 +886,10 @@ module Comet
|
|
828
886
|
|
829
887
|
# AdminCreateInstallToken
|
830
888
|
#
|
831
|
-
# Create token for silent installation
|
889
|
+
# Create token for silent installation.
|
890
|
+
# Currently only supported for Windows & macOS only
|
832
891
|
# Provide the installation token to silently install the client on windows `install.exe /TOKEN=<installtoken>`
|
892
|
+
# 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
893
|
#
|
834
894
|
# You must supply administrator authentication credentials to use this API.
|
835
895
|
# This API requires the Auth Role to be enabled.
|
@@ -1631,9 +1691,10 @@ module Comet
|
|
1631
1691
|
# @param [String] target_id The live connection GUID
|
1632
1692
|
# @param [String] destination The Storage Vault ID
|
1633
1693
|
# @param [String] snapshot_id The selected backup job snapshot
|
1634
|
-
# @param [String] tree_id (Optional) Browse objects inside subdirectory of backup snapshot
|
1694
|
+
# @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.
|
1695
|
+
# @param [Comet::VMDKSnapshotViewOptions] options (Optional) Request a list of stored objects in vmdk file
|
1635
1696
|
# @return [Comet::DispatcherStoredObjectsResponse]
|
1636
|
-
def admin_dispatcher_request_stored_objects(target_id, destination, snapshot_id, tree_id = nil)
|
1697
|
+
def admin_dispatcher_request_stored_objects(target_id, destination, snapshot_id, tree_id = nil, options = nil)
|
1637
1698
|
submit_params = {}
|
1638
1699
|
raise TypeError, "'target_id' expected String, got #{target_id.class}" unless target_id.is_a? String
|
1639
1700
|
|
@@ -1649,6 +1710,11 @@ module Comet
|
|
1649
1710
|
|
1650
1711
|
submit_params['TreeID'] = tree_id
|
1651
1712
|
end
|
1713
|
+
unless options.nil?
|
1714
|
+
raise TypeError, "'options' expected Comet::VMDKSnapshotViewOptions, got #{options.class}" unless options.is_a? Comet::VMDKSnapshotViewOptions
|
1715
|
+
|
1716
|
+
submit_params['Options'] = options.to_json
|
1717
|
+
end
|
1652
1718
|
|
1653
1719
|
body = perform_request('api/v1/admin/dispatcher/request-stored-objects', submit_params)
|
1654
1720
|
json_body = JSON.parse body
|
@@ -3052,13 +3118,22 @@ module Comet
|
|
3052
3118
|
# AdminPoliciesList
|
3053
3119
|
#
|
3054
3120
|
# List all policy object names.
|
3121
|
+
# For the top-level organization, the API result includes all policies for all organizations, unless the TargetOrganization parameter is present.
|
3055
3122
|
#
|
3056
3123
|
# You must supply administrator authentication credentials to use this API.
|
3057
3124
|
# This API requires the Auth Role to be enabled.
|
3058
3125
|
#
|
3126
|
+
# @param [String] target_organization (Optional) If present, list the policies belonging to another organization. Only allowed for administrator accounts in the top-level organization. (>= 22.3.7)
|
3059
3127
|
# @return [Hash{String => String}]
|
3060
|
-
def admin_policies_list
|
3061
|
-
|
3128
|
+
def admin_policies_list(target_organization = nil)
|
3129
|
+
submit_params = {}
|
3130
|
+
unless target_organization.nil?
|
3131
|
+
raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
|
3132
|
+
|
3133
|
+
submit_params['TargetOrganization'] = target_organization
|
3134
|
+
end
|
3135
|
+
|
3136
|
+
body = perform_request('api/v1/admin/policies/list', submit_params)
|
3062
3137
|
json_body = JSON.parse body
|
3063
3138
|
check_status json_body
|
3064
3139
|
ret = {}
|
@@ -3077,13 +3152,22 @@ module Comet
|
|
3077
3152
|
# AdminPoliciesListFull
|
3078
3153
|
#
|
3079
3154
|
# Get all policy objects.
|
3155
|
+
# For the top-level organization, the API result includes all policies for all organizations, unless the TargetOrganization parameter is present.
|
3080
3156
|
#
|
3081
3157
|
# You must supply administrator authentication credentials to use this API.
|
3082
3158
|
# This API requires the Auth Role to be enabled.
|
3083
3159
|
#
|
3160
|
+
# @param [String] target_organization (Optional) If present, list the policies belonging to another organization. Only allowed for administrator accounts in the top-level organization. (>= 22.3.7)
|
3084
3161
|
# @return [Hash{String => Comet::GroupPolicy}]
|
3085
|
-
def admin_policies_list_full
|
3086
|
-
|
3162
|
+
def admin_policies_list_full(target_organization = nil)
|
3163
|
+
submit_params = {}
|
3164
|
+
unless target_organization.nil?
|
3165
|
+
raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
|
3166
|
+
|
3167
|
+
submit_params['TargetOrganization'] = target_organization
|
3168
|
+
end
|
3169
|
+
|
3170
|
+
body = perform_request('api/v1/admin/policies/list-full', submit_params)
|
3087
3171
|
json_body = JSON.parse body
|
3088
3172
|
check_status json_body
|
3089
3173
|
ret = {}
|
@@ -3218,6 +3302,7 @@ module Comet
|
|
3218
3302
|
# Request a new Storage Vault on behalf of a user.
|
3219
3303
|
# This action does not respect the "Prevent creating new Storage Vaults (via Request)" policy setting. New Storage Vaults can be requested regardless of the policy setting.
|
3220
3304
|
# Prior to Comet 19.8.0, the response type was CometAPIResponseMessage (i.e. no DestinationID field in response).
|
3305
|
+
# The StorageProvider must exist for the target user account's organization.
|
3221
3306
|
#
|
3222
3307
|
# You must supply administrator authentication credentials to use this API.
|
3223
3308
|
# This API requires the Auth Role to be enabled.
|
@@ -3257,9 +3342,17 @@ module Comet
|
|
3257
3342
|
# You must supply administrator authentication credentials to use this API.
|
3258
3343
|
# This API requires the Auth Role to be enabled.
|
3259
3344
|
#
|
3345
|
+
# @param [String] target_organization (Optional) If present, list the requestable Storage Vault options belonging to another organization. Only allowed for administrator accounts in the top-level organization. (>= 22.3.7)
|
3260
3346
|
# @return [Hash{String => String}]
|
3261
|
-
def admin_request_storage_vault_providers
|
3262
|
-
|
3347
|
+
def admin_request_storage_vault_providers(target_organization = nil)
|
3348
|
+
submit_params = {}
|
3349
|
+
unless target_organization.nil?
|
3350
|
+
raise TypeError, "'target_organization' expected String, got #{target_organization.class}" unless target_organization.is_a? String
|
3351
|
+
|
3352
|
+
submit_params['TargetOrganization'] = target_organization
|
3353
|
+
end
|
3354
|
+
|
3355
|
+
body = perform_request('api/v1/admin/request-storage-vault-providers', submit_params)
|
3263
3356
|
json_body = JSON.parse body
|
3264
3357
|
check_status json_body
|
3265
3358
|
ret = {}
|
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
|
|
@@ -212,6 +235,9 @@ module Comet
|
|
212
235
|
# RestoreArchiveFormat: SquashFS container
|
213
236
|
RESTOREARCHIVEFORMAT_SQFS = 3
|
214
237
|
|
238
|
+
# RestoreArchiveFormat:
|
239
|
+
RESTOREARCHIVEFORMAT_TARZSTD = 4
|
240
|
+
|
215
241
|
# RetentionMode: If this mode is set in a RetentionPolicy, then RetentionPolicy.Ranges should be ignored.
|
216
242
|
RETENTIONMODE_KEEP_EVERYTHING = 801
|
217
243
|
|
@@ -392,6 +418,18 @@ module Comet
|
|
392
418
|
# StoredObjectType:
|
393
419
|
STOREDOBJECTTYPE_MSSITELISTDRIVEENTITY = 'mssitelistdriveentity'
|
394
420
|
|
421
|
+
# StoredObjectType:
|
422
|
+
STOREDOBJECTTYPE_VMDK_FILE = 'vmdkfile'
|
423
|
+
|
424
|
+
# StoredObjectType:
|
425
|
+
STOREDOBJECTTYPE_VMDK_DIRECTORY = 'vmdkdir'
|
426
|
+
|
427
|
+
# StoredObjectType:
|
428
|
+
STOREDOBJECTTYPE_VMDK_WINEFS = 'vmdkwinefs'
|
429
|
+
|
430
|
+
# StoredObjectType:
|
431
|
+
STOREDOBJECTTYPE_VMDK_SYMLINK = 'vmdksymlink'
|
432
|
+
|
395
433
|
# ExtraFileExclusionOSRestriction:
|
396
434
|
OS_ANY = 0
|
397
435
|
|
@@ -430,15 +468,15 @@ module Comet
|
|
430
468
|
|
431
469
|
DEFAULT_TIMEZONE = 'UTC'
|
432
470
|
|
433
|
-
APPLICATION_VERSION = '
|
471
|
+
APPLICATION_VERSION = '22.5.0'
|
434
472
|
|
435
|
-
APPLICATION_VERSION_MAJOR =
|
473
|
+
APPLICATION_VERSION_MAJOR = 22
|
436
474
|
|
437
|
-
APPLICATION_VERSION_MINOR =
|
475
|
+
APPLICATION_VERSION_MINOR = 5
|
438
476
|
|
439
|
-
APPLICATION_VERSION_REVISION =
|
477
|
+
APPLICATION_VERSION_REVISION = 0
|
440
478
|
|
441
|
-
RELEASE_CODENAME = '
|
479
|
+
RELEASE_CODENAME = 'Lysithea'
|
442
480
|
|
443
481
|
ENCRYPTIONMETHOD_UNCONFIGURED = 0
|
444
482
|
|
@@ -448,6 +486,8 @@ module Comet
|
|
448
486
|
|
449
487
|
TOTPREQUIRED_ERROR = 'ERR_TOTP_REQUIRED'
|
450
488
|
|
489
|
+
UNSUPPORT_VMDK_FILE_SYSTEM = 'ERR_UNSUPPORT_VMDK_FILE_SYSTEM'
|
490
|
+
|
451
491
|
EMAIL_WORKER_STATE_NOT_STARTED = 0
|
452
492
|
|
453
493
|
EMAIL_WORKER_STATE_STARTED = 1
|
@@ -615,6 +655,12 @@ module Comet
|
|
615
655
|
# RemoteServerType:
|
616
656
|
REMOTESERVER_CUSTOM = 'custom'
|
617
657
|
|
658
|
+
# RemoteServerType:
|
659
|
+
REMOTESERVER_S3_GENERIC = 's3'
|
660
|
+
|
661
|
+
# RemoteServerType:
|
662
|
+
REMOTESERVER_AWS = 'aws'
|
663
|
+
|
618
664
|
LDAPSECURITYMETHOD_PLAIN = 'plain'
|
619
665
|
|
620
666
|
LDAPSECURITYMETHOD_LDAPS = 'ldaps'
|
@@ -657,6 +703,30 @@ module Comet
|
|
657
703
|
# StreamableEventType:
|
658
704
|
SEVT__MAX = 4999
|
659
705
|
|
706
|
+
# CompressMode:
|
707
|
+
COMPRESS_INVALID = 0
|
708
|
+
|
709
|
+
# CompressMode:
|
710
|
+
COMPRESS_LVL_1 = 1
|
711
|
+
|
712
|
+
# CompressMode:
|
713
|
+
COMPRESS_LVL_2 = 2
|
714
|
+
|
715
|
+
# CompressMode:
|
716
|
+
COMPRESS_LVL_3 = 3
|
717
|
+
|
718
|
+
# CompressMode:
|
719
|
+
COMPRESS_LVL_4 = 4
|
720
|
+
|
721
|
+
# CompressMode:
|
722
|
+
COMPRESS_LVL_5 = 5
|
723
|
+
|
724
|
+
# CompressMode:
|
725
|
+
COMPRESS_MAX = COMPRESS_LVL_5
|
726
|
+
|
727
|
+
# CompressMode:
|
728
|
+
COMPRESS_DEFAULT = COMPRESS_LVL_4
|
729
|
+
|
660
730
|
OFFICE365_REGION_PUBLIC = 'GlobalPublicCloud'
|
661
731
|
|
662
732
|
OFFICE365_REGION_CHINA = 'ChinaCloud'
|
@@ -0,0 +1,93 @@
|
|
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
|
+
# AmazonAWSVirtualStorageRoleSettings is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class AmazonAWSVirtualStorageRoleSettings
|
16
|
+
|
17
|
+
# @type [String] master_bucket
|
18
|
+
attr_accessor :master_bucket
|
19
|
+
|
20
|
+
# @type [String] access_key
|
21
|
+
attr_accessor :access_key
|
22
|
+
|
23
|
+
# @type [String] secret_key
|
24
|
+
attr_accessor :secret_key
|
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
|
+
@master_bucket = ''
|
35
|
+
@access_key = ''
|
36
|
+
@secret_key = ''
|
37
|
+
@unknown_json_fields = {}
|
38
|
+
end
|
39
|
+
|
40
|
+
# @param [String] json_string The complete object in JSON format
|
41
|
+
def from_json(json_string)
|
42
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
43
|
+
|
44
|
+
from_hash(JSON.parse(json_string))
|
45
|
+
end
|
46
|
+
|
47
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
48
|
+
def from_hash(obj)
|
49
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
50
|
+
|
51
|
+
obj.each do |k, v|
|
52
|
+
case k
|
53
|
+
when 'MasterBucket'
|
54
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
55
|
+
|
56
|
+
@master_bucket = v
|
57
|
+
when 'AccessKey'
|
58
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
59
|
+
|
60
|
+
@access_key = v
|
61
|
+
when 'SecretKey'
|
62
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
63
|
+
|
64
|
+
@secret_key = v
|
65
|
+
else
|
66
|
+
@unknown_json_fields[k] = v
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# @return [Hash] The complete object as a Ruby hash
|
72
|
+
def to_hash
|
73
|
+
ret = {}
|
74
|
+
ret['MasterBucket'] = @master_bucket
|
75
|
+
ret['AccessKey'] = @access_key
|
76
|
+
ret['SecretKey'] = @secret_key
|
77
|
+
@unknown_json_fields.each do |k, v|
|
78
|
+
ret[k] = v
|
79
|
+
end
|
80
|
+
ret
|
81
|
+
end
|
82
|
+
|
83
|
+
# @return [Hash] The complete object as a Ruby hash
|
84
|
+
def to_h
|
85
|
+
to_hash
|
86
|
+
end
|
87
|
+
|
88
|
+
# @return [String] The complete object as a JSON string
|
89
|
+
def to_json(options = {})
|
90
|
+
to_hash.to_json(options)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -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
|