lib/comet/models/admin_web_authn_registration.rb
# frozen_string_literal: true # Copyright (c) 2020-2023 Comet Licensing Ltd. # Please see the LICENSE file for usage information. # # SPDX-License-Identifier: MIT require 'base64' require 'json' module Comet # AdminWebAuthnRegistration is a typed class wrapper around the underlying Comet Server API data structure. class AdminWebAuthnRegistration # @type [String] description attr_accessor :description # Unix timestamp, in seconds. # @type [Number] register_time attr_accessor :register_time # @type [Number] type attr_accessor :type # @type [Boolean] is_legacy_u2f attr_accessor :is_legacy_u2f # When this field is expressed as a AdminWebAuthnRegistration class instance, this field may contain binary data. When this field is expressed as JSON, the field is expressed as base64. The marshalling methods on this class will automatically perform base64 conversion as necessary. # @type [Array<Object>] id attr_accessor :id # @type [Comet::WebAuthnCredential] credential attr_accessor :credential # @type [Hash] Hidden storage to preserve future properties for non-destructive roundtrip operations attr_accessor :unknown_json_fields def initialize clear end def clear @description = '' @register_time = 0 @type = 0 @id = [] @credential = Comet::WebAuthnCredential.new @unknown_json_fields = {} end # @param [String] json_string The complete object in JSON format def from_json(json_string) raise TypeError, "'json_string' expected String, got #{json_string.class}" unless json_string.is_a? String from_hash(JSON.parse(json_string)) end # @param [Hash] obj The complete object as a Ruby hash def from_hash(obj) raise TypeError, "'obj' expected Hash, got #{obj.class}" unless obj.is_a? Hash obj.each do |k, v| case k when 'Description' raise TypeError, "'v' expected String, got #{v.class}" unless v.is_a? String @description = v when 'RegisterTime' raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric @register_time = v when 'Type' raise TypeError, "'v' expected Numeric, got #{v.class}" unless v.is_a? Numeric @type = v when 'IsLegacyU2F' @is_legacy_u2f = v when 'ID' @id = Base64.decode64(v) when 'Credential' @credential = Comet::WebAuthnCredential.new @credential.from_hash(v) else @unknown_json_fields[k] = v end end end # @return [Hash] The complete object as a Ruby hash def to_hash ret = {} ret['Description'] = @description ret['RegisterTime'] = @register_time ret['Type'] = @type unless @is_legacy_u2f.nil? ret['IsLegacyU2F'] = @is_legacy_u2f end unless @id.nil? ret['ID'] = @id end unless @credential.nil? ret['Credential'] = @credential end @unknown_json_fields.each do |k, v| ret[k] = v end ret end # @return [Hash] The complete object as a Ruby hash def to_h to_hash end # @return [String] The complete object as a JSON string def to_json(options = {}) to_hash.to_json(options) end end end