comet_backup_ruby_sdk 1.8.0 → 1.12.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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +31 -0
  4. data/Gemfile.lock +3 -3
  5. data/README.md +1 -1
  6. data/RELEASING.md +1 -0
  7. data/comet_backup_ruby_sdk.gemspec +2 -2
  8. data/lib/comet/api_response_error.rb +1 -1
  9. data/lib/comet/comet_server.rb +197 -4
  10. data/lib/comet/definitions.rb +52 -13
  11. data/lib/comet/models/add_bucket_response_message.rb +1 -1
  12. data/lib/comet/models/admin_account_properties_response.rb +1 -1
  13. data/lib/comet/models/admin_email_options.rb +1 -1
  14. data/lib/comet/models/admin_resource_response.rb +1 -1
  15. data/lib/comet/models/admin_security_options.rb +26 -1
  16. data/lib/comet/models/admin_u2fregistration.rb +2 -1
  17. data/lib/comet/models/admin_user_permissions.rb +1 -1
  18. data/lib/comet/models/admin_web_authn_registration.rb +121 -0
  19. data/lib/comet/models/allowed_admin_user.rb +214 -0
  20. data/lib/comet/models/available_download.rb +1 -1
  21. data/lib/comet/models/azure_destination_location.rb +1 -1
  22. data/lib/comet/models/b2destination_location.rb +10 -1
  23. data/lib/comet/models/b2storage_extra_info.rb +1 -1
  24. data/lib/comet/models/b2transaction_totals.rb +1 -1
  25. data/lib/comet/models/b2virtual_storage_role_settings.rb +7 -1
  26. data/lib/comet/models/backup_job_advanced_options.rb +1 -1
  27. data/lib/comet/models/backup_job_detail.rb +43 -1
  28. data/lib/comet/models/backup_job_progress.rb +1 -1
  29. data/lib/comet/models/backup_rule_config.rb +1 -1
  30. data/lib/comet/models/backup_rule_event_triggers.rb +1 -1
  31. data/lib/comet/models/branding_options.rb +1 -1
  32. data/lib/comet/models/branding_properties.rb +1 -1
  33. data/lib/comet/models/browse_disk_drives_response.rb +1 -1
  34. data/lib/comet/models/browse_edbresponse.rb +1 -1
  35. data/lib/comet/models/browse_hvresponse.rb +1 -1
  36. data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +99 -0
  37. data/lib/comet/models/browse_office_365objects_response.rb +1 -1
  38. data/lib/comet/models/browse_sqlserver_response.rb +1 -1
  39. data/lib/comet/models/browse_vssresponse.rb +1 -1
  40. data/lib/comet/models/bucket_properties.rb +1 -1
  41. data/lib/comet/models/bucket_usage_info.rb +1 -1
  42. data/lib/comet/models/comet_apiresponse_message.rb +1 -1
  43. data/lib/comet/models/comet_destination_location.rb +1 -1
  44. data/lib/comet/models/constellation_check_report.rb +1 -1
  45. data/lib/comet/models/constellation_stats.rb +1 -1
  46. data/lib/comet/models/constellation_status_apiresponse.rb +1 -1
  47. data/lib/comet/models/content_measurement.rb +1 -1
  48. data/lib/comet/models/content_measurement_component.rb +1 -1
  49. data/lib/comet/models/create_group_policy_response.rb +1 -1
  50. data/lib/comet/models/custom_remote_bucket_settings.rb +1 -1
  51. data/lib/comet/models/default_email_report_policy.rb +1 -1
  52. data/lib/comet/models/default_source_with_osrestriction.rb +1 -1
  53. data/lib/comet/models/destination_config.rb +1 -1
  54. data/lib/comet/models/destination_location.rb +1 -1
  55. data/lib/comet/models/destination_statistics.rb +1 -1
  56. data/lib/comet/models/device_config.rb +12 -1
  57. data/lib/comet/models/disk_drive.rb +1 -1
  58. data/lib/comet/models/dispatcher_admin_sources_response.rb +1 -1
  59. data/lib/comet/models/dispatcher_stored_objects_response.rb +1 -1
  60. data/lib/comet/models/dispatcher_vault_snapshots_response.rb +1 -1
  61. data/lib/comet/models/dispatcher_windisk_snapshot_response.rb +99 -0
  62. data/lib/comet/models/edbfile_info.rb +1 -1
  63. data/lib/comet/models/email_options.rb +1 -1
  64. data/lib/comet/models/email_report_config.rb +1 -1
  65. data/lib/comet/models/email_report_generated_preview.rb +26 -1
  66. data/lib/comet/models/external_ldapauthentication_source_settings.rb +1 -1
  67. data/lib/comet/models/extra_file_exclusion.rb +1 -1
  68. data/lib/comet/models/ftpdestination_location.rb +1 -1
  69. data/lib/comet/models/get_group_policy_response.rb +1 -1
  70. data/lib/comet/models/get_profile_and_hash_response_message.rb +1 -1
  71. data/lib/comet/models/get_profile_hash_response_message.rb +1 -1
  72. data/lib/comet/models/group_policy.rb +1 -1
  73. data/lib/comet/models/hyper_vmachine_info.rb +1 -1
  74. data/lib/comet/models/install_creds.rb +1 -1
  75. data/lib/comet/models/install_token.rb +1 -1
  76. data/lib/comet/models/install_token_response.rb +1 -1
  77. data/lib/comet/models/job_entry.rb +1 -1
  78. data/lib/comet/models/live_user_connection.rb +1 -1
  79. data/lib/comet/models/local_destination_location.rb +1 -1
  80. data/lib/comet/models/mac_oscode_sign_properties.rb +1 -1
  81. data/lib/comet/models/mongo_dbconnection.rb +1 -1
  82. data/lib/comet/models/mssqlconnection.rb +1 -1
  83. data/lib/comet/models/my_sqlconnection.rb +40 -1
  84. data/lib/comet/models/new_bucket_detail.rb +1 -1
  85. data/lib/comet/models/news_entry.rb +1 -1
  86. data/lib/comet/models/office_365connection.rb +9 -1
  87. data/lib/comet/models/office_365credential.rb +1 -1
  88. data/lib/comet/models/office_365custom_setting.rb +2 -1
  89. data/lib/comet/models/office_365custom_setting_v2.rb +108 -0
  90. data/lib/comet/models/office_365mixed_virtual_account.rb +211 -0
  91. data/lib/comet/models/office_365object_info.rb +1 -1
  92. data/lib/comet/models/organization.rb +1 -1
  93. data/lib/comet/models/organization_response.rb +1 -1
  94. data/lib/comet/models/osinfo.rb +1 -1
  95. data/lib/comet/models/partition.rb +1 -1
  96. data/lib/comet/models/private_branding_properties.rb +1 -1
  97. data/lib/comet/models/protected_item_engine_type_policy.rb +1 -1
  98. data/lib/comet/models/public_branding_properties.rb +1 -1
  99. data/lib/comet/models/register_office_application_begin_response.rb +1 -1
  100. data/lib/comet/models/register_office_application_check_response.rb +1 -1
  101. data/lib/comet/models/remote_server_address.rb +1 -1
  102. data/lib/comet/models/remote_storage_option.rb +1 -1
  103. data/lib/comet/models/replicator_state_apiresponse.rb +1 -1
  104. data/lib/comet/models/request_storage_vault_response_message.rb +1 -1
  105. data/lib/comet/models/restore_job_advanced_options.rb +1 -1
  106. data/lib/comet/models/retention_policy.rb +1 -1
  107. data/lib/comet/models/retention_range.rb +1 -1
  108. data/lib/comet/models/s3destination_location.rb +1 -1
  109. data/lib/comet/models/schedule_config.rb +1 -1
  110. data/lib/comet/models/search_clause.rb +1 -1
  111. data/lib/comet/models/self_backup_statistics.rb +1 -1
  112. data/lib/comet/models/server_config_options_branding_fragment.rb +1 -1
  113. data/lib/comet/models/server_config_options_software_build_role_fragment.rb +1 -1
  114. data/lib/comet/models/server_meta_branding_properties.rb +10 -1
  115. data/lib/comet/models/server_meta_version_info.rb +1 -1
  116. data/lib/comet/models/session_key_regenerated_response.rb +1 -1
  117. data/lib/comet/models/sftpdestination_location.rb +1 -1
  118. data/lib/comet/models/size_measurement.rb +1 -1
  119. data/lib/comet/models/software_build_role_options.rb +1 -1
  120. data/lib/comet/models/software_update_news_response.rb +1 -1
  121. data/lib/comet/models/source_basic_info.rb +1 -1
  122. data/lib/comet/models/source_config.rb +1 -1
  123. data/lib/comet/models/source_include_pattern.rb +1 -1
  124. data/lib/comet/models/source_statistics.rb +1 -1
  125. data/lib/comet/models/spanned_destination_location.rb +1 -1
  126. data/lib/comet/models/spanned_storage_extra_info.rb +1 -1
  127. data/lib/comet/models/sshconnection.rb +1 -1
  128. data/lib/comet/models/stat_result.rb +10 -1
  129. data/lib/comet/models/storage_free_space_info.rb +1 -1
  130. data/lib/comet/models/storage_vault_provider_policy.rb +1 -1
  131. data/lib/comet/models/stored_object.rb +1 -1
  132. data/lib/comet/models/streamable_event.rb +1 -1
  133. data/lib/comet/models/swift_destination_location.rb +1 -1
  134. data/lib/comet/models/test_response.rb +1 -1
  135. data/lib/comet/models/totp_regenerated_response.rb +1 -1
  136. data/lib/comet/models/u2fregister_request.rb +2 -1
  137. data/lib/comet/models/u2fregistered_key.rb +2 -1
  138. data/lib/comet/models/u2fregistration_challenge_response.rb +2 -1
  139. data/lib/comet/models/u2fsign_request.rb +2 -1
  140. data/lib/comet/models/u2fsign_response.rb +2 -1
  141. data/lib/comet/models/uninstall_config.rb +1 -1
  142. data/lib/comet/models/update_campaign_device_status.rb +1 -1
  143. data/lib/comet/models/update_campaign_options.rb +1 -1
  144. data/lib/comet/models/update_campaign_properties.rb +1 -1
  145. data/lib/comet/models/update_campaign_status.rb +1 -1
  146. data/lib/comet/models/update_campaign_status_device_entry.rb +1 -1
  147. data/lib/comet/models/user_custom_email_settings.rb +1 -1
  148. data/lib/comet/models/user_on_server.rb +1 -1
  149. data/lib/comet/models/user_policy.rb +1 -1
  150. data/lib/comet/models/user_profile_config.rb +1 -1
  151. data/lib/comet/models/user_profile_fragment.rb +1 -1
  152. data/lib/comet/models/vault_snapshot.rb +1 -1
  153. data/lib/comet/models/vsscomponent.rb +1 -1
  154. data/lib/comet/models/vsswriter_info.rb +1 -1
  155. data/lib/comet/models/wasabi_virtual_storage_role_settings.rb +1 -1
  156. data/lib/comet/models/web_authn_authenticator_selection.rb +96 -0
  157. data/lib/comet/models/web_authn_credential.rb +105 -0
  158. data/lib/comet/models/web_authn_credential_assertion.rb +74 -0
  159. data/lib/comet/models/web_authn_credential_descriptor.rb +101 -0
  160. data/lib/comet/models/web_authn_credential_entity.rb +86 -0
  161. data/lib/comet/models/web_authn_credential_parameter.rb +84 -0
  162. data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +172 -0
  163. data/lib/comet/models/web_authn_public_key_credential_request_options.rb +140 -0
  164. data/lib/comet/models/web_authn_registration_challenge_response.rb +101 -0
  165. data/lib/comet/models/web_authn_relying_party_entity.rb +95 -0
  166. data/lib/comet/models/web_authn_sign_request.rb +83 -0
  167. data/lib/comet/models/web_authn_sign_response.rb +84 -0
  168. data/lib/comet/models/web_authn_user_entity.rb +105 -0
  169. data/lib/comet/models/web_interface_branding_properties.rb +1 -1
  170. data/lib/comet/models/webhook_option.rb +1 -1
  171. data/lib/comet/models/win_smbauth.rb +1 -1
  172. data/lib/comet/models/windows_code_sign_properties.rb +1 -1
  173. data/lib/comet_backup_ruby_sdk.rb +20 -1
  174. metadata +24 -4
@@ -0,0 +1,140 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'base64'
11
+ require 'json'
12
+
13
+ module Comet
14
+
15
+ # WebAuthnPublicKeyCredentialRequestOptions is a typed class wrapper around the underlying Comet Server API data structure.
16
+ class WebAuthnPublicKeyCredentialRequestOptions
17
+
18
+ # @type [Array<Object>] challenge
19
+ attr_accessor :challenge
20
+
21
+ # @type [Number] timeout
22
+ attr_accessor :timeout
23
+
24
+ # @type [String] relying_party_id
25
+ attr_accessor :relying_party_id
26
+
27
+ # @type [Array<Comet::WebAuthnCredentialDescriptor>] allowed_credentials
28
+ attr_accessor :allowed_credentials
29
+
30
+ # @type [String] user_verification
31
+ attr_accessor :user_verification
32
+
33
+ # @type [Hash{String => Object}] extensions
34
+ attr_accessor :extensions
35
+
36
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
37
+ attr_accessor :unknown_json_fields
38
+
39
+ def initialize
40
+ clear
41
+ end
42
+
43
+ def clear
44
+ @challenge = []
45
+ @timeout = 0
46
+ @relying_party_id = ''
47
+ @allowed_credentials = []
48
+ @user_verification = ''
49
+ @extensions = {}
50
+ @unknown_json_fields = {}
51
+ end
52
+
53
+ # @param [String] json_string The complete object in JSON format
54
+ def from_json(json_string)
55
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
56
+
57
+ from_hash(JSON.parse(json_string))
58
+ end
59
+
60
+ # @param [Hash] obj The complete object as a Ruby hash
61
+ def from_hash(obj)
62
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
63
+
64
+ obj.each do |k, v|
65
+ case k
66
+ when 'challenge'
67
+ @challenge = Base64.decode64(v)
68
+ when 'timeout'
69
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
70
+
71
+ @timeout = v
72
+ when 'rpId'
73
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
74
+
75
+ @relying_party_id = v
76
+ when 'allowCredentials'
77
+ if v.nil?
78
+ @allowed_credentials = []
79
+ else
80
+ @allowed_credentials = Array.new(v.length)
81
+ v.each_with_index do |v1, i1|
82
+ @allowed_credentials[i1] = Comet::WebAuthnCredentialDescriptor.new
83
+ @allowed_credentials[i1].from_hash(v1)
84
+ end
85
+ end
86
+ when 'userVerification'
87
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
88
+
89
+ @user_verification = v
90
+ when 'extensions'
91
+ @extensions = {}
92
+ if v.nil?
93
+ @extensions = {}
94
+ else
95
+ v.each do |k1, v1|
96
+ @extensions[k1] = v1
97
+ end
98
+ end
99
+ else
100
+ @unknown_json_fields[k] = v
101
+ end
102
+ end
103
+ end
104
+
105
+ # @return [Hash] The complete object as a Ruby hash
106
+ def to_hash
107
+ ret = {}
108
+ ret['challenge'] = Base64.strict_encode64(@challenge)
109
+ unless @timeout.nil?
110
+ ret['timeout'] = @timeout
111
+ end
112
+ unless @relying_party_id.nil?
113
+ ret['rpId'] = @relying_party_id
114
+ end
115
+ unless @allowed_credentials.nil?
116
+ ret['allowCredentials'] = @allowed_credentials
117
+ end
118
+ unless @user_verification.nil?
119
+ ret['userVerification'] = @user_verification
120
+ end
121
+ unless @extensions.nil?
122
+ ret['extensions'] = @extensions
123
+ end
124
+ @unknown_json_fields.each do |k, v|
125
+ ret[k] = v
126
+ end
127
+ ret
128
+ end
129
+
130
+ # @return [Hash] The complete object as a Ruby hash
131
+ def to_h
132
+ to_hash
133
+ end
134
+
135
+ # @return [String] The complete object as a JSON string
136
+ def to_json(options = {})
137
+ to_hash.to_json(options)
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # WebAuthnRegistrationChallengeResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class WebAuthnRegistrationChallengeResponse
16
+
17
+ # @type [Number] status
18
+ attr_accessor :status
19
+
20
+ # @type [String] message
21
+ attr_accessor :message
22
+
23
+ # @type [String] challenge_id
24
+ attr_accessor :challenge_id
25
+
26
+ # @type [Comet::WebAuthnPublicKeyCredentialCreationOptions] credential_creation_options
27
+ attr_accessor :credential_creation_options
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
+ clear
34
+ end
35
+
36
+ def clear
37
+ @status = 0
38
+ @message = ''
39
+ @challenge_id = ''
40
+ @credential_creation_options = Comet::WebAuthnPublicKeyCredentialCreationOptions.new
41
+ @unknown_json_fields = {}
42
+ end
43
+
44
+ # @param [String] json_string The complete object in JSON format
45
+ def from_json(json_string)
46
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
47
+
48
+ from_hash(JSON.parse(json_string))
49
+ end
50
+
51
+ # @param [Hash] obj The complete object as a Ruby hash
52
+ def from_hash(obj)
53
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
54
+
55
+ obj.each do |k, v|
56
+ case k
57
+ when 'Status'
58
+ raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
59
+
60
+ @status = v
61
+ when 'Message'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @message = v
65
+ when 'ChallengeID'
66
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
67
+
68
+ @challenge_id = v
69
+ when 'CredentialCreationOptions'
70
+ @credential_creation_options = Comet::WebAuthnPublicKeyCredentialCreationOptions.new
71
+ @credential_creation_options.from_hash(v)
72
+ else
73
+ @unknown_json_fields[k] = v
74
+ end
75
+ end
76
+ end
77
+
78
+ # @return [Hash] The complete object as a Ruby hash
79
+ def to_hash
80
+ ret = {}
81
+ ret['Status'] = @status
82
+ ret['Message'] = @message
83
+ ret['ChallengeID'] = @challenge_id
84
+ ret['CredentialCreationOptions'] = @credential_creation_options
85
+ @unknown_json_fields.each do |k, v|
86
+ ret[k] = v
87
+ end
88
+ ret
89
+ end
90
+
91
+ # @return [Hash] The complete object as a Ruby hash
92
+ def to_h
93
+ to_hash
94
+ end
95
+
96
+ # @return [String] The complete object as a JSON string
97
+ def to_json(options = {})
98
+ to_hash.to_json(options)
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,95 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # WebAuthnRelyingPartyEntity is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class WebAuthnRelyingPartyEntity
16
+
17
+ # @type [String] name
18
+ attr_accessor :name
19
+
20
+ # @type [String] icon
21
+ attr_accessor :icon
22
+
23
+ # @type [String] id
24
+ attr_accessor :id
25
+
26
+ # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
27
+ attr_accessor :unknown_json_fields
28
+
29
+ def initialize
30
+ clear
31
+ end
32
+
33
+ def clear
34
+ @name = ''
35
+ @icon = ''
36
+ @id = ''
37
+ @unknown_json_fields = {}
38
+ end
39
+
40
+ # @param [String] json_string The complete object in JSON format
41
+ def from_json(json_string)
42
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
43
+
44
+ from_hash(JSON.parse(json_string))
45
+ end
46
+
47
+ # @param [Hash] obj The complete object as a Ruby hash
48
+ def from_hash(obj)
49
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
50
+
51
+ obj.each do |k, v|
52
+ case k
53
+ when 'name'
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
+
56
+ @name = v
57
+ when 'icon'
58
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
59
+
60
+ @icon = v
61
+ when 'id'
62
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
63
+
64
+ @id = v
65
+ else
66
+ @unknown_json_fields[k] = v
67
+ end
68
+ end
69
+ end
70
+
71
+ # @return [Hash] The complete object as a Ruby hash
72
+ def to_hash
73
+ ret = {}
74
+ ret['name'] = @name
75
+ unless @icon.nil?
76
+ ret['icon'] = @icon
77
+ end
78
+ ret['id'] = @id
79
+ @unknown_json_fields.each do |k, v|
80
+ ret[k] = v
81
+ end
82
+ ret
83
+ end
84
+
85
+ # @return [Hash] The complete object as a Ruby hash
86
+ def to_h
87
+ to_hash
88
+ end
89
+
90
+ # @return [String] The complete object as a JSON string
91
+ def to_json(options = {})
92
+ to_hash.to_json(options)
93
+ end
94
+ end
95
+ end
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # WebAuthnSignRequest is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class WebAuthnSignRequest
16
+
17
+ # @type [String] challenge_id
18
+ attr_accessor :challenge_id
19
+
20
+ # @type [Comet::WebAuthnCredentialAssertion] assertion
21
+ attr_accessor :assertion
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
+ clear
28
+ end
29
+
30
+ def clear
31
+ @challenge_id = ''
32
+ @assertion = Comet::WebAuthnCredentialAssertion.new
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, "'json_string' expected String, got #{json_string.class}" 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, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
+
47
+ obj.each do |k, v|
48
+ case k
49
+ when 'ChallengeID'
50
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
51
+
52
+ @challenge_id = v
53
+ when 'Assertion'
54
+ @assertion = Comet::WebAuthnCredentialAssertion.new
55
+ @assertion.from_hash(v)
56
+ else
57
+ @unknown_json_fields[k] = v
58
+ end
59
+ end
60
+ end
61
+
62
+ # @return [Hash] The complete object as a Ruby hash
63
+ def to_hash
64
+ ret = {}
65
+ ret['ChallengeID'] = @challenge_id
66
+ ret['Assertion'] = @assertion
67
+ @unknown_json_fields.each do |k, v|
68
+ ret[k] = v
69
+ end
70
+ ret
71
+ end
72
+
73
+ # @return [Hash] The complete object as a Ruby hash
74
+ def to_h
75
+ to_hash
76
+ end
77
+
78
+ # @return [String] The complete object as a JSON string
79
+ def to_json(options = {})
80
+ to_hash.to_json(options)
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,84 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'json'
11
+
12
+ module Comet
13
+
14
+ # WebAuthnSignResponse is a typed class wrapper around the underlying Comet Server API data structure.
15
+ class WebAuthnSignResponse
16
+
17
+ # @type [String] challenge_id
18
+ attr_accessor :challenge_id
19
+
20
+ # @type [String] credential_json
21
+ attr_accessor :credential_json
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
+ clear
28
+ end
29
+
30
+ def clear
31
+ @challenge_id = ''
32
+ @credential_json = ''
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, "'json_string' expected String, got #{json_string.class}" 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, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
46
+
47
+ obj.each do |k, v|
48
+ case k
49
+ when 'ChallengeID'
50
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
51
+
52
+ @challenge_id = v
53
+ when 'CredentialJSON'
54
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
55
+
56
+ @credential_json = v
57
+ else
58
+ @unknown_json_fields[k] = v
59
+ end
60
+ end
61
+ end
62
+
63
+ # @return [Hash] The complete object as a Ruby hash
64
+ def to_hash
65
+ ret = {}
66
+ ret['ChallengeID'] = @challenge_id
67
+ ret['CredentialJSON'] = @credential_json
68
+ @unknown_json_fields.each do |k, v|
69
+ ret[k] = v
70
+ end
71
+ ret
72
+ end
73
+
74
+ # @return [Hash] The complete object as a Ruby hash
75
+ def to_h
76
+ to_hash
77
+ end
78
+
79
+ # @return [String] The complete object as a JSON string
80
+ def to_json(options = {})
81
+ to_hash.to_json(options)
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby --enable-frozen-string-literal
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
+ # frozen_string_literal: true
9
+
10
+ require 'base64'
11
+ require 'json'
12
+
13
+ module Comet
14
+
15
+ # WebAuthnUserEntity is a typed class wrapper around the underlying Comet Server API data structure.
16
+ class WebAuthnUserEntity
17
+
18
+ # @type [String] name
19
+ attr_accessor :name
20
+
21
+ # @type [String] icon
22
+ attr_accessor :icon
23
+
24
+ # @type [String] display_name
25
+ attr_accessor :display_name
26
+
27
+ # @type [Array<Object>] id
28
+ attr_accessor :id
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
+ @name = ''
39
+ @icon = ''
40
+ @display_name = ''
41
+ @id = []
42
+ @unknown_json_fields = {}
43
+ end
44
+
45
+ # @param [String] json_string The complete object in JSON format
46
+ def from_json(json_string)
47
+ raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
48
+
49
+ from_hash(JSON.parse(json_string))
50
+ end
51
+
52
+ # @param [Hash] obj The complete object as a Ruby hash
53
+ def from_hash(obj)
54
+ raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
55
+
56
+ obj.each do |k, v|
57
+ case k
58
+ when 'name'
59
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
60
+
61
+ @name = v
62
+ when 'icon'
63
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
64
+
65
+ @icon = v
66
+ when 'displayName'
67
+ raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
68
+
69
+ @display_name = v
70
+ when 'id'
71
+ @id = Base64.decode64(v)
72
+ else
73
+ @unknown_json_fields[k] = v
74
+ end
75
+ end
76
+ end
77
+
78
+ # @return [Hash] The complete object as a Ruby hash
79
+ def to_hash
80
+ ret = {}
81
+ ret['name'] = @name
82
+ unless @icon.nil?
83
+ ret['icon'] = @icon
84
+ end
85
+ unless @display_name.nil?
86
+ ret['displayName'] = @display_name
87
+ end
88
+ ret['id'] = Base64.strict_encode64(@id)
89
+ @unknown_json_fields.each do |k, v|
90
+ ret[k] = v
91
+ end
92
+ ret
93
+ end
94
+
95
+ # @return [Hash] The complete object as a Ruby hash
96
+ def to_h
97
+ to_hash
98
+ end
99
+
100
+ # @return [String] The complete object as a JSON string
101
+ def to_json(options = {})
102
+ to_hash.to_json(options)
103
+ end
104
+ end
105
+ end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2021 Comet Licensing Ltd.
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
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2021 Comet Licensing Ltd.
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
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2021 Comet Licensing Ltd.
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
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby --enable-frozen-string-literal
2
2
  #
3
- # Copyright (c) 2020-2021 Comet Licensing Ltd.
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