comet_backup_ruby_sdk 1.13.0 → 1.14.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 (180) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -0
  3. data/.rubocop.yml +0 -0
  4. data/CHANGELOG.md +5 -0
  5. data/Gemfile.lock +1 -1
  6. data/README.md +3 -2
  7. data/RELEASING.md +0 -0
  8. data/comet_backup_ruby_sdk.gemspec +1 -1
  9. data/lib/api_response_error.rb +27 -0
  10. data/lib/comet/comet_server.rb +2 -2
  11. data/lib/comet/models/update_campaign_options.rb +2 -2
  12. data/lib/comet_server.rb +3785 -0
  13. data/lib/definitions.rb +710 -0
  14. data/lib/models/add_bucket_response_message.rb +102 -0
  15. data/lib/models/admin_account_properties_response.rb +91 -0
  16. data/lib/models/admin_email_options.rb +84 -0
  17. data/lib/models/admin_resource_response.rb +93 -0
  18. data/lib/models/admin_security_options.rb +177 -0
  19. data/lib/models/admin_u2fregistration.rb +93 -0
  20. data/lib/models/admin_user_permissions.rb +106 -0
  21. data/lib/models/admin_web_authn_registration.rb +121 -0
  22. data/lib/models/allowed_admin_user.rb +214 -0
  23. data/lib/models/available_download.rb +90 -0
  24. data/lib/models/azure_destination_location.rb +111 -0
  25. data/lib/models/b2destination_location.rb +130 -0
  26. data/lib/models/b2storage_extra_info.rb +81 -0
  27. data/lib/models/b2transaction_totals.rb +93 -0
  28. data/lib/models/b2virtual_storage_role_settings.rb +99 -0
  29. data/lib/models/backup_job_advanced_options.rb +117 -0
  30. data/lib/models/backup_job_detail.rb +328 -0
  31. data/lib/models/backup_job_progress.rb +111 -0
  32. data/lib/models/backup_rule_config.rb +233 -0
  33. data/lib/models/backup_rule_event_triggers.rb +82 -0
  34. data/lib/models/branding_options.rb +335 -0
  35. data/lib/models/branding_properties.rb +293 -0
  36. data/lib/models/browse_disk_drives_response.rb +99 -0
  37. data/lib/models/browse_edbresponse.rb +99 -0
  38. data/lib/models/browse_hvresponse.rb +99 -0
  39. data/lib/models/browse_office_365list_virtual_accounts_response.rb +99 -0
  40. data/lib/models/browse_office_365objects_response.rb +99 -0
  41. data/lib/models/browse_sqlserver_response.rb +100 -0
  42. data/lib/models/browse_vssresponse.rb +99 -0
  43. data/lib/models/bucket_properties.rb +110 -0
  44. data/lib/models/bucket_usage_info.rb +97 -0
  45. data/lib/models/comet_apiresponse_message.rb +84 -0
  46. data/lib/models/comet_destination_location.rb +93 -0
  47. data/lib/models/constellation_check_report.rb +99 -0
  48. data/lib/models/constellation_stats.rb +102 -0
  49. data/lib/models/constellation_status_apiresponse.rb +114 -0
  50. data/lib/models/content_measurement.rb +99 -0
  51. data/lib/models/content_measurement_component.rb +91 -0
  52. data/lib/models/create_group_policy_response.rb +93 -0
  53. data/lib/models/custom_remote_bucket_settings.rb +75 -0
  54. data/lib/models/days_of_week_config.rb +108 -0
  55. data/lib/models/default_email_report_policy.rb +87 -0
  56. data/lib/models/default_source_with_osrestriction.rb +83 -0
  57. data/lib/models/destination_config.rb +562 -0
  58. data/lib/models/destination_location.rb +421 -0
  59. data/lib/models/destination_statistics.rb +115 -0
  60. data/lib/models/device_config.rb +124 -0
  61. data/lib/models/disk_drive.rb +180 -0
  62. data/lib/models/dispatcher_admin_sources_response.rb +100 -0
  63. data/lib/models/dispatcher_stored_objects_response.rb +99 -0
  64. data/lib/models/dispatcher_vault_snapshots_response.rb +99 -0
  65. data/lib/models/dispatcher_windisk_snapshot_response.rb +99 -0
  66. data/lib/models/edbfile_info.rb +99 -0
  67. data/lib/models/email_options.rb +153 -0
  68. data/lib/models/email_report_config.rb +98 -0
  69. data/lib/models/email_report_generated_preview.rb +136 -0
  70. data/lib/models/external_ldapauthentication_source_settings.rb +135 -0
  71. data/lib/models/extra_file_exclusion.rb +90 -0
  72. data/lib/models/ftpdestination_location.rb +141 -0
  73. data/lib/models/get_group_policy_response.rb +101 -0
  74. data/lib/models/get_profile_and_hash_response_message.rb +101 -0
  75. data/lib/models/get_profile_hash_response_message.rb +93 -0
  76. data/lib/models/group_policy.rb +98 -0
  77. data/lib/models/hour_sched_config.rb +84 -0
  78. data/lib/models/hyper_vmachine_info.rb +84 -0
  79. data/lib/models/install_creds.rb +99 -0
  80. data/lib/models/install_token.rb +117 -0
  81. data/lib/models/install_token_response.rb +92 -0
  82. data/lib/models/job_entry.rb +94 -0
  83. data/lib/models/live_user_connection.rb +149 -0
  84. data/lib/models/local_destination_location.rb +102 -0
  85. data/lib/models/mac_oscode_sign_properties.rb +197 -0
  86. data/lib/models/mongo_dbconnection.rb +230 -0
  87. data/lib/models/mssqlconnection.rb +120 -0
  88. data/lib/models/my_sqlconnection.rb +141 -0
  89. data/lib/models/new_bucket_detail.rb +84 -0
  90. data/lib/models/news_entry.rb +93 -0
  91. data/lib/models/office_365connection.rb +131 -0
  92. data/lib/models/office_365credential.rb +111 -0
  93. data/lib/models/office_365custom_setting.rb +133 -0
  94. data/lib/models/office_365custom_setting_v2.rb +108 -0
  95. data/lib/models/office_365mixed_virtual_account.rb +211 -0
  96. data/lib/models/office_365object_info.rb +118 -0
  97. data/lib/models/organization.rb +151 -0
  98. data/lib/models/organization_response.rb +101 -0
  99. data/lib/models/osinfo.rb +99 -0
  100. data/lib/models/partition.rb +172 -0
  101. data/lib/models/private_branding_properties.rb +227 -0
  102. data/lib/models/protected_item_engine_type_policy.rb +88 -0
  103. data/lib/models/public_branding_properties.rb +132 -0
  104. data/lib/models/register_office_application_begin_response.rb +93 -0
  105. data/lib/models/register_office_application_check_response.rb +100 -0
  106. data/lib/models/remote_server_address.rb +167 -0
  107. data/lib/models/remote_storage_option.rb +188 -0
  108. data/lib/models/replicator_state_apiresponse.rb +174 -0
  109. data/lib/models/request_storage_vault_response_message.rb +93 -0
  110. data/lib/models/restore_job_advanced_options.rb +131 -0
  111. data/lib/models/retention_policy.rb +90 -0
  112. data/lib/models/retention_range.rb +138 -0
  113. data/lib/models/s3destination_location.rb +123 -0
  114. data/lib/models/s3generic_virtual_storage_role.rb +111 -0
  115. data/lib/models/schedule_config.rb +131 -0
  116. data/lib/models/search_clause.rb +119 -0
  117. data/lib/models/self_backup_statistics.rb +108 -0
  118. data/lib/models/server_config_options_branding_fragment.rb +74 -0
  119. data/lib/models/server_config_options_software_build_role_fragment.rb +74 -0
  120. data/lib/models/server_meta_branding_properties.rb +144 -0
  121. data/lib/models/server_meta_version_info.rb +261 -0
  122. data/lib/models/session_key_regenerated_response.rb +102 -0
  123. data/lib/models/sftpdestination_location.rb +135 -0
  124. data/lib/models/size_measurement.rb +93 -0
  125. data/lib/models/software_build_role_options.rb +78 -0
  126. data/lib/models/software_update_news_response.rb +109 -0
  127. data/lib/models/source_basic_info.rb +101 -0
  128. data/lib/models/source_config.rb +202 -0
  129. data/lib/models/source_include_pattern.rb +84 -0
  130. data/lib/models/source_statistics.rb +82 -0
  131. data/lib/models/spanned_destination_location.rb +87 -0
  132. data/lib/models/spanned_storage_extra_info.rb +81 -0
  133. data/lib/models/sshconnection.rb +126 -0
  134. data/lib/models/stat_result.rb +111 -0
  135. data/lib/models/storage_free_space_info.rb +110 -0
  136. data/lib/models/storage_vault_provider_policy.rb +88 -0
  137. data/lib/models/stored_object.rb +238 -0
  138. data/lib/models/streamable_event.rb +92 -0
  139. data/lib/models/swift_destination_location.rb +209 -0
  140. data/lib/models/test_response.rb +90 -0
  141. data/lib/models/totp_regenerated_response.rb +111 -0
  142. data/lib/models/u2fregister_request.rb +85 -0
  143. data/lib/models/u2fregistered_key.rb +94 -0
  144. data/lib/models/u2fregistration_challenge_response.rb +133 -0
  145. data/lib/models/u2fsign_request.rb +109 -0
  146. data/lib/models/u2fsign_response.rb +103 -0
  147. data/lib/models/uninstall_config.rb +78 -0
  148. data/lib/models/update_campaign_device_status.rb +75 -0
  149. data/lib/models/update_campaign_options.rb +113 -0
  150. data/lib/models/update_campaign_properties.rb +128 -0
  151. data/lib/models/update_campaign_status.rb +143 -0
  152. data/lib/models/update_campaign_status_device_entry.rb +93 -0
  153. data/lib/models/user_custom_email_settings.rb +81 -0
  154. data/lib/models/user_on_server.rb +84 -0
  155. data/lib/models/user_policy.rb +339 -0
  156. data/lib/models/user_profile_config.rb +349 -0
  157. data/lib/models/user_profile_fragment.rb +75 -0
  158. data/lib/models/vault_snapshot.rb +99 -0
  159. data/lib/models/vmdksnapshot_view_options.rb +90 -0
  160. data/lib/models/vsscomponent.rb +99 -0
  161. data/lib/models/vsswriter_info.rb +90 -0
  162. data/lib/models/wasabi_virtual_storage_role_settings.rb +93 -0
  163. data/lib/models/web_authn_authenticator_selection.rb +96 -0
  164. data/lib/models/web_authn_credential.rb +105 -0
  165. data/lib/models/web_authn_credential_assertion.rb +74 -0
  166. data/lib/models/web_authn_credential_descriptor.rb +101 -0
  167. data/lib/models/web_authn_credential_entity.rb +86 -0
  168. data/lib/models/web_authn_credential_parameter.rb +84 -0
  169. data/lib/models/web_authn_public_key_credential_creation_options.rb +172 -0
  170. data/lib/models/web_authn_public_key_credential_request_options.rb +140 -0
  171. data/lib/models/web_authn_registration_challenge_response.rb +101 -0
  172. data/lib/models/web_authn_relying_party_entity.rb +95 -0
  173. data/lib/models/web_authn_sign_request.rb +83 -0
  174. data/lib/models/web_authn_sign_response.rb +84 -0
  175. data/lib/models/web_authn_user_entity.rb +105 -0
  176. data/lib/models/web_interface_branding_properties.rb +108 -0
  177. data/lib/models/webhook_option.rb +107 -0
  178. data/lib/models/win_smbauth.rb +102 -0
  179. data/lib/models/windows_code_sign_properties.rb +147 -0
  180. metadata +171 -2
@@ -0,0 +1,128 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UpdateCampaignProperties is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UpdateCampaignProperties
16
+
17
+ # @type [Boolean] active
18
+ attr_accessor :active
19
+
20
+ # @type [Boolean] upgrade_older
21
+ attr_accessor :upgrade_older
22
+
23
+ # @type [Boolean] reinstall_current_ver
24
+ attr_accessor :reinstall_current_ver
25
+
26
+ # @type [Boolean] downgrade_newer
27
+ attr_accessor :downgrade_newer
28
+
29
+ # @type [Boolean] force_upgrade_running
30
+ attr_accessor :force_upgrade_running
31
+
32
+ # @type [Boolean] apply_device_filter
33
+ attr_accessor :apply_device_filter
34
+
35
+ # @type [Comet::SearchClause] device_filter
36
+ attr_accessor :device_filter
37
+
38
+ # @type [Number] start_time
39
+ attr_accessor :start_time
40
+
41
+ # @type [String] target_version
42
+ attr_accessor :target_version
43
+
44
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
45
+ attr_accessor :unknown_json_fields
46
+
47
+ def initialize
48
+ clear
49
+ end
50
+
51
+ def clear
52
+ @device_filter = Comet::SearchClause.new
53
+ @start_time = 0
54
+ @target_version = ''
55
+ @unknown_json_fields = {}
56
+ end
57
+
58
+ # @param [String] json_string The complete object in JSON format
59
+ def from_json(json_string)
60
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
61
+
62
+ from_hash(JSON.parse(json_string))
63
+ end
64
+
65
+ # @param [Hash] obj The complete object as a Ruby hash
66
+ def from_hash(obj)
67
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
68
+
69
+ obj.each do |k, v|
70
+ case k
71
+ when 'Active'
72
+ @active = v
73
+ when 'UpgradeOlder'
74
+ @upgrade_older = v
75
+ when 'ReinstallCurrentVer'
76
+ @reinstall_current_ver = v
77
+ when 'DowngradeNewer'
78
+ @downgrade_newer = v
79
+ when 'ForceUpgradeRunning'
80
+ @force_upgrade_running = v
81
+ when 'ApplyDeviceFilter'
82
+ @apply_device_filter = v
83
+ when 'DeviceFilter'
84
+ @device_filter = Comet::SearchClause.new
85
+ @device_filter.from_hash(v)
86
+ when 'StartTime'
87
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
88
+
89
+ @start_time = v
90
+ when 'TargetVersion'
91
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
92
+
93
+ @target_version = v
94
+ else
95
+ @unknown_json_fields[k] = v
96
+ end
97
+ end
98
+ end
99
+
100
+ # @return [Hash] The complete object as a Ruby hash
101
+ def to_hash
102
+ ret = {}
103
+ ret['Active'] = @active
104
+ ret['UpgradeOlder'] = @upgrade_older
105
+ ret['ReinstallCurrentVer'] = @reinstall_current_ver
106
+ ret['DowngradeNewer'] = @downgrade_newer
107
+ ret['ForceUpgradeRunning'] = @force_upgrade_running
108
+ ret['ApplyDeviceFilter'] = @apply_device_filter
109
+ ret['DeviceFilter'] = @device_filter
110
+ ret['StartTime'] = @start_time
111
+ ret['TargetVersion'] = @target_version
112
+ @unknown_json_fields.each do |k, v|
113
+ ret[k] = v
114
+ end
115
+ ret
116
+ end
117
+
118
+ # @return [Hash] The complete object as a Ruby hash
119
+ def to_h
120
+ to_hash
121
+ end
122
+
123
+ # @return [String] The complete object as a JSON string
124
+ def to_json(options = {})
125
+ to_hash.to_json(options)
126
+ end
127
+ end
128
+ end
@@ -0,0 +1,143 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UpdateCampaignStatus is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UpdateCampaignStatus
16
+
17
+ # @type [Boolean] active
18
+ attr_accessor :active
19
+
20
+ # @type [Boolean] upgrade_older
21
+ attr_accessor :upgrade_older
22
+
23
+ # @type [Boolean] reinstall_current_ver
24
+ attr_accessor :reinstall_current_ver
25
+
26
+ # @type [Boolean] downgrade_newer
27
+ attr_accessor :downgrade_newer
28
+
29
+ # @type [Boolean] force_upgrade_running
30
+ attr_accessor :force_upgrade_running
31
+
32
+ # @type [Boolean] apply_device_filter
33
+ attr_accessor :apply_device_filter
34
+
35
+ # @type [Comet::SearchClause] device_filter
36
+ attr_accessor :device_filter
37
+
38
+ # @type [Number] start_time
39
+ attr_accessor :start_time
40
+
41
+ # @type [String] target_version
42
+ attr_accessor :target_version
43
+
44
+ # @type [Array<Comet::UpdateCampaignStatusDeviceEntry>] devices
45
+ attr_accessor :devices
46
+
47
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
48
+ attr_accessor :unknown_json_fields
49
+
50
+ def initialize
51
+ clear
52
+ end
53
+
54
+ def clear
55
+ @device_filter = Comet::SearchClause.new
56
+ @start_time = 0
57
+ @target_version = ''
58
+ @devices = []
59
+ @unknown_json_fields = {}
60
+ end
61
+
62
+ # @param [String] json_string The complete object in JSON format
63
+ def from_json(json_string)
64
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
65
+
66
+ from_hash(JSON.parse(json_string))
67
+ end
68
+
69
+ # @param [Hash] obj The complete object as a Ruby hash
70
+ def from_hash(obj)
71
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
72
+
73
+ obj.each do |k, v|
74
+ case k
75
+ when 'Active'
76
+ @active = v
77
+ when 'UpgradeOlder'
78
+ @upgrade_older = v
79
+ when 'ReinstallCurrentVer'
80
+ @reinstall_current_ver = v
81
+ when 'DowngradeNewer'
82
+ @downgrade_newer = v
83
+ when 'ForceUpgradeRunning'
84
+ @force_upgrade_running = v
85
+ when 'ApplyDeviceFilter'
86
+ @apply_device_filter = v
87
+ when 'DeviceFilter'
88
+ @device_filter = Comet::SearchClause.new
89
+ @device_filter.from_hash(v)
90
+ when 'StartTime'
91
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
92
+
93
+ @start_time = v
94
+ when 'TargetVersion'
95
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
96
+
97
+ @target_version = v
98
+ when 'Devices'
99
+ if v.nil?
100
+ @devices = []
101
+ else
102
+ @devices = Array.new(v.length)
103
+ v.each_with_index do |v1, i1|
104
+ @devices[i1] = Comet::UpdateCampaignStatusDeviceEntry.new
105
+ @devices[i1].from_hash(v1)
106
+ end
107
+ end
108
+ else
109
+ @unknown_json_fields[k] = v
110
+ end
111
+ end
112
+ end
113
+
114
+ # @return [Hash] The complete object as a Ruby hash
115
+ def to_hash
116
+ ret = {}
117
+ ret['Active'] = @active
118
+ ret['UpgradeOlder'] = @upgrade_older
119
+ ret['ReinstallCurrentVer'] = @reinstall_current_ver
120
+ ret['DowngradeNewer'] = @downgrade_newer
121
+ ret['ForceUpgradeRunning'] = @force_upgrade_running
122
+ ret['ApplyDeviceFilter'] = @apply_device_filter
123
+ ret['DeviceFilter'] = @device_filter
124
+ ret['StartTime'] = @start_time
125
+ ret['TargetVersion'] = @target_version
126
+ ret['Devices'] = @devices
127
+ @unknown_json_fields.each do |k, v|
128
+ ret[k] = v
129
+ end
130
+ ret
131
+ end
132
+
133
+ # @return [Hash] The complete object as a Ruby hash
134
+ def to_h
135
+ to_hash
136
+ end
137
+
138
+ # @return [String] The complete object as a JSON string
139
+ def to_json(options = {})
140
+ to_hash.to_json(options)
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UpdateCampaignStatusDeviceEntry is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UpdateCampaignStatusDeviceEntry
16
+
17
+ # @type [String] username
18
+ attr_accessor :username
19
+
20
+ # @type [String] device_id
21
+ attr_accessor :device_id
22
+
23
+ # @type [Number] status
24
+ attr_accessor :status
25
+
26
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
27
+ attr_accessor :unknown_json_fields
28
+
29
+ def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @username = ''
35
+ @device_id = ''
36
+ @status = 0
37
+ @unknown_json_fields = {}
38
+ end
39
+
40
+ # @param [String] json_string The complete object in JSON format
41
+ def from_json(json_string)
42
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
+
44
+ from_hash(JSON.parse(json_string))
45
+ end
46
+
47
+ # @param [Hash] obj The complete object as a Ruby hash
48
+ def from_hash(obj)
49
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
+
51
+ obj.each do |k, v|
52
+ case k
53
+ when 'Username'
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
+
56
+ @username = v
57
+ when 'DeviceID'
58
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @device_id = v
61
+ when 'Status'
62
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
64
+ @status = v
65
+ else
66
+ @unknown_json_fields[k] = v
67
+ end
68
+ end
69
+ end
70
+
71
+ # @return [Hash] The complete object as a Ruby hash
72
+ def to_hash
73
+ ret = {}
74
+ ret['Username'] = @username
75
+ ret['DeviceID'] = @device_id
76
+ ret['Status'] = @status
77
+ @unknown_json_fields.each do |k, v|
78
+ ret[k] = v
79
+ end
80
+ ret
81
+ end
82
+
83
+ # @return [Hash] The complete object as a Ruby hash
84
+ def to_h
85
+ to_hash
86
+ end
87
+
88
+ # @return [String] The complete object as a JSON string
89
+ def to_json(options = {})
90
+ to_hash.to_json(options)
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,81 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UserCustomEmailSettings is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UserCustomEmailSettings
16
+
17
+ # @type [Array<Comet::EmailReportConfig>] reports
18
+ attr_accessor :reports
19
+
20
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
21
+ attr_accessor :unknown_json_fields
22
+
23
+ def initialize
24
+ clear
25
+ end
26
+
27
+ def clear
28
+ @reports = []
29
+ @unknown_json_fields = {}
30
+ end
31
+
32
+ # @param [String] json_string The complete object in JSON format
33
+ def from_json(json_string)
34
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
35
+
36
+ from_hash(JSON.parse(json_string))
37
+ end
38
+
39
+ # @param [Hash] obj The complete object as a Ruby hash
40
+ def from_hash(obj)
41
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
42
+
43
+ obj.each do |k, v|
44
+ case k
45
+ when 'Reports'
46
+ if v.nil?
47
+ @reports = []
48
+ else
49
+ @reports = Array.new(v.length)
50
+ v.each_with_index do |v1, i1|
51
+ @reports[i1] = Comet::EmailReportConfig.new
52
+ @reports[i1].from_hash(v1)
53
+ end
54
+ end
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['Reports'] = @reports
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,84 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+ #
8
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # UserOnServer is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class UserOnServer
16
+
17
+ # @type [Number] server_id
18
+ attr_accessor :server_id
19
+
20
+ # @type [String] username
21
+ attr_accessor :username
22
+
23
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
24
+ attr_accessor :unknown_json_fields
25
+
26
+ def initialize
27
+ clear
28
+ end
29
+
30
+ def clear
31
+ @server_id = 0
32
+ @username = ''
33
+ @unknown_json_fields = {}
34
+ end
35
+
36
+ # @param [String] json_string The complete object in JSON format
37
+ def from_json(json_string)
38
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
39
+
40
+ from_hash(JSON.parse(json_string))
41
+ end
42
+
43
+ # @param [Hash] obj The complete object as a Ruby hash
44
+ def from_hash(obj)
45
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
+
47
+ obj.each do |k, v|
48
+ case k
49
+ when 'ServerID'
50
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
51
+
52
+ @server_id = v
53
+ when 'Username'
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
+
56
+ @username = v
57
+ else
58
+ @unknown_json_fields[k] = v
59
+ end
60
+ end
61
+ end
62
+
63
+ # @return [Hash] The complete object as a Ruby hash
64
+ def to_hash
65
+ ret = {}
66
+ ret['ServerID'] = @server_id
67
+ ret['Username'] = @username
68
+ @unknown_json_fields.each do |k, v|
69
+ ret[k] = v
70
+ end
71
+ ret
72
+ end
73
+
74
+ # @return [Hash] The complete object as a Ruby hash
75
+ def to_h
76
+ to_hash
77
+ end
78
+
79
+ # @return [String] The complete object as a JSON string
80
+ def to_json(options = {})
81
+ to_hash.to_json(options)
82
+ end
83
+ end
84
+ end