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
@@ -33,40 +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
+ @azbaccount_name = ''
41
+ @azbaccount_key = ''
42
+ @azbcontainer = ''
43
+ @azbrealm = ''
44
+ @azbprefix = ''
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 'AZBAccountName'
53
- raise TypeError 'expected string' unless v.is_a? String
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
54
63
 
55
64
  @azbaccount_name = v
56
65
  when 'AZBAccountKey'
57
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
58
67
 
59
68
  @azbaccount_key = v
60
69
  when 'AZBContainer'
61
- raise TypeError 'expected string' unless v.is_a? String
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
62
71
 
63
72
  @azbcontainer = v
64
73
  when 'AZBRealm'
65
- raise TypeError 'expected string' unless v.is_a? String
74
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
66
75
 
67
76
  @azbrealm = v
68
77
  when 'AZBPrefix'
69
- raise TypeError 'expected string' unless v.is_a? String
78
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
70
79
 
71
80
  @azbprefix = v
72
81
  else
@@ -33,39 +33,50 @@ module Comet
33
33
  attr_accessor :unknown_json_fields
34
34
 
35
35
  def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @account_id = ''
41
+ @key = ''
42
+ @bucket = ''
43
+ @prefix = ''
44
+ @max_connections = 0
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 'AccountID'
53
- raise TypeError 'expected string' unless v.is_a? String
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
54
63
 
55
64
  @account_id = v
56
65
  when 'Key'
57
- raise TypeError 'expected string' unless v.is_a? String
66
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
58
67
 
59
68
  @key = v
60
69
  when 'Bucket'
61
- raise TypeError 'expected string' unless v.is_a? String
70
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
62
71
 
63
72
  @bucket = v
64
73
  when 'Prefix'
65
- raise TypeError 'expected string' unless v.is_a? String
74
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
66
75
 
67
76
  @prefix = v
68
77
  when 'MaxConnections'
78
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
79
+
69
80
  @max_connections = v
70
81
  else
71
82
  @unknown_json_fields[k] = v
@@ -21,20 +21,24 @@ module Comet
21
21
  attr_accessor :unknown_json_fields
22
22
 
23
23
  def initialize
24
+ clear
25
+ end
26
+
27
+ def clear
24
28
  @total_transactions_in_time_interval = {}
25
29
  @unknown_json_fields = {}
26
30
  end
27
31
 
28
32
  # @param [String] json_string The complete object in JSON format
29
33
  def from_json(json_string)
30
- raise TypeError 'expected string' unless json_string.is_a? String
34
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
31
35
 
32
36
  from_hash(JSON.parse(json_string))
33
37
  end
34
38
 
35
39
  # @param [Hash] obj The complete object as a Ruby hash
36
40
  def from_hash(obj)
37
- raise TypeError 'expected hash' unless obj.is_a? Hash
41
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
38
42
 
39
43
  obj.each do |k, v|
40
44
  case k
@@ -27,27 +27,40 @@ module Comet
27
27
  attr_accessor :unknown_json_fields
28
28
 
29
29
  def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @class_a = 0
35
+ @class_b = 0
36
+ @class_c = 0
30
37
  @unknown_json_fields = {}
31
38
  end
32
39
 
33
40
  # @param [String] json_string The complete object in JSON format
34
41
  def from_json(json_string)
35
- 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
36
43
 
37
44
  from_hash(JSON.parse(json_string))
38
45
  end
39
46
 
40
47
  # @param [Hash] obj The complete object as a Ruby hash
41
48
  def from_hash(obj)
42
- raise TypeError 'expected hash' unless obj.is_a? Hash
49
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
43
50
 
44
51
  obj.each do |k, v|
45
52
  case k
46
53
  when 'ClassA'
54
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
55
+
47
56
  @class_a = v
48
57
  when 'ClassB'
58
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
49
60
  @class_b = v
50
61
  when 'ClassC'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
51
64
  @class_c = v
52
65
  else
53
66
  @unknown_json_fields[k] = v
@@ -0,0 +1,93 @@
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
+ # B2VirtualStorageRoleSettings is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class B2VirtualStorageRoleSettings
16
+
17
+ # @type [String] master_bucket
18
+ attr_accessor :master_bucket
19
+
20
+ # @type [String] key_id
21
+ attr_accessor :key_id
22
+
23
+ # @type [String] app_key
24
+ attr_accessor :app_key
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
+ @master_bucket = ''
35
+ @key_id = ''
36
+ @app_key = ''
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 'MasterBucket'
54
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
55
+
56
+ @master_bucket = v
57
+ when 'KeyID'
58
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @key_id = v
61
+ when 'AppKey'
62
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @app_key = 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['MasterBucket'] = @master_bucket
75
+ ret['KeyID'] = @key_id
76
+ ret['AppKey'] = @app_key
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
@@ -36,27 +36,37 @@ module Comet
36
36
  attr_accessor :unknown_json_fields
37
37
 
38
38
  def initialize
39
+ clear
40
+ end
41
+
42
+ def clear
43
+ @stop_after = 0
44
+ @limit_vault_speed_bps = 0
39
45
  @unknown_json_fields = {}
40
46
  end
41
47
 
42
48
  # @param [String] json_string The complete object in JSON format
43
49
  def from_json(json_string)
44
- 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
45
51
 
46
52
  from_hash(JSON.parse(json_string))
47
53
  end
48
54
 
49
55
  # @param [Hash] obj The complete object as a Ruby hash
50
56
  def from_hash(obj)
51
- raise TypeError 'expected hash' unless obj.is_a? Hash
57
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
52
58
 
53
59
  obj.each do |k, v|
54
60
  case k
55
61
  when 'SkipAlreadyRunning'
56
62
  @skip_already_running = v
57
63
  when 'StopAfter'
64
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
65
+
58
66
  @stop_after = v
59
67
  when 'LimitVaultSpeedBps'
68
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
69
+
60
70
  @limit_vault_speed_bps = v
61
71
  when 'ReduceDiskConcurrency'
62
72
  @reduce_disk_concurrency = v
@@ -75,72 +75,115 @@ module Comet
75
75
  attr_accessor :unknown_json_fields
76
76
 
77
77
  def initialize
78
+ clear
79
+ end
80
+
81
+ def clear
82
+ @guid = ''
83
+ @username = ''
84
+ @classification = 0
85
+ @status = 0
86
+ @start_time = 0
87
+ @end_time = 0
88
+ @source_guid = ''
89
+ @destination_guid = ''
90
+ @device_id = ''
91
+ @snapshot_id = ''
92
+ @client_version = ''
93
+ @total_directories = 0
94
+ @total_files = 0
95
+ @total_size = 0
96
+ @total_chunks = 0
97
+ @upload_size = 0
98
+ @download_size = 0
99
+ @cancellation_id = ''
100
+ @progress = Comet::BackupJobProgress.new
78
101
  @unknown_json_fields = {}
79
102
  end
80
103
 
81
104
  # @param [String] json_string The complete object in JSON format
82
105
  def from_json(json_string)
83
- raise TypeError 'expected string' unless json_string.is_a? String
106
+ raise TypeError "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
84
107
 
85
108
  from_hash(JSON.parse(json_string))
86
109
  end
87
110
 
88
111
  # @param [Hash] obj The complete object as a Ruby hash
89
112
  def from_hash(obj)
90
- raise TypeError 'expected hash' unless obj.is_a? Hash
113
+ raise TypeError "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
91
114
 
92
115
  obj.each do |k, v|
93
116
  case k
94
117
  when 'GUID'
95
- raise TypeError 'expected string' unless v.is_a? String
118
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
96
119
 
97
120
  @guid = v
98
121
  when 'Username'
99
- raise TypeError 'expected string' unless v.is_a? String
122
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
100
123
 
101
124
  @username = v
102
125
  when 'Classification'
126
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
127
+
103
128
  @classification = v
104
129
  when 'Status'
130
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
131
+
105
132
  @status = v
106
133
  when 'StartTime'
134
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
135
+
107
136
  @start_time = v
108
137
  when 'EndTime'
138
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
139
+
109
140
  @end_time = v
110
141
  when 'SourceGUID'
111
- raise TypeError 'expected string' unless v.is_a? String
142
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
112
143
 
113
144
  @source_guid = v
114
145
  when 'DestinationGUID'
115
- raise TypeError 'expected string' unless v.is_a? String
146
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
116
147
 
117
148
  @destination_guid = v
118
149
  when 'DeviceID'
119
- raise TypeError 'expected string' unless v.is_a? String
150
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
120
151
 
121
152
  @device_id = v
122
153
  when 'SnapshotID'
123
- raise TypeError 'expected string' unless v.is_a? String
154
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
124
155
 
125
156
  @snapshot_id = v
126
157
  when 'ClientVersion'
127
- raise TypeError 'expected string' unless v.is_a? String
158
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
128
159
 
129
160
  @client_version = v
130
161
  when 'TotalDirectories'
162
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
163
+
131
164
  @total_directories = v
132
165
  when 'TotalFiles'
166
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
167
+
133
168
  @total_files = v
134
169
  when 'TotalSize'
170
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
171
+
135
172
  @total_size = v
136
173
  when 'TotalChunks'
174
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
175
+
137
176
  @total_chunks = v
138
177
  when 'UploadSize'
178
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
179
+
139
180
  @upload_size = v
140
181
  when 'DownloadSize'
182
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
183
+
141
184
  @download_size = v
142
185
  when 'CancellationID'
143
- raise TypeError 'expected string' unless v.is_a? String
186
+ raise TypeError "'v' expected String, got #{v.class}" unless v.is_a? String
144
187
 
145
188
  @cancellation_id = v
146
189
  when 'Progress'
@@ -33,31 +33,50 @@ module Comet
33
33
  attr_accessor :unknown_json_fields
34
34
 
35
35
  def initialize
36
+ clear
37
+ end
38
+
39
+ def clear
40
+ @counter = 0
41
+ @sent_time = 0
42
+ @recieved_time = 0
43
+ @bytes_done = 0
44
+ @items_done = 0
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 'Counter'
62
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
63
+
53
64
  @counter = v
54
65
  when 'SentTime'
66
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
67
+
55
68
  @sent_time = v
56
69
  when 'RecievedTime'
70
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
71
+
57
72
  @recieved_time = v
58
73
  when 'BytesDone'
74
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
75
+
59
76
  @bytes_done = v
60
77
  when 'ItemsDone'
78
+ raise TypeError "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
79
+
61
80
  @items_done = v
62
81
  else
63
82
  @unknown_json_fields[k] = v