comet_backup_ruby_sdk 1.10.0 → 1.11.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -1
- data/comet_backup_ruby_sdk.gemspec +1 -1
- data/lib/comet/comet_server.rb +61 -3
- data/lib/comet/definitions.rb +3 -3
- data/lib/comet/models/admin_security_options.rb +23 -0
- data/lib/comet/models/admin_web_authn_registration.rb +112 -0
- data/lib/comet/models/allowed_admin_user.rb +212 -0
- data/lib/comet/models/browse_office_365list_virtual_accounts_response.rb +99 -0
- data/lib/comet/models/office_365custom_setting_v2.rb +108 -0
- data/lib/comet/models/office_365mixed_virtual_account.rb +203 -0
- data/lib/comet/models/stat_result.rb +9 -0
- data/lib/comet/models/web_authn_authenticator_selection.rb +96 -0
- data/lib/comet/models/web_authn_credential.rb +105 -0
- data/lib/comet/models/web_authn_credential_assertion.rb +74 -0
- data/lib/comet/models/web_authn_credential_descriptor.rb +101 -0
- data/lib/comet/models/web_authn_credential_entity.rb +86 -0
- data/lib/comet/models/web_authn_credential_parameter.rb +84 -0
- data/lib/comet/models/web_authn_public_key_credential_creation_options.rb +173 -0
- data/lib/comet/models/web_authn_public_key_credential_request_options.rb +141 -0
- data/lib/comet/models/web_authn_registration_challenge_response.rb +101 -0
- data/lib/comet/models/web_authn_relying_party_entity.rb +95 -0
- data/lib/comet/models/web_authn_sign_request.rb +83 -0
- data/lib/comet/models/web_authn_sign_response.rb +84 -0
- data/lib/comet/models/web_authn_user_entity.rb +105 -0
- data/lib/comet_backup_ruby_sdk.rb +15 -0
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d320abff24079c6c63042f2319ab6bf85895df807ae4e3c64e28f124931439d
|
4
|
+
data.tar.gz: 54992cd97acfdea46b281ec833bd6b42a5ee56968ca0f6a9a59a2dfaee4ee97b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3554197606a2d10499e981d642f7b2ad5645b2a424f13be88cf0be3d118da6c6df0caf9a784cc1d0c2536f9b591ef8320b1a04e46fffe0e42c4372c677dafa87
|
7
|
+
data.tar.gz: '0921fc302340b38c77bb6f7733c447d274347dc7379a8916b7f5a4fea0b97c666cdc126d793075be180ea40d431db1449659f279779bf965513c7e5af1235cb2'
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
-
## 2021-
|
3
|
+
## 2021-12-22 v1.11.0
|
4
|
+
- Based on 21.12.1
|
5
|
+
- Add `AdminAccountWebauthnRegistration` endpoint for new webauthn support.
|
6
|
+
- Deprecate `AdminACcountU2fSubmitChallenge` as U2F is ending browser support in February 2022.
|
7
|
+
|
8
|
+
## 2021-11-24 v1.10.0
|
4
9
|
- Based on 21.9.12
|
5
10
|
- Add support for Thai and Danish localizations
|
6
11
|
- Add From and To fields to the EmailReportGenerated API
|
@@ -12,7 +12,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
12
12
|
|
13
13
|
Gem::Specification.new do |spec|
|
14
14
|
spec.name = 'comet_backup_ruby_sdk'
|
15
|
-
spec.version = '1.
|
15
|
+
spec.version = '1.11.0'
|
16
16
|
spec.authors = ['Comet Licensing Ltd.']
|
17
17
|
spec.email = ['hello@cometbackup.com']
|
18
18
|
|
data/lib/comet/comet_server.rb
CHANGED
@@ -96,7 +96,7 @@ module Comet
|
|
96
96
|
#
|
97
97
|
# You must supply administrator authentication credentials to use this API.
|
98
98
|
#
|
99
|
-
# @param [String] self_address (Optional) External URL of this server
|
99
|
+
# @param [String] self_address (Optional) External URL of this server
|
100
100
|
# @return [Comet::SessionKeyRegeneratedResponse]
|
101
101
|
def admin_account_session_start(self_address = nil)
|
102
102
|
submit_params = {}
|
@@ -166,6 +166,9 @@ module Comet
|
|
166
166
|
# AdminAccountU2fRequestRegistrationChallenge
|
167
167
|
#
|
168
168
|
# Register a new FIDO U2F token.
|
169
|
+
# Browser support for U2F is ending in February 2022. WebAuthn is backwards
|
170
|
+
# compatible with U2F keys, and Comet will automatically migrate existing U2F keys
|
171
|
+
# to allow their use with the WebAuthn endpoints.
|
169
172
|
#
|
170
173
|
# You must supply administrator authentication credentials to use this API.
|
171
174
|
#
|
@@ -188,6 +191,9 @@ module Comet
|
|
188
191
|
# AdminAccountU2fSubmitChallengeResponse
|
189
192
|
#
|
190
193
|
# Register a new FIDO U2F token.
|
194
|
+
# Browser support for U2F is ending in February 2022. WebAuthn is backwards
|
195
|
+
# compatible with U2F keys, and Comet will automatically migrate existing U2F keys
|
196
|
+
# to allow their use with the WebAuthn endpoints.
|
191
197
|
#
|
192
198
|
# You must supply administrator authentication credentials to use this API.
|
193
199
|
#
|
@@ -245,6 +251,58 @@ module Comet
|
|
245
251
|
ret
|
246
252
|
end
|
247
253
|
|
254
|
+
# AdminAccountWebauthnRequestRegistrationChallenge
|
255
|
+
#
|
256
|
+
# Register a new FIDO2 WebAuthn token.
|
257
|
+
#
|
258
|
+
# You must supply administrator authentication credentials to use this API.
|
259
|
+
#
|
260
|
+
# @param [String] self_address External URL of this server, used as WebAuthn ID
|
261
|
+
# @return [Comet::WebAuthnRegistrationChallengeResponse]
|
262
|
+
def admin_account_webauthn_request_registration_challenge(self_address)
|
263
|
+
submit_params = {}
|
264
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
265
|
+
|
266
|
+
submit_params['SelfAddress'] = self_address
|
267
|
+
|
268
|
+
body = perform_request('api/v1/admin/account/webauthn/request-registration-challenge', submit_params)
|
269
|
+
json_body = JSON.parse body
|
270
|
+
check_status json_body
|
271
|
+
ret = Comet::WebAuthnRegistrationChallengeResponse.new
|
272
|
+
ret.from_hash(json_body)
|
273
|
+
ret
|
274
|
+
end
|
275
|
+
|
276
|
+
# AdminAccountWebauthnSubmitChallengeResponse
|
277
|
+
#
|
278
|
+
# Register a new FIDO2 WebAuthn token.
|
279
|
+
#
|
280
|
+
# You must supply administrator authentication credentials to use this API.
|
281
|
+
#
|
282
|
+
# @param [String] self_address External URL of this server, used as WebAuthn ID
|
283
|
+
# @param [String] challenge_id Associated value from AdminAccountWebAuthnRequestRegistrationChallenge API
|
284
|
+
# @param [String] credential JSON-encoded credential
|
285
|
+
# @return [Comet::CometAPIResponseMessage]
|
286
|
+
def admin_account_webauthn_submit_challenge_response(self_address, challenge_id, credential)
|
287
|
+
submit_params = {}
|
288
|
+
raise TypeError, "'self_address' expected String, got #{self_address.class}" unless self_address.is_a? String
|
289
|
+
|
290
|
+
submit_params['SelfAddress'] = self_address
|
291
|
+
raise TypeError, "'challenge_id' expected String, got #{challenge_id.class}" unless challenge_id.is_a? String
|
292
|
+
|
293
|
+
submit_params['ChallengeID'] = challenge_id
|
294
|
+
raise TypeError, "'credential' expected String, got #{credential.class}" unless credential.is_a? String
|
295
|
+
|
296
|
+
submit_params['Credential'] = credential
|
297
|
+
|
298
|
+
body = perform_request('api/v1/admin/account/webauthn/submit-challenge-response', submit_params)
|
299
|
+
json_body = JSON.parse body
|
300
|
+
check_status json_body
|
301
|
+
ret = Comet::CometAPIResponseMessage.new
|
302
|
+
ret.from_hash(json_body)
|
303
|
+
ret
|
304
|
+
end
|
305
|
+
|
248
306
|
# AdminAddUser
|
249
307
|
#
|
250
308
|
# Add a new user account.
|
@@ -3593,7 +3651,7 @@ module Comet
|
|
3593
3651
|
|
3594
3652
|
ret_error = Comet::CometAPIResponseMessage.new
|
3595
3653
|
ret_error.from_hash(obj)
|
3596
|
-
raise Comet::APIResponseError.new(ret_error)
|
3654
|
+
raise Comet::APIResponseError.new(ret_error)
|
3597
3655
|
end
|
3598
3656
|
|
3599
3657
|
# Perform a synchronous HTTP request.
|
@@ -3630,7 +3688,7 @@ module Comet
|
|
3630
3688
|
|
3631
3689
|
form_params = []
|
3632
3690
|
params.each do |k, v|
|
3633
|
-
form_params.append [k, v, {
|
3691
|
+
form_params.append [k, v, {:filename => k}]
|
3634
3692
|
end
|
3635
3693
|
req.set_form(form_params, 'multipart/form-data')
|
3636
3694
|
|
data/lib/comet/definitions.rb
CHANGED
@@ -430,13 +430,13 @@ module Comet
|
|
430
430
|
|
431
431
|
DEFAULT_TIMEZONE = 'UTC'
|
432
432
|
|
433
|
-
APPLICATION_VERSION = '21.
|
433
|
+
APPLICATION_VERSION = '21.12.1'
|
434
434
|
|
435
435
|
APPLICATION_VERSION_MAJOR = 21
|
436
436
|
|
437
|
-
APPLICATION_VERSION_MINOR =
|
437
|
+
APPLICATION_VERSION_MINOR = 12
|
438
438
|
|
439
|
-
APPLICATION_VERSION_REVISION =
|
439
|
+
APPLICATION_VERSION_REVISION = 1
|
440
440
|
|
441
441
|
RELEASE_CODENAME = 'Voyager'
|
442
442
|
|
@@ -29,9 +29,15 @@ module Comet
|
|
29
29
|
# @type [Boolean] allow_password_and_u2flogin
|
30
30
|
attr_accessor :allow_password_and_u2flogin
|
31
31
|
|
32
|
+
# @type [Boolean] allow_password_and_web_authn_login
|
33
|
+
attr_accessor :allow_password_and_web_authn_login
|
34
|
+
|
32
35
|
# @type [Array<Comet::AdminU2FRegistration>] u2fregistrations
|
33
36
|
attr_accessor :u2fregistrations
|
34
37
|
|
38
|
+
# @type [Array<Comet::AdminWebAuthnRegistration>] web_authn_registrations
|
39
|
+
attr_accessor :web_authn_registrations
|
40
|
+
|
35
41
|
# @type [Number] totpkey_encryption_format
|
36
42
|
attr_accessor :totpkey_encryption_format
|
37
43
|
|
@@ -52,6 +58,7 @@ module Comet
|
|
52
58
|
@password_format = 0
|
53
59
|
@password = ''
|
54
60
|
@u2fregistrations = []
|
61
|
+
@web_authn_registrations = []
|
55
62
|
@totpkey_encryption_format = 0
|
56
63
|
@totpkey = ''
|
57
64
|
@ipwhitelist = ''
|
@@ -85,6 +92,8 @@ module Comet
|
|
85
92
|
@allow_password_and_totplogin = v
|
86
93
|
when 'AllowPasswordAndU2FLogin'
|
87
94
|
@allow_password_and_u2flogin = v
|
95
|
+
when 'AllowPasswordAndWebAuthnLogin'
|
96
|
+
@allow_password_and_web_authn_login = v
|
88
97
|
when 'U2FRegistrations'
|
89
98
|
if v.nil?
|
90
99
|
@u2fregistrations = []
|
@@ -95,6 +104,16 @@ module Comet
|
|
95
104
|
@u2fregistrations[i1].from_hash(v1)
|
96
105
|
end
|
97
106
|
end
|
107
|
+
when 'WebAuthnRegistrations'
|
108
|
+
if v.nil?
|
109
|
+
@web_authn_registrations = []
|
110
|
+
else
|
111
|
+
@web_authn_registrations = Array.new(v.length)
|
112
|
+
v.each_with_index do |v1, i1|
|
113
|
+
@web_authn_registrations[i1] = Comet::AdminWebAuthnRegistration.new
|
114
|
+
@web_authn_registrations[i1].from_hash(v1)
|
115
|
+
end
|
116
|
+
end
|
98
117
|
when 'TOTPKeyEncryptionFormat'
|
99
118
|
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
100
119
|
|
@@ -121,9 +140,13 @@ module Comet
|
|
121
140
|
ret['AllowPasswordLogin'] = @allow_password_login
|
122
141
|
ret['AllowPasswordAndTOTPLogin'] = @allow_password_and_totplogin
|
123
142
|
ret['AllowPasswordAndU2FLogin'] = @allow_password_and_u2flogin
|
143
|
+
ret['AllowPasswordAndWebAuthnLogin'] = @allow_password_and_web_authn_login
|
124
144
|
unless @u2fregistrations.nil?
|
125
145
|
ret['U2FRegistrations'] = @u2fregistrations
|
126
146
|
end
|
147
|
+
unless @web_authn_registrations.nil?
|
148
|
+
ret['WebAuthnRegistrations'] = @web_authn_registrations
|
149
|
+
end
|
127
150
|
unless @totpkey_encryption_format.nil?
|
128
151
|
ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
|
129
152
|
end
|
@@ -0,0 +1,112 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2021 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
|
+
# AdminWebAuthnRegistration is a typed class wrapper around the underlying Comet Server API data structure.
|
16
|
+
class AdminWebAuthnRegistration
|
17
|
+
|
18
|
+
# @type [String] description
|
19
|
+
attr_accessor :description
|
20
|
+
|
21
|
+
# @type [Number] register_time
|
22
|
+
attr_accessor :register_time
|
23
|
+
|
24
|
+
# @type [Boolean] is_legacy_u2f
|
25
|
+
attr_accessor :is_legacy_u2f
|
26
|
+
|
27
|
+
# @type [Array<Object>] id
|
28
|
+
attr_accessor :id
|
29
|
+
|
30
|
+
# @type [Comet::WebAuthnCredential] credential
|
31
|
+
attr_accessor :credential
|
32
|
+
|
33
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
34
|
+
attr_accessor :unknown_json_fields
|
35
|
+
|
36
|
+
def initialize
|
37
|
+
clear
|
38
|
+
end
|
39
|
+
|
40
|
+
def clear
|
41
|
+
@description = ''
|
42
|
+
@register_time = 0
|
43
|
+
@id = []
|
44
|
+
@credential = Comet::WebAuthnCredential.new
|
45
|
+
@unknown_json_fields = {}
|
46
|
+
end
|
47
|
+
|
48
|
+
# @param [String] json_string The complete object in JSON format
|
49
|
+
def from_json(json_string)
|
50
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
51
|
+
|
52
|
+
from_hash(JSON.parse(json_string))
|
53
|
+
end
|
54
|
+
|
55
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
56
|
+
def from_hash(obj)
|
57
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
58
|
+
|
59
|
+
obj.each do |k, v|
|
60
|
+
case k
|
61
|
+
when 'Description'
|
62
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
63
|
+
|
64
|
+
@description = v
|
65
|
+
when 'RegisterTime'
|
66
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
67
|
+
|
68
|
+
@register_time = v
|
69
|
+
when 'IsLegacyU2F'
|
70
|
+
@is_legacy_u2f = v
|
71
|
+
when 'ID'
|
72
|
+
@id = Base64.decode64(v)
|
73
|
+
when 'Credential'
|
74
|
+
@credential = Comet::WebAuthnCredential.new
|
75
|
+
@credential.from_hash(v)
|
76
|
+
else
|
77
|
+
@unknown_json_fields[k] = v
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# @return [Hash] The complete object as a Ruby hash
|
83
|
+
def to_hash
|
84
|
+
ret = {}
|
85
|
+
ret['Description'] = @description
|
86
|
+
ret['RegisterTime'] = @register_time
|
87
|
+
unless @is_legacy_u2f.nil?
|
88
|
+
ret['IsLegacyU2F'] = @is_legacy_u2f
|
89
|
+
end
|
90
|
+
unless @id.nil?
|
91
|
+
ret['ID'] = @id
|
92
|
+
end
|
93
|
+
unless @credential.nil?
|
94
|
+
ret['Credential'] = @credential
|
95
|
+
end
|
96
|
+
@unknown_json_fields.each do |k, v|
|
97
|
+
ret[k] = v
|
98
|
+
end
|
99
|
+
ret
|
100
|
+
end
|
101
|
+
|
102
|
+
# @return [Hash] The complete object as a Ruby hash
|
103
|
+
def to_h
|
104
|
+
to_hash
|
105
|
+
end
|
106
|
+
|
107
|
+
# @return [String] The complete object as a JSON string
|
108
|
+
def to_json(options = {})
|
109
|
+
to_hash.to_json(options)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,212 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2021 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
|
+
# AllowedAdminUser is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class AllowedAdminUser
|
16
|
+
|
17
|
+
# @type [String] username
|
18
|
+
attr_accessor :username
|
19
|
+
|
20
|
+
# @type [String] organization_id
|
21
|
+
attr_accessor :organization_id
|
22
|
+
|
23
|
+
# @type [String] external_authentication_source
|
24
|
+
attr_accessor :external_authentication_source
|
25
|
+
|
26
|
+
# @type [Number] password_format
|
27
|
+
attr_accessor :password_format
|
28
|
+
|
29
|
+
# @type [String] password
|
30
|
+
attr_accessor :password
|
31
|
+
|
32
|
+
# @type [Boolean] allow_password_login
|
33
|
+
attr_accessor :allow_password_login
|
34
|
+
|
35
|
+
# @type [Boolean] allow_password_and_totplogin
|
36
|
+
attr_accessor :allow_password_and_totplogin
|
37
|
+
|
38
|
+
# @type [Boolean] allow_password_and_u2flogin
|
39
|
+
attr_accessor :allow_password_and_u2flogin
|
40
|
+
|
41
|
+
# @type [Boolean] allow_password_and_web_authn_login
|
42
|
+
attr_accessor :allow_password_and_web_authn_login
|
43
|
+
|
44
|
+
# @type [Array<Comet::AdminU2FRegistration>] u2fregistrations
|
45
|
+
attr_accessor :u2fregistrations
|
46
|
+
|
47
|
+
# @type [Array<Comet::AdminWebAuthnRegistration>] web_authn_registrations
|
48
|
+
attr_accessor :web_authn_registrations
|
49
|
+
|
50
|
+
# @type [Number] totpkey_encryption_format
|
51
|
+
attr_accessor :totpkey_encryption_format
|
52
|
+
|
53
|
+
# @type [String] totpkey
|
54
|
+
attr_accessor :totpkey
|
55
|
+
|
56
|
+
# @type [String] ipwhitelist
|
57
|
+
attr_accessor :ipwhitelist
|
58
|
+
|
59
|
+
# @type [Comet::AdminUserPermissions] permissions
|
60
|
+
attr_accessor :permissions
|
61
|
+
|
62
|
+
# @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations
|
63
|
+
attr_accessor :unknown_json_fields
|
64
|
+
|
65
|
+
def initialize
|
66
|
+
clear
|
67
|
+
end
|
68
|
+
|
69
|
+
def clear
|
70
|
+
@username = ''
|
71
|
+
@organization_id = ''
|
72
|
+
@external_authentication_source = ''
|
73
|
+
@password_format = 0
|
74
|
+
@password = ''
|
75
|
+
@u2fregistrations = []
|
76
|
+
@web_authn_registrations = []
|
77
|
+
@totpkey_encryption_format = 0
|
78
|
+
@totpkey = ''
|
79
|
+
@ipwhitelist = ''
|
80
|
+
@permissions = Comet::AdminUserPermissions.new
|
81
|
+
@unknown_json_fields = {}
|
82
|
+
end
|
83
|
+
|
84
|
+
# @param [String] json_string The complete object in JSON format
|
85
|
+
def from_json(json_string)
|
86
|
+
raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String
|
87
|
+
|
88
|
+
from_hash(JSON.parse(json_string))
|
89
|
+
end
|
90
|
+
|
91
|
+
# @param [Hash] obj The complete object as a Ruby hash
|
92
|
+
def from_hash(obj)
|
93
|
+
raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash
|
94
|
+
|
95
|
+
obj.each do |k, v|
|
96
|
+
case k
|
97
|
+
when 'Username'
|
98
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
99
|
+
|
100
|
+
@username = v
|
101
|
+
when 'OrganizationID'
|
102
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
103
|
+
|
104
|
+
@organization_id = v
|
105
|
+
when 'ExternalAuthenticationSource'
|
106
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
107
|
+
|
108
|
+
@external_authentication_source = v
|
109
|
+
when 'PasswordFormat'
|
110
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
111
|
+
|
112
|
+
@password_format = v
|
113
|
+
when 'Password'
|
114
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
115
|
+
|
116
|
+
@password = v
|
117
|
+
when 'AllowPasswordLogin'
|
118
|
+
@allow_password_login = v
|
119
|
+
when 'AllowPasswordAndTOTPLogin'
|
120
|
+
@allow_password_and_totplogin = v
|
121
|
+
when 'AllowPasswordAndU2FLogin'
|
122
|
+
@allow_password_and_u2flogin = v
|
123
|
+
when 'AllowPasswordAndWebAuthnLogin'
|
124
|
+
@allow_password_and_web_authn_login = v
|
125
|
+
when 'U2FRegistrations'
|
126
|
+
if v.nil?
|
127
|
+
@u2fregistrations = []
|
128
|
+
else
|
129
|
+
@u2fregistrations = Array.new(v.length)
|
130
|
+
v.each_with_index do |v1, i1|
|
131
|
+
@u2fregistrations[i1] = Comet::AdminU2FRegistration.new
|
132
|
+
@u2fregistrations[i1].from_hash(v1)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
when 'WebAuthnRegistrations'
|
136
|
+
if v.nil?
|
137
|
+
@web_authn_registrations = []
|
138
|
+
else
|
139
|
+
@web_authn_registrations = Array.new(v.length)
|
140
|
+
v.each_with_index do |v1, i1|
|
141
|
+
@web_authn_registrations[i1] = Comet::AdminWebAuthnRegistration.new
|
142
|
+
@web_authn_registrations[i1].from_hash(v1)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
when 'TOTPKeyEncryptionFormat'
|
146
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
147
|
+
|
148
|
+
@totpkey_encryption_format = v
|
149
|
+
when 'TOTPKey'
|
150
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
151
|
+
|
152
|
+
@totpkey = v
|
153
|
+
when 'IPWhitelist'
|
154
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
155
|
+
|
156
|
+
@ipwhitelist = v
|
157
|
+
when 'Permissions'
|
158
|
+
@permissions = Comet::AdminUserPermissions.new
|
159
|
+
@permissions.from_hash(v)
|
160
|
+
else
|
161
|
+
@unknown_json_fields[k] = v
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
# @return [Hash] The complete object as a Ruby hash
|
167
|
+
def to_hash
|
168
|
+
ret = {}
|
169
|
+
ret['Username'] = @username
|
170
|
+
ret['OrganizationID'] = @organization_id
|
171
|
+
unless @external_authentication_source.nil?
|
172
|
+
ret['ExternalAuthenticationSource'] = @external_authentication_source
|
173
|
+
end
|
174
|
+
ret['PasswordFormat'] = @password_format
|
175
|
+
ret['Password'] = @password
|
176
|
+
ret['AllowPasswordLogin'] = @allow_password_login
|
177
|
+
ret['AllowPasswordAndTOTPLogin'] = @allow_password_and_totplogin
|
178
|
+
ret['AllowPasswordAndU2FLogin'] = @allow_password_and_u2flogin
|
179
|
+
ret['AllowPasswordAndWebAuthnLogin'] = @allow_password_and_web_authn_login
|
180
|
+
unless @u2fregistrations.nil?
|
181
|
+
ret['U2FRegistrations'] = @u2fregistrations
|
182
|
+
end
|
183
|
+
unless @web_authn_registrations.nil?
|
184
|
+
ret['WebAuthnRegistrations'] = @web_authn_registrations
|
185
|
+
end
|
186
|
+
unless @totpkey_encryption_format.nil?
|
187
|
+
ret['TOTPKeyEncryptionFormat'] = @totpkey_encryption_format
|
188
|
+
end
|
189
|
+
unless @totpkey.nil?
|
190
|
+
ret['TOTPKey'] = @totpkey
|
191
|
+
end
|
192
|
+
unless @ipwhitelist.nil?
|
193
|
+
ret['IPWhitelist'] = @ipwhitelist
|
194
|
+
end
|
195
|
+
ret['Permissions'] = @permissions
|
196
|
+
@unknown_json_fields.each do |k, v|
|
197
|
+
ret[k] = v
|
198
|
+
end
|
199
|
+
ret
|
200
|
+
end
|
201
|
+
|
202
|
+
# @return [Hash] The complete object as a Ruby hash
|
203
|
+
def to_h
|
204
|
+
to_hash
|
205
|
+
end
|
206
|
+
|
207
|
+
# @return [String] The complete object as a JSON string
|
208
|
+
def to_json(options = {})
|
209
|
+
to_hash.to_json(options)
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby --enable-frozen-string-literal
|
2
|
+
#
|
3
|
+
# Copyright (c) 2020-2021 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
|
+
# BrowseOffice365ListVirtualAccountsResponse is a typed class wrapper around the underlying Comet Server API data structure.
|
15
|
+
class BrowseOffice365ListVirtualAccountsResponse
|
16
|
+
|
17
|
+
# @type [Number] status
|
18
|
+
attr_accessor :status
|
19
|
+
|
20
|
+
# @type [String] message
|
21
|
+
attr_accessor :message
|
22
|
+
|
23
|
+
# @type [Array<Comet::Office365MixedVirtualAccount>] objects
|
24
|
+
attr_accessor :objects
|
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
|
+
@status = 0
|
35
|
+
@message = ''
|
36
|
+
@objects = []
|
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 'Status'
|
54
|
+
raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric
|
55
|
+
|
56
|
+
@status = v
|
57
|
+
when 'Message'
|
58
|
+
raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String
|
59
|
+
|
60
|
+
@message = v
|
61
|
+
when 'Objects'
|
62
|
+
if v.nil?
|
63
|
+
@objects = []
|
64
|
+
else
|
65
|
+
@objects = Array.new(v.length)
|
66
|
+
v.each_with_index do |v1, i1|
|
67
|
+
@objects[i1] = Comet::Office365MixedVirtualAccount.new
|
68
|
+
@objects[i1].from_hash(v1)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
else
|
72
|
+
@unknown_json_fields[k] = v
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
# @return [Hash] The complete object as a Ruby hash
|
78
|
+
def to_hash
|
79
|
+
ret = {}
|
80
|
+
ret['Status'] = @status
|
81
|
+
ret['Message'] = @message
|
82
|
+
ret['Objects'] = @objects
|
83
|
+
@unknown_json_fields.each do |k, v|
|
84
|
+
ret[k] = v
|
85
|
+
end
|
86
|
+
ret
|
87
|
+
end
|
88
|
+
|
89
|
+
# @return [Hash] The complete object as a Ruby hash
|
90
|
+
def to_h
|
91
|
+
to_hash
|
92
|
+
end
|
93
|
+
|
94
|
+
# @return [String] The complete object as a JSON string
|
95
|
+
def to_json(options = {})
|
96
|
+
to_hash.to_json(options)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|