comet_backup_ruby_sdk 1.15.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 (194) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -1
  3. data/Gemfile +2 -4
  4. data/Gemfile.lock +1 -1
  5. data/LICENSE +0 -0
  6. data/Rakefile +2 -4
  7. data/comet_backup_ruby_sdk.gemspec +1 -1
  8. data/lib/comet/api_response_error.rb +2 -4
  9. data/lib/comet/comet_server.rb +14 -10
  10. data/lib/comet/definitions.rb +18 -8
  11. data/lib/comet/models/add_bucket_response_message.rb +2 -4
  12. data/lib/comet/models/admin_account_properties_response.rb +2 -4
  13. data/lib/comet/models/admin_email_options.rb +2 -4
  14. data/lib/comet/models/admin_resource_response.rb +2 -4
  15. data/lib/comet/models/admin_security_options.rb +2 -4
  16. data/lib/comet/models/admin_u2fregistration.rb +2 -4
  17. data/lib/comet/models/admin_user_permissions.rb +2 -4
  18. data/lib/comet/models/admin_web_authn_registration.rb +2 -4
  19. data/lib/comet/models/allowed_admin_user.rb +2 -4
  20. data/lib/comet/models/amazon_awsvirtual_storage_role_settings.rb +2 -4
  21. data/lib/comet/models/authentication_role_options.rb +139 -0
  22. data/lib/comet/models/available_download.rb +2 -4
  23. data/lib/comet/models/azure_destination_location.rb +2 -4
  24. data/lib/comet/models/b2destination_location.rb +2 -4
  25. data/lib/comet/models/b2storage_extra_info.rb +2 -4
  26. data/lib/comet/models/b2transaction_totals.rb +2 -4
  27. data/lib/comet/models/b2virtual_storage_role_settings.rb +2 -4
  28. data/lib/comet/models/backup_job_advanced_options.rb +2 -4
  29. data/lib/comet/models/backup_job_detail.rb +2 -4
  30. data/lib/comet/models/backup_job_progress.rb +2 -4
  31. data/lib/comet/models/backup_rule_config.rb +2 -4
  32. data/lib/comet/models/backup_rule_event_triggers.rb +2 -4
  33. data/lib/comet/models/branding_options.rb +11 -4
  34. data/lib/comet/models/branding_properties.rb +11 -4
  35. data/lib/comet/models/browse_disk_drives_response.rb +2 -4
  36. data/lib/comet/models/browse_edbresponse.rb +2 -4
  37. data/lib/comet/models/browse_hvresponse.rb +2 -4
  38. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +2 -4
  39. data/lib/comet/models/browse_office_365objects_response.rb +2 -4
  40. data/lib/comet/models/browse_sqlserver_response.rb +2 -4
  41. data/lib/comet/models/browse_vssresponse.rb +2 -4
  42. data/lib/comet/models/bucket_properties.rb +2 -4
  43. data/lib/comet/models/bucket_usage_info.rb +2 -4
  44. data/lib/comet/models/comet_apiresponse_message.rb +2 -4
  45. data/lib/comet/models/comet_destination_location.rb +2 -4
  46. data/lib/comet/models/constellation_check_report.rb +2 -4
  47. data/lib/comet/models/constellation_role_options.rb +91 -0
  48. data/lib/comet/models/constellation_stats.rb +2 -4
  49. data/lib/comet/models/constellation_status_apiresponse.rb +2 -4
  50. data/lib/comet/models/content_measurement.rb +2 -4
  51. data/lib/comet/models/content_measurement_component.rb +2 -4
  52. data/lib/comet/models/create_group_policy_response.rb +2 -4
  53. data/lib/comet/models/custom_remote_bucket_settings.rb +2 -4
  54. data/lib/comet/models/days_of_week_config.rb +2 -4
  55. data/lib/comet/models/default_email_report_policy.rb +2 -4
  56. data/lib/comet/models/default_source_with_osrestriction.rb +2 -4
  57. data/lib/comet/models/destination_config.rb +2 -4
  58. data/lib/comet/models/destination_location.rb +2 -4
  59. data/lib/comet/models/destination_statistics.rb +2 -4
  60. data/lib/comet/models/device_config.rb +2 -4
  61. data/lib/comet/models/disk_drive.rb +2 -4
  62. data/lib/comet/models/dispatcher_admin_sources_response.rb +2 -4
  63. data/lib/comet/models/dispatcher_stored_objects_response.rb +2 -4
  64. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +2 -4
  65. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +2 -4
  66. data/lib/comet/models/edbfile_info.rb +2 -4
  67. data/lib/comet/models/email_options.rb +2 -4
  68. data/lib/comet/models/email_report_config.rb +2 -4
  69. data/lib/comet/models/email_report_generated_preview.rb +2 -4
  70. data/lib/comet/models/external_authentication_source.rb +184 -0
  71. data/lib/comet/models/external_ldapauthentication_source_server.rb +97 -0
  72. data/lib/comet/models/external_ldapauthentication_source_settings.rb +23 -10
  73. data/lib/comet/models/extra_file_exclusion.rb +2 -4
  74. data/lib/comet/models/ftpdestination_location.rb +2 -4
  75. data/lib/comet/models/get_group_policy_response.rb +2 -4
  76. data/lib/comet/models/get_profile_and_hash_response_message.rb +2 -4
  77. data/lib/comet/models/get_profile_hash_response_message.rb +2 -4
  78. data/lib/comet/models/group_policy.rb +2 -4
  79. data/lib/comet/models/hour_sched_config.rb +2 -4
  80. data/lib/comet/models/httpconnector_options.rb +139 -0
  81. data/lib/comet/models/hyper_vmachine_info.rb +2 -4
  82. data/lib/comet/models/install_creds.rb +2 -4
  83. data/lib/comet/models/install_token.rb +2 -4
  84. data/lib/comet/models/install_token_response.rb +2 -4
  85. data/lib/comet/models/job_entry.rb +2 -4
  86. data/lib/comet/models/license_options.rb +84 -0
  87. data/lib/comet/models/live_user_connection.rb +2 -4
  88. data/lib/comet/models/local_destination_location.rb +2 -4
  89. data/lib/comet/models/local_storage_directory.rb +73 -0
  90. data/lib/comet/models/mac_oscode_sign_properties.rb +2 -4
  91. data/lib/comet/models/mongo_dbconnection.rb +2 -4
  92. data/lib/comet/models/mssqlconnection.rb +2 -4
  93. data/lib/comet/models/my_sqlconnection.rb +2 -4
  94. data/lib/comet/models/new_bucket_detail.rb +2 -4
  95. data/lib/comet/models/news_entry.rb +2 -4
  96. data/lib/comet/models/office_365connection.rb +2 -4
  97. data/lib/comet/models/office_365credential.rb +2 -4
  98. data/lib/comet/models/office_365custom_setting.rb +2 -4
  99. data/lib/comet/models/office_365custom_setting_v2.rb +2 -4
  100. data/lib/comet/models/office_365mixed_virtual_account.rb +2 -4
  101. data/lib/comet/models/office_365object_info.rb +2 -4
  102. data/lib/comet/models/organization.rb +5 -7
  103. data/lib/comet/models/organization_response.rb +2 -4
  104. data/lib/comet/models/osinfo.rb +2 -4
  105. data/lib/comet/models/partition.rb +2 -4
  106. data/lib/comet/models/private_branding_properties.rb +11 -4
  107. data/lib/comet/models/protected_item_engine_type_policy.rb +2 -4
  108. data/lib/comet/models/public_branding_properties.rb +2 -4
  109. data/lib/comet/models/ratelimit_options.rb +81 -0
  110. data/lib/comet/models/ratelimit_rule.rb +82 -0
  111. data/lib/comet/models/register_office_application_begin_response.rb +2 -4
  112. data/lib/comet/models/register_office_application_check_response.rb +2 -4
  113. data/lib/comet/models/remote_server_address.rb +2 -4
  114. data/lib/comet/models/remote_storage_option.rb +2 -4
  115. data/lib/comet/models/replica_server.rb +187 -0
  116. data/lib/comet/models/replicator_state_apiresponse.rb +2 -4
  117. data/lib/comet/models/request_storage_vault_response_message.rb +2 -4
  118. data/lib/comet/models/restore_job_advanced_options.rb +2 -4
  119. data/lib/comet/models/retention_policy.rb +2 -4
  120. data/lib/comet/models/retention_range.rb +2 -4
  121. data/lib/comet/models/s3destination_location.rb +2 -4
  122. data/lib/comet/models/s3generic_virtual_storage_role.rb +2 -4
  123. data/lib/comet/models/schedule_config.rb +13 -4
  124. data/lib/comet/models/search_clause.rb +2 -4
  125. data/lib/comet/models/self_backup_options.rb +79 -0
  126. data/lib/comet/models/self_backup_statistics.rb +2 -4
  127. data/lib/comet/models/self_backup_target.rb +137 -0
  128. data/lib/comet/models/server_config_options.rb +253 -0
  129. data/lib/comet/models/server_config_options_branding_fragment.rb +2 -4
  130. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +2 -4
  131. data/lib/comet/models/server_meta_branding_properties.rb +2 -4
  132. data/lib/comet/models/server_meta_version_info.rb +2 -4
  133. data/lib/comet/models/session_key_regenerated_response.rb +2 -4
  134. data/lib/comet/models/session_options.rb +73 -0
  135. data/lib/comet/models/sftpdestination_location.rb +2 -4
  136. data/lib/comet/models/size_measurement.rb +2 -4
  137. data/lib/comet/models/software_build_role_options.rb +2 -4
  138. data/lib/comet/models/software_update_news_response.rb +2 -4
  139. data/lib/comet/models/source_basic_info.rb +2 -4
  140. data/lib/comet/models/source_config.rb +2 -4
  141. data/lib/comet/models/source_include_pattern.rb +2 -4
  142. data/lib/comet/models/source_statistics.rb +2 -4
  143. data/lib/comet/models/spanned_destination_location.rb +2 -4
  144. data/lib/comet/models/spanned_storage_extra_info.rb +2 -4
  145. data/lib/comet/models/sshconnection.rb +2 -4
  146. data/lib/comet/models/stat_result.rb +2 -4
  147. data/lib/comet/models/storage_free_space_info.rb +2 -4
  148. data/lib/comet/models/storage_role_options.rb +110 -0
  149. data/lib/comet/models/storage_vault_provider_policy.rb +2 -4
  150. data/lib/comet/models/stored_object.rb +2 -4
  151. data/lib/comet/models/streamable_event.rb +2 -4
  152. data/lib/comet/models/swift_destination_location.rb +2 -4
  153. data/lib/comet/models/test_response.rb +2 -4
  154. data/lib/comet/models/totp_regenerated_response.rb +2 -4
  155. data/lib/comet/models/u2fregister_request.rb +2 -4
  156. data/lib/comet/models/u2fregistered_key.rb +2 -4
  157. data/lib/comet/models/u2fregistration_challenge_response.rb +2 -4
  158. data/lib/comet/models/u2fsign_request.rb +2 -4
  159. data/lib/comet/models/u2fsign_response.rb +2 -4
  160. data/lib/comet/models/uninstall_config.rb +2 -4
  161. data/lib/comet/models/update_campaign_device_status.rb +2 -4
  162. data/lib/comet/models/update_campaign_options.rb +4 -6
  163. data/lib/comet/models/update_campaign_properties.rb +2 -4
  164. data/lib/comet/models/update_campaign_status.rb +2 -4
  165. data/lib/comet/models/update_campaign_status_device_entry.rb +2 -4
  166. data/lib/comet/models/user_custom_email_settings.rb +2 -4
  167. data/lib/comet/models/user_on_server.rb +2 -4
  168. data/lib/comet/models/user_policy.rb +2 -4
  169. data/lib/comet/models/user_profile_config.rb +2 -4
  170. data/lib/comet/models/user_profile_fragment.rb +2 -4
  171. data/lib/comet/models/vault_snapshot.rb +2 -4
  172. data/lib/comet/models/vmdksnapshot_view_options.rb +2 -4
  173. data/lib/comet/models/vsscomponent.rb +2 -4
  174. data/lib/comet/models/vsswriter_info.rb +2 -4
  175. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +2 -4
  176. data/lib/comet/models/web_authn_authenticator_selection.rb +2 -4
  177. data/lib/comet/models/web_authn_credential.rb +2 -4
  178. data/lib/comet/models/web_authn_credential_assertion.rb +2 -4
  179. data/lib/comet/models/web_authn_credential_descriptor.rb +2 -4
  180. data/lib/comet/models/web_authn_credential_entity.rb +2 -4
  181. data/lib/comet/models/web_authn_credential_parameter.rb +2 -4
  182. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +2 -4
  183. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +2 -4
  184. data/lib/comet/models/web_authn_registration_challenge_response.rb +2 -4
  185. data/lib/comet/models/web_authn_relying_party_entity.rb +2 -4
  186. data/lib/comet/models/web_authn_sign_request.rb +2 -4
  187. data/lib/comet/models/web_authn_sign_response.rb +2 -4
  188. data/lib/comet/models/web_authn_user_entity.rb +2 -4
  189. data/lib/comet/models/web_interface_branding_properties.rb +2 -4
  190. data/lib/comet/models/webhook_option.rb +2 -4
  191. data/lib/comet/models/win_smbauth.rb +2 -4
  192. data/lib/comet/models/windows_code_sign_properties.rb +2 -4
  193. data/lib/comet_backup_ruby_sdk.rb +19 -4
  194. metadata +17 -2
@@ -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
@@ -0,0 +1,253 @@
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
+ # ServerConfigOptions is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class ServerConfigOptions
14
+
15
+ # @type [Array<String>] experimental_options
16
+ attr_accessor :experimental_options
17
+
18
+ # @type [Hash{String => Comet::WebhookOption}] webhook_options
19
+ attr_accessor :webhook_options
20
+
21
+ # @type [Comet::LicenseOptions] license
22
+ attr_accessor :license
23
+
24
+ # @type [Comet::BrandingOptions] branding
25
+ attr_accessor :branding
26
+
27
+ # @type [Array<Comet::AllowedAdminUser>] admin_users
28
+ attr_accessor :admin_users
29
+
30
+ # @type [Hash{String => Comet::Organization}] organizations
31
+ attr_accessor :organizations
32
+
33
+ # @type [Hash{String => Comet::ExternalAuthenticationSource}] external_admin_user_sources
34
+ attr_accessor :external_admin_user_sources
35
+
36
+ # @type [Array<Comet::HTTPConnectorOptions>] listen_addresses
37
+ attr_accessor :listen_addresses
38
+
39
+ # @type [Boolean] trust_xforwarded_for
40
+ attr_accessor :trust_xforwarded_for
41
+
42
+ # @type [Comet::RatelimitOptions] iprate_limit
43
+ attr_accessor :iprate_limit
44
+
45
+ # @type [Comet::EmailOptions] email
46
+ attr_accessor :email
47
+
48
+ # @type [Comet::AuthenticationRoleOptions] authentication_role
49
+ attr_accessor :authentication_role
50
+
51
+ # @type [Comet::StorageRoleOptions] storage_role
52
+ attr_accessor :storage_role
53
+
54
+ # @type [Comet::SoftwareBuildRoleOptions] software_build_role
55
+ attr_accessor :software_build_role
56
+
57
+ # @type [Comet::ConstellationRoleOptions] constellation_role
58
+ attr_accessor :constellation_role
59
+
60
+ # @type [Comet::ConstellationRoleOptions] constellation_role__legacy
61
+ attr_accessor :constellation_role__legacy
62
+
63
+ # @type [Comet::SelfBackupOptions] self_backup
64
+ attr_accessor :self_backup
65
+
66
+ # @type [Comet::SessionOptions] session_settings
67
+ attr_accessor :session_settings
68
+
69
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
70
+ attr_accessor :unknown_json_fields
71
+
72
+ def initialize
73
+ clear
74
+ end
75
+
76
+ def clear
77
+ @experimental_options = []
78
+ @webhook_options = {}
79
+ @license = Comet::LicenseOptions.new
80
+ @branding = Comet::BrandingOptions.new
81
+ @admin_users = []
82
+ @organizations = {}
83
+ @external_admin_user_sources = {}
84
+ @listen_addresses = []
85
+ @iprate_limit = Comet::RatelimitOptions.new
86
+ @email = Comet::EmailOptions.new
87
+ @authentication_role = Comet::AuthenticationRoleOptions.new
88
+ @storage_role = Comet::StorageRoleOptions.new
89
+ @software_build_role = Comet::SoftwareBuildRoleOptions.new
90
+ @constellation_role = Comet::ConstellationRoleOptions.new
91
+ @constellation_role__legacy = Comet::ConstellationRoleOptions.new
92
+ @self_backup = Comet::SelfBackupOptions.new
93
+ @session_settings = Comet::SessionOptions.new
94
+ @unknown_json_fields = {}
95
+ end
96
+
97
+ # @param [String] json_string The complete object in JSON format
98
+ def from_json(json_string)
99
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
100
+
101
+ from_hash(JSON.parse(json_string))
102
+ end
103
+
104
+ # @param [Hash] obj The complete object as a Ruby hash
105
+ def from_hash(obj)
106
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
107
+
108
+ obj.each do |k, v|
109
+ case k
110
+ when 'ExperimentalOptions'
111
+ if v.nil?
112
+ @experimental_options = []
113
+ else
114
+ @experimental_options = Array.new(v.length)
115
+ v.each_with_index do |v1, i1|
116
+ raise TypeError, "'v1' expected String, got #{v1.class}" unless v1.is_a? String
117
+
118
+ @experimental_options[i1] = v1
119
+ end
120
+ end
121
+ when 'WebhookOptions'
122
+ @webhook_options = {}
123
+ if v.nil?
124
+ @webhook_options = {}
125
+ else
126
+ v.each do |k1, v1|
127
+ @webhook_options[k1] = Comet::WebhookOption.new
128
+ @webhook_options[k1].from_hash(v1)
129
+ end
130
+ end
131
+ when 'License'
132
+ @license = Comet::LicenseOptions.new
133
+ @license.from_hash(v)
134
+ when 'Branding'
135
+ @branding = Comet::BrandingOptions.new
136
+ @branding.from_hash(v)
137
+ when 'AdminUsers'
138
+ if v.nil?
139
+ @admin_users = []
140
+ else
141
+ @admin_users = Array.new(v.length)
142
+ v.each_with_index do |v1, i1|
143
+ @admin_users[i1] = Comet::AllowedAdminUser.new
144
+ @admin_users[i1].from_hash(v1)
145
+ end
146
+ end
147
+ when 'Organizations'
148
+ @organizations = {}
149
+ if v.nil?
150
+ @organizations = {}
151
+ else
152
+ v.each do |k1, v1|
153
+ @organizations[k1] = Comet::Organization.new
154
+ @organizations[k1].from_hash(v1)
155
+ end
156
+ end
157
+ when 'ExternalAdminUserSources'
158
+ @external_admin_user_sources = {}
159
+ if v.nil?
160
+ @external_admin_user_sources = {}
161
+ else
162
+ v.each do |k1, v1|
163
+ @external_admin_user_sources[k1] = Comet::ExternalAuthenticationSource.new
164
+ @external_admin_user_sources[k1].from_hash(v1)
165
+ end
166
+ end
167
+ when 'ListenAddresses'
168
+ if v.nil?
169
+ @listen_addresses = []
170
+ else
171
+ @listen_addresses = Array.new(v.length)
172
+ v.each_with_index do |v1, i1|
173
+ @listen_addresses[i1] = Comet::HTTPConnectorOptions.new
174
+ @listen_addresses[i1].from_hash(v1)
175
+ end
176
+ end
177
+ when 'TrustXForwardedFor'
178
+ @trust_xforwarded_for = v
179
+ when 'IPRateLimit'
180
+ @iprate_limit = Comet::RatelimitOptions.new
181
+ @iprate_limit.from_hash(v)
182
+ when 'Email'
183
+ @email = Comet::EmailOptions.new
184
+ @email.from_hash(v)
185
+ when 'AuthenticationRole'
186
+ @authentication_role = Comet::AuthenticationRoleOptions.new
187
+ @authentication_role.from_hash(v)
188
+ when 'StorageRole'
189
+ @storage_role = Comet::StorageRoleOptions.new
190
+ @storage_role.from_hash(v)
191
+ when 'SoftwareBuildRole'
192
+ @software_build_role = Comet::SoftwareBuildRoleOptions.new
193
+ @software_build_role.from_hash(v)
194
+ when 'ConstellationRole'
195
+ @constellation_role = Comet::ConstellationRoleOptions.new
196
+ @constellation_role.from_hash(v)
197
+ when 'OverseerRole'
198
+ @constellation_role__legacy = Comet::ConstellationRoleOptions.new
199
+ @constellation_role__legacy.from_hash(v)
200
+ when 'SelfBackup'
201
+ @self_backup = Comet::SelfBackupOptions.new
202
+ @self_backup.from_hash(v)
203
+ when 'SessionSettings'
204
+ @session_settings = Comet::SessionOptions.new
205
+ @session_settings.from_hash(v)
206
+ else
207
+ @unknown_json_fields[k] = v
208
+ end
209
+ end
210
+ end
211
+
212
+ # @return [Hash] The complete object as a Ruby hash
213
+ def to_hash
214
+ ret = {}
215
+ unless @experimental_options.nil?
216
+ ret['ExperimentalOptions'] = @experimental_options
217
+ end
218
+ ret['WebhookOptions'] = @webhook_options
219
+ ret['License'] = @license
220
+ ret['Branding'] = @branding
221
+ ret['AdminUsers'] = @admin_users
222
+ ret['Organizations'] = @organizations
223
+ ret['ExternalAdminUserSources'] = @external_admin_user_sources
224
+ ret['ListenAddresses'] = @listen_addresses
225
+ ret['TrustXForwardedFor'] = @trust_xforwarded_for
226
+ ret['IPRateLimit'] = @iprate_limit
227
+ ret['Email'] = @email
228
+ ret['AuthenticationRole'] = @authentication_role
229
+ ret['StorageRole'] = @storage_role
230
+ ret['SoftwareBuildRole'] = @software_build_role
231
+ ret['ConstellationRole'] = @constellation_role
232
+ unless @constellation_role__legacy.nil?
233
+ ret['OverseerRole'] = @constellation_role__legacy
234
+ end
235
+ ret['SelfBackup'] = @self_backup
236
+ ret['SessionSettings'] = @session_settings
237
+ @unknown_json_fields.each do |k, v|
238
+ ret[k] = v
239
+ end
240
+ ret
241
+ end
242
+
243
+ # @return [Hash] The complete object as a Ruby hash
244
+ def to_h
245
+ to_hash
246
+ end
247
+
248
+ # @return [String] The complete object as a JSON string
249
+ def to_json(options = {})
250
+ to_hash.to_json(options)
251
+ end
252
+ end
253
+ 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
 
@@ -0,0 +1,73 @@
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
+ # SessionOptions is a typed class wrapper around the underlying Comet Server API data structure.
13
+ class SessionOptions
14
+
15
+ # @type [Number] expired_in_seconds
16
+ attr_accessor :expired_in_seconds
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
+ @expired_in_seconds = 0
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 'ExpiredInSeconds'
44
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
45
+
46
+ @expired_in_seconds = 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['ExpiredInSeconds'] = @expired_in_seconds
57
+ @unknown_json_fields.each do |k, v|
58
+ ret[k] = v
59
+ end
60
+ ret
61
+ end
62
+
63
+ # @return [Hash] The complete object as a Ruby hash
64
+ def to_h
65
+ to_hash
66
+ end
67
+
68
+ # @return [String] The complete object as a JSON string
69
+ def to_json(options = {})
70
+ to_hash.to_json(options)
71
+ end
72
+ end
73
+ 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
 
@@ -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