comet_backup_ruby_sdk 0.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 (130) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +25 -0
  3. data/Gemfile +15 -0
  4. data/LICENSE +7 -0
  5. data/README.md +81 -0
  6. data/Rakefile +22 -0
  7. data/comet_backup_ruby_sdk.gemspec +35 -0
  8. data/lib/comet/api_response_error.rb +27 -0
  9. data/lib/comet/comet_server.rb +2926 -0
  10. data/lib/comet/definitions.rb +550 -0
  11. data/lib/comet/models/add_bucket_response_message.rb +92 -0
  12. data/lib/comet/models/admin_account_properties_response.rb +76 -0
  13. data/lib/comet/models/admin_resource_response.rb +84 -0
  14. data/lib/comet/models/admin_security_options.rb +139 -0
  15. data/lib/comet/models/admin_u2fregistration.rb +84 -0
  16. data/lib/comet/models/admin_user_permissions.rb +102 -0
  17. data/lib/comet/models/available_download.rb +84 -0
  18. data/lib/comet/models/azure_destination_location.rb +102 -0
  19. data/lib/comet/models/b2destination_location.rb +110 -0
  20. data/lib/comet/models/b2storage_extra_info.rb +77 -0
  21. data/lib/comet/models/b2transaction_totals.rb +80 -0
  22. data/lib/comet/models/backup_job_advanced_options.rb +98 -0
  23. data/lib/comet/models/backup_job_detail.rb +199 -0
  24. data/lib/comet/models/backup_job_progress.rb +92 -0
  25. data/lib/comet/models/backup_rule_config.rb +188 -0
  26. data/lib/comet/models/backup_rule_event_triggers.rb +78 -0
  27. data/lib/comet/models/branding_options.rb +283 -0
  28. data/lib/comet/models/branding_properties.rb +245 -0
  29. data/lib/comet/models/browse_disk_drives_response.rb +91 -0
  30. data/lib/comet/models/browse_edbresponse.rb +91 -0
  31. data/lib/comet/models/browse_hvresponse.rb +91 -0
  32. data/lib/comet/models/browse_vssresponse.rb +91 -0
  33. data/lib/comet/models/bucket_properties.rb +89 -0
  34. data/lib/comet/models/bucket_usage_info.rb +91 -0
  35. data/lib/comet/models/comet_apiresponse_message.rb +76 -0
  36. data/lib/comet/models/comet_destination_location.rb +86 -0
  37. data/lib/comet/models/constellation_check_report.rb +89 -0
  38. data/lib/comet/models/constellation_stats.rb +86 -0
  39. data/lib/comet/models/constellation_status_apiresponse.rb +109 -0
  40. data/lib/comet/models/content_measurement.rb +89 -0
  41. data/lib/comet/models/content_measurement_component.rb +84 -0
  42. data/lib/comet/models/create_group_policy_response.rb +84 -0
  43. data/lib/comet/models/default_email_report_policy.rb +83 -0
  44. data/lib/comet/models/destination_config.rb +465 -0
  45. data/lib/comet/models/destination_location.rb +365 -0
  46. data/lib/comet/models/destination_statistics.rb +102 -0
  47. data/lib/comet/models/device_config.rb +96 -0
  48. data/lib/comet/models/disk_drive.rb +153 -0
  49. data/lib/comet/models/dispatcher_admin_sources_response.rb +92 -0
  50. data/lib/comet/models/dispatcher_stored_objects_response.rb +91 -0
  51. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +91 -0
  52. data/lib/comet/models/edbfile_info.rb +92 -0
  53. data/lib/comet/models/email_options.rb +140 -0
  54. data/lib/comet/models/email_report_config.rb +90 -0
  55. data/lib/comet/models/email_report_generated_preview.rb +100 -0
  56. data/lib/comet/models/extra_file_exclusion.rb +82 -0
  57. data/lib/comet/models/ftpdestination_location.rb +124 -0
  58. data/lib/comet/models/get_group_policy_response.rb +91 -0
  59. data/lib/comet/models/get_profile_and_hash_response_message.rb +91 -0
  60. data/lib/comet/models/get_profile_hash_response_message.rb +84 -0
  61. data/lib/comet/models/group_policy.rb +83 -0
  62. data/lib/comet/models/hyper_vmachine_info.rb +78 -0
  63. data/lib/comet/models/live_user_connection.rb +125 -0
  64. data/lib/comet/models/local_destination_location.rb +92 -0
  65. data/lib/comet/models/mac_oscode_sign_properties.rb +113 -0
  66. data/lib/comet/models/mongo_dbconnection.rb +211 -0
  67. data/lib/comet/models/new_bucket_detail.rb +78 -0
  68. data/lib/comet/models/news_entry.rb +76 -0
  69. data/lib/comet/models/osinfo.rb +92 -0
  70. data/lib/comet/models/partition.rb +148 -0
  71. data/lib/comet/models/private_branding_properties.rb +185 -0
  72. data/lib/comet/models/protected_item_engine_type_policy.rb +84 -0
  73. data/lib/comet/models/public_branding_properties.rb +122 -0
  74. data/lib/comet/models/remote_server_address.rb +135 -0
  75. data/lib/comet/models/remote_storage_option.rb +147 -0
  76. data/lib/comet/models/replicator_state_apiresponse.rb +138 -0
  77. data/lib/comet/models/request_storage_vault_response_message.rb +84 -0
  78. data/lib/comet/models/restore_job_advanced_options.rb +104 -0
  79. data/lib/comet/models/retention_policy.rb +83 -0
  80. data/lib/comet/models/retention_range.rb +110 -0
  81. data/lib/comet/models/s3destination_location.rb +114 -0
  82. data/lib/comet/models/schedule_config.rb +82 -0
  83. data/lib/comet/models/search_clause.rb +111 -0
  84. data/lib/comet/models/server_config_options_branding_fragment.rb +69 -0
  85. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +69 -0
  86. data/lib/comet/models/server_meta_version_info.rb +208 -0
  87. data/lib/comet/models/session_key_regenerated_response.rb +92 -0
  88. data/lib/comet/models/sftpdestination_location.rb +122 -0
  89. data/lib/comet/models/size_measurement.rb +80 -0
  90. data/lib/comet/models/software_build_role_options.rb +74 -0
  91. data/lib/comet/models/software_update_news_response.rb +102 -0
  92. data/lib/comet/models/source_basic_info.rb +93 -0
  93. data/lib/comet/models/source_config.rb +172 -0
  94. data/lib/comet/models/source_statistics.rb +69 -0
  95. data/lib/comet/models/spanned_destination_location.rb +77 -0
  96. data/lib/comet/models/spanned_storage_extra_info.rb +77 -0
  97. data/lib/comet/models/sshconnection.rb +114 -0
  98. data/lib/comet/models/stat_result.rb +86 -0
  99. data/lib/comet/models/storage_free_space_info.rb +98 -0
  100. data/lib/comet/models/storage_vault_provider_policy.rb +82 -0
  101. data/lib/comet/models/stored_object.rb +130 -0
  102. data/lib/comet/models/streamable_event.rb +74 -0
  103. data/lib/comet/models/swift_destination_location.rb +192 -0
  104. data/lib/comet/models/test_response.rb +82 -0
  105. data/lib/comet/models/totp_regenerated_response.rb +100 -0
  106. data/lib/comet/models/u2fregister_request.rb +78 -0
  107. data/lib/comet/models/u2fregistered_key.rb +86 -0
  108. data/lib/comet/models/u2fregistration_challenge_response.rb +122 -0
  109. data/lib/comet/models/u2fsign_request.rb +101 -0
  110. data/lib/comet/models/u2fsign_response.rb +94 -0
  111. data/lib/comet/models/uninstall_config.rb +74 -0
  112. data/lib/comet/models/update_campaign_device_status.rb +68 -0
  113. data/lib/comet/models/update_campaign_options.rb +86 -0
  114. data/lib/comet/models/update_campaign_properties.rb +100 -0
  115. data/lib/comet/models/update_campaign_status.rb +115 -0
  116. data/lib/comet/models/update_campaign_status_device_entry.rb +84 -0
  117. data/lib/comet/models/user_custom_email_settings.rb +77 -0
  118. data/lib/comet/models/user_on_server.rb +76 -0
  119. data/lib/comet/models/user_policy.rb +304 -0
  120. data/lib/comet/models/user_profile_config.rb +300 -0
  121. data/lib/comet/models/user_profile_fragment.rb +70 -0
  122. data/lib/comet/models/vault_snapshot.rb +84 -0
  123. data/lib/comet/models/vsscomponent.rb +92 -0
  124. data/lib/comet/models/vsswriter_info.rb +85 -0
  125. data/lib/comet/models/web_interface_branding_properties.rb +100 -0
  126. data/lib/comet/models/webhook_option.rb +84 -0
  127. data/lib/comet/models/win_smbauth.rb +92 -0
  128. data/lib/comet/models/windows_code_sign_properties.rb +130 -0
  129. data/lib/comet_backup_ruby_sdk.rb +130 -0
  130. metadata +227 -0
@@ -0,0 +1,91 @@
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
+ # BrowseVSSResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class BrowseVSSResponse
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
22
+
23
+ # @type [Hash{String => Comet::VSSWriterInfo}] vsswriters
24
+ attr_accessor :vsswriters
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
+ @vsswriters = {}
31
+ @unknown_json_fields = {}
32
+ end
33
+
34
+ # @param [String] json_string The complete object in JSON format
35
+ def from_json(json_string)
36
+ raise TypeError 'expected string' unless json_string.is_a? String
37
+
38
+ from_hash(JSON.parse(json_string))
39
+ end
40
+
41
+ # @param [Hash] obj The complete object as a Ruby hash
42
+ def from_hash(obj)
43
+ raise TypeError 'expected hash' unless obj.is_a? Hash
44
+
45
+ obj.each do |k, v|
46
+ case k
47
+ when 'Status'
48
+ @status = v
49
+ when 'Message'
50
+ raise TypeError 'expected string' unless v.is_a? String
51
+
52
+ @message = v
53
+ when 'VSSWriters'
54
+ @vsswriters = {}
55
+ if v.nil?
56
+ @vsswriters = {}
57
+ else
58
+ v.each do |k1, v1|
59
+ @vsswriters[k1] = Comet::VSSWriterInfo.new
60
+ @vsswriters[k1].from_hash(v1)
61
+ end
62
+ end
63
+ else
64
+ @unknown_json_fields[k] = v
65
+ end
66
+ end
67
+ end
68
+
69
+ # @return [Hash] The complete object as a Ruby hash
70
+ def to_hash
71
+ ret = {}
72
+ ret['Status'] = @status
73
+ ret['Message'] = @message
74
+ ret['VSSWriters'] = @vsswriters
75
+ @unknown_json_fields.each do |k, v|
76
+ ret[k] = v
77
+ end
78
+ ret
79
+ end
80
+
81
+ # @return [Hash] The complete object as a Ruby hash
82
+ def to_h
83
+ to_hash
84
+ end
85
+
86
+ # @return [String] The complete object as a JSON string
87
+ def to_json(options = {})
88
+ to_hash.to_json(options)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,89 @@
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
+ # BucketProperties is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class BucketProperties
16
+
17
+ # @type [Number] create_time
18
+ attr_accessor :create_time
19
+
20
+ # @type [Number] read_write_key_format
21
+ attr_accessor :read_write_key_format
22
+
23
+ # @type [String] read_write_key
24
+ attr_accessor :read_write_key
25
+
26
+ # @type [Comet::SizeMeasurement] size
27
+ attr_accessor :size
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
+ @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 'expected string' 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 'expected hash' unless obj.is_a? Hash
46
+
47
+ obj.each do |k, v|
48
+ case k
49
+ when 'CreateTime'
50
+ @create_time = v
51
+ when 'ReadWriteKeyFormat'
52
+ @read_write_key_format = v
53
+ when 'ReadWriteKey'
54
+ raise TypeError 'expected string' unless v.is_a? String
55
+
56
+ @read_write_key = v
57
+ when 'Size'
58
+ @size = Comet::SizeMeasurement.new
59
+ @size.from_hash(v)
60
+ else
61
+ @unknown_json_fields[k] = v
62
+ end
63
+ end
64
+ end
65
+
66
+ # @return [Hash] The complete object as a Ruby hash
67
+ def to_hash
68
+ ret = {}
69
+ ret['CreateTime'] = @create_time
70
+ ret['ReadWriteKeyFormat'] = @read_write_key_format
71
+ ret['ReadWriteKey'] = @read_write_key
72
+ ret['Size'] = @size
73
+ @unknown_json_fields.each do |k, v|
74
+ ret[k] = v
75
+ end
76
+ ret
77
+ end
78
+
79
+ # @return [Hash] The complete object as a Ruby hash
80
+ def to_h
81
+ to_hash
82
+ end
83
+
84
+ # @return [String] The complete object as a JSON string
85
+ def to_json(options = {})
86
+ to_hash.to_json(options)
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,91 @@
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
+ # BucketUsageInfo is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class BucketUsageInfo
16
+
17
+ # @type [Array<Number>] exists_on_servers
18
+ attr_accessor :exists_on_servers
19
+
20
+ # @type [Array<Comet::UserOnServer>] in_use_by
21
+ attr_accessor :in_use_by
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
+ @exists_on_servers = []
28
+ @in_use_by = []
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 'expected string' 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 'expected hash' unless obj.is_a? Hash
42
+
43
+ obj.each do |k, v|
44
+ case k
45
+ when 'ExistsOnServers'
46
+ if v.nil?
47
+ @exists_on_servers = []
48
+ else
49
+ @exists_on_servers = Array.new(v.length)
50
+ v.each_with_index do |v1, i1|
51
+ @exists_on_servers[i1] = v1
52
+ end
53
+ end
54
+ when 'InUseBy'
55
+ if v.nil?
56
+ @in_use_by = []
57
+ else
58
+ @in_use_by = Array.new(v.length)
59
+ v.each_with_index do |v1, i1|
60
+ @in_use_by[i1] = Comet::UserOnServer.new
61
+ @in_use_by[i1].from_hash(v1)
62
+ end
63
+ end
64
+ else
65
+ @unknown_json_fields[k] = v
66
+ end
67
+ end
68
+ end
69
+
70
+ # @return [Hash] The complete object as a Ruby hash
71
+ def to_hash
72
+ ret = {}
73
+ ret['ExistsOnServers'] = @exists_on_servers
74
+ ret['InUseBy'] = @in_use_by
75
+ @unknown_json_fields.each do |k, v|
76
+ ret[k] = v
77
+ end
78
+ ret
79
+ end
80
+
81
+ # @return [Hash] The complete object as a Ruby hash
82
+ def to_h
83
+ to_hash
84
+ end
85
+
86
+ # @return [String] The complete object as a JSON string
87
+ def to_json(options = {})
88
+ to_hash.to_json(options)
89
+ end
90
+ end
91
+ end
@@ -0,0 +1,76 @@
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
+ # CometAPIResponseMessage is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class CometAPIResponseMessage
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
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
+ @unknown_json_fields = {}
28
+ end
29
+
30
+ # @param [String] json_string The complete object in JSON format
31
+ def from_json(json_string)
32
+ raise TypeError 'expected string' unless json_string.is_a? String
33
+
34
+ from_hash(JSON.parse(json_string))
35
+ end
36
+
37
+ # @param [Hash] obj The complete object as a Ruby hash
38
+ def from_hash(obj)
39
+ raise TypeError 'expected hash' unless obj.is_a? Hash
40
+
41
+ obj.each do |k, v|
42
+ case k
43
+ when 'Status'
44
+ @status = v
45
+ when 'Message'
46
+ raise TypeError 'expected string' unless v.is_a? String
47
+
48
+ @message = v
49
+ else
50
+ @unknown_json_fields[k] = v
51
+ end
52
+ end
53
+ end
54
+
55
+ # @return [Hash] The complete object as a Ruby hash
56
+ def to_hash
57
+ ret = {}
58
+ ret['Status'] = @status
59
+ ret['Message'] = @message
60
+ @unknown_json_fields.each do |k, v|
61
+ ret[k] = v
62
+ end
63
+ ret
64
+ end
65
+
66
+ # @return [Hash] The complete object as a Ruby hash
67
+ def to_h
68
+ to_hash
69
+ end
70
+
71
+ # @return [String] The complete object as a JSON string
72
+ def to_json(options = {})
73
+ to_hash.to_json(options)
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,86 @@
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
+ # CometDestinationLocation is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class CometDestinationLocation
16
+
17
+ # @type [String] comet_server
18
+ attr_accessor :comet_server
19
+
20
+ # @type [String] comet_bucket
21
+ attr_accessor :comet_bucket
22
+
23
+ # @type [String] comet_bucket_key
24
+ attr_accessor :comet_bucket_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
+ @unknown_json_fields = {}
31
+ end
32
+
33
+ # @param [String] json_string The complete object in JSON format
34
+ def from_json(json_string)
35
+ raise TypeError 'expected string' unless json_string.is_a? String
36
+
37
+ from_hash(JSON.parse(json_string))
38
+ end
39
+
40
+ # @param [Hash] obj The complete object as a Ruby hash
41
+ def from_hash(obj)
42
+ raise TypeError 'expected hash' unless obj.is_a? Hash
43
+
44
+ obj.each do |k, v|
45
+ case k
46
+ when 'CometServer'
47
+ raise TypeError 'expected string' unless v.is_a? String
48
+
49
+ @comet_server = v
50
+ when 'CometBucket'
51
+ raise TypeError 'expected string' unless v.is_a? String
52
+
53
+ @comet_bucket = v
54
+ when 'CometBucketKey'
55
+ raise TypeError 'expected string' unless v.is_a? String
56
+
57
+ @comet_bucket_key = v
58
+ else
59
+ @unknown_json_fields[k] = v
60
+ end
61
+ end
62
+ end
63
+
64
+ # @return [Hash] The complete object as a Ruby hash
65
+ def to_hash
66
+ ret = {}
67
+ ret['CometServer'] = @comet_server
68
+ ret['CometBucket'] = @comet_bucket
69
+ ret['CometBucketKey'] = @comet_bucket_key
70
+ @unknown_json_fields.each do |k, v|
71
+ ret[k] = v
72
+ end
73
+ ret
74
+ end
75
+
76
+ # @return [Hash] The complete object as a Ruby hash
77
+ def to_h
78
+ to_hash
79
+ end
80
+
81
+ # @return [String] The complete object as a JSON string
82
+ def to_json(options = {})
83
+ to_hash.to_json(options)
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,89 @@
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
+ # ConstellationCheckReport is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class ConstellationCheckReport
16
+
17
+ # @type [Number] check_started
18
+ attr_accessor :check_started
19
+
20
+ # @type [Number] check_completed
21
+ attr_accessor :check_completed
22
+
23
+ # @type [Hash{String => Comet::BucketUsageInfo}] usage
24
+ attr_accessor :usage
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
+ @usage = {}
31
+ @unknown_json_fields = {}
32
+ end
33
+
34
+ # @param [String] json_string The complete object in JSON format
35
+ def from_json(json_string)
36
+ raise TypeError 'expected string' unless json_string.is_a? String
37
+
38
+ from_hash(JSON.parse(json_string))
39
+ end
40
+
41
+ # @param [Hash] obj The complete object as a Ruby hash
42
+ def from_hash(obj)
43
+ raise TypeError 'expected hash' unless obj.is_a? Hash
44
+
45
+ obj.each do |k, v|
46
+ case k
47
+ when 'CheckStarted'
48
+ @check_started = v
49
+ when 'CheckCompleted'
50
+ @check_completed = v
51
+ when 'Usage'
52
+ @usage = {}
53
+ if v.nil?
54
+ @usage = {}
55
+ else
56
+ v.each do |k1, v1|
57
+ @usage[k1] = Comet::BucketUsageInfo.new
58
+ @usage[k1].from_hash(v1)
59
+ end
60
+ end
61
+ else
62
+ @unknown_json_fields[k] = v
63
+ end
64
+ end
65
+ end
66
+
67
+ # @return [Hash] The complete object as a Ruby hash
68
+ def to_hash
69
+ ret = {}
70
+ ret['CheckStarted'] = @check_started
71
+ ret['CheckCompleted'] = @check_completed
72
+ ret['Usage'] = @usage
73
+ @unknown_json_fields.each do |k, v|
74
+ ret[k] = v
75
+ end
76
+ ret
77
+ end
78
+
79
+ # @return [Hash] The complete object as a Ruby hash
80
+ def to_h
81
+ to_hash
82
+ end
83
+
84
+ # @return [String] The complete object as a JSON string
85
+ def to_json(options = {})
86
+ to_hash.to_json(options)
87
+ end
88
+ end
89
+ end