comet_backup_ruby_sdk 1.15.0 → 2.2.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/.gitignore +0 -0
- data/.rubocop.yml +0 -0
- data/CHANGELOG.md +28 -1
- data/Gemfile +2 -4
- data/Gemfile.lock +1 -1
- data/LICENSE +0 -0
- data/README.md +0 -0
- data/RELEASING.md +0 -0
- data/Rakefile +2 -4
- data/comet_backup_ruby_sdk.gemspec +1 -1
- data/lib/comet/api_response_error.rb +2 -4
- data/lib/comet/comet_server.rb +76 -23
- data/lib/comet/definitions.rb +28 -7
- data/lib/comet/models/add_bucket_response_message.rb +2 -4
- data/lib/comet/models/admin_account_properties_response.rb +2 -4
- data/lib/comet/models/admin_email_options.rb +2 -4
- data/lib/comet/models/admin_resource_response.rb +2 -4
- data/lib/comet/models/admin_security_options.rb +2 -4
- data/lib/comet/models/admin_u2fregistration.rb +2 -4
- data/lib/comet/models/admin_user_permissions.rb +18 -4
- data/lib/comet/models/admin_web_authn_registration.rb +2 -4
- data/lib/comet/models/allowed_admin_user.rb +2 -4
- data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +2 -4
- data/lib/comet/models/authentication_role_options.rb +149 -0
- data/lib/comet/models/available_download.rb +2 -4
- data/lib/comet/models/azure_destination_location.rb +2 -4
- data/lib/comet/models/b2destination_location.rb +2 -4
- data/lib/comet/models/b2storage_extra_info.rb +2 -4
- data/lib/comet/models/b2transaction_totals.rb +2 -4
- data/lib/comet/models/b2virtual_storage_role_settings.rb +2 -4
- data/lib/comet/models/backup_job_advanced_options.rb +2 -4
- data/lib/comet/models/backup_job_detail.rb +2 -4
- data/lib/comet/models/backup_job_progress.rb +2 -4
- data/lib/comet/models/backup_rule_config.rb +2 -4
- data/lib/comet/models/backup_rule_event_triggers.rb +2 -4
- data/lib/comet/models/branding_options.rb +11 -4
- data/lib/comet/models/branding_properties.rb +11 -4
- data/lib/comet/models/browse_disk_drives_response.rb +2 -4
- data/lib/comet/models/browse_edbresponse.rb +2 -4
- data/lib/comet/models/browse_hvresponse.rb +2 -4
- data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +2 -4
- data/lib/comet/models/browse_office_365objects_response.rb +2 -4
- data/lib/comet/models/browse_sqlserver_response.rb +2 -4
- data/lib/comet/models/browse_vssresponse.rb +2 -4
- data/lib/comet/models/bucket_properties.rb +2 -4
- data/lib/comet/models/bucket_usage_info.rb +11 -4
- data/lib/comet/models/comet_apiresponse_message.rb +2 -4
- data/lib/comet/models/comet_destination_location.rb +2 -4
- data/lib/comet/models/constellation_check_report.rb +2 -4
- data/lib/comet/models/constellation_role_options.rb +91 -0
- data/lib/comet/models/constellation_stats.rb +2 -4
- data/lib/comet/models/constellation_status_apiresponse.rb +2 -4
- data/lib/comet/models/content_measurement.rb +2 -4
- data/lib/comet/models/content_measurement_component.rb +2 -4
- data/lib/comet/models/create_group_policy_response.rb +2 -4
- data/lib/comet/models/custom_remote_bucket_settings.rb +2 -4
- data/lib/comet/models/days_of_week_config.rb +2 -4
- data/lib/comet/models/default_email_report_policy.rb +2 -4
- data/lib/comet/models/default_source_with_osrestriction.rb +2 -4
- data/lib/comet/models/destination_config.rb +19 -4
- data/lib/comet/models/destination_location.rb +19 -4
- data/lib/comet/models/destination_statistics.rb +2 -4
- data/lib/comet/models/device_config.rb +2 -4
- data/lib/comet/models/disk_drive.rb +2 -4
- data/lib/comet/models/dispatcher_admin_sources_response.rb +2 -4
- data/lib/comet/models/dispatcher_stored_objects_response.rb +2 -4
- data/lib/comet/models/dispatcher_vault_snapshots_response.rb +2 -4
- data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +2 -4
- data/lib/comet/models/edbfile_info.rb +2 -4
- data/lib/comet/models/email_options.rb +2 -4
- data/lib/comet/models/email_report_config.rb +2 -4
- data/lib/comet/models/email_report_generated_preview.rb +2 -4
- data/lib/comet/models/external_authentication_source.rb +194 -0
- data/lib/comet/models/external_ldapauthentication_source_server.rb +97 -0
- data/lib/comet/models/external_ldapauthentication_source_settings.rb +23 -10
- data/lib/comet/models/extra_file_exclusion.rb +2 -4
- data/lib/comet/models/ftpdestination_location.rb +2 -4
- data/lib/comet/models/get_group_policy_response.rb +2 -4
- data/lib/comet/models/get_profile_and_hash_response_message.rb +2 -4
- data/lib/comet/models/get_profile_hash_response_message.rb +2 -4
- data/lib/comet/models/global_override_options.rb +75 -0
- data/lib/comet/models/group_policy.rb +2 -4
- data/lib/comet/models/hour_sched_config.rb +2 -4
- data/lib/comet/models/httpconnector_options.rb +139 -0
- data/lib/comet/models/hyper_vmachine_info.rb +2 -4
- data/lib/comet/models/install_creds.rb +2 -4
- data/lib/comet/models/install_token.rb +2 -4
- data/lib/comet/models/install_token_response.rb +2 -4
- data/lib/comet/models/job_entry.rb +2 -4
- data/lib/comet/models/license_options.rb +84 -0
- data/lib/comet/models/live_user_connection.rb +2 -4
- data/lib/comet/models/local_destination_location.rb +2 -4
- data/lib/comet/models/local_storage_directory.rb +73 -0
- data/lib/comet/models/mac_oscode_sign_properties.rb +2 -4
- data/lib/comet/models/mongo_dbconnection.rb +2 -4
- data/lib/comet/models/mssqlconnection.rb +2 -4
- data/lib/comet/models/my_sqlconnection.rb +2 -4
- data/lib/comet/models/new_bucket_detail.rb +2 -4
- data/lib/comet/models/news_entry.rb +2 -4
- data/lib/comet/models/office_365connection.rb +2 -4
- data/lib/comet/models/office_365credential.rb +2 -4
- data/lib/comet/models/office_365custom_setting.rb +2 -4
- data/lib/comet/models/office_365custom_setting_v2.rb +2 -4
- data/lib/comet/models/office_365mixed_virtual_account.rb +13 -4
- data/lib/comet/models/office_365object_info.rb +2 -4
- data/lib/comet/models/organization.rb +13 -7
- data/lib/comet/models/organization_response.rb +2 -4
- data/lib/comet/models/osinfo.rb +2 -4
- data/lib/comet/models/partition.rb +2 -4
- data/lib/comet/models/private_branding_properties.rb +11 -4
- data/lib/comet/models/protected_item_engine_type_policy.rb +2 -4
- data/lib/comet/models/public_branding_properties.rb +2 -4
- data/lib/comet/models/ratelimit_options.rb +81 -0
- data/lib/comet/models/ratelimit_rule.rb +82 -0
- data/lib/comet/models/register_office_application_begin_response.rb +2 -4
- data/lib/comet/models/register_office_application_check_response.rb +2 -4
- data/lib/comet/models/remote_server_address.rb +12 -4
- data/lib/comet/models/remote_storage_option.rb +12 -4
- data/lib/comet/models/replica_server.rb +197 -0
- data/lib/comet/models/replicator_state_apiresponse.rb +2 -4
- data/lib/comet/models/request_storage_vault_response_message.rb +2 -4
- data/lib/comet/models/restore_job_advanced_options.rb +83 -4
- data/lib/comet/models/retention_policy.rb +2 -4
- data/lib/comet/models/retention_range.rb +2 -4
- data/lib/comet/models/s3destination_location.rb +11 -4
- data/lib/comet/models/s3generic_virtual_storage_role.rb +2 -4
- data/lib/comet/models/schedule_config.rb +13 -4
- data/lib/comet/models/search_clause.rb +2 -4
- data/lib/comet/models/self_backup_options.rb +79 -0
- data/lib/comet/models/self_backup_statistics.rb +2 -4
- data/lib/comet/models/self_backup_target.rb +137 -0
- data/lib/comet/models/server_config_options.rb +253 -0
- data/lib/comet/models/server_config_options_branding_fragment.rb +2 -4
- data/lib/comet/models/server_config_options_software_build_role_fragment.rb +2 -4
- data/lib/comet/models/server_meta_branding_properties.rb +2 -4
- data/lib/comet/models/server_meta_version_info.rb +17 -4
- data/lib/comet/models/session_key_regenerated_response.rb +2 -4
- data/lib/comet/models/session_options.rb +73 -0
- data/lib/comet/models/sftpdestination_location.rb +2 -4
- data/lib/comet/models/size_measurement.rb +2 -4
- data/lib/comet/models/software_build_role_options.rb +2 -4
- data/lib/comet/models/software_update_news_response.rb +2 -4
- data/lib/comet/models/source_basic_info.rb +2 -4
- data/lib/comet/models/source_config.rb +2 -4
- data/lib/comet/models/source_include_pattern.rb +2 -4
- data/lib/comet/models/source_statistics.rb +2 -4
- data/lib/comet/models/spanned_destination_location.rb +2 -4
- data/lib/comet/models/spanned_storage_extra_info.rb +2 -4
- data/lib/comet/models/sshconnection.rb +2 -4
- data/lib/comet/models/stat_result.rb +2 -4
- data/lib/comet/models/storage_free_space_info.rb +2 -4
- data/lib/comet/models/storage_role_options.rb +110 -0
- data/lib/comet/models/storage_vault_provider_policy.rb +2 -4
- data/lib/comet/models/stored_object.rb +2 -4
- data/lib/comet/models/streamable_event.rb +2 -4
- data/lib/comet/models/swift_destination_location.rb +2 -4
- data/lib/comet/models/test_response.rb +2 -4
- data/lib/comet/models/totp_regenerated_response.rb +2 -4
- data/lib/comet/models/u2fregister_request.rb +2 -4
- data/lib/comet/models/u2fregistered_key.rb +2 -4
- data/lib/comet/models/u2fregistration_challenge_response.rb +2 -4
- data/lib/comet/models/u2fsign_request.rb +2 -4
- data/lib/comet/models/u2fsign_response.rb +2 -4
- data/lib/comet/models/uninstall_config.rb +2 -4
- data/lib/comet/models/update_campaign_device_status.rb +2 -4
- data/lib/comet/models/update_campaign_options.rb +5 -6
- data/lib/comet/models/update_campaign_properties.rb +2 -4
- data/lib/comet/models/update_campaign_status.rb +2 -4
- data/lib/comet/models/update_campaign_status_device_entry.rb +2 -4
- data/lib/comet/models/user_custom_email_settings.rb +2 -4
- data/lib/comet/models/user_on_server.rb +2 -4
- data/lib/comet/models/user_policy.rb +13 -4
- data/lib/comet/models/user_profile_config.rb +16 -8
- data/lib/comet/models/user_profile_fragment.rb +2 -4
- data/lib/comet/models/user_server_config.rb +75 -0
- data/lib/comet/models/vault_snapshot.rb +2 -4
- data/lib/comet/models/vmdksnapshot_view_options.rb +2 -4
- data/lib/comet/models/vsscomponent.rb +2 -4
- data/lib/comet/models/vsswriter_info.rb +2 -4
- data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +2 -4
- data/lib/comet/models/web_authn_authenticator_selection.rb +2 -4
- data/lib/comet/models/web_authn_credential.rb +2 -4
- data/lib/comet/models/web_authn_credential_assertion.rb +2 -4
- data/lib/comet/models/web_authn_credential_descriptor.rb +2 -4
- data/lib/comet/models/web_authn_credential_entity.rb +2 -4
- data/lib/comet/models/web_authn_credential_parameter.rb +2 -4
- data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +2 -4
- data/lib/comet/models/web_authn_public_key_credential_request_options.rb +2 -4
- data/lib/comet/models/web_authn_registration_challenge_response.rb +2 -4
- data/lib/comet/models/web_authn_relying_party_entity.rb +2 -4
- data/lib/comet/models/web_authn_sign_request.rb +2 -4
- data/lib/comet/models/web_authn_sign_response.rb +2 -4
- data/lib/comet/models/web_authn_user_entity.rb +2 -4
- data/lib/comet/models/web_interface_branding_properties.rb +2 -4
- data/lib/comet/models/webhook_option.rb +2 -4
- data/lib/comet/models/win_smbauth.rb +2 -4
- data/lib/comet/models/windows_code_sign_properties.rb +2 -4
- data/lib/comet_backup_ruby_sdk.rb +23 -4
- metadata +19 -2
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -32,6 +30,9 @@ module Comet
|
|
|
32
30
|
# @type [String] s3subdir
|
|
33
31
|
attr_accessor :s3subdir
|
|
34
32
|
|
|
33
|
+
# @type [String] s3custom_region
|
|
34
|
+
attr_accessor :s3custom_region
|
|
35
|
+
|
|
35
36
|
# @type [Boolean] s3uses_v2signing
|
|
36
37
|
attr_accessor :s3uses_v2signing
|
|
37
38
|
|
|
@@ -48,6 +49,7 @@ module Comet
|
|
|
48
49
|
@s3secret_key = ''
|
|
49
50
|
@s3bucket_name = ''
|
|
50
51
|
@s3subdir = ''
|
|
52
|
+
@s3custom_region = ''
|
|
51
53
|
@unknown_json_fields = {}
|
|
52
54
|
end
|
|
53
55
|
|
|
@@ -86,6 +88,10 @@ module Comet
|
|
|
86
88
|
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
|
87
89
|
|
|
88
90
|
@s3subdir = v
|
|
91
|
+
when 'S3CustomRegion'
|
|
92
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
|
93
|
+
|
|
94
|
+
@s3custom_region = v
|
|
89
95
|
when 'S3UsesV2Signing'
|
|
90
96
|
@s3uses_v2signing = v
|
|
91
97
|
else
|
|
@@ -103,6 +109,7 @@ module Comet
|
|
|
103
109
|
ret['S3SecretKey'] = @s3secret_key
|
|
104
110
|
ret['S3BucketName'] = @s3bucket_name
|
|
105
111
|
ret['S3Subdir'] = @s3subdir
|
|
112
|
+
ret['S3CustomRegion'] = @s3custom_region
|
|
106
113
|
ret['S3UsesV2Signing'] = @s3uses_v2signing
|
|
107
114
|
@unknown_json_fields.each do |k, v|
|
|
108
115
|
ret[k] = v
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -38,6 +36,9 @@ module Comet
|
|
|
38
36
|
# @type [Comet::DaysOfWeekConfig] days_select
|
|
39
37
|
attr_accessor :days_select
|
|
40
38
|
|
|
39
|
+
# @type [Number] random_delay_secs
|
|
40
|
+
attr_accessor :random_delay_secs
|
|
41
|
+
|
|
41
42
|
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
|
42
43
|
attr_accessor :unknown_json_fields
|
|
43
44
|
|
|
@@ -52,6 +53,7 @@ module Comet
|
|
|
52
53
|
@from_time = Comet::HourSchedConfig.new
|
|
53
54
|
@to_time = Comet::HourSchedConfig.new
|
|
54
55
|
@days_select = Comet::DaysOfWeekConfig.new
|
|
56
|
+
@random_delay_secs = 0
|
|
55
57
|
@unknown_json_fields = {}
|
|
56
58
|
end
|
|
57
59
|
|
|
@@ -93,6 +95,10 @@ module Comet
|
|
|
93
95
|
when 'DaysSelect'
|
|
94
96
|
@days_select = Comet::DaysOfWeekConfig.new
|
|
95
97
|
@days_select.from_hash(v)
|
|
98
|
+
when 'RandomDelaySecs'
|
|
99
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
|
100
|
+
|
|
101
|
+
@random_delay_secs = v
|
|
96
102
|
else
|
|
97
103
|
@unknown_json_fields[k] = v
|
|
98
104
|
end
|
|
@@ -112,6 +118,9 @@ module Comet
|
|
|
112
118
|
ret['ToTime'] = @to_time
|
|
113
119
|
ret['RestrictDays'] = @restrict_days
|
|
114
120
|
ret['DaysSelect'] = @days_select
|
|
121
|
+
unless @random_delay_secs.nil?
|
|
122
|
+
ret['RandomDelaySecs'] = @random_delay_secs
|
|
123
|
+
end
|
|
115
124
|
@unknown_json_fields.each do |k, v|
|
|
116
125
|
ret[k] = v
|
|
117
126
|
end
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
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
|
+
require 'json'
|
|
9
|
+
|
|
10
|
+
module Comet
|
|
11
|
+
|
|
12
|
+
# SelfBackupOptions is a typed class wrapper around the underlying Comet Server API data structure.
|
|
13
|
+
class SelfBackupOptions
|
|
14
|
+
|
|
15
|
+
# @type [Array<Comet::SelfBackupTarget>] targets
|
|
16
|
+
attr_accessor :targets
|
|
17
|
+
|
|
18
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
|
19
|
+
attr_accessor :unknown_json_fields
|
|
20
|
+
|
|
21
|
+
def initialize
|
|
22
|
+
clear
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def clear
|
|
26
|
+
@targets = []
|
|
27
|
+
@unknown_json_fields = {}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @param [String] json_string The complete object in JSON format
|
|
31
|
+
def from_json(json_string)
|
|
32
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
|
33
|
+
|
|
34
|
+
from_hash(JSON.parse(json_string))
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
|
38
|
+
def from_hash(obj)
|
|
39
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
|
40
|
+
|
|
41
|
+
obj.each do |k, v|
|
|
42
|
+
case k
|
|
43
|
+
when 'Targets'
|
|
44
|
+
if v.nil?
|
|
45
|
+
@targets = []
|
|
46
|
+
else
|
|
47
|
+
@targets = Array.new(v.length)
|
|
48
|
+
v.each_with_index do |v1, i1|
|
|
49
|
+
@targets[i1] = Comet::SelfBackupTarget.new
|
|
50
|
+
@targets[i1].from_hash(v1)
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
else
|
|
54
|
+
@unknown_json_fields[k] = v
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
60
|
+
def to_hash
|
|
61
|
+
ret = {}
|
|
62
|
+
ret['Targets'] = @targets
|
|
63
|
+
@unknown_json_fields.each do |k, v|
|
|
64
|
+
ret[k] = v
|
|
65
|
+
end
|
|
66
|
+
ret
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
70
|
+
def to_h
|
|
71
|
+
to_hash
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# @return [String] The complete object as a JSON string
|
|
75
|
+
def to_json(options = {})
|
|
76
|
+
to_hash.to_json(options)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
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
|
+
require 'json'
|
|
9
|
+
|
|
10
|
+
module Comet
|
|
11
|
+
|
|
12
|
+
# SelfBackupTarget is a typed class wrapper around the underlying Comet Server API data structure.
|
|
13
|
+
class SelfBackupTarget
|
|
14
|
+
|
|
15
|
+
# @type [Comet::DestinationLocation] location
|
|
16
|
+
attr_accessor :location
|
|
17
|
+
|
|
18
|
+
# @type [Array<Comet::ScheduleConfig>] schedule
|
|
19
|
+
attr_accessor :schedule
|
|
20
|
+
|
|
21
|
+
# @type [String] schedule_timezone
|
|
22
|
+
attr_accessor :schedule_timezone
|
|
23
|
+
|
|
24
|
+
# @type [Comet::RetentionPolicy] retention_policy
|
|
25
|
+
attr_accessor :retention_policy
|
|
26
|
+
|
|
27
|
+
# @type [String] encryption_key
|
|
28
|
+
attr_accessor :encryption_key
|
|
29
|
+
|
|
30
|
+
# @type [Number] encryption_key_format
|
|
31
|
+
attr_accessor :encryption_key_format
|
|
32
|
+
|
|
33
|
+
# @type [Number] compression
|
|
34
|
+
attr_accessor :compression
|
|
35
|
+
|
|
36
|
+
# @type [Boolean] exclude_jobs_db
|
|
37
|
+
attr_accessor :exclude_jobs_db
|
|
38
|
+
|
|
39
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
|
40
|
+
attr_accessor :unknown_json_fields
|
|
41
|
+
|
|
42
|
+
def initialize
|
|
43
|
+
clear
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def clear
|
|
47
|
+
@location = Comet::DestinationLocation.new
|
|
48
|
+
@schedule = []
|
|
49
|
+
@schedule_timezone = ''
|
|
50
|
+
@retention_policy = Comet::RetentionPolicy.new
|
|
51
|
+
@encryption_key = ''
|
|
52
|
+
@encryption_key_format = 0
|
|
53
|
+
@compression = 0
|
|
54
|
+
@unknown_json_fields = {}
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# @param [String] json_string The complete object in JSON format
|
|
58
|
+
def from_json(json_string)
|
|
59
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
|
60
|
+
|
|
61
|
+
from_hash(JSON.parse(json_string))
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
|
65
|
+
def from_hash(obj)
|
|
66
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
|
67
|
+
|
|
68
|
+
obj.each do |k, v|
|
|
69
|
+
case k
|
|
70
|
+
when 'Location'
|
|
71
|
+
@location = Comet::DestinationLocation.new
|
|
72
|
+
@location.from_hash(v)
|
|
73
|
+
when 'Schedule'
|
|
74
|
+
if v.nil?
|
|
75
|
+
@schedule = []
|
|
76
|
+
else
|
|
77
|
+
@schedule = Array.new(v.length)
|
|
78
|
+
v.each_with_index do |v1, i1|
|
|
79
|
+
@schedule[i1] = Comet::ScheduleConfig.new
|
|
80
|
+
@schedule[i1].from_hash(v1)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
when 'ScheduleTimezone'
|
|
84
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
|
85
|
+
|
|
86
|
+
@schedule_timezone = v
|
|
87
|
+
when 'RetentionPolicy'
|
|
88
|
+
@retention_policy = Comet::RetentionPolicy.new
|
|
89
|
+
@retention_policy.from_hash(v)
|
|
90
|
+
when 'EncryptionKey'
|
|
91
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
|
92
|
+
|
|
93
|
+
@encryption_key = v
|
|
94
|
+
when 'EncryptionKeyFormat'
|
|
95
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
|
96
|
+
|
|
97
|
+
@encryption_key_format = v
|
|
98
|
+
when 'Compression'
|
|
99
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
|
100
|
+
|
|
101
|
+
@compression = v
|
|
102
|
+
when 'ExcludeJobsDB'
|
|
103
|
+
@exclude_jobs_db = v
|
|
104
|
+
else
|
|
105
|
+
@unknown_json_fields[k] = v
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
111
|
+
def to_hash
|
|
112
|
+
ret = {}
|
|
113
|
+
ret['Location'] = @location
|
|
114
|
+
ret['Schedule'] = @schedule
|
|
115
|
+
ret['ScheduleTimezone'] = @schedule_timezone
|
|
116
|
+
ret['RetentionPolicy'] = @retention_policy
|
|
117
|
+
ret['EncryptionKey'] = @encryption_key
|
|
118
|
+
ret['EncryptionKeyFormat'] = @encryption_key_format
|
|
119
|
+
ret['Compression'] = @compression
|
|
120
|
+
ret['ExcludeJobsDB'] = @exclude_jobs_db
|
|
121
|
+
@unknown_json_fields.each do |k, v|
|
|
122
|
+
ret[k] = v
|
|
123
|
+
end
|
|
124
|
+
ret
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
128
|
+
def to_h
|
|
129
|
+
to_hash
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# @return [String] The complete object as a JSON string
|
|
133
|
+
def to_json(options = {})
|
|
134
|
+
to_hash.to_json(options)
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
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
|
+
require 'json'
|
|
9
|
+
|
|
10
|
+
module Comet
|
|
11
|
+
|
|
12
|
+
# ServerConfigOptions is a typed class wrapper around the underlying Comet Server API data structure.
|
|
13
|
+
class ServerConfigOptions
|
|
14
|
+
|
|
15
|
+
# @type [Array<String>] experimental_options
|
|
16
|
+
attr_accessor :experimental_options
|
|
17
|
+
|
|
18
|
+
# @type [Hash{String => Comet::WebhookOption}] webhook_options
|
|
19
|
+
attr_accessor :webhook_options
|
|
20
|
+
|
|
21
|
+
# @type [Comet::LicenseOptions] license
|
|
22
|
+
attr_accessor :license
|
|
23
|
+
|
|
24
|
+
# @type [Comet::BrandingOptions] branding
|
|
25
|
+
attr_accessor :branding
|
|
26
|
+
|
|
27
|
+
# @type [Array<Comet::AllowedAdminUser>] admin_users
|
|
28
|
+
attr_accessor :admin_users
|
|
29
|
+
|
|
30
|
+
# @type [Hash{String => Comet::Organization}] organizations
|
|
31
|
+
attr_accessor :organizations
|
|
32
|
+
|
|
33
|
+
# @type [Hash{String => Comet::ExternalAuthenticationSource}] external_admin_user_sources
|
|
34
|
+
attr_accessor :external_admin_user_sources
|
|
35
|
+
|
|
36
|
+
# @type [Array<Comet::HTTPConnectorOptions>] listen_addresses
|
|
37
|
+
attr_accessor :listen_addresses
|
|
38
|
+
|
|
39
|
+
# @type [Boolean] trust_xforwarded_for
|
|
40
|
+
attr_accessor :trust_xforwarded_for
|
|
41
|
+
|
|
42
|
+
# @type [Comet::RatelimitOptions] iprate_limit
|
|
43
|
+
attr_accessor :iprate_limit
|
|
44
|
+
|
|
45
|
+
# @type [Comet::EmailOptions] email
|
|
46
|
+
attr_accessor :email
|
|
47
|
+
|
|
48
|
+
# @type [Comet::AuthenticationRoleOptions] authentication_role
|
|
49
|
+
attr_accessor :authentication_role
|
|
50
|
+
|
|
51
|
+
# @type [Comet::StorageRoleOptions] storage_role
|
|
52
|
+
attr_accessor :storage_role
|
|
53
|
+
|
|
54
|
+
# @type [Comet::SoftwareBuildRoleOptions] software_build_role
|
|
55
|
+
attr_accessor :software_build_role
|
|
56
|
+
|
|
57
|
+
# @type [Comet::ConstellationRoleOptions] constellation_role
|
|
58
|
+
attr_accessor :constellation_role
|
|
59
|
+
|
|
60
|
+
# @type [Comet::ConstellationRoleOptions] constellation_role__legacy
|
|
61
|
+
attr_accessor :constellation_role__legacy
|
|
62
|
+
|
|
63
|
+
# @type [Comet::SelfBackupOptions] self_backup
|
|
64
|
+
attr_accessor :self_backup
|
|
65
|
+
|
|
66
|
+
# @type [Comet::SessionOptions] session_settings
|
|
67
|
+
attr_accessor :session_settings
|
|
68
|
+
|
|
69
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
|
70
|
+
attr_accessor :unknown_json_fields
|
|
71
|
+
|
|
72
|
+
def initialize
|
|
73
|
+
clear
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
def clear
|
|
77
|
+
@experimental_options = []
|
|
78
|
+
@webhook_options = {}
|
|
79
|
+
@license = Comet::LicenseOptions.new
|
|
80
|
+
@branding = Comet::BrandingOptions.new
|
|
81
|
+
@admin_users = []
|
|
82
|
+
@organizations = {}
|
|
83
|
+
@external_admin_user_sources = {}
|
|
84
|
+
@listen_addresses = []
|
|
85
|
+
@iprate_limit = Comet::RatelimitOptions.new
|
|
86
|
+
@email = Comet::EmailOptions.new
|
|
87
|
+
@authentication_role = Comet::AuthenticationRoleOptions.new
|
|
88
|
+
@storage_role = Comet::StorageRoleOptions.new
|
|
89
|
+
@software_build_role = Comet::SoftwareBuildRoleOptions.new
|
|
90
|
+
@constellation_role = Comet::ConstellationRoleOptions.new
|
|
91
|
+
@constellation_role__legacy = Comet::ConstellationRoleOptions.new
|
|
92
|
+
@self_backup = Comet::SelfBackupOptions.new
|
|
93
|
+
@session_settings = Comet::SessionOptions.new
|
|
94
|
+
@unknown_json_fields = {}
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# @param [String] json_string The complete object in JSON format
|
|
98
|
+
def from_json(json_string)
|
|
99
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
|
100
|
+
|
|
101
|
+
from_hash(JSON.parse(json_string))
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
|
105
|
+
def from_hash(obj)
|
|
106
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
|
107
|
+
|
|
108
|
+
obj.each do |k, v|
|
|
109
|
+
case k
|
|
110
|
+
when 'ExperimentalOptions'
|
|
111
|
+
if v.nil?
|
|
112
|
+
@experimental_options = []
|
|
113
|
+
else
|
|
114
|
+
@experimental_options = Array.new(v.length)
|
|
115
|
+
v.each_with_index do |v1, i1|
|
|
116
|
+
raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
|
|
117
|
+
|
|
118
|
+
@experimental_options[i1] = v1
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
when 'WebhookOptions'
|
|
122
|
+
@webhook_options = {}
|
|
123
|
+
if v.nil?
|
|
124
|
+
@webhook_options = {}
|
|
125
|
+
else
|
|
126
|
+
v.each do |k1, v1|
|
|
127
|
+
@webhook_options[k1] = Comet::WebhookOption.new
|
|
128
|
+
@webhook_options[k1].from_hash(v1)
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
when 'License'
|
|
132
|
+
@license = Comet::LicenseOptions.new
|
|
133
|
+
@license.from_hash(v)
|
|
134
|
+
when 'Branding'
|
|
135
|
+
@branding = Comet::BrandingOptions.new
|
|
136
|
+
@branding.from_hash(v)
|
|
137
|
+
when 'AdminUsers'
|
|
138
|
+
if v.nil?
|
|
139
|
+
@admin_users = []
|
|
140
|
+
else
|
|
141
|
+
@admin_users = Array.new(v.length)
|
|
142
|
+
v.each_with_index do |v1, i1|
|
|
143
|
+
@admin_users[i1] = Comet::AllowedAdminUser.new
|
|
144
|
+
@admin_users[i1].from_hash(v1)
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
when 'Organizations'
|
|
148
|
+
@organizations = {}
|
|
149
|
+
if v.nil?
|
|
150
|
+
@organizations = {}
|
|
151
|
+
else
|
|
152
|
+
v.each do |k1, v1|
|
|
153
|
+
@organizations[k1] = Comet::Organization.new
|
|
154
|
+
@organizations[k1].from_hash(v1)
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
when 'ExternalAdminUserSources'
|
|
158
|
+
@external_admin_user_sources = {}
|
|
159
|
+
if v.nil?
|
|
160
|
+
@external_admin_user_sources = {}
|
|
161
|
+
else
|
|
162
|
+
v.each do |k1, v1|
|
|
163
|
+
@external_admin_user_sources[k1] = Comet::ExternalAuthenticationSource.new
|
|
164
|
+
@external_admin_user_sources[k1].from_hash(v1)
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
when 'ListenAddresses'
|
|
168
|
+
if v.nil?
|
|
169
|
+
@listen_addresses = []
|
|
170
|
+
else
|
|
171
|
+
@listen_addresses = Array.new(v.length)
|
|
172
|
+
v.each_with_index do |v1, i1|
|
|
173
|
+
@listen_addresses[i1] = Comet::HTTPConnectorOptions.new
|
|
174
|
+
@listen_addresses[i1].from_hash(v1)
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
when 'TrustXForwardedFor'
|
|
178
|
+
@trust_xforwarded_for = v
|
|
179
|
+
when 'IPRateLimit'
|
|
180
|
+
@iprate_limit = Comet::RatelimitOptions.new
|
|
181
|
+
@iprate_limit.from_hash(v)
|
|
182
|
+
when 'Email'
|
|
183
|
+
@email = Comet::EmailOptions.new
|
|
184
|
+
@email.from_hash(v)
|
|
185
|
+
when 'AuthenticationRole'
|
|
186
|
+
@authentication_role = Comet::AuthenticationRoleOptions.new
|
|
187
|
+
@authentication_role.from_hash(v)
|
|
188
|
+
when 'StorageRole'
|
|
189
|
+
@storage_role = Comet::StorageRoleOptions.new
|
|
190
|
+
@storage_role.from_hash(v)
|
|
191
|
+
when 'SoftwareBuildRole'
|
|
192
|
+
@software_build_role = Comet::SoftwareBuildRoleOptions.new
|
|
193
|
+
@software_build_role.from_hash(v)
|
|
194
|
+
when 'ConstellationRole'
|
|
195
|
+
@constellation_role = Comet::ConstellationRoleOptions.new
|
|
196
|
+
@constellation_role.from_hash(v)
|
|
197
|
+
when 'OverseerRole'
|
|
198
|
+
@constellation_role__legacy = Comet::ConstellationRoleOptions.new
|
|
199
|
+
@constellation_role__legacy.from_hash(v)
|
|
200
|
+
when 'SelfBackup'
|
|
201
|
+
@self_backup = Comet::SelfBackupOptions.new
|
|
202
|
+
@self_backup.from_hash(v)
|
|
203
|
+
when 'SessionSettings'
|
|
204
|
+
@session_settings = Comet::SessionOptions.new
|
|
205
|
+
@session_settings.from_hash(v)
|
|
206
|
+
else
|
|
207
|
+
@unknown_json_fields[k] = v
|
|
208
|
+
end
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
213
|
+
def to_hash
|
|
214
|
+
ret = {}
|
|
215
|
+
unless @experimental_options.nil?
|
|
216
|
+
ret['ExperimentalOptions'] = @experimental_options
|
|
217
|
+
end
|
|
218
|
+
ret['WebhookOptions'] = @webhook_options
|
|
219
|
+
ret['License'] = @license
|
|
220
|
+
ret['Branding'] = @branding
|
|
221
|
+
ret['AdminUsers'] = @admin_users
|
|
222
|
+
ret['Organizations'] = @organizations
|
|
223
|
+
ret['ExternalAdminUserSources'] = @external_admin_user_sources
|
|
224
|
+
ret['ListenAddresses'] = @listen_addresses
|
|
225
|
+
ret['TrustXForwardedFor'] = @trust_xforwarded_for
|
|
226
|
+
ret['IPRateLimit'] = @iprate_limit
|
|
227
|
+
ret['Email'] = @email
|
|
228
|
+
ret['AuthenticationRole'] = @authentication_role
|
|
229
|
+
ret['StorageRole'] = @storage_role
|
|
230
|
+
ret['SoftwareBuildRole'] = @software_build_role
|
|
231
|
+
ret['ConstellationRole'] = @constellation_role
|
|
232
|
+
unless @constellation_role__legacy.nil?
|
|
233
|
+
ret['OverseerRole'] = @constellation_role__legacy
|
|
234
|
+
end
|
|
235
|
+
ret['SelfBackup'] = @self_backup
|
|
236
|
+
ret['SessionSettings'] = @session_settings
|
|
237
|
+
@unknown_json_fields.each do |k, v|
|
|
238
|
+
ret[k] = v
|
|
239
|
+
end
|
|
240
|
+
ret
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
# @return [Hash] The complete object as a Ruby hash
|
|
244
|
+
def to_h
|
|
245
|
+
to_hash
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# @return [String] The complete object as a JSON string
|
|
249
|
+
def to_json(options = {})
|
|
250
|
+
to_hash.to_json(options)
|
|
251
|
+
end
|
|
252
|
+
end
|
|
253
|
+
end
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
3
|
# Copyright (c) 2020-2022 Comet Licensing Ltd.
|
|
4
4
|
# Please see the LICENSE file for usage information.
|
|
5
5
|
#
|
|
6
6
|
# SPDX-License-Identifier: MIT
|
|
7
|
-
#
|
|
8
|
-
# frozen_string_literal: true
|
|
9
7
|
|
|
10
8
|
require 'json'
|
|
11
9
|
|