@franklx/iubenda-consent-solution-api
Version:
API client to implement Iubenda Consent Solution in backend service
144 lines (134 loc) • 4.44 kB
text/typescript
export interface ConsentsQueryParameters {
/**
* Filter by consents timestamp. Returns all consents from that time onward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds).
*/
from_time?: string;
/**
* Filter by consents timestamp. Returns all consents from that time backward (inclusive). Valid formats: 2018-02-22 00:40:00 UTC, 2018-02-22T00:40:00Z (ISO 8601), 1519260000 (unix timestamp in seconds).
*/
to_time?: string;
/**
* Filter by consents source. Possible values: public, private.
*/
source?: ['public', 'private'];
/**
* Filter by IP address. Default null. Valid formats (IP address format).
*/
ip_address?: string;
/**
* Filter by consents type. By not passing this value it returns all consents. Possible values: cookie_policy, null. Default not passed.
*/
consent_type?: string;
/**
* Filter by Subject ID.
*/
subject_id?: string;
/**
* Filter by Subject email. It must exactly match (case sensitive).
*/
subject_email_exact?: string;
/**
* Filter by Subject email. It tries to match parts of the provided email split by dots and spaces. Ex. providing “@test.com” will match all the subjects with an email containing “@test” or containing “com” (case insensitive).
*/
subject_email?: string;
/**
* Filter by Subject first name. It must exactly match (case sensitive).
*/
subject_first_name?: string;
/**
* Filter by Subject last name. It must exactly match (case sensitive).
*/
subject_last_name?: string;
/**
* Filter by Subject full name. It tries to match parts of the provided full name split by dots and spaces. Ex. “test hello” will match all the subjects with a full name containing “test” or containing “hello” (case insensitive).
*/
subject_full_name?: string;
/**
* Filter by subject verified status. Possible values: true, false.
*/
subject_verified?: boolean;
/**
* Filter for consents in which the key exists.
*/
preference_key?: string;
/**
* Filters for results with the value provided being contained in either subject’s id, first_name, last_name, full_name, email.
*/
fulltext?: string;
/**
* Cursor which indicates after which Consent the results should be returned (cursor excluded).
*/
starting_after?: string;
/**
* Number indicating the number of results returned. Min: 1, Max: 100. Default 10.
*/
limit?: number;
}
export interface Consent {
/**
* auto-filled if not provided, ISO 8601 timestamp at which the consent occurred
*/
timestamp?: string;
checksum?: string;
subject?: ConsentSubject;
/**
* Set of key-value pairs with user preferences for the consent action
*/
preferences?: ConsentPreferences;
/**
* Considered only when using a `private` key. Saves the passed IP address on the Consent. Default null
*/
ip_address?: string;
/**
* Default `true`, Considered only when using a `public` key. Enables or disables (true, false) the IP address autedetection. Default true
*/
autodetect_ip_address?: string;
}
export interface ConsentExtended extends Consent {
legal_notices?: (ConsentLegalNoticesEntity)[] | null;
proofs?: (ConsentProofsEntity)[] | null;
}
export interface ConsentResponse extends Consent {
/**
* Optional, auto-filled if not provided
*/
id: string;
owner: string;
source: string;
}
export interface ConsentPostResponse extends Consent {
id: string;
timestamp: string;
subject_id: string;
}
export interface ConsentSubject {
/**
* Optional, auto-filled if not provided
*/
id?: string;
owner_id?: string;
email?: string;
first_name?: string;
last_name?: string;
/**
* Reserved field used to signal whether a subject is verified, for instance via the double opt-in method
*/
verified?: boolean;
}
export interface ConsentPreferences {
[key: string]: boolean;
}
export interface ConsentLegalNoticesEntity {
/**
* privacy_policy, cookie_policy, term or a custom identifier
*/
identifier?: string;
/**
* Optional, auto-filled if not provided
*/
version?: string | number;
}
export interface ConsentProofsEntity {
content: string;
form: string;
}