comet_backup_ruby_sdk 0.2.0 → 1.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 (138) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +47 -0
  3. data/Gemfile.lock +43 -0
  4. data/README.md +20 -4
  5. data/RELEASING.md +10 -0
  6. data/comet_backup_ruby_sdk.gemspec +1 -1
  7. data/lib/comet/comet_server.rb +562 -254
  8. data/lib/comet/definitions.rb +19 -4
  9. data/lib/comet/models/add_bucket_response_message.rb +15 -5
  10. data/lib/comet/models/admin_account_properties_response.rb +17 -2
  11. data/lib/comet/models/admin_email_options.rb +84 -0
  12. data/lib/comet/models/admin_resource_response.rb +13 -4
  13. data/lib/comet/models/admin_security_options.rb +18 -5
  14. data/lib/comet/models/admin_u2fregistration.rb +11 -3
  15. data/lib/comet/models/admin_user_permissions.rb +6 -2
  16. data/lib/comet/models/available_download.rb +10 -4
  17. data/lib/comet/models/azure_destination_location.rb +16 -7
  18. data/lib/comet/models/b2destination_location.rb +17 -6
  19. data/lib/comet/models/b2storage_extra_info.rb +6 -2
  20. data/lib/comet/models/b2transaction_totals.rb +15 -2
  21. data/lib/comet/models/b2virtual_storage_role_settings.rb +93 -0
  22. data/lib/comet/models/backup_job_advanced_options.rb +12 -2
  23. data/lib/comet/models/backup_job_detail.rb +53 -10
  24. data/lib/comet/models/backup_job_progress.rb +21 -2
  25. data/lib/comet/models/backup_rule_config.rb +43 -7
  26. data/lib/comet/models/backup_rule_event_triggers.rb +6 -2
  27. data/lib/comet/models/branding_options.rb +59 -25
  28. data/lib/comet/models/branding_properties.rb +51 -21
  29. data/lib/comet/models/browse_disk_drives_response.rb +11 -3
  30. data/lib/comet/models/browse_edbresponse.rb +11 -3
  31. data/lib/comet/models/browse_hvresponse.rb +11 -3
  32. data/lib/comet/models/browse_vssresponse.rb +11 -3
  33. data/lib/comet/models/bucket_properties.rb +24 -3
  34. data/lib/comet/models/bucket_usage_info.rb +8 -2
  35. data/lib/comet/models/comet_apiresponse_message.rb +11 -3
  36. data/lib/comet/models/comet_destination_location.rb +12 -5
  37. data/lib/comet/models/constellation_check_report.rb +12 -2
  38. data/lib/comet/models/constellation_stats.rb +18 -2
  39. data/lib/comet/models/constellation_status_apiresponse.rb +9 -4
  40. data/lib/comet/models/content_measurement.rb +12 -2
  41. data/lib/comet/models/content_measurement_component.rb +10 -3
  42. data/lib/comet/models/create_group_policy_response.rb +13 -4
  43. data/lib/comet/models/default_email_report_policy.rb +6 -2
  44. data/lib/comet/models/destination_config.rb +123 -32
  45. data/lib/comet/models/destination_location.rb +78 -28
  46. data/lib/comet/models/destination_statistics.rb +16 -3
  47. data/lib/comet/models/device_config.rb +9 -3
  48. data/lib/comet/models/disk_drive.rb +34 -7
  49. data/lib/comet/models/dispatcher_admin_sources_response.rb +12 -4
  50. data/lib/comet/models/dispatcher_stored_objects_response.rb +11 -3
  51. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +11 -3
  52. data/lib/comet/models/edbfile_info.rb +12 -5
  53. data/lib/comet/models/email_options.rb +21 -8
  54. data/lib/comet/models/email_report_config.rb +10 -2
  55. data/lib/comet/models/email_report_generated_preview.rb +17 -6
  56. data/lib/comet/models/external_ldapauthentication_source_settings.rb +102 -0
  57. data/lib/comet/models/extra_file_exclusion.rb +11 -3
  58. data/lib/comet/models/ftpdestination_location.rb +23 -6
  59. data/lib/comet/models/get_group_policy_response.rb +14 -4
  60. data/lib/comet/models/get_profile_and_hash_response_message.rb +14 -4
  61. data/lib/comet/models/get_profile_hash_response_message.rb +13 -4
  62. data/lib/comet/models/group_policy.rb +18 -3
  63. data/lib/comet/models/hyper_vmachine_info.rb +10 -4
  64. data/lib/comet/models/install_creds.rb +99 -0
  65. data/lib/comet/models/install_token.rb +117 -0
  66. data/lib/comet/models/install_token_response.rb +92 -0
  67. data/lib/comet/models/job_entry.rb +93 -0
  68. data/lib/comet/models/live_user_connection.rb +20 -7
  69. data/lib/comet/models/local_destination_location.rb +15 -5
  70. data/lib/comet/models/mac_oscode_sign_properties.rb +21 -6
  71. data/lib/comet/models/mongo_dbconnection.rb +33 -14
  72. data/lib/comet/models/new_bucket_detail.rb +10 -4
  73. data/lib/comet/models/news_entry.rb +20 -3
  74. data/lib/comet/models/organization.rb +145 -0
  75. data/lib/comet/models/organization_response.rb +101 -0
  76. data/lib/comet/models/osinfo.rb +12 -5
  77. data/lib/comet/models/partition.rb +32 -8
  78. data/lib/comet/models/private_branding_properties.rb +39 -15
  79. data/lib/comet/models/protected_item_engine_type_policy.rb +7 -3
  80. data/lib/comet/models/public_branding_properties.rb +18 -8
  81. data/lib/comet/models/remote_server_address.rb +19 -7
  82. data/lib/comet/models/remote_storage_option.rb +28 -7
  83. data/lib/comet/models/replicator_state_apiresponse.rb +40 -4
  84. data/lib/comet/models/request_storage_vault_response_message.rb +13 -4
  85. data/lib/comet/models/restore_job_advanced_options.rb +15 -4
  86. data/lib/comet/models/retention_policy.rb +9 -2
  87. data/lib/comet/models/retention_range.rb +30 -2
  88. data/lib/comet/models/s3destination_location.rb +16 -7
  89. data/lib/comet/models/schedule_config.rb +15 -2
  90. data/lib/comet/models/search_clause.rb +14 -6
  91. data/lib/comet/models/server_config_options_branding_fragment.rb +7 -2
  92. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +7 -2
  93. data/lib/comet/models/server_meta_version_info.rb +45 -7
  94. data/lib/comet/models/session_key_regenerated_response.rb +15 -5
  95. data/lib/comet/models/sftpdestination_location.rb +21 -8
  96. data/lib/comet/models/size_measurement.rb +15 -2
  97. data/lib/comet/models/software_build_role_options.rb +6 -2
  98. data/lib/comet/models/software_update_news_response.rb +13 -6
  99. data/lib/comet/models/source_basic_info.rb +11 -3
  100. data/lib/comet/models/source_config.rb +38 -8
  101. data/lib/comet/models/source_statistics.rb +7 -2
  102. data/lib/comet/models/spanned_destination_location.rb +6 -2
  103. data/lib/comet/models/spanned_storage_extra_info.rb +6 -2
  104. data/lib/comet/models/sshconnection.rb +19 -7
  105. data/lib/comet/models/stat_result.rb +18 -2
  106. data/lib/comet/models/storage_free_space_info.rb +14 -2
  107. data/lib/comet/models/storage_vault_provider_policy.rb +8 -2
  108. data/lib/comet/models/stored_object.rb +27 -5
  109. data/lib/comet/models/streamable_event.rb +18 -2
  110. data/lib/comet/models/swift_destination_location.rb +32 -15
  111. data/lib/comet/models/test_response.rb +11 -3
  112. data/lib/comet/models/totp_regenerated_response.rb +17 -6
  113. data/lib/comet/models/u2fregister_request.rb +10 -4
  114. data/lib/comet/models/u2fregistered_key.rb +12 -5
  115. data/lib/comet/models/u2fregistration_challenge_response.rb +15 -5
  116. data/lib/comet/models/u2fsign_request.rb +12 -5
  117. data/lib/comet/models/u2fsign_response.rb +14 -6
  118. data/lib/comet/models/uninstall_config.rb +6 -2
  119. data/lib/comet/models/update_campaign_device_status.rb +9 -2
  120. data/lib/comet/models/update_campaign_options.rb +6 -2
  121. data/lib/comet/models/update_campaign_properties.rb +11 -3
  122. data/lib/comet/models/update_campaign_status.rb +11 -3
  123. data/lib/comet/models/update_campaign_status_device_entry.rb +13 -4
  124. data/lib/comet/models/user_custom_email_settings.rb +6 -2
  125. data/lib/comet/models/user_on_server.rb +11 -3
  126. data/lib/comet/models/user_policy.rb +22 -2
  127. data/lib/comet/models/user_profile_config.rb +52 -12
  128. data/lib/comet/models/user_profile_fragment.rb +8 -3
  129. data/lib/comet/models/vault_snapshot.rb +13 -4
  130. data/lib/comet/models/vsscomponent.rb +12 -5
  131. data/lib/comet/models/vsswriter_info.rb +8 -3
  132. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +93 -0
  133. data/lib/comet/models/web_interface_branding_properties.rb +14 -6
  134. data/lib/comet/models/webhook_option.rb +10 -3
  135. data/lib/comet/models/win_smbauth.rb +15 -5
  136. data/lib/comet/models/windows_code_sign_properties.rb +26 -9
  137. data/lib/comet_backup_ruby_sdk.rb +10 -0
  138. metadata +15 -2
@@ -27,27 +27,35 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @status = 0
35
+ @message = ''
30
36
  @stored_objects = []
31
37
  @unknown_json_fields = {}
32
38
  end
33
39
 
34
40
  # @param [String] json_string The complete object in JSON format
35
41
  def from_json(json_string)
36
- raise TypeError 'expected string' unless json_string.is_a? String
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
43
 
38
44
  from_hash(JSON.parse(json_string))
39
45
  end
40
46
 
41
47
  # @param [Hash] obj The complete object as a Ruby hash
42
48
  def from_hash(obj)
43
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
50
 
45
51
  obj.each do |k, v|
46
52
  case k
47
53
  when 'Status'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
48
56
  @status = v
49
57
  when 'Message'
50
- raise TypeError 'expected string' unless v.is_a? String
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
51
59
 
52
60
  @message = v
53
61
  when 'StoredObjects'
@@ -27,27 +27,35 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @status = 0
35
+ @message = ''
30
36
  @snapshots = []
31
37
  @unknown_json_fields = {}
32
38
  end
33
39
 
34
40
  # @param [String] json_string The complete object in JSON format
35
41
  def from_json(json_string)
36
- raise TypeError 'expected string' unless json_string.is_a? String
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
43
 
38
44
  from_hash(JSON.parse(json_string))
39
45
  end
40
46
 
41
47
  # @param [Hash] obj The complete object as a Ruby hash
42
48
  def from_hash(obj)
43
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
50
 
45
51
  obj.each do |k, v|
46
52
  case k
47
53
  when 'Status'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
48
56
  @status = v
49
57
  when 'Message'
50
- raise TypeError 'expected string' unless v.is_a? String
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
51
59
 
52
60
  @message = v
53
61
  when 'Snapshots'
@@ -30,32 +30,39 @@ module Comet
30
30
  attr_accessor :unknown_json_fields
31
31
 
32
32
  def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @name = ''
38
+ @guid = ''
39
+ @server_name = ''
33
40
  @unknown_json_fields = {}
34
41
  end
35
42
 
36
43
  # @param [String] json_string The complete object in JSON format
37
44
  def from_json(json_string)
38
- raise TypeError 'expected string' unless json_string.is_a? String
45
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
39
46
 
40
47
  from_hash(JSON.parse(json_string))
41
48
  end
42
49
 
43
50
  # @param [Hash] obj The complete object as a Ruby hash
44
51
  def from_hash(obj)
45
- raise TypeError 'expected hash' unless obj.is_a? Hash
52
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
53
 
47
54
  obj.each do |k, v|
48
55
  case k
49
56
  when 'Name'
50
- raise TypeError 'expected string' unless v.is_a? String
57
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
51
58
 
52
59
  @name = v
53
60
  when 'Guid'
54
- raise TypeError 'expected string' unless v.is_a? String
61
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
55
62
 
56
63
  @guid = v
57
64
  when 'ServerName'
58
- raise TypeError 'expected string' unless v.is_a? String
65
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
66
 
60
67
  @server_name = v
61
68
  when 'CircularLoggingEnabled'
@@ -45,46 +45,59 @@ module Comet
45
45
  attr_accessor :unknown_json_fields
46
46
 
47
47
  def initialize
48
+ clear
49
+ end
50
+
51
+ def clear
52
+ @mode = ''
53
+ @from_email = ''
54
+ @from_name = ''
55
+ @smtphost = ''
56
+ @smtpport = 0
57
+ @smtpusername = ''
58
+ @smtppassword = ''
48
59
  @unknown_json_fields = {}
49
60
  end
50
61
 
51
62
  # @param [String] json_string The complete object in JSON format
52
63
  def from_json(json_string)
53
- raise TypeError 'expected string' unless json_string.is_a? String
64
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
54
65
 
55
66
  from_hash(JSON.parse(json_string))
56
67
  end
57
68
 
58
69
  # @param [Hash] obj The complete object as a Ruby hash
59
70
  def from_hash(obj)
60
- raise TypeError 'expected hash' unless obj.is_a? Hash
71
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
61
72
 
62
73
  obj.each do |k, v|
63
74
  case k
64
75
  when 'Mode'
65
- raise TypeError 'expected string' unless v.is_a? String
76
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
66
77
 
67
78
  @mode = v
68
79
  when 'FromEmail'
69
- raise TypeError 'expected string' unless v.is_a? String
80
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
70
81
 
71
82
  @from_email = v
72
83
  when 'FromName'
73
- raise TypeError 'expected string' unless v.is_a? String
84
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
74
85
 
75
86
  @from_name = v
76
87
  when 'SMTPHost'
77
- raise TypeError 'expected string' unless v.is_a? String
88
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
78
89
 
79
90
  @smtphost = v
80
91
  when 'SMTPPort'
92
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
93
+
81
94
  @smtpport = v
82
95
  when 'SMTPUsername'
83
- raise TypeError 'expected string' unless v.is_a? String
96
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
84
97
 
85
98
  @smtpusername = v
86
99
  when 'SMTPPassword'
87
- raise TypeError 'expected string' unless v.is_a? String
100
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
88
101
 
89
102
  @smtppassword = v
90
103
  when 'SMTPAllowInvalidCertificate'
@@ -27,24 +27,32 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @report_type = 0
30
35
  @summary_frequency = []
36
+ @filter = Comet::SearchClause.new
31
37
  @unknown_json_fields = {}
32
38
  end
33
39
 
34
40
  # @param [String] json_string The complete object in JSON format
35
41
  def from_json(json_string)
36
- raise TypeError 'expected string' unless json_string.is_a? String
42
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
37
43
 
38
44
  from_hash(JSON.parse(json_string))
39
45
  end
40
46
 
41
47
  # @param [Hash] obj The complete object as a Ruby hash
42
48
  def from_hash(obj)
43
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
44
50
 
45
51
  obj.each do |k, v|
46
52
  case k
47
53
  when 'ReportType'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
48
56
  @report_type = v
49
57
  when 'SummaryFrequency'
50
58
  if v.nil?
@@ -33,38 +33,49 @@ module Comet
33
33
  attr_accessor :unknown_json_fields
34
34
 
35
35
  def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @status = 0
41
+ @message = ''
42
+ @email_subject = ''
43
+ @email_body_html = ''
44
+ @email_body_plaintext = ''
36
45
  @unknown_json_fields = {}
37
46
  end
38
47
 
39
48
  # @param [String] json_string The complete object in JSON format
40
49
  def from_json(json_string)
41
- raise TypeError 'expected string' unless json_string.is_a? String
50
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
42
51
 
43
52
  from_hash(JSON.parse(json_string))
44
53
  end
45
54
 
46
55
  # @param [Hash] obj The complete object as a Ruby hash
47
56
  def from_hash(obj)
48
- raise TypeError 'expected hash' unless obj.is_a? Hash
57
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
49
58
 
50
59
  obj.each do |k, v|
51
60
  case k
52
61
  when 'Status'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
53
64
  @status = v
54
65
  when 'Message'
55
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
56
67
 
57
68
  @message = v
58
69
  when 'EmailSubject'
59
- raise TypeError 'expected string' unless v.is_a? String
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
60
71
 
61
72
  @email_subject = v
62
73
  when 'EmailBodyHTML'
63
- raise TypeError 'expected string' unless v.is_a? String
74
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
64
75
 
65
76
  @email_body_html = v
66
77
  when 'EmailBodyPlaintext'
67
- raise TypeError 'expected string' unless v.is_a? String
78
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
68
79
 
69
80
  @email_body_plaintext = v
70
81
  else
@@ -0,0 +1,102 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
2
+ #
3
+ # Copyright (c) 2020-2020 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
+ # ExternalLDAPAuthenticationSourceSettings is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class ExternalLDAPAuthenticationSourceSettings
16
+
17
+ # @type [String] hostname
18
+ attr_accessor :hostname
19
+
20
+ # @type [Number] port
21
+ attr_accessor :port
22
+
23
+ # @type [String] security_method
24
+ attr_accessor :security_method
25
+
26
+ # @type [String] bind_user
27
+ attr_accessor :bind_user
28
+
29
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
30
+ attr_accessor :unknown_json_fields
31
+
32
+ def initialize
33
+ clear
34
+ end
35
+
36
+ def clear
37
+ @hostname = ''
38
+ @port = 0
39
+ @security_method = ''
40
+ @bind_user = ''
41
+ @unknown_json_fields = {}
42
+ end
43
+
44
+ # @param [String] json_string The complete object in JSON format
45
+ def from_json(json_string)
46
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
47
+
48
+ from_hash(JSON.parse(json_string))
49
+ end
50
+
51
+ # @param [Hash] obj The complete object as a Ruby hash
52
+ def from_hash(obj)
53
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
54
+
55
+ obj.each do |k, v|
56
+ case k
57
+ when 'Hostname'
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @hostname = v
61
+ when 'Port'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
64
+ @port = v
65
+ when 'SecurityMethod'
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @security_method = v
69
+ when 'BindUser'
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
71
+
72
+ @bind_user = v
73
+ else
74
+ @unknown_json_fields[k] = v
75
+ end
76
+ end
77
+ end
78
+
79
+ # @return [Hash] The complete object as a Ruby hash
80
+ def to_hash
81
+ ret = {}
82
+ ret['Hostname'] = @hostname
83
+ ret['Port'] = @port
84
+ ret['SecurityMethod'] = @security_method
85
+ ret['BindUser'] = @bind_user
86
+ @unknown_json_fields.each do |k, v|
87
+ ret[k] = v
88
+ end
89
+ ret
90
+ end
91
+
92
+ # @return [Hash] The complete object as a Ruby hash
93
+ def to_h
94
+ to_hash
95
+ end
96
+
97
+ # @return [String] The complete object as a JSON string
98
+ def to_json(options = {})
99
+ to_hash.to_json(options)
100
+ end
101
+ end
102
+ end
@@ -27,29 +27,37 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @exclude = ''
35
+ @restrict_os = 0
30
36
  @unknown_json_fields = {}
31
37
  end
32
38
 
33
39
  # @param [String] json_string The complete object in JSON format
34
40
  def from_json(json_string)
35
- raise TypeError 'expected string' unless json_string.is_a? String
41
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
36
42
 
37
43
  from_hash(JSON.parse(json_string))
38
44
  end
39
45
 
40
46
  # @param [Hash] obj The complete object as a Ruby hash
41
47
  def from_hash(obj)
42
- raise TypeError 'expected hash' unless obj.is_a? Hash
48
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
43
49
 
44
50
  obj.each do |k, v|
45
51
  case k
46
52
  when 'Exclude'
47
- raise TypeError 'expected string' unless v.is_a? String
53
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
48
54
 
49
55
  @exclude = v
50
56
  when 'Regex'
51
57
  @regex = v
52
58
  when 'RestrictOS'
59
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
60
+
53
61
  @restrict_os = v
54
62
  else
55
63
  @unknown_json_fields[k] = v
@@ -45,45 +45,62 @@ module Comet
45
45
  attr_accessor :unknown_json_fields
46
46
 
47
47
  def initialize
48
+ clear
49
+ end
50
+
51
+ def clear
52
+ @ftpserver = ''
53
+ @ftpusername = ''
54
+ @ftppassword = ''
55
+ @ftpcustom_base_directory = ''
56
+ @ftpsmode = 0
57
+ @ftpport = 0
58
+ @ftpmax_connections = 0
48
59
  @unknown_json_fields = {}
49
60
  end
50
61
 
51
62
  # @param [String] json_string The complete object in JSON format
52
63
  def from_json(json_string)
53
- raise TypeError 'expected string' unless json_string.is_a? String
64
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
54
65
 
55
66
  from_hash(JSON.parse(json_string))
56
67
  end
57
68
 
58
69
  # @param [Hash] obj The complete object as a Ruby hash
59
70
  def from_hash(obj)
60
- raise TypeError 'expected hash' unless obj.is_a? Hash
71
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
61
72
 
62
73
  obj.each do |k, v|
63
74
  case k
64
75
  when 'FTPServer'
65
- raise TypeError 'expected string' unless v.is_a? String
76
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
66
77
 
67
78
  @ftpserver = v
68
79
  when 'FTPUsername'
69
- raise TypeError 'expected string' unless v.is_a? String
80
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
70
81
 
71
82
  @ftpusername = v
72
83
  when 'FTPPassword'
73
- raise TypeError 'expected string' unless v.is_a? String
84
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
74
85
 
75
86
  @ftppassword = v
76
87
  when 'FTPBaseUseHomeDirectory'
77
88
  @ftpbase_use_home_directory = v
78
89
  when 'FTPCustomBaseDirectory'
79
- raise TypeError 'expected string' unless v.is_a? String
90
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
80
91
 
81
92
  @ftpcustom_base_directory = v
82
93
  when 'FTPSMode'
94
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
95
+
83
96
  @ftpsmode = v
84
97
  when 'FTPPort'
98
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
99
+
85
100
  @ftpport = v
86
101
  when 'FTPMaxConnections'
102
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
103
+
87
104
  @ftpmax_connections = v
88
105
  when 'FTPAcceptInvalidSSL'
89
106
  @ftpaccept_invalid_ssl = v