UNPKG

@franklx/iubenda-consent-solution-api

Version:

API client to implement Iubenda Consent Solution in backend service

144 lines (134 loc) 4.44 kB
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; }