namespace Unity.Services.Mediation
{
///
/// DataPrivacy is an interface that is used to register the user's consent status.
///
public interface IDataPrivacy
{
///
/// Notify the sdk if personal information can be legally collected.
///
/// The value should be ConsentStatus.NotDetermined by default,
/// ConsentStatus.Given if the user accepted and is above the age of consent, in any other case,
/// or ConsentStatus.Denied if the user refused or is not above the age of consent.
/// Defines which law the consent status is applicable to
void UserGaveConsent(ConsentStatus consent, DataPrivacyLaw dataPrivacyLaw);
///
/// Gets the consent status for a given data privacy law.
///
/// The data privacy law for which we want to know the consent status.
/// Returns the consent status for the given data privacy law.
ConsentStatus GetConsentStatusForLaw(DataPrivacyLaw dataPrivacyLaw);
}
///
/// The list of currently supported data privacy laws.
///
public enum DataPrivacyLaw
{
///
/// General Data Privacy Regulation, applicable to users residing in the EEA.
///
GDPR = 0,
///
/// California Consumer Privacy Act, applicable to users residing in California.
///
CCPA = 1,
///
/// Personal Information Protection Law, regarding ad personalization, applicable to users residing in China.
///
PIPLAdPersonalization = 2,
///
/// Personal Information Protection Law, regarding moving data out of China, applicable to users residing in China.
///
PIPLDataTransport = 3
}
///
/// The list of possible consent status.
///
public enum ConsentStatus
{
///
/// The consent has neither been given nor denied yet.
///
NotDetermined = 0,
///
/// The consent has been explicitly given.
///
Given = 1,
///
/// The consent has been explicitly denied.
///
Denied = 2
}
}