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.
Files changed (200) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.rubocop.yml +0 -0
  4. data/CHANGELOG.md +28 -1
  5. data/Gemfile +2 -4
  6. data/Gemfile.lock +1 -1
  7. data/LICENSE +0 -0
  8. data/README.md +0 -0
  9. data/RELEASING.md +0 -0
  10. data/Rakefile +2 -4
  11. data/comet_backup_ruby_sdk.gemspec +1 -1
  12. data/lib/comet/api_response_error.rb +2 -4
  13. data/lib/comet/comet_server.rb +76 -23
  14. data/lib/comet/definitions.rb +28 -7
  15. data/lib/comet/models/add_bucket_response_message.rb +2 -4
  16. data/lib/comet/models/admin_account_properties_response.rb +2 -4
  17. data/lib/comet/models/admin_email_options.rb +2 -4
  18. data/lib/comet/models/admin_resource_response.rb +2 -4
  19. data/lib/comet/models/admin_security_options.rb +2 -4
  20. data/lib/comet/models/admin_u2fregistration.rb +2 -4
  21. data/lib/comet/models/admin_user_permissions.rb +18 -4
  22. data/lib/comet/models/admin_web_authn_registration.rb +2 -4
  23. data/lib/comet/models/allowed_admin_user.rb +2 -4
  24. data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +2 -4
  25. data/lib/comet/models/authentication_role_options.rb +149 -0
  26. data/lib/comet/models/available_download.rb +2 -4
  27. data/lib/comet/models/azure_destination_location.rb +2 -4
  28. data/lib/comet/models/b2destination_location.rb +2 -4
  29. data/lib/comet/models/b2storage_extra_info.rb +2 -4
  30. data/lib/comet/models/b2transaction_totals.rb +2 -4
  31. data/lib/comet/models/b2virtual_storage_role_settings.rb +2 -4
  32. data/lib/comet/models/backup_job_advanced_options.rb +2 -4
  33. data/lib/comet/models/backup_job_detail.rb +2 -4
  34. data/lib/comet/models/backup_job_progress.rb +2 -4
  35. data/lib/comet/models/backup_rule_config.rb +2 -4
  36. data/lib/comet/models/backup_rule_event_triggers.rb +2 -4
  37. data/lib/comet/models/branding_options.rb +11 -4
  38. data/lib/comet/models/branding_properties.rb +11 -4
  39. data/lib/comet/models/browse_disk_drives_response.rb +2 -4
  40. data/lib/comet/models/browse_edbresponse.rb +2 -4
  41. data/lib/comet/models/browse_hvresponse.rb +2 -4
  42. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +2 -4
  43. data/lib/comet/models/browse_office_365objects_response.rb +2 -4
  44. data/lib/comet/models/browse_sqlserver_response.rb +2 -4
  45. data/lib/comet/models/browse_vssresponse.rb +2 -4
  46. data/lib/comet/models/bucket_properties.rb +2 -4
  47. data/lib/comet/models/bucket_usage_info.rb +11 -4
  48. data/lib/comet/models/comet_apiresponse_message.rb +2 -4
  49. data/lib/comet/models/comet_destination_location.rb +2 -4
  50. data/lib/comet/models/constellation_check_report.rb +2 -4
  51. data/lib/comet/models/constellation_role_options.rb +91 -0
  52. data/lib/comet/models/constellation_stats.rb +2 -4
  53. data/lib/comet/models/constellation_status_apiresponse.rb +2 -4
  54. data/lib/comet/models/content_measurement.rb +2 -4
  55. data/lib/comet/models/content_measurement_component.rb +2 -4
  56. data/lib/comet/models/create_group_policy_response.rb +2 -4
  57. data/lib/comet/models/custom_remote_bucket_settings.rb +2 -4
  58. data/lib/comet/models/days_of_week_config.rb +2 -4
  59. data/lib/comet/models/default_email_report_policy.rb +2 -4
  60. data/lib/comet/models/default_source_with_osrestriction.rb +2 -4
  61. data/lib/comet/models/destination_config.rb +19 -4
  62. data/lib/comet/models/destination_location.rb +19 -4
  63. data/lib/comet/models/destination_statistics.rb +2 -4
  64. data/lib/comet/models/device_config.rb +2 -4
  65. data/lib/comet/models/disk_drive.rb +2 -4
  66. data/lib/comet/models/dispatcher_admin_sources_response.rb +2 -4
  67. data/lib/comet/models/dispatcher_stored_objects_response.rb +2 -4
  68. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +2 -4
  69. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +2 -4
  70. data/lib/comet/models/edbfile_info.rb +2 -4
  71. data/lib/comet/models/email_options.rb +2 -4
  72. data/lib/comet/models/email_report_config.rb +2 -4
  73. data/lib/comet/models/email_report_generated_preview.rb +2 -4
  74. data/lib/comet/models/external_authentication_source.rb +194 -0
  75. data/lib/comet/models/external_ldapauthentication_source_server.rb +97 -0
  76. data/lib/comet/models/external_ldapauthentication_source_settings.rb +23 -10
  77. data/lib/comet/models/extra_file_exclusion.rb +2 -4
  78. data/lib/comet/models/ftpdestination_location.rb +2 -4
  79. data/lib/comet/models/get_group_policy_response.rb +2 -4
  80. data/lib/comet/models/get_profile_and_hash_response_message.rb +2 -4
  81. data/lib/comet/models/get_profile_hash_response_message.rb +2 -4
  82. data/lib/comet/models/global_override_options.rb +75 -0
  83. data/lib/comet/models/group_policy.rb +2 -4
  84. data/lib/comet/models/hour_sched_config.rb +2 -4
  85. data/lib/comet/models/httpconnector_options.rb +139 -0
  86. data/lib/comet/models/hyper_vmachine_info.rb +2 -4
  87. data/lib/comet/models/install_creds.rb +2 -4
  88. data/lib/comet/models/install_token.rb +2 -4
  89. data/lib/comet/models/install_token_response.rb +2 -4
  90. data/lib/comet/models/job_entry.rb +2 -4
  91. data/lib/comet/models/license_options.rb +84 -0
  92. data/lib/comet/models/live_user_connection.rb +2 -4
  93. data/lib/comet/models/local_destination_location.rb +2 -4
  94. data/lib/comet/models/local_storage_directory.rb +73 -0
  95. data/lib/comet/models/mac_oscode_sign_properties.rb +2 -4
  96. data/lib/comet/models/mongo_dbconnection.rb +2 -4
  97. data/lib/comet/models/mssqlconnection.rb +2 -4
  98. data/lib/comet/models/my_sqlconnection.rb +2 -4
  99. data/lib/comet/models/new_bucket_detail.rb +2 -4
  100. data/lib/comet/models/news_entry.rb +2 -4
  101. data/lib/comet/models/office_365connection.rb +2 -4
  102. data/lib/comet/models/office_365credential.rb +2 -4
  103. data/lib/comet/models/office_365custom_setting.rb +2 -4
  104. data/lib/comet/models/office_365custom_setting_v2.rb +2 -4
  105. data/lib/comet/models/office_365mixed_virtual_account.rb +13 -4
  106. data/lib/comet/models/office_365object_info.rb +2 -4
  107. data/lib/comet/models/organization.rb +13 -7
  108. data/lib/comet/models/organization_response.rb +2 -4
  109. data/lib/comet/models/osinfo.rb +2 -4
  110. data/lib/comet/models/partition.rb +2 -4
  111. data/lib/comet/models/private_branding_properties.rb +11 -4
  112. data/lib/comet/models/protected_item_engine_type_policy.rb +2 -4
  113. data/lib/comet/models/public_branding_properties.rb +2 -4
  114. data/lib/comet/models/ratelimit_options.rb +81 -0
  115. data/lib/comet/models/ratelimit_rule.rb +82 -0
  116. data/lib/comet/models/register_office_application_begin_response.rb +2 -4
  117. data/lib/comet/models/register_office_application_check_response.rb +2 -4
  118. data/lib/comet/models/remote_server_address.rb +12 -4
  119. data/lib/comet/models/remote_storage_option.rb +12 -4
  120. data/lib/comet/models/replica_server.rb +197 -0
  121. data/lib/comet/models/replicator_state_apiresponse.rb +2 -4
  122. data/lib/comet/models/request_storage_vault_response_message.rb +2 -4
  123. data/lib/comet/models/restore_job_advanced_options.rb +83 -4
  124. data/lib/comet/models/retention_policy.rb +2 -4
  125. data/lib/comet/models/retention_range.rb +2 -4
  126. data/lib/comet/models/s3destination_location.rb +11 -4
  127. data/lib/comet/models/s3generic_virtual_storage_role.rb +2 -4
  128. data/lib/comet/models/schedule_config.rb +13 -4
  129. data/lib/comet/models/search_clause.rb +2 -4
  130. data/lib/comet/models/self_backup_options.rb +79 -0
  131. data/lib/comet/models/self_backup_statistics.rb +2 -4
  132. data/lib/comet/models/self_backup_target.rb +137 -0
  133. data/lib/comet/models/server_config_options.rb +253 -0
  134. data/lib/comet/models/server_config_options_branding_fragment.rb +2 -4
  135. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +2 -4
  136. data/lib/comet/models/server_meta_branding_properties.rb +2 -4
  137. data/lib/comet/models/server_meta_version_info.rb +17 -4
  138. data/lib/comet/models/session_key_regenerated_response.rb +2 -4
  139. data/lib/comet/models/session_options.rb +73 -0
  140. data/lib/comet/models/sftpdestination_location.rb +2 -4
  141. data/lib/comet/models/size_measurement.rb +2 -4
  142. data/lib/comet/models/software_build_role_options.rb +2 -4
  143. data/lib/comet/models/software_update_news_response.rb +2 -4
  144. data/lib/comet/models/source_basic_info.rb +2 -4
  145. data/lib/comet/models/source_config.rb +2 -4
  146. data/lib/comet/models/source_include_pattern.rb +2 -4
  147. data/lib/comet/models/source_statistics.rb +2 -4
  148. data/lib/comet/models/spanned_destination_location.rb +2 -4
  149. data/lib/comet/models/spanned_storage_extra_info.rb +2 -4
  150. data/lib/comet/models/sshconnection.rb +2 -4
  151. data/lib/comet/models/stat_result.rb +2 -4
  152. data/lib/comet/models/storage_free_space_info.rb +2 -4
  153. data/lib/comet/models/storage_role_options.rb +110 -0
  154. data/lib/comet/models/storage_vault_provider_policy.rb +2 -4
  155. data/lib/comet/models/stored_object.rb +2 -4
  156. data/lib/comet/models/streamable_event.rb +2 -4
  157. data/lib/comet/models/swift_destination_location.rb +2 -4
  158. data/lib/comet/models/test_response.rb +2 -4
  159. data/lib/comet/models/totp_regenerated_response.rb +2 -4
  160. data/lib/comet/models/u2fregister_request.rb +2 -4
  161. data/lib/comet/models/u2fregistered_key.rb +2 -4
  162. data/lib/comet/models/u2fregistration_challenge_response.rb +2 -4
  163. data/lib/comet/models/u2fsign_request.rb +2 -4
  164. data/lib/comet/models/u2fsign_response.rb +2 -4
  165. data/lib/comet/models/uninstall_config.rb +2 -4
  166. data/lib/comet/models/update_campaign_device_status.rb +2 -4
  167. data/lib/comet/models/update_campaign_options.rb +5 -6
  168. data/lib/comet/models/update_campaign_properties.rb +2 -4
  169. data/lib/comet/models/update_campaign_status.rb +2 -4
  170. data/lib/comet/models/update_campaign_status_device_entry.rb +2 -4
  171. data/lib/comet/models/user_custom_email_settings.rb +2 -4
  172. data/lib/comet/models/user_on_server.rb +2 -4
  173. data/lib/comet/models/user_policy.rb +13 -4
  174. data/lib/comet/models/user_profile_config.rb +16 -8
  175. data/lib/comet/models/user_profile_fragment.rb +2 -4
  176. data/lib/comet/models/user_server_config.rb +75 -0
  177. data/lib/comet/models/vault_snapshot.rb +2 -4
  178. data/lib/comet/models/vmdksnapshot_view_options.rb +2 -4
  179. data/lib/comet/models/vsscomponent.rb +2 -4
  180. data/lib/comet/models/vsswriter_info.rb +2 -4
  181. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +2 -4
  182. data/lib/comet/models/web_authn_authenticator_selection.rb +2 -4
  183. data/lib/comet/models/web_authn_credential.rb +2 -4
  184. data/lib/comet/models/web_authn_credential_assertion.rb +2 -4
  185. data/lib/comet/models/web_authn_credential_descriptor.rb +2 -4
  186. data/lib/comet/models/web_authn_credential_entity.rb +2 -4
  187. data/lib/comet/models/web_authn_credential_parameter.rb +2 -4
  188. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +2 -4
  189. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +2 -4
  190. data/lib/comet/models/web_authn_registration_challenge_response.rb +2 -4
  191. data/lib/comet/models/web_authn_relying_party_entity.rb +2 -4
  192. data/lib/comet/models/web_authn_sign_request.rb +2 -4
  193. data/lib/comet/models/web_authn_sign_response.rb +2 -4
  194. data/lib/comet/models/web_authn_user_entity.rb +2 -4
  195. data/lib/comet/models/web_interface_branding_properties.rb +2 -4
  196. data/lib/comet/models/webhook_option.rb +2 -4
  197. data/lib/comet/models/win_smbauth.rb +2 -4
  198. data/lib/comet/models/windows_code_sign_properties.rb +2 -4
  199. data/lib/comet_backup_ruby_sdk.rb +23 -4
  200. metadata +19 -2
@@ -0,0 +1,81 @@
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
+ # RatelimitOptions is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class RatelimitOptions
14
+
15
+ # @type [Array<Comet::RatelimitRule>] rules
16
+ attr_accessor :rules
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
+ @rules = []
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 'Rules'
44
+ if v.nil?
45
+ @rules = []
46
+ else
47
+ @rules = Array.new(v.length)
48
+ v.each_with_index do |v1, i1|
49
+ @rules[i1] = Comet::RatelimitRule.new
50
+ @rules[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
+ unless @rules.nil?
63
+ ret['Rules'] = @rules
64
+ end
65
+ @unknown_json_fields.each do |k, v|
66
+ ret[k] = v
67
+ end
68
+ ret
69
+ end
70
+
71
+ # @return [Hash] The complete object as a Ruby hash
72
+ def to_h
73
+ to_hash
74
+ end
75
+
76
+ # @return [String] The complete object as a JSON string
77
+ def to_json(options = {})
78
+ to_hash.to_json(options)
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,82 @@
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
+ # RatelimitRule is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class RatelimitRule
14
+
15
+ # @type [String] match_regex
16
+ attr_accessor :match_regex
17
+
18
+ # @type [Number] bytes_per_second
19
+ attr_accessor :bytes_per_second
20
+
21
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
22
+ attr_accessor :unknown_json_fields
23
+
24
+ def initialize
25
+ clear
26
+ end
27
+
28
+ def clear
29
+ @match_regex = ''
30
+ @bytes_per_second = 0
31
+ @unknown_json_fields = {}
32
+ end
33
+
34
+ # @param [String] json_string The complete object in JSON format
35
+ def from_json(json_string)
36
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
+
38
+ from_hash(JSON.parse(json_string))
39
+ end
40
+
41
+ # @param [Hash] obj The complete object as a Ruby hash
42
+ def from_hash(obj)
43
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
+
45
+ obj.each do |k, v|
46
+ case k
47
+ when 'MatchRegex'
48
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
49
+
50
+ @match_regex = v
51
+ when 'BytesPerSecond'
52
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
53
+
54
+ @bytes_per_second = v
55
+ else
56
+ @unknown_json_fields[k] = v
57
+ end
58
+ end
59
+ end
60
+
61
+ # @return [Hash] The complete object as a Ruby hash
62
+ def to_hash
63
+ ret = {}
64
+ ret['MatchRegex'] = @match_regex
65
+ ret['BytesPerSecond'] = @bytes_per_second
66
+ @unknown_json_fields.each do |k, v|
67
+ ret[k] = v
68
+ end
69
+ ret
70
+ end
71
+
72
+ # @return [Hash] The complete object as a Ruby hash
73
+ def to_h
74
+ to_hash
75
+ end
76
+
77
+ # @return [String] The complete object as a JSON string
78
+ def to_json(options = {})
79
+ to_hash.to_json(options)
80
+ end
81
+ end
82
+ end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
 
@@ -48,6 +46,9 @@ module Comet
48
46
  # @type [Comet::AmazonAWSVirtualStorageRoleSettings] aws
49
47
  attr_accessor :aws
50
48
 
49
+ # @type [Comet::StorjVirtualStorageRoleSetting] storj
50
+ attr_accessor :storj
51
+
51
52
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
52
53
  attr_accessor :unknown_json_fields
53
54
 
@@ -67,6 +68,7 @@ module Comet
67
68
  @custom = Comet::CustomRemoteBucketSettings.new
68
69
  @s3 = Comet::S3GenericVirtualStorageRole.new
69
70
  @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
71
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
70
72
  @unknown_json_fields = {}
71
73
  end
72
74
 
@@ -121,6 +123,9 @@ module Comet
121
123
  when 'AWS'
122
124
  @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
123
125
  @aws.from_hash(v)
126
+ when 'Storj'
127
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
128
+ @storj.from_hash(v)
124
129
  else
125
130
  @unknown_json_fields[k] = v
126
131
  end
@@ -159,6 +164,9 @@ module Comet
159
164
  unless @aws.nil?
160
165
  ret['AWS'] = @aws
161
166
  end
167
+ unless @storj.nil?
168
+ ret['Storj'] = @storj
169
+ end
162
170
  @unknown_json_fields.each do |k, v|
163
171
  ret[k] = v
164
172
  end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
 
@@ -48,6 +46,9 @@ module Comet
48
46
  # @type [Comet::AmazonAWSVirtualStorageRoleSettings] aws
49
47
  attr_accessor :aws
50
48
 
49
+ # @type [Comet::StorjVirtualStorageRoleSetting] storj
50
+ attr_accessor :storj
51
+
51
52
  # @type [Boolean] storage_limit_enabled
52
53
  attr_accessor :storage_limit_enabled
53
54
 
@@ -76,6 +77,7 @@ module Comet
76
77
  @custom = Comet::CustomRemoteBucketSettings.new
77
78
  @s3 = Comet::S3GenericVirtualStorageRole.new
78
79
  @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
80
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
79
81
  @storage_limit_bytes = 0
80
82
  @unknown_json_fields = {}
81
83
  end
@@ -131,6 +133,9 @@ module Comet
131
133
  when 'AWS'
132
134
  @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
133
135
  @aws.from_hash(v)
136
+ when 'Storj'
137
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
138
+ @storj.from_hash(v)
134
139
  when 'StorageLimitEnabled'
135
140
  @storage_limit_enabled = v
136
141
  when 'StorageLimitBytes'
@@ -177,6 +182,9 @@ module Comet
177
182
  unless @aws.nil?
178
183
  ret['AWS'] = @aws
179
184
  end
185
+ unless @storj.nil?
186
+ ret['Storj'] = @storj
187
+ end
180
188
  ret['StorageLimitEnabled'] = @storage_limit_enabled
181
189
  ret['StorageLimitBytes'] = @storage_limit_bytes
182
190
  ret['RebrandStorage'] = @rebrand_storage
@@ -0,0 +1,197 @@
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
+ # ReplicaServer is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class ReplicaServer
14
+
15
+ # @type [String] type
16
+ attr_accessor :type
17
+
18
+ # @type [String] description
19
+ attr_accessor :description
20
+
21
+ # @type [String] remote_address
22
+ attr_accessor :remote_address
23
+
24
+ # @type [String] username
25
+ attr_accessor :username
26
+
27
+ # @type [String] password
28
+ attr_accessor :password
29
+
30
+ # @type [Comet::ExternalLDAPAuthenticationSourceSettings] ldap
31
+ attr_accessor :ldap
32
+
33
+ # @type [Comet::B2VirtualStorageRoleSettings] b2
34
+ attr_accessor :b2
35
+
36
+ # @type [Comet::WasabiVirtualStorageRoleSettings] wasabi
37
+ attr_accessor :wasabi
38
+
39
+ # @type [Comet::CustomRemoteBucketSettings] custom
40
+ attr_accessor :custom
41
+
42
+ # @type [Comet::S3GenericVirtualStorageRole] s3
43
+ attr_accessor :s3
44
+
45
+ # Amazon AWS - Virtual Storage Role
46
+ # @type [Comet::AmazonAWSVirtualStorageRoleSettings] aws
47
+ attr_accessor :aws
48
+
49
+ # @type [Comet::StorjVirtualStorageRoleSetting] storj
50
+ attr_accessor :storj
51
+
52
+ # @type [String] replica_deletion_strategy
53
+ attr_accessor :replica_deletion_strategy
54
+
55
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
56
+ attr_accessor :unknown_json_fields
57
+
58
+ def initialize
59
+ clear
60
+ end
61
+
62
+ def clear
63
+ @type = ''
64
+ @description = ''
65
+ @remote_address = ''
66
+ @username = ''
67
+ @password = ''
68
+ @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
69
+ @b2 = Comet::B2VirtualStorageRoleSettings.new
70
+ @wasabi = Comet::WasabiVirtualStorageRoleSettings.new
71
+ @custom = Comet::CustomRemoteBucketSettings.new
72
+ @s3 = Comet::S3GenericVirtualStorageRole.new
73
+ @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
74
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
75
+ @replica_deletion_strategy = ''
76
+ @unknown_json_fields = {}
77
+ end
78
+
79
+ # @param [String] json_string The complete object in JSON format
80
+ def from_json(json_string)
81
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
82
+
83
+ from_hash(JSON.parse(json_string))
84
+ end
85
+
86
+ # @param [Hash] obj The complete object as a Ruby hash
87
+ def from_hash(obj)
88
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
89
+
90
+ obj.each do |k, v|
91
+ case k
92
+ when 'Type'
93
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
94
+
95
+ @type = v
96
+ when 'Description'
97
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
98
+
99
+ @description = v
100
+ when 'RemoteAddress'
101
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
102
+
103
+ @remote_address = v
104
+ when 'Username'
105
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
106
+
107
+ @username = v
108
+ when 'Password'
109
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
110
+
111
+ @password = v
112
+ when 'LDAP'
113
+ @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
114
+ @ldap.from_hash(v)
115
+ when 'B2'
116
+ @b2 = Comet::B2VirtualStorageRoleSettings.new
117
+ @b2.from_hash(v)
118
+ when 'Wasabi'
119
+ @wasabi = Comet::WasabiVirtualStorageRoleSettings.new
120
+ @wasabi.from_hash(v)
121
+ when 'Custom'
122
+ @custom = Comet::CustomRemoteBucketSettings.new
123
+ @custom.from_hash(v)
124
+ when 'S3'
125
+ @s3 = Comet::S3GenericVirtualStorageRole.new
126
+ @s3.from_hash(v)
127
+ when 'AWS'
128
+ @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
129
+ @aws.from_hash(v)
130
+ when 'Storj'
131
+ @storj = Comet::StorjVirtualStorageRoleSetting.new
132
+ @storj.from_hash(v)
133
+ when 'ReplicaDeletionStrategy'
134
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
135
+
136
+ @replica_deletion_strategy = v
137
+ else
138
+ @unknown_json_fields[k] = v
139
+ end
140
+ end
141
+ end
142
+
143
+ # @return [Hash] The complete object as a Ruby hash
144
+ def to_hash
145
+ ret = {}
146
+ ret['Type'] = @type
147
+ ret['Description'] = @description
148
+ unless @remote_address.nil?
149
+ ret['RemoteAddress'] = @remote_address
150
+ end
151
+ unless @username.nil?
152
+ ret['Username'] = @username
153
+ end
154
+ unless @password.nil?
155
+ ret['Password'] = @password
156
+ end
157
+ unless @ldap.nil?
158
+ ret['LDAP'] = @ldap
159
+ end
160
+ unless @b2.nil?
161
+ ret['B2'] = @b2
162
+ end
163
+ unless @wasabi.nil?
164
+ ret['Wasabi'] = @wasabi
165
+ end
166
+ unless @custom.nil?
167
+ ret['Custom'] = @custom
168
+ end
169
+ unless @s3.nil?
170
+ ret['S3'] = @s3
171
+ end
172
+ unless @aws.nil?
173
+ ret['AWS'] = @aws
174
+ end
175
+ unless @storj.nil?
176
+ ret['Storj'] = @storj
177
+ end
178
+ unless @replica_deletion_strategy.nil?
179
+ ret['ReplicaDeletionStrategy'] = @replica_deletion_strategy
180
+ end
181
+ @unknown_json_fields.each do |k, v|
182
+ ret[k] = v
183
+ end
184
+ ret
185
+ end
186
+
187
+ # @return [Hash] The complete object as a Ruby hash
188
+ def to_h
189
+ to_hash
190
+ end
191
+
192
+ # @return [String] The complete object as a JSON string
193
+ def to_json(options = {})
194
+ to_hash.to_json(options)
195
+ end
196
+ end
197
+ end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
 
@@ -20,6 +18,9 @@ module Comet
20
18
  # @type [Boolean] overwrite_existing_files
21
19
  attr_accessor :overwrite_existing_files
22
20
 
21
+ # @type [Boolean] overwrite_if_newer
22
+ attr_accessor :overwrite_if_newer
23
+
23
24
  # @type [Boolean] dest_is_original_location
24
25
  attr_accessor :dest_is_original_location
25
26
 
@@ -35,6 +36,33 @@ module Comet
35
36
  # @type [Comet::Office365Credential] office_365credential
36
37
  attr_accessor :office_365credential
37
38
 
39
+ # @type [String] username
40
+ attr_accessor :username
41
+
42
+ # @type [String] password
43
+ attr_accessor :password
44
+
45
+ # @type [String] host
46
+ attr_accessor :host
47
+
48
+ # @type [String] port
49
+ attr_accessor :port
50
+
51
+ # @type [Boolean] use_ssl
52
+ attr_accessor :use_ssl
53
+
54
+ # @type [Boolean] ssl_allow_invalid
55
+ attr_accessor :ssl_allow_invalid
56
+
57
+ # @type [String] ssl_ca_file
58
+ attr_accessor :ssl_ca_file
59
+
60
+ # @type [String] ssl_crt_file
61
+ attr_accessor :ssl_crt_file
62
+
63
+ # @type [String] ssl_key_file
64
+ attr_accessor :ssl_key_file
65
+
38
66
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
39
67
  attr_accessor :unknown_json_fields
40
68
 
@@ -48,6 +76,13 @@ module Comet
48
76
  @exact_dest_paths = []
49
77
  @archive_format = 0
50
78
  @office_365credential = Comet::Office365Credential.new
79
+ @username = ''
80
+ @password = ''
81
+ @host = ''
82
+ @port = ''
83
+ @ssl_ca_file = ''
84
+ @ssl_crt_file = ''
85
+ @ssl_key_file = ''
51
86
  @unknown_json_fields = {}
52
87
  end
53
88
 
@@ -70,6 +105,8 @@ module Comet
70
105
  @type = v
71
106
  when 'OverwriteExistingFiles'
72
107
  @overwrite_existing_files = v
108
+ when 'OverwriteIfNewer'
109
+ @overwrite_if_newer = v
73
110
  when 'DestIsOriginalLocation'
74
111
  @dest_is_original_location = v
75
112
  when 'DestPath'
@@ -94,6 +131,38 @@ module Comet
94
131
  when 'Office365Credential'
95
132
  @office_365credential = Comet::Office365Credential.new
96
133
  @office_365credential.from_hash(v)
134
+ when 'Username'
135
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
136
+
137
+ @username = v
138
+ when 'Password'
139
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
140
+
141
+ @password = v
142
+ when 'Host'
143
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
144
+
145
+ @host = v
146
+ when 'Port'
147
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
148
+
149
+ @port = v
150
+ when 'UseSsl'
151
+ @use_ssl = v
152
+ when 'SslAllowInvalid'
153
+ @ssl_allow_invalid = v
154
+ when 'SslCaFile'
155
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
156
+
157
+ @ssl_ca_file = v
158
+ when 'SslCrtFile'
159
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
160
+
161
+ @ssl_crt_file = v
162
+ when 'SslKeyFile'
163
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
164
+
165
+ @ssl_key_file = v
97
166
  else
98
167
  @unknown_json_fields[k] = v
99
168
  end
@@ -105,6 +174,7 @@ module Comet
105
174
  ret = {}
106
175
  ret['Type'] = @type
107
176
  ret['OverwriteExistingFiles'] = @overwrite_existing_files
177
+ ret['OverwriteIfNewer'] = @overwrite_if_newer
108
178
  ret['DestIsOriginalLocation'] = @dest_is_original_location
109
179
  ret['DestPath'] = @dest_path
110
180
  ret['ExactDestPaths'] = @exact_dest_paths
@@ -112,6 +182,15 @@ module Comet
112
182
  unless @office_365credential.nil?
113
183
  ret['Office365Credential'] = @office_365credential
114
184
  end
185
+ ret['Username'] = @username
186
+ ret['Password'] = @password
187
+ ret['Host'] = @host
188
+ ret['Port'] = @port
189
+ ret['UseSsl'] = @use_ssl
190
+ ret['SslAllowInvalid'] = @ssl_allow_invalid
191
+ ret['SslCaFile'] = @ssl_ca_file
192
+ ret['SslCrtFile'] = @ssl_crt_file
193
+ ret['SslKeyFile'] = @ssl_key_file
115
194
  @unknown_json_fields.each do |k, v|
116
195
  ret[k] = v
117
196
  end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
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
- #!/usr/bin/env ruby --enable-frozen-string-literal
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