#ifndef DEVICE_FIDO_DISCOVERABLE_CREDENTIAL_METADATA_H_
#define DEVICE_FIDO_DISCOVERABLE_CREDENTIAL_METADATA_H_
#include <optional>
#include <vector>
#include "base/component_export.h"
#include "base/time/time.h"
#include "device/fido/fido_types.h"
#include "device/fido/public_key_credential_user_entity.h"
namespace device {
class COMPONENT_EXPORT(DEVICE_FIDO) DiscoverableCredentialMetadata {
public:
DiscoverableCredentialMetadata(AuthenticatorType source,
std::string rp_id,
std::vector<uint8_t> cred_id,
PublicKeyCredentialUserEntity user,
std::optional<std::string> provider_name,
std::optional<base::Time> last_used_time = base::Time());
DiscoverableCredentialMetadata();
DiscoverableCredentialMetadata(const DiscoverableCredentialMetadata& other);
DiscoverableCredentialMetadata(DiscoverableCredentialMetadata&& other);
DiscoverableCredentialMetadata& operator=(
const DiscoverableCredentialMetadata& other);
DiscoverableCredentialMetadata& operator=(
DiscoverableCredentialMetadata&& other);
~DiscoverableCredentialMetadata();
bool operator==(const DiscoverableCredentialMetadata& other) const;
AuthenticatorType source = AuthenticatorType::kOther;
std::string rp_id;
std::vector<uint8_t> cred_id;
PublicKeyCredentialUserEntity user;
bool system_created = false;
std::optional<std::string> provider_name;
std::optional<base::Time> last_used_time;
};
}
#endif