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,74 @@
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
+ # SoftwareBuildRoleOptions is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class SoftwareBuildRoleOptions
16
+
17
+ # @type [Boolean] role_enabled
18
+ attr_accessor :role_enabled
19
+
20
+ # @type [Boolean] allow_unauthenticated_downloads
21
+ attr_accessor :allow_unauthenticated_downloads
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 'RoleEnabled'
44
+ @role_enabled = v
45
+ when 'AllowUnauthenticatedDownloads'
46
+ @allow_unauthenticated_downloads = v
47
+ else
48
+ @unknown_json_fields[k] = v
49
+ end
50
+ end
51
+ end
52
+
53
+ # @return [Hash] The complete object as a Ruby hash
54
+ def to_hash
55
+ ret = {}
56
+ ret['RoleEnabled'] = @role_enabled
57
+ ret['AllowUnauthenticatedDownloads'] = @allow_unauthenticated_downloads
58
+ @unknown_json_fields.each do |k, v|
59
+ ret[k] = v
60
+ end
61
+ ret
62
+ end
63
+
64
+ # @return [Hash] The complete object as a Ruby hash
65
+ def to_h
66
+ to_hash
67
+ end
68
+
69
+ # @return [String] The complete object as a JSON string
70
+ def to_json(options = {})
71
+ to_hash.to_json(options)
72
+ end
73
+ end
74
+ end
@@ -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
+ # SoftwareUpdateNewsResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class SoftwareUpdateNewsResponse
16
+
17
+ # @type [String] latest_stable
18
+ attr_accessor :latest_stable
19
+
20
+ # @type [String] latest_prerelease
21
+ attr_accessor :latest_prerelease
22
+
23
+ # @type [String] downloads_url
24
+ attr_accessor :downloads_url
25
+
26
+ # @type [Array<String>] whats_new
27
+ attr_accessor :whats_new
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
+ @whats_new = []
34
+ @unknown_json_fields = {}
35
+ end
36
+
37
+ # @param [String] json_string The complete object in JSON format
38
+ def from_json(json_string)
39
+ raise TypeError 'expected string' unless json_string.is_a? String
40
+
41
+ from_hash(JSON.parse(json_string))
42
+ end
43
+
44
+ # @param [Hash] obj The complete object as a Ruby hash
45
+ def from_hash(obj)
46
+ raise TypeError 'expected hash' unless obj.is_a? Hash
47
+
48
+ obj.each do |k, v|
49
+ case k
50
+ when 'latest_stable'
51
+ raise TypeError 'expected string' unless v.is_a? String
52
+
53
+ @latest_stable = v
54
+ when 'latest_prerelease'
55
+ raise TypeError 'expected string' unless v.is_a? String
56
+
57
+ @latest_prerelease = v
58
+ when 'downloads_url'
59
+ raise TypeError 'expected string' unless v.is_a? String
60
+
61
+ @downloads_url = v
62
+ when 'updates_info'
63
+ if v.nil?
64
+ @whats_new = []
65
+ else
66
+ @whats_new = Array.new(v.length)
67
+ v.each_with_index do |v1, i1|
68
+ raise TypeError 'expected string' unless v1.is_a? String
69
+
70
+ @whats_new[i1] = v1
71
+ end
72
+ end
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['latest_stable'] = @latest_stable
83
+ ret['latest_prerelease'] = @latest_prerelease
84
+ ret['downloads_url'] = @downloads_url
85
+ ret['updates_info'] = @whats_new
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
@@ -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
+ # SourceBasicInfo is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class SourceBasicInfo
16
+
17
+ # @type [String] description
18
+ attr_accessor :description
19
+
20
+ # @type [Number] size
21
+ attr_accessor :size
22
+
23
+ # @type [Hash{String => Comet::RetentionPolicy}] override_destination_retention
24
+ attr_accessor :override_destination_retention
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
+ @override_destination_retention = {}
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 'Description'
48
+ raise TypeError 'expected string' unless v.is_a? String
49
+
50
+ @description = v
51
+ when 'Size'
52
+ @size = v
53
+ when 'OverrideDestinationRetention'
54
+ @override_destination_retention = {}
55
+ if v.nil?
56
+ @override_destination_retention = {}
57
+ else
58
+ v.each do |k1, v1|
59
+ @override_destination_retention[k1] = Comet::RetentionPolicy.new
60
+ @override_destination_retention[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['Description'] = @description
73
+ ret['Size'] = @size
74
+ unless @override_destination_retention.nil?
75
+ ret['OverrideDestinationRetention'] = @override_destination_retention
76
+ end
77
+ @unknown_json_fields.each do |k, v|
78
+ ret[k] = v
79
+ end
80
+ ret
81
+ end
82
+
83
+ # @return [Hash] The complete object as a Ruby hash
84
+ def to_h
85
+ to_hash
86
+ end
87
+
88
+ # @return [String] The complete object as a JSON string
89
+ def to_json(options = {})
90
+ to_hash.to_json(options)
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,172 @@
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
+ # SourceConfig is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class SourceConfig
16
+
17
+ # @type [String] engine
18
+ attr_accessor :engine
19
+
20
+ # @type [String] description
21
+ attr_accessor :description
22
+
23
+ # @type [String] owner_device
24
+ attr_accessor :owner_device
25
+
26
+ # @type [Number] create_time
27
+ attr_accessor :create_time
28
+
29
+ # @type [Number] modify_time
30
+ attr_accessor :modify_time
31
+
32
+ # @type [Array<String>] pre_exec
33
+ attr_accessor :pre_exec
34
+
35
+ # @type [Array<String>] post_exec
36
+ attr_accessor :post_exec
37
+
38
+ # @type [Hash{String => String}] engine_props
39
+ attr_accessor :engine_props
40
+
41
+ # @type [Hash{String => Comet::RetentionPolicy}] override_destination_retention
42
+ attr_accessor :override_destination_retention
43
+
44
+ # @type [Comet::SourceStatistics] statistics
45
+ attr_accessor :statistics
46
+
47
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
48
+ attr_accessor :unknown_json_fields
49
+
50
+ def initialize
51
+ @pre_exec = []
52
+ @post_exec = []
53
+ @engine_props = {}
54
+ @override_destination_retention = {}
55
+ @unknown_json_fields = {}
56
+ end
57
+
58
+ # @param [String] json_string The complete object in JSON format
59
+ def from_json(json_string)
60
+ raise TypeError 'expected string' unless json_string.is_a? String
61
+
62
+ from_hash(JSON.parse(json_string))
63
+ end
64
+
65
+ # @param [Hash] obj The complete object as a Ruby hash
66
+ def from_hash(obj)
67
+ raise TypeError 'expected hash' unless obj.is_a? Hash
68
+
69
+ obj.each do |k, v|
70
+ case k
71
+ when 'Engine'
72
+ raise TypeError 'expected string' unless v.is_a? String
73
+
74
+ @engine = v
75
+ when 'Description'
76
+ raise TypeError 'expected string' unless v.is_a? String
77
+
78
+ @description = v
79
+ when 'OwnerDevice'
80
+ raise TypeError 'expected string' unless v.is_a? String
81
+
82
+ @owner_device = v
83
+ when 'CreateTime'
84
+ @create_time = v
85
+ when 'ModifyTime'
86
+ @modify_time = v
87
+ when 'PreExec'
88
+ if v.nil?
89
+ @pre_exec = []
90
+ else
91
+ @pre_exec = Array.new(v.length)
92
+ v.each_with_index do |v1, i1|
93
+ raise TypeError 'expected string' unless v1.is_a? String
94
+
95
+ @pre_exec[i1] = v1
96
+ end
97
+ end
98
+ when 'PostExec'
99
+ if v.nil?
100
+ @post_exec = []
101
+ else
102
+ @post_exec = Array.new(v.length)
103
+ v.each_with_index do |v1, i1|
104
+ raise TypeError 'expected string' unless v1.is_a? String
105
+
106
+ @post_exec[i1] = v1
107
+ end
108
+ end
109
+ when 'EngineProps'
110
+ @engine_props = {}
111
+ if v.nil?
112
+ @engine_props = {}
113
+ else
114
+ v.each do |k1, v1|
115
+ raise TypeError 'expected string' unless v1.is_a? String
116
+
117
+ @engine_props[k1] = v1
118
+ end
119
+ end
120
+ when 'OverrideDestinationRetention'
121
+ @override_destination_retention = {}
122
+ if v.nil?
123
+ @override_destination_retention = {}
124
+ else
125
+ v.each do |k1, v1|
126
+ @override_destination_retention[k1] = Comet::RetentionPolicy.new
127
+ @override_destination_retention[k1].from_hash(v1)
128
+ end
129
+ end
130
+ when 'Statistics'
131
+ @statistics = Comet::SourceStatistics.new
132
+ @statistics.from_hash(v)
133
+ else
134
+ @unknown_json_fields[k] = v
135
+ end
136
+ end
137
+ end
138
+
139
+ # @return [Hash] The complete object as a Ruby hash
140
+ def to_hash
141
+ ret = {}
142
+ ret['Engine'] = @engine
143
+ ret['Description'] = @description
144
+ ret['OwnerDevice'] = @owner_device
145
+ ret['CreateTime'] = @create_time
146
+ ret['ModifyTime'] = @modify_time
147
+ ret['PreExec'] = @pre_exec
148
+ ret['PostExec'] = @post_exec
149
+ ret['EngineProps'] = @engine_props
150
+ unless @override_destination_retention.nil?
151
+ ret['OverrideDestinationRetention'] = @override_destination_retention
152
+ end
153
+ unless @statistics.nil?
154
+ ret['Statistics'] = @statistics
155
+ end
156
+ @unknown_json_fields.each do |k, v|
157
+ ret[k] = v
158
+ end
159
+ ret
160
+ end
161
+
162
+ # @return [Hash] The complete object as a Ruby hash
163
+ def to_h
164
+ to_hash
165
+ end
166
+
167
+ # @return [String] The complete object as a JSON string
168
+ def to_json(options = {})
169
+ to_hash.to_json(options)
170
+ end
171
+ end
172
+ end
@@ -0,0 +1,69 @@
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
+ # SourceStatistics is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class SourceStatistics
16
+
17
+ # @type [Comet::BackupJobDetail] last_backup_job
18
+ attr_accessor :last_backup_job
19
+
20
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
21
+ attr_accessor :unknown_json_fields
22
+
23
+ def initialize
24
+ @unknown_json_fields = {}
25
+ end
26
+
27
+ # @param [String] json_string The complete object in JSON format
28
+ def from_json(json_string)
29
+ raise TypeError 'expected string' unless json_string.is_a? String
30
+
31
+ from_hash(JSON.parse(json_string))
32
+ end
33
+
34
+ # @param [Hash] obj The complete object as a Ruby hash
35
+ def from_hash(obj)
36
+ raise TypeError 'expected hash' unless obj.is_a? Hash
37
+
38
+ obj.each do |k, v|
39
+ case k
40
+ when 'LastBackupJob'
41
+ @last_backup_job = Comet::BackupJobDetail.new
42
+ @last_backup_job.from_hash(v)
43
+ else
44
+ @unknown_json_fields[k] = v
45
+ end
46
+ end
47
+ end
48
+
49
+ # @return [Hash] The complete object as a Ruby hash
50
+ def to_hash
51
+ ret = {}
52
+ ret['LastBackupJob'] = @last_backup_job
53
+ @unknown_json_fields.each do |k, v|
54
+ ret[k] = v
55
+ end
56
+ ret
57
+ end
58
+
59
+ # @return [Hash] The complete object as a Ruby hash
60
+ def to_h
61
+ to_hash
62
+ end
63
+
64
+ # @return [String] The complete object as a JSON string
65
+ def to_json(options = {})
66
+ to_hash.to_json(options)
67
+ end
68
+ end
69
+ end