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
@@ -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
 
@@ -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
- #!/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
 
@@ -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
- #!/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
 
@@ -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
- #!/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
 
@@ -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
- #!/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