comet_backup_ruby_sdk 1.13.0 → 2.0.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 (195) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/Gemfile +2 -4
  4. data/Gemfile.lock +1 -1
  5. data/LICENSE +0 -0
  6. data/README.md +3 -2
  7. data/Rakefile +2 -4
  8. data/comet_backup_ruby_sdk.gemspec +1 -1
  9. data/lib/comet/api_response_error.rb +2 -4
  10. data/lib/comet/comet_server.rb +60 -17
  11. data/lib/comet/definitions.rb +50 -7
  12. data/lib/comet/models/add_bucket_response_message.rb +2 -4
  13. data/lib/comet/models/admin_account_properties_response.rb +2 -4
  14. data/lib/comet/models/admin_email_options.rb +2 -4
  15. data/lib/comet/models/admin_resource_response.rb +2 -4
  16. data/lib/comet/models/admin_security_options.rb +2 -4
  17. data/lib/comet/models/admin_u2fregistration.rb +2 -4
  18. data/lib/comet/models/admin_user_permissions.rb +2 -4
  19. data/lib/comet/models/admin_web_authn_registration.rb +2 -4
  20. data/lib/comet/models/allowed_admin_user.rb +2 -4
  21. data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +91 -0
  22. data/lib/comet/models/authentication_role_options.rb +139 -0
  23. data/lib/comet/models/available_download.rb +2 -4
  24. data/lib/comet/models/azure_destination_location.rb +2 -4
  25. data/lib/comet/models/b2destination_location.rb +2 -4
  26. data/lib/comet/models/b2storage_extra_info.rb +2 -4
  27. data/lib/comet/models/b2transaction_totals.rb +2 -4
  28. data/lib/comet/models/b2virtual_storage_role_settings.rb +2 -4
  29. data/lib/comet/models/backup_job_advanced_options.rb +2 -4
  30. data/lib/comet/models/backup_job_detail.rb +2 -4
  31. data/lib/comet/models/backup_job_progress.rb +2 -4
  32. data/lib/comet/models/backup_rule_config.rb +2 -4
  33. data/lib/comet/models/backup_rule_event_triggers.rb +2 -4
  34. data/lib/comet/models/branding_options.rb +11 -4
  35. data/lib/comet/models/branding_properties.rb +11 -4
  36. data/lib/comet/models/browse_disk_drives_response.rb +2 -4
  37. data/lib/comet/models/browse_edbresponse.rb +2 -4
  38. data/lib/comet/models/browse_hvresponse.rb +2 -4
  39. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +2 -4
  40. data/lib/comet/models/browse_office_365objects_response.rb +2 -4
  41. data/lib/comet/models/browse_sqlserver_response.rb +2 -4
  42. data/lib/comet/models/browse_vssresponse.rb +2 -4
  43. data/lib/comet/models/bucket_properties.rb +2 -4
  44. data/lib/comet/models/bucket_usage_info.rb +2 -4
  45. data/lib/comet/models/comet_apiresponse_message.rb +2 -4
  46. data/lib/comet/models/comet_destination_location.rb +2 -4
  47. data/lib/comet/models/constellation_check_report.rb +2 -4
  48. data/lib/comet/models/constellation_role_options.rb +91 -0
  49. data/lib/comet/models/constellation_stats.rb +2 -4
  50. data/lib/comet/models/constellation_status_apiresponse.rb +2 -4
  51. data/lib/comet/models/content_measurement.rb +2 -4
  52. data/lib/comet/models/content_measurement_component.rb +2 -4
  53. data/lib/comet/models/create_group_policy_response.rb +2 -4
  54. data/lib/comet/models/custom_remote_bucket_settings.rb +2 -4
  55. data/lib/comet/models/days_of_week_config.rb +2 -4
  56. data/lib/comet/models/default_email_report_policy.rb +2 -4
  57. data/lib/comet/models/default_source_with_osrestriction.rb +2 -4
  58. data/lib/comet/models/destination_config.rb +2 -4
  59. data/lib/comet/models/destination_location.rb +2 -4
  60. data/lib/comet/models/destination_statistics.rb +2 -4
  61. data/lib/comet/models/device_config.rb +2 -4
  62. data/lib/comet/models/disk_drive.rb +2 -4
  63. data/lib/comet/models/dispatcher_admin_sources_response.rb +2 -4
  64. data/lib/comet/models/dispatcher_stored_objects_response.rb +2 -4
  65. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +2 -4
  66. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +2 -4
  67. data/lib/comet/models/edbfile_info.rb +2 -4
  68. data/lib/comet/models/email_options.rb +2 -4
  69. data/lib/comet/models/email_report_config.rb +2 -4
  70. data/lib/comet/models/email_report_generated_preview.rb +2 -4
  71. data/lib/comet/models/external_authentication_source.rb +184 -0
  72. data/lib/comet/models/external_ldapauthentication_source_server.rb +97 -0
  73. data/lib/comet/models/external_ldapauthentication_source_settings.rb +23 -10
  74. data/lib/comet/models/extra_file_exclusion.rb +2 -4
  75. data/lib/comet/models/ftpdestination_location.rb +2 -4
  76. data/lib/comet/models/get_group_policy_response.rb +2 -4
  77. data/lib/comet/models/get_profile_and_hash_response_message.rb +2 -4
  78. data/lib/comet/models/get_profile_hash_response_message.rb +2 -4
  79. data/lib/comet/models/group_policy.rb +2 -4
  80. data/lib/comet/models/hour_sched_config.rb +2 -4
  81. data/lib/comet/models/httpconnector_options.rb +139 -0
  82. data/lib/comet/models/hyper_vmachine_info.rb +2 -4
  83. data/lib/comet/models/install_creds.rb +2 -4
  84. data/lib/comet/models/install_token.rb +2 -4
  85. data/lib/comet/models/install_token_response.rb +2 -4
  86. data/lib/comet/models/job_entry.rb +2 -4
  87. data/lib/comet/models/license_options.rb +84 -0
  88. data/lib/comet/models/live_user_connection.rb +2 -4
  89. data/lib/comet/models/local_destination_location.rb +2 -4
  90. data/lib/comet/models/local_storage_directory.rb +73 -0
  91. data/lib/comet/models/mac_oscode_sign_properties.rb +2 -4
  92. data/lib/comet/models/mongo_dbconnection.rb +2 -4
  93. data/lib/comet/models/mssqlconnection.rb +2 -4
  94. data/lib/comet/models/my_sqlconnection.rb +2 -4
  95. data/lib/comet/models/new_bucket_detail.rb +2 -4
  96. data/lib/comet/models/news_entry.rb +2 -4
  97. data/lib/comet/models/office_365connection.rb +2 -4
  98. data/lib/comet/models/office_365credential.rb +2 -4
  99. data/lib/comet/models/office_365custom_setting.rb +2 -4
  100. data/lib/comet/models/office_365custom_setting_v2.rb +2 -4
  101. data/lib/comet/models/office_365mixed_virtual_account.rb +2 -4
  102. data/lib/comet/models/office_365object_info.rb +2 -4
  103. data/lib/comet/models/organization.rb +5 -7
  104. data/lib/comet/models/organization_response.rb +2 -4
  105. data/lib/comet/models/osinfo.rb +2 -4
  106. data/lib/comet/models/partition.rb +2 -4
  107. data/lib/comet/models/private_branding_properties.rb +11 -4
  108. data/lib/comet/models/protected_item_engine_type_policy.rb +2 -4
  109. data/lib/comet/models/public_branding_properties.rb +2 -4
  110. data/lib/comet/models/ratelimit_options.rb +81 -0
  111. data/lib/comet/models/ratelimit_rule.rb +82 -0
  112. data/lib/comet/models/register_office_application_begin_response.rb +2 -4
  113. data/lib/comet/models/register_office_application_check_response.rb +2 -4
  114. data/lib/comet/models/remote_server_address.rb +23 -4
  115. data/lib/comet/models/remote_storage_option.rb +23 -4
  116. data/lib/comet/models/replica_server.rb +187 -0
  117. data/lib/comet/models/replicator_state_apiresponse.rb +2 -4
  118. data/lib/comet/models/request_storage_vault_response_message.rb +2 -4
  119. data/lib/comet/models/restore_job_advanced_options.rb +2 -4
  120. data/lib/comet/models/retention_policy.rb +2 -4
  121. data/lib/comet/models/retention_range.rb +2 -4
  122. data/lib/comet/models/s3destination_location.rb +2 -4
  123. data/lib/comet/models/s3generic_virtual_storage_role.rb +109 -0
  124. data/lib/comet/models/schedule_config.rb +13 -4
  125. data/lib/comet/models/search_clause.rb +2 -4
  126. data/lib/comet/models/self_backup_options.rb +79 -0
  127. data/lib/comet/models/self_backup_statistics.rb +2 -4
  128. data/lib/comet/models/self_backup_target.rb +137 -0
  129. data/lib/comet/models/server_config_options.rb +253 -0
  130. data/lib/comet/models/server_config_options_branding_fragment.rb +2 -4
  131. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +2 -4
  132. data/lib/comet/models/server_meta_branding_properties.rb +2 -4
  133. data/lib/comet/models/server_meta_version_info.rb +2 -4
  134. data/lib/comet/models/session_key_regenerated_response.rb +2 -4
  135. data/lib/comet/models/session_options.rb +73 -0
  136. data/lib/comet/models/sftpdestination_location.rb +2 -4
  137. data/lib/comet/models/size_measurement.rb +2 -4
  138. data/lib/comet/models/software_build_role_options.rb +2 -4
  139. data/lib/comet/models/software_update_news_response.rb +2 -4
  140. data/lib/comet/models/source_basic_info.rb +2 -4
  141. data/lib/comet/models/source_config.rb +2 -4
  142. data/lib/comet/models/source_include_pattern.rb +2 -4
  143. data/lib/comet/models/source_statistics.rb +2 -4
  144. data/lib/comet/models/spanned_destination_location.rb +2 -4
  145. data/lib/comet/models/spanned_storage_extra_info.rb +2 -4
  146. data/lib/comet/models/sshconnection.rb +2 -4
  147. data/lib/comet/models/stat_result.rb +2 -4
  148. data/lib/comet/models/storage_free_space_info.rb +2 -4
  149. data/lib/comet/models/storage_role_options.rb +110 -0
  150. data/lib/comet/models/storage_vault_provider_policy.rb +2 -4
  151. data/lib/comet/models/stored_object.rb +2 -4
  152. data/lib/comet/models/streamable_event.rb +2 -4
  153. data/lib/comet/models/swift_destination_location.rb +2 -4
  154. data/lib/comet/models/test_response.rb +2 -4
  155. data/lib/comet/models/totp_regenerated_response.rb +2 -4
  156. data/lib/comet/models/u2fregister_request.rb +2 -4
  157. data/lib/comet/models/u2fregistered_key.rb +2 -4
  158. data/lib/comet/models/u2fregistration_challenge_response.rb +2 -4
  159. data/lib/comet/models/u2fsign_request.rb +2 -4
  160. data/lib/comet/models/u2fsign_response.rb +2 -4
  161. data/lib/comet/models/uninstall_config.rb +2 -4
  162. data/lib/comet/models/update_campaign_device_status.rb +2 -4
  163. data/lib/comet/models/update_campaign_options.rb +2 -4
  164. data/lib/comet/models/update_campaign_properties.rb +2 -4
  165. data/lib/comet/models/update_campaign_status.rb +2 -4
  166. data/lib/comet/models/update_campaign_status_device_entry.rb +2 -4
  167. data/lib/comet/models/user_custom_email_settings.rb +2 -4
  168. data/lib/comet/models/user_on_server.rb +2 -4
  169. data/lib/comet/models/user_policy.rb +2 -4
  170. data/lib/comet/models/user_profile_config.rb +2 -4
  171. data/lib/comet/models/user_profile_fragment.rb +2 -4
  172. data/lib/comet/models/vault_snapshot.rb +2 -4
  173. data/lib/comet/models/vmdksnapshot_view_options.rb +2 -4
  174. data/lib/comet/models/vsscomponent.rb +2 -4
  175. data/lib/comet/models/vsswriter_info.rb +2 -4
  176. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +2 -4
  177. data/lib/comet/models/web_authn_authenticator_selection.rb +2 -4
  178. data/lib/comet/models/web_authn_credential.rb +2 -4
  179. data/lib/comet/models/web_authn_credential_assertion.rb +2 -4
  180. data/lib/comet/models/web_authn_credential_descriptor.rb +2 -4
  181. data/lib/comet/models/web_authn_credential_entity.rb +2 -4
  182. data/lib/comet/models/web_authn_credential_parameter.rb +2 -4
  183. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +2 -4
  184. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +2 -4
  185. data/lib/comet/models/web_authn_registration_challenge_response.rb +2 -4
  186. data/lib/comet/models/web_authn_relying_party_entity.rb +2 -4
  187. data/lib/comet/models/web_authn_sign_request.rb +2 -4
  188. data/lib/comet/models/web_authn_sign_response.rb +2 -4
  189. data/lib/comet/models/web_authn_user_entity.rb +2 -4
  190. data/lib/comet/models/web_interface_branding_properties.rb +2 -4
  191. data/lib/comet/models/webhook_option.rb +2 -4
  192. data/lib/comet/models/win_smbauth.rb +2 -4
  193. data/lib/comet/models/windows_code_sign_properties.rb +2 -4
  194. data/lib/comet_backup_ruby_sdk.rb +19 -4
  195. metadata +19 -2
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # ReplicaServer is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class ReplicaServer
14
+
15
+ # @type [String] type
16
+ attr_accessor :type
17
+
18
+ # @type [String] description
19
+ attr_accessor :description
20
+
21
+ # @type [String] remote_address
22
+ attr_accessor :remote_address
23
+
24
+ # @type [String] username
25
+ attr_accessor :username
26
+
27
+ # @type [String] password
28
+ attr_accessor :password
29
+
30
+ # @type [Comet::ExternalLDAPAuthenticationSourceSettings] ldap
31
+ attr_accessor :ldap
32
+
33
+ # @type [Comet::B2VirtualStorageRoleSettings] b2
34
+ attr_accessor :b2
35
+
36
+ # @type [Comet::WasabiVirtualStorageRoleSettings] wasabi
37
+ attr_accessor :wasabi
38
+
39
+ # @type [Comet::CustomRemoteBucketSettings] custom
40
+ attr_accessor :custom
41
+
42
+ # @type [Comet::S3GenericVirtualStorageRole] s3
43
+ attr_accessor :s3
44
+
45
+ # Amazon AWS - Virtual Storage Role
46
+ # @type [Comet::AmazonAWSVirtualStorageRoleSettings] aws
47
+ attr_accessor :aws
48
+
49
+ # @type [String] replica_deletion_strategy
50
+ attr_accessor :replica_deletion_strategy
51
+
52
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
53
+ attr_accessor :unknown_json_fields
54
+
55
+ def initialize
56
+ clear
57
+ end
58
+
59
+ def clear
60
+ @type = ''
61
+ @description = ''
62
+ @remote_address = ''
63
+ @username = ''
64
+ @password = ''
65
+ @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
66
+ @b2 = Comet::B2VirtualStorageRoleSettings.new
67
+ @wasabi = Comet::WasabiVirtualStorageRoleSettings.new
68
+ @custom = Comet::CustomRemoteBucketSettings.new
69
+ @s3 = Comet::S3GenericVirtualStorageRole.new
70
+ @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
71
+ @replica_deletion_strategy = ''
72
+ @unknown_json_fields = {}
73
+ end
74
+
75
+ # @param [String] json_string The complete object in JSON format
76
+ def from_json(json_string)
77
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
78
+
79
+ from_hash(JSON.parse(json_string))
80
+ end
81
+
82
+ # @param [Hash] obj The complete object as a Ruby hash
83
+ def from_hash(obj)
84
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
85
+
86
+ obj.each do |k, v|
87
+ case k
88
+ when 'Type'
89
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
90
+
91
+ @type = v
92
+ when 'Description'
93
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
94
+
95
+ @description = v
96
+ when 'RemoteAddress'
97
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
98
+
99
+ @remote_address = v
100
+ when 'Username'
101
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
102
+
103
+ @username = v
104
+ when 'Password'
105
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
106
+
107
+ @password = v
108
+ when 'LDAP'
109
+ @ldap = Comet::ExternalLDAPAuthenticationSourceSettings.new
110
+ @ldap.from_hash(v)
111
+ when 'B2'
112
+ @b2 = Comet::B2VirtualStorageRoleSettings.new
113
+ @b2.from_hash(v)
114
+ when 'Wasabi'
115
+ @wasabi = Comet::WasabiVirtualStorageRoleSettings.new
116
+ @wasabi.from_hash(v)
117
+ when 'Custom'
118
+ @custom = Comet::CustomRemoteBucketSettings.new
119
+ @custom.from_hash(v)
120
+ when 'S3'
121
+ @s3 = Comet::S3GenericVirtualStorageRole.new
122
+ @s3.from_hash(v)
123
+ when 'AWS'
124
+ @aws = Comet::AmazonAWSVirtualStorageRoleSettings.new
125
+ @aws.from_hash(v)
126
+ when 'ReplicaDeletionStrategy'
127
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
128
+
129
+ @replica_deletion_strategy = v
130
+ else
131
+ @unknown_json_fields[k] = v
132
+ end
133
+ end
134
+ end
135
+
136
+ # @return [Hash] The complete object as a Ruby hash
137
+ def to_hash
138
+ ret = {}
139
+ ret['Type'] = @type
140
+ ret['Description'] = @description
141
+ unless @remote_address.nil?
142
+ ret['RemoteAddress'] = @remote_address
143
+ end
144
+ unless @username.nil?
145
+ ret['Username'] = @username
146
+ end
147
+ unless @password.nil?
148
+ ret['Password'] = @password
149
+ end
150
+ unless @ldap.nil?
151
+ ret['LDAP'] = @ldap
152
+ end
153
+ unless @b2.nil?
154
+ ret['B2'] = @b2
155
+ end
156
+ unless @wasabi.nil?
157
+ ret['Wasabi'] = @wasabi
158
+ end
159
+ unless @custom.nil?
160
+ ret['Custom'] = @custom
161
+ end
162
+ unless @s3.nil?
163
+ ret['S3'] = @s3
164
+ end
165
+ unless @aws.nil?
166
+ ret['AWS'] = @aws
167
+ end
168
+ unless @replica_deletion_strategy.nil?
169
+ ret['ReplicaDeletionStrategy'] = @replica_deletion_strategy
170
+ end
171
+ @unknown_json_fields.each do |k, v|
172
+ ret[k] = v
173
+ end
174
+ ret
175
+ end
176
+
177
+ # @return [Hash] The complete object as a Ruby hash
178
+ def to_h
179
+ to_hash
180
+ end
181
+
182
+ # @return [String] The complete object as a JSON string
183
+ def to_json(options = {})
184
+ to_hash.to_json(options)
185
+ end
186
+ end
187
+ end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # S3GenericVirtualStorageRole is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class S3GenericVirtualStorageRole
14
+
15
+ # @type [String] s3endpoint
16
+ attr_accessor :s3endpoint
17
+
18
+ # @type [String] iamendpoint
19
+ attr_accessor :iamendpoint
20
+
21
+ # @type [String] master_bucket
22
+ attr_accessor :master_bucket
23
+
24
+ # @type [String] access_key
25
+ attr_accessor :access_key
26
+
27
+ # @type [String] secret_key
28
+ attr_accessor :secret_key
29
+
30
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
31
+ attr_accessor :unknown_json_fields
32
+
33
+ def initialize
34
+ clear
35
+ end
36
+
37
+ def clear
38
+ @s3endpoint = ''
39
+ @iamendpoint = ''
40
+ @master_bucket = ''
41
+ @access_key = ''
42
+ @secret_key = ''
43
+ @unknown_json_fields = {}
44
+ end
45
+
46
+ # @param [String] json_string The complete object in JSON format
47
+ def from_json(json_string)
48
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
49
+
50
+ from_hash(JSON.parse(json_string))
51
+ end
52
+
53
+ # @param [Hash] obj The complete object as a Ruby hash
54
+ def from_hash(obj)
55
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
56
+
57
+ obj.each do |k, v|
58
+ case k
59
+ when 'S3Endpoint'
60
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
61
+
62
+ @s3endpoint = v
63
+ when 'IAMEndpoint'
64
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
65
+
66
+ @iamendpoint = v
67
+ when 'MasterBucket'
68
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
69
+
70
+ @master_bucket = v
71
+ when 'AccessKey'
72
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
73
+
74
+ @access_key = v
75
+ when 'SecretKey'
76
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
77
+
78
+ @secret_key = v
79
+ else
80
+ @unknown_json_fields[k] = v
81
+ end
82
+ end
83
+ end
84
+
85
+ # @return [Hash] The complete object as a Ruby hash
86
+ def to_hash
87
+ ret = {}
88
+ ret['S3Endpoint'] = @s3endpoint
89
+ ret['IAMEndpoint'] = @iamendpoint
90
+ ret['MasterBucket'] = @master_bucket
91
+ ret['AccessKey'] = @access_key
92
+ ret['SecretKey'] = @secret_key
93
+ @unknown_json_fields.each do |k, v|
94
+ ret[k] = v
95
+ end
96
+ ret
97
+ end
98
+
99
+ # @return [Hash] The complete object as a Ruby hash
100
+ def to_h
101
+ to_hash
102
+ end
103
+
104
+ # @return [String] The complete object as a JSON string
105
+ def to_json(options = {})
106
+ to_hash.to_json(options)
107
+ end
108
+ end
109
+ end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -38,6 +36,9 @@ module Comet
38
36
  # @type [Comet::DaysOfWeekConfig] days_select
39
37
  attr_accessor :days_select
40
38
 
39
+ # @type [Number] random_delay_secs
40
+ attr_accessor :random_delay_secs
41
+
41
42
  # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
42
43
  attr_accessor :unknown_json_fields
43
44
 
@@ -52,6 +53,7 @@ module Comet
52
53
  @from_time = Comet::HourSchedConfig.new
53
54
  @to_time = Comet::HourSchedConfig.new
54
55
  @days_select = Comet::DaysOfWeekConfig.new
56
+ @random_delay_secs = 0
55
57
  @unknown_json_fields = {}
56
58
  end
57
59
 
@@ -93,6 +95,10 @@ module Comet
93
95
  when 'DaysSelect'
94
96
  @days_select = Comet::DaysOfWeekConfig.new
95
97
  @days_select.from_hash(v)
98
+ when 'RandomDelaySecs'
99
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
100
+
101
+ @random_delay_secs = v
96
102
  else
97
103
  @unknown_json_fields[k] = v
98
104
  end
@@ -112,6 +118,9 @@ module Comet
112
118
  ret['ToTime'] = @to_time
113
119
  ret['RestrictDays'] = @restrict_days
114
120
  ret['DaysSelect'] = @days_select
121
+ unless @random_delay_secs.nil?
122
+ ret['RandomDelaySecs'] = @random_delay_secs
123
+ end
115
124
  @unknown_json_fields.each do |k, v|
116
125
  ret[k] = v
117
126
  end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # SelfBackupOptions is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class SelfBackupOptions
14
+
15
+ # @type [Array<Comet::SelfBackupTarget>] targets
16
+ attr_accessor :targets
17
+
18
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
19
+ attr_accessor :unknown_json_fields
20
+
21
+ def initialize
22
+ clear
23
+ end
24
+
25
+ def clear
26
+ @targets = []
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, "'json_string' expected String, got #{json_string.class}" 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, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
40
+
41
+ obj.each do |k, v|
42
+ case k
43
+ when 'Targets'
44
+ if v.nil?
45
+ @targets = []
46
+ else
47
+ @targets = Array.new(v.length)
48
+ v.each_with_index do |v1, i1|
49
+ @targets[i1] = Comet::SelfBackupTarget.new
50
+ @targets[i1].from_hash(v1)
51
+ end
52
+ end
53
+ else
54
+ @unknown_json_fields[k] = v
55
+ end
56
+ end
57
+ end
58
+
59
+ # @return [Hash] The complete object as a Ruby hash
60
+ def to_hash
61
+ ret = {}
62
+ ret['Targets'] = @targets
63
+ @unknown_json_fields.each do |k, v|
64
+ ret[k] = v
65
+ end
66
+ ret
67
+ end
68
+
69
+ # @return [Hash] The complete object as a Ruby hash
70
+ def to_h
71
+ to_hash
72
+ end
73
+
74
+ # @return [String] The complete object as a JSON string
75
+ def to_json(options = {})
76
+ to_hash.to_json(options)
77
+ end
78
+ end
79
+ end
@@ -1,11 +1,9 @@
1
- #!/usr/bin/env ruby --enable-frozen-string-literal
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
4
  # Please see the LICENSE file for usage information.
5
5
  #
6
6
  # SPDX-License-Identifier: MIT
7
- #
8
- # frozen_string_literal: true
9
7
 
10
8
  require 'json'
11
9
 
@@ -0,0 +1,137 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright (c) 2020-2022 Comet Licensing Ltd.
4
+ # Please see the LICENSE file for usage information.
5
+ #
6
+ # SPDX-License-Identifier: MIT
7
+
8
+ require 'json'
9
+
10
+ module Comet
11
+
12
+ # SelfBackupTarget is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class SelfBackupTarget
14
+
15
+ # @type [Comet::DestinationLocation] location
16
+ attr_accessor :location
17
+
18
+ # @type [Array<Comet::ScheduleConfig>] schedule
19
+ attr_accessor :schedule
20
+
21
+ # @type [String] schedule_timezone
22
+ attr_accessor :schedule_timezone
23
+
24
+ # @type [Comet::RetentionPolicy] retention_policy
25
+ attr_accessor :retention_policy
26
+
27
+ # @type [String] encryption_key
28
+ attr_accessor :encryption_key
29
+
30
+ # @type [Number] encryption_key_format
31
+ attr_accessor :encryption_key_format
32
+
33
+ # @type [Number] compression
34
+ attr_accessor :compression
35
+
36
+ # @type [Boolean] exclude_jobs_db
37
+ attr_accessor :exclude_jobs_db
38
+
39
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
40
+ attr_accessor :unknown_json_fields
41
+
42
+ def initialize
43
+ clear
44
+ end
45
+
46
+ def clear
47
+ @location = Comet::DestinationLocation.new
48
+ @schedule = []
49
+ @schedule_timezone = ''
50
+ @retention_policy = Comet::RetentionPolicy.new
51
+ @encryption_key = ''
52
+ @encryption_key_format = 0
53
+ @compression = 0
54
+ @unknown_json_fields = {}
55
+ end
56
+
57
+ # @param [String] json_string The complete object in JSON format
58
+ def from_json(json_string)
59
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
60
+
61
+ from_hash(JSON.parse(json_string))
62
+ end
63
+
64
+ # @param [Hash] obj The complete object as a Ruby hash
65
+ def from_hash(obj)
66
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
67
+
68
+ obj.each do |k, v|
69
+ case k
70
+ when 'Location'
71
+ @location = Comet::DestinationLocation.new
72
+ @location.from_hash(v)
73
+ when 'Schedule'
74
+ if v.nil?
75
+ @schedule = []
76
+ else
77
+ @schedule = Array.new(v.length)
78
+ v.each_with_index do |v1, i1|
79
+ @schedule[i1] = Comet::ScheduleConfig.new
80
+ @schedule[i1].from_hash(v1)
81
+ end
82
+ end
83
+ when 'ScheduleTimezone'
84
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
85
+
86
+ @schedule_timezone = v
87
+ when 'RetentionPolicy'
88
+ @retention_policy = Comet::RetentionPolicy.new
89
+ @retention_policy.from_hash(v)
90
+ when 'EncryptionKey'
91
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
92
+
93
+ @encryption_key = v
94
+ when 'EncryptionKeyFormat'
95
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
96
+
97
+ @encryption_key_format = v
98
+ when 'Compression'
99
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
100
+
101
+ @compression = v
102
+ when 'ExcludeJobsDB'
103
+ @exclude_jobs_db = v
104
+ else
105
+ @unknown_json_fields[k] = v
106
+ end
107
+ end
108
+ end
109
+
110
+ # @return [Hash] The complete object as a Ruby hash
111
+ def to_hash
112
+ ret = {}
113
+ ret['Location'] = @location
114
+ ret['Schedule'] = @schedule
115
+ ret['ScheduleTimezone'] = @schedule_timezone
116
+ ret['RetentionPolicy'] = @retention_policy
117
+ ret['EncryptionKey'] = @encryption_key
118
+ ret['EncryptionKeyFormat'] = @encryption_key_format
119
+ ret['Compression'] = @compression
120
+ ret['ExcludeJobsDB'] = @exclude_jobs_db
121
+ @unknown_json_fields.each do |k, v|
122
+ ret[k] = v
123
+ end
124
+ ret
125
+ end
126
+
127
+ # @return [Hash] The complete object as a Ruby hash
128
+ def to_h
129
+ to_hash
130
+ end
131
+
132
+ # @return [String] The complete object as a JSON string
133
+ def to_json(options = {})
134
+ to_hash.to_json(options)
135
+ end
136
+ end
137
+ end