comet_backup_ruby_sdk 1.4.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +5 -0
  3. data/CHANGELOG.md +40 -0
  4. data/Gemfile.lock +2 -2
  5. data/RELEASING.md +6 -4
  6. data/comet_backup_ruby_sdk.gemspec +1 -1
  7. data/lib/comet/api_response_error.rb +0 -0
  8. data/lib/comet/comet_server.rb +227 -2
  9. data/lib/comet/definitions.rb +68 -5
  10. data/lib/comet/models/add_bucket_response_message.rb +0 -0
  11. data/lib/comet/models/admin_account_properties_response.rb +0 -0
  12. data/lib/comet/models/admin_email_options.rb +0 -0
  13. data/lib/comet/models/admin_resource_response.rb +0 -0
  14. data/lib/comet/models/admin_security_options.rb +0 -0
  15. data/lib/comet/models/admin_u2fregistration.rb +0 -0
  16. data/lib/comet/models/admin_user_permissions.rb +0 -0
  17. data/lib/comet/models/available_download.rb +0 -0
  18. data/lib/comet/models/azure_destination_location.rb +0 -0
  19. data/lib/comet/models/b2destination_location.rb +0 -0
  20. data/lib/comet/models/b2storage_extra_info.rb +0 -0
  21. data/lib/comet/models/b2transaction_totals.rb +0 -0
  22. data/lib/comet/models/b2virtual_storage_role_settings.rb +0 -0
  23. data/lib/comet/models/backup_job_advanced_options.rb +0 -0
  24. data/lib/comet/models/backup_job_detail.rb +33 -0
  25. data/lib/comet/models/backup_job_progress.rb +0 -0
  26. data/lib/comet/models/backup_rule_config.rb +0 -0
  27. data/lib/comet/models/backup_rule_event_triggers.rb +0 -0
  28. data/lib/comet/models/branding_options.rb +9 -0
  29. data/lib/comet/models/branding_properties.rb +9 -0
  30. data/lib/comet/models/browse_disk_drives_response.rb +0 -0
  31. data/lib/comet/models/browse_edbresponse.rb +0 -0
  32. data/lib/comet/models/browse_hvresponse.rb +0 -0
  33. data/lib/comet/models/browse_office_365objects_response.rb +99 -0
  34. data/lib/comet/models/browse_sqlserver_response.rb +100 -0
  35. data/lib/comet/models/browse_vssresponse.rb +0 -0
  36. data/lib/comet/models/bucket_properties.rb +0 -0
  37. data/lib/comet/models/bucket_usage_info.rb +0 -0
  38. data/lib/comet/models/comet_apiresponse_message.rb +0 -0
  39. data/lib/comet/models/comet_destination_location.rb +0 -0
  40. data/lib/comet/models/constellation_check_report.rb +0 -0
  41. data/lib/comet/models/constellation_stats.rb +0 -0
  42. data/lib/comet/models/constellation_status_apiresponse.rb +0 -0
  43. data/lib/comet/models/content_measurement.rb +0 -0
  44. data/lib/comet/models/content_measurement_component.rb +0 -0
  45. data/lib/comet/models/create_group_policy_response.rb +0 -0
  46. data/lib/comet/models/custom_remote_bucket_settings.rb +0 -0
  47. data/lib/comet/models/default_email_report_policy.rb +0 -0
  48. data/lib/comet/models/default_source_with_osrestriction.rb +83 -0
  49. data/lib/comet/models/destination_config.rb +0 -0
  50. data/lib/comet/models/destination_location.rb +0 -0
  51. data/lib/comet/models/destination_statistics.rb +0 -0
  52. data/lib/comet/models/device_config.rb +11 -0
  53. data/lib/comet/models/disk_drive.rb +0 -0
  54. data/lib/comet/models/dispatcher_admin_sources_response.rb +0 -0
  55. data/lib/comet/models/dispatcher_stored_objects_response.rb +0 -0
  56. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +0 -0
  57. data/lib/comet/models/edbfile_info.rb +0 -0
  58. data/lib/comet/models/email_options.rb +0 -0
  59. data/lib/comet/models/email_report_config.rb +0 -0
  60. data/lib/comet/models/email_report_generated_preview.rb +0 -0
  61. data/lib/comet/models/external_ldapauthentication_source_settings.rb +0 -0
  62. data/lib/comet/models/extra_file_exclusion.rb +0 -0
  63. data/lib/comet/models/ftpdestination_location.rb +0 -0
  64. data/lib/comet/models/get_group_policy_response.rb +0 -0
  65. data/lib/comet/models/get_profile_and_hash_response_message.rb +0 -0
  66. data/lib/comet/models/get_profile_hash_response_message.rb +0 -0
  67. data/lib/comet/models/group_policy.rb +0 -0
  68. data/lib/comet/models/hyper_vmachine_info.rb +0 -0
  69. data/lib/comet/models/install_creds.rb +0 -0
  70. data/lib/comet/models/install_token.rb +0 -0
  71. data/lib/comet/models/install_token_response.rb +0 -0
  72. data/lib/comet/models/job_entry.rb +0 -0
  73. data/lib/comet/models/live_user_connection.rb +11 -0
  74. data/lib/comet/models/local_destination_location.rb +0 -0
  75. data/lib/comet/models/mac_oscode_sign_properties.rb +0 -0
  76. data/lib/comet/models/mongo_dbconnection.rb +0 -0
  77. data/lib/comet/models/mssqlconnection.rb +120 -0
  78. data/lib/comet/models/my_sqlconnection.rb +102 -0
  79. data/lib/comet/models/new_bucket_detail.rb +0 -0
  80. data/lib/comet/models/news_entry.rb +0 -0
  81. data/lib/comet/models/office_365connection.rb +123 -0
  82. data/lib/comet/models/office_365credential.rb +111 -0
  83. data/lib/comet/models/office_365custom_setting.rb +132 -0
  84. data/lib/comet/models/office_365object_info.rb +118 -0
  85. data/lib/comet/models/organization.rb +6 -0
  86. data/lib/comet/models/organization_response.rb +0 -0
  87. data/lib/comet/models/osinfo.rb +0 -0
  88. data/lib/comet/models/partition.rb +0 -0
  89. data/lib/comet/models/private_branding_properties.rb +9 -0
  90. data/lib/comet/models/protected_item_engine_type_policy.rb +0 -0
  91. data/lib/comet/models/public_branding_properties.rb +0 -0
  92. data/lib/comet/models/register_office_application_begin_response.rb +93 -0
  93. data/lib/comet/models/register_office_application_check_response.rb +100 -0
  94. data/lib/comet/models/remote_server_address.rb +0 -0
  95. data/lib/comet/models/remote_storage_option.rb +0 -0
  96. data/lib/comet/models/replicator_state_apiresponse.rb +0 -0
  97. data/lib/comet/models/request_storage_vault_response_message.rb +0 -0
  98. data/lib/comet/models/restore_job_advanced_options.rb +10 -0
  99. data/lib/comet/models/retention_policy.rb +0 -0
  100. data/lib/comet/models/retention_range.rb +0 -0
  101. data/lib/comet/models/s3destination_location.rb +0 -0
  102. data/lib/comet/models/schedule_config.rb +0 -0
  103. data/lib/comet/models/search_clause.rb +0 -0
  104. data/lib/comet/models/self_backup_statistics.rb +108 -0
  105. data/lib/comet/models/server_config_options_branding_fragment.rb +0 -0
  106. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +0 -0
  107. data/lib/comet/models/server_meta_branding_properties.rb +135 -0
  108. data/lib/comet/models/server_meta_version_info.rb +15 -0
  109. data/lib/comet/models/session_key_regenerated_response.rb +0 -0
  110. data/lib/comet/models/sftpdestination_location.rb +0 -0
  111. data/lib/comet/models/size_measurement.rb +0 -0
  112. data/lib/comet/models/software_build_role_options.rb +0 -0
  113. data/lib/comet/models/software_update_news_response.rb +0 -0
  114. data/lib/comet/models/source_basic_info.rb +0 -0
  115. data/lib/comet/models/source_config.rb +0 -0
  116. data/lib/comet/models/source_include_pattern.rb +84 -0
  117. data/lib/comet/models/source_statistics.rb +8 -0
  118. data/lib/comet/models/spanned_destination_location.rb +0 -0
  119. data/lib/comet/models/spanned_storage_extra_info.rb +0 -0
  120. data/lib/comet/models/sshconnection.rb +0 -0
  121. data/lib/comet/models/stat_result.rb +0 -0
  122. data/lib/comet/models/storage_free_space_info.rb +0 -0
  123. data/lib/comet/models/storage_vault_provider_policy.rb +0 -0
  124. data/lib/comet/models/stored_object.rb +85 -0
  125. data/lib/comet/models/streamable_event.rb +0 -0
  126. data/lib/comet/models/swift_destination_location.rb +0 -0
  127. data/lib/comet/models/test_response.rb +0 -0
  128. data/lib/comet/models/totp_regenerated_response.rb +0 -0
  129. data/lib/comet/models/u2fregister_request.rb +0 -0
  130. data/lib/comet/models/u2fregistered_key.rb +0 -0
  131. data/lib/comet/models/u2fregistration_challenge_response.rb +0 -0
  132. data/lib/comet/models/u2fsign_request.rb +0 -0
  133. data/lib/comet/models/u2fsign_response.rb +0 -0
  134. data/lib/comet/models/uninstall_config.rb +0 -0
  135. data/lib/comet/models/update_campaign_device_status.rb +0 -0
  136. data/lib/comet/models/update_campaign_options.rb +0 -0
  137. data/lib/comet/models/update_campaign_properties.rb +0 -0
  138. data/lib/comet/models/update_campaign_status.rb +0 -0
  139. data/lib/comet/models/update_campaign_status_device_entry.rb +0 -0
  140. data/lib/comet/models/user_custom_email_settings.rb +0 -0
  141. data/lib/comet/models/user_on_server.rb +0 -0
  142. data/lib/comet/models/user_policy.rb +15 -0
  143. data/lib/comet/models/user_profile_config.rb +0 -0
  144. data/lib/comet/models/user_profile_fragment.rb +0 -0
  145. data/lib/comet/models/vault_snapshot.rb +0 -0
  146. data/lib/comet/models/vsscomponent.rb +0 -0
  147. data/lib/comet/models/vsswriter_info.rb +0 -0
  148. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +0 -0
  149. data/lib/comet/models/web_interface_branding_properties.rb +0 -0
  150. data/lib/comet/models/webhook_option.rb +16 -0
  151. data/lib/comet/models/win_smbauth.rb +0 -0
  152. data/lib/comet/models/windows_code_sign_properties.rb +0 -0
  153. data/lib/comet_backup_ruby_sdk.rb +14 -0
  154. metadata +17 -3
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -65,6 +65,15 @@ module Comet
65
65
  # @type [Number] download_size
66
66
  attr_accessor :download_size
67
67
 
68
+ # @type [Number] total_mails_count
69
+ attr_accessor :total_mails_count
70
+
71
+ # @type [Number] total_sites_count
72
+ attr_accessor :total_sites_count
73
+
74
+ # @type [Number] total_accounts_count
75
+ attr_accessor :total_accounts_count
76
+
68
77
  # @type [String] cancellation_id
69
78
  attr_accessor :cancellation_id
70
79
 
@@ -96,6 +105,9 @@ module Comet
96
105
  @total_chunks = 0
97
106
  @upload_size = 0
98
107
  @download_size = 0
108
+ @total_mails_count = 0
109
+ @total_sites_count = 0
110
+ @total_accounts_count = 0
99
111
  @cancellation_id = ''
100
112
  @progress = Comet::BackupJobProgress.new
101
113
  @unknown_json_fields = {}
@@ -182,6 +194,18 @@ module Comet
182
194
  raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
183
195
 
184
196
  @download_size = v
197
+ when 'TotalMailsCount'
198
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
199
+
200
+ @total_mails_count = v
201
+ when 'TotalSitesCount'
202
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
203
+
204
+ @total_sites_count = v
205
+ when 'TotalAccountsCount'
206
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
207
+
208
+ @total_accounts_count = v
185
209
  when 'CancellationID'
186
210
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
187
211
 
@@ -217,6 +241,15 @@ module Comet
217
241
  ret['TotalChunks'] = @total_chunks
218
242
  ret['UploadSize'] = @upload_size
219
243
  ret['DownloadSize'] = @download_size
244
+ unless @total_mails_count.nil?
245
+ ret['TotalMailsCount'] = @total_mails_count
246
+ end
247
+ unless @total_sites_count.nil?
248
+ ret['TotalSitesCount'] = @total_sites_count
249
+ end
250
+ unless @total_accounts_count.nil?
251
+ ret['TotalAccountsCount'] = @total_accounts_count
252
+ end
220
253
  unless @cancellation_id.nil?
221
254
  ret['CancellationID'] = @cancellation_id
222
255
  end
File without changes
File without changes
File without changes
@@ -59,6 +59,9 @@ module Comet
59
59
  # @type [String] path_icns_file
60
60
  attr_accessor :path_icns_file
61
61
 
62
+ # @type [String] path_menu_bar_icns_file
63
+ attr_accessor :path_menu_bar_icns_file
64
+
62
65
  # @type [String] path_eula_rtf
63
66
  attr_accessor :path_eula_rtf
64
67
 
@@ -121,6 +124,7 @@ module Comet
121
124
  @account_register_url = ''
122
125
  @path_ico_file = ''
123
126
  @path_icns_file = ''
127
+ @path_menu_bar_icns_file = ''
124
128
  @path_eula_rtf = ''
125
129
  @path_tile_png = ''
126
130
  @path_header_image = ''
@@ -205,6 +209,10 @@ module Comet
205
209
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
206
210
 
207
211
  @path_icns_file = v
212
+ when 'PathMenuBarIcnsFile'
213
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
214
+
215
+ @path_menu_bar_icns_file = v
208
216
  when 'PathEulaRtf'
209
217
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
210
218
 
@@ -284,6 +292,7 @@ module Comet
284
292
  ret['HideBackgroundLogo'] = @hide_background_logo
285
293
  ret['PathIcoFile'] = @path_ico_file
286
294
  ret['PathIcnsFile'] = @path_icns_file
295
+ ret['PathMenuBarIcnsFile'] = @path_menu_bar_icns_file
287
296
  ret['PathEulaRtf'] = @path_eula_rtf
288
297
  ret['PathTilePng'] = @path_tile_png
289
298
  ret['PathHeaderImage'] = @path_header_image
@@ -44,6 +44,9 @@ module Comet
44
44
  # @type [String] path_icns_file
45
45
  attr_accessor :path_icns_file
46
46
 
47
+ # @type [String] path_menu_bar_icns_file
48
+ attr_accessor :path_menu_bar_icns_file
49
+
47
50
  # @type [String] path_eula_rtf
48
51
  attr_accessor :path_eula_rtf
49
52
 
@@ -102,6 +105,7 @@ module Comet
102
105
  @account_register_url = ''
103
106
  @path_ico_file = ''
104
107
  @path_icns_file = ''
108
+ @path_menu_bar_icns_file = ''
105
109
  @path_eula_rtf = ''
106
110
  @path_tile_png = ''
107
111
  @path_header_image = ''
@@ -168,6 +172,10 @@ module Comet
168
172
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
169
173
 
170
174
  @path_icns_file = v
175
+ when 'PathMenuBarIcnsFile'
176
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
177
+
178
+ @path_menu_bar_icns_file = v
171
179
  when 'PathEulaRtf'
172
180
  raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
173
181
 
@@ -242,6 +250,7 @@ module Comet
242
250
  ret['HideBackgroundLogo'] = @hide_background_logo
243
251
  ret['PathIcoFile'] = @path_ico_file
244
252
  ret['PathIcnsFile'] = @path_icns_file
253
+ ret['PathMenuBarIcnsFile'] = @path_menu_bar_icns_file
245
254
  ret['PathEulaRtf'] = @path_eula_rtf
246
255
  ret['PathTilePng'] = @path_tile_png
247
256
  ret['PathHeaderImage'] = @path_header_image
File without changes
File without changes
File without changes
@@ -0,0 +1,99 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 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
+ # BrowseOffice365ObjectsResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class BrowseOffice365ObjectsResponse
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
22
+
23
+ # @type [Array<Comet::Office365ObjectInfo>] objects
24
+ attr_accessor :objects
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
+ @status = 0
35
+ @message = ''
36
+ @objects = []
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 'Status'
54
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
56
+ @status = v
57
+ when 'Message'
58
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @message = v
61
+ when 'Objects'
62
+ if v.nil?
63
+ @objects = []
64
+ else
65
+ @objects = Array.new(v.length)
66
+ v.each_with_index do |v1, i1|
67
+ @objects[i1] = Comet::Office365ObjectInfo.new
68
+ @objects[i1].from_hash(v1)
69
+ end
70
+ end
71
+ else
72
+ @unknown_json_fields[k] = v
73
+ end
74
+ end
75
+ end
76
+
77
+ # @return [Hash] The complete object as a Ruby hash
78
+ def to_hash
79
+ ret = {}
80
+ ret['Status'] = @status
81
+ ret['Message'] = @message
82
+ ret['Objects'] = @objects
83
+ @unknown_json_fields.each do |k, v|
84
+ ret[k] = v
85
+ end
86
+ ret
87
+ end
88
+
89
+ # @return [Hash] The complete object as a Ruby hash
90
+ def to_h
91
+ to_hash
92
+ end
93
+
94
+ # @return [String] The complete object as a JSON string
95
+ def to_json(options = {})
96
+ to_hash.to_json(options)
97
+ end
98
+ end
99
+ end
@@ -0,0 +1,100 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 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
+ # BrowseSQLServerResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class BrowseSQLServerResponse
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
22
+
23
+ # @type [Hash{String => String}] objects
24
+ attr_accessor :objects
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
+ @status = 0
35
+ @message = ''
36
+ @objects = {}
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 'Status'
54
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
56
+ @status = v
57
+ when 'Message'
58
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @message = v
61
+ when 'Objects'
62
+ @objects = {}
63
+ if v.nil?
64
+ @objects = {}
65
+ else
66
+ v.each do |k1, v1|
67
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
68
+
69
+ @objects[k1] = v1
70
+ end
71
+ end
72
+ else
73
+ @unknown_json_fields[k] = v
74
+ end
75
+ end
76
+ end
77
+
78
+ # @return [Hash] The complete object as a Ruby hash
79
+ def to_hash
80
+ ret = {}
81
+ ret['Status'] = @status
82
+ ret['Message'] = @message
83
+ ret['Objects'] = @objects
84
+ @unknown_json_fields.each do |k, v|
85
+ ret[k] = v
86
+ end
87
+ ret
88
+ end
89
+
90
+ # @return [Hash] The complete object as a Ruby hash
91
+ def to_h
92
+ to_hash
93
+ end
94
+
95
+ # @return [String] The complete object as a JSON string
96
+ def to_json(options = {})
97
+ to_hash.to_json(options)
98
+ end
99
+ end
100
+ end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2021 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
+ # DefaultSourceWithOSRestriction is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class DefaultSourceWithOSRestriction
16
+
17
+ # @type [Comet::SourceConfig] source_config
18
+ attr_accessor :source_config
19
+
20
+ # @type [Number] restrict_os
21
+ attr_accessor :restrict_os
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
+ @source_config = Comet::SourceConfig.new
32
+ @restrict_os = 0
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 'SourceConfig'
50
+ @source_config = Comet::SourceConfig.new
51
+ @source_config.from_hash(v)
52
+ when 'RestrictOS'
53
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
54
+
55
+ @restrict_os = v
56
+ else
57
+ @unknown_json_fields[k] = v
58
+ end
59
+ end
60
+ end
61
+
62
+ # @return [Hash] The complete object as a Ruby hash
63
+ def to_hash
64
+ ret = {}
65
+ ret['SourceConfig'] = @source_config
66
+ ret['RestrictOS'] = @restrict_os
67
+ @unknown_json_fields.each do |k, v|
68
+ ret[k] = v
69
+ end
70
+ ret
71
+ end
72
+
73
+ # @return [Hash] The complete object as a Ruby hash
74
+ def to_h
75
+ to_hash
76
+ end
77
+
78
+ # @return [String] The complete object as a JSON string
79
+ def to_json(options = {})
80
+ to_hash.to_json(options)
81
+ end
82
+ end
83
+ end