Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
80.49% covered (warning)
80.49%
99 / 123
73.13% covered (warning)
73.13%
49 / 67
CRAP
0.00% covered (danger)
0.00%
0 / 1
Products
80.49% covered (warning)
80.49%
99 / 123
73.13% covered (warning)
73.13%
49 / 67
162.04
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
26 / 26
100.00% covered (success)
100.00%
1 / 1
27
 __toString
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 swaggerTypes
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 swaggerFormats
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 attributeMap
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setters
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getters
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getModelName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 listInvalidProperties
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 valid
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getIdentification
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setIdentification
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getBotd
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setBotd
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getRootApps
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setRootApps
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getEmulator
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setEmulator
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getIpInfo
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setIpInfo
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getIpBlocklist
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setIpBlocklist
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getTor
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setTor
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getVpn
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setVpn
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getProxy
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setProxy
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getIncognito
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setIncognito
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getTampering
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setTampering
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getClonedApp
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setClonedApp
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFactoryReset
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFactoryReset
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getJailbroken
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setJailbroken
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getFrida
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setFrida
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getPrivacySettings
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setPrivacySettings
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getVirtualMachine
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setVirtualMachine
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getRawDeviceAttributes
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setRawDeviceAttributes
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getHighActivity
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setHighActivity
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getLocationSpoofing
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 setLocationSpoofing
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getSuspectScore
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setSuspectScore
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getRemoteControl
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setRemoteControl
0.00% covered (danger)
0.00%
0 / 2
0.00% covered (danger)
0.00%
0 / 1
2
 getVelocity
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setVelocity
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getDeveloperTools
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDeveloperTools
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getMitmAttack
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setMitmAttack
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 getProximity
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setProximity
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 offsetExists
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 offsetGet
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
6
 offsetSet
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 offsetUnset
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 toPrettyString
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * Products.
4 *
5 * @category Class
6 *
7 * @author   Swagger Codegen team
8 *
9 * @see     https://github.com/swagger-api/swagger-codegen
10 */
11
12/**
13 * Fingerprint Server API.
14 *
15 * Fingerprint Server API allows you to search, update, and delete identification events in a server environment. It can be used for data exports, decision-making, and data analysis scenarios. Server API is intended for server-side usage, it's not intended to be used from the client side, whether it's a browser or a mobile device.
16 *
17 * OpenAPI spec version: 3
18 * Contact: support@fingerprint.com
19 * Generated by: https://github.com/swagger-api/swagger-codegen.git
20 * Swagger Codegen version: 3.0.34
21 */
22/**
23 * NOTE: This class is auto generated by the swagger code generator program.
24 * https://github.com/swagger-api/swagger-codegen
25 * Do not edit the class manually.
26 */
27
28namespace Fingerprint\ServerAPI\Model;
29
30use Fingerprint\ServerAPI\ObjectSerializer;
31
32/**
33 * Products Class Doc Comment.
34 *
35 * @category Class
36 *
37 * @description Contains all information about the request identified by `requestId`, depending on the pricing plan (Pro, Pro Plus, Enterprise)
38 *
39 * @author   Swagger Codegen team
40 *
41 * @see     https://github.com/swagger-api/swagger-codegen
42 */
43class Products implements ModelInterface, \ArrayAccess
44{
45    /**
46     * The original name of the model.
47     *
48     */
49    protected static string $swaggerModelName = 'Products';
50
51    /**
52     * Array of property to type mappings. Used for (de)serialization.
53     *
54     * @var string[]
55     */
56    protected static array $swaggerTypes = [
57        'identification' => '\Fingerprint\ServerAPI\Model\ProductIdentification',
58        'botd' => '\Fingerprint\ServerAPI\Model\ProductBotd',
59        'root_apps' => '\Fingerprint\ServerAPI\Model\ProductRootApps',
60        'emulator' => '\Fingerprint\ServerAPI\Model\ProductEmulator',
61        'ip_info' => '\Fingerprint\ServerAPI\Model\ProductIPInfo',
62        'ip_blocklist' => '\Fingerprint\ServerAPI\Model\ProductIPBlocklist',
63        'tor' => '\Fingerprint\ServerAPI\Model\ProductTor',
64        'vpn' => '\Fingerprint\ServerAPI\Model\ProductVPN',
65        'proxy' => '\Fingerprint\ServerAPI\Model\ProductProxy',
66        'incognito' => '\Fingerprint\ServerAPI\Model\ProductIncognito',
67        'tampering' => '\Fingerprint\ServerAPI\Model\ProductTampering',
68        'cloned_app' => '\Fingerprint\ServerAPI\Model\ProductClonedApp',
69        'factory_reset' => '\Fingerprint\ServerAPI\Model\ProductFactoryReset',
70        'jailbroken' => '\Fingerprint\ServerAPI\Model\ProductJailbroken',
71        'frida' => '\Fingerprint\ServerAPI\Model\ProductFrida',
72        'privacy_settings' => '\Fingerprint\ServerAPI\Model\ProductPrivacySettings',
73        'virtual_machine' => '\Fingerprint\ServerAPI\Model\ProductVirtualMachine',
74        'raw_device_attributes' => '\Fingerprint\ServerAPI\Model\ProductRawDeviceAttributes',
75        'high_activity' => '\Fingerprint\ServerAPI\Model\ProductHighActivity',
76        'location_spoofing' => '\Fingerprint\ServerAPI\Model\ProductLocationSpoofing',
77        'suspect_score' => '\Fingerprint\ServerAPI\Model\ProductSuspectScore',
78        'remote_control' => '\Fingerprint\ServerAPI\Model\ProductRemoteControl',
79        'velocity' => '\Fingerprint\ServerAPI\Model\ProductVelocity',
80        'developer_tools' => '\Fingerprint\ServerAPI\Model\ProductDeveloperTools',
81        'mitm_attack' => '\Fingerprint\ServerAPI\Model\ProductMitMAttack',
82        'proximity' => '\Fingerprint\ServerAPI\Model\ProductProximity'];
83
84    /**
85     * Array of property to format mappings. Used for (de)serialization.
86     *
87     * @var string[]
88     */
89    protected static array $swaggerFormats = [
90        'identification' => null,
91        'botd' => null,
92        'root_apps' => null,
93        'emulator' => null,
94        'ip_info' => null,
95        'ip_blocklist' => null,
96        'tor' => null,
97        'vpn' => null,
98        'proxy' => null,
99        'incognito' => null,
100        'tampering' => null,
101        'cloned_app' => null,
102        'factory_reset' => null,
103        'jailbroken' => null,
104        'frida' => null,
105        'privacy_settings' => null,
106        'virtual_machine' => null,
107        'raw_device_attributes' => null,
108        'high_activity' => null,
109        'location_spoofing' => null,
110        'suspect_score' => null,
111        'remote_control' => null,
112        'velocity' => null,
113        'developer_tools' => null,
114        'mitm_attack' => null,
115        'proximity' => null];
116
117    /**
118     * Array of attributes where the key is the local name,
119     * and the value is the original name.
120     *
121     * @var string[]
122     */
123    protected static array $attributeMap = [
124        'identification' => 'identification',
125        'botd' => 'botd',
126        'root_apps' => 'rootApps',
127        'emulator' => 'emulator',
128        'ip_info' => 'ipInfo',
129        'ip_blocklist' => 'ipBlocklist',
130        'tor' => 'tor',
131        'vpn' => 'vpn',
132        'proxy' => 'proxy',
133        'incognito' => 'incognito',
134        'tampering' => 'tampering',
135        'cloned_app' => 'clonedApp',
136        'factory_reset' => 'factoryReset',
137        'jailbroken' => 'jailbroken',
138        'frida' => 'frida',
139        'privacy_settings' => 'privacySettings',
140        'virtual_machine' => 'virtualMachine',
141        'raw_device_attributes' => 'rawDeviceAttributes',
142        'high_activity' => 'highActivity',
143        'location_spoofing' => 'locationSpoofing',
144        'suspect_score' => 'suspectScore',
145        'remote_control' => 'remoteControl',
146        'velocity' => 'velocity',
147        'developer_tools' => 'developerTools',
148        'mitm_attack' => 'mitmAttack',
149        'proximity' => 'proximity'];
150
151    /**
152     * Array of attributes to setter functions (for deserialization of responses).
153     *
154     * @var string[]
155     */
156    protected static array $setters = [
157        'identification' => 'setIdentification',
158        'botd' => 'setBotd',
159        'root_apps' => 'setRootApps',
160        'emulator' => 'setEmulator',
161        'ip_info' => 'setIpInfo',
162        'ip_blocklist' => 'setIpBlocklist',
163        'tor' => 'setTor',
164        'vpn' => 'setVpn',
165        'proxy' => 'setProxy',
166        'incognito' => 'setIncognito',
167        'tampering' => 'setTampering',
168        'cloned_app' => 'setClonedApp',
169        'factory_reset' => 'setFactoryReset',
170        'jailbroken' => 'setJailbroken',
171        'frida' => 'setFrida',
172        'privacy_settings' => 'setPrivacySettings',
173        'virtual_machine' => 'setVirtualMachine',
174        'raw_device_attributes' => 'setRawDeviceAttributes',
175        'high_activity' => 'setHighActivity',
176        'location_spoofing' => 'setLocationSpoofing',
177        'suspect_score' => 'setSuspectScore',
178        'remote_control' => 'setRemoteControl',
179        'velocity' => 'setVelocity',
180        'developer_tools' => 'setDeveloperTools',
181        'mitm_attack' => 'setMitmAttack',
182        'proximity' => 'setProximity'];
183
184    /**
185     * Array of attributes to getter functions (for serialization of requests).
186     *
187     * @var string[]
188     */
189    protected static array $getters = [
190        'identification' => 'getIdentification',
191        'botd' => 'getBotd',
192        'root_apps' => 'getRootApps',
193        'emulator' => 'getEmulator',
194        'ip_info' => 'getIpInfo',
195        'ip_blocklist' => 'getIpBlocklist',
196        'tor' => 'getTor',
197        'vpn' => 'getVpn',
198        'proxy' => 'getProxy',
199        'incognito' => 'getIncognito',
200        'tampering' => 'getTampering',
201        'cloned_app' => 'getClonedApp',
202        'factory_reset' => 'getFactoryReset',
203        'jailbroken' => 'getJailbroken',
204        'frida' => 'getFrida',
205        'privacy_settings' => 'getPrivacySettings',
206        'virtual_machine' => 'getVirtualMachine',
207        'raw_device_attributes' => 'getRawDeviceAttributes',
208        'high_activity' => 'getHighActivity',
209        'location_spoofing' => 'getLocationSpoofing',
210        'suspect_score' => 'getSuspectScore',
211        'remote_control' => 'getRemoteControl',
212        'velocity' => 'getVelocity',
213        'developer_tools' => 'getDeveloperTools',
214        'mitm_attack' => 'getMitmAttack',
215        'proximity' => 'getProximity'];
216
217    /**
218     * Associative array for storing property values.
219     *
220     * @var mixed[]
221     */
222    protected array $container = [];
223
224    /**
225     * Constructor.
226     *
227     * @param mixed[] $data Associated array of property values
228     *                      initializing the model
229     */
230    public function __construct(?array $data = null)
231    {
232        $this->container['identification'] = isset($data['identification']) ? $data['identification'] : null;
233        $this->container['botd'] = isset($data['botd']) ? $data['botd'] : null;
234        $this->container['root_apps'] = isset($data['root_apps']) ? $data['root_apps'] : null;
235        $this->container['emulator'] = isset($data['emulator']) ? $data['emulator'] : null;
236        $this->container['ip_info'] = isset($data['ip_info']) ? $data['ip_info'] : null;
237        $this->container['ip_blocklist'] = isset($data['ip_blocklist']) ? $data['ip_blocklist'] : null;
238        $this->container['tor'] = isset($data['tor']) ? $data['tor'] : null;
239        $this->container['vpn'] = isset($data['vpn']) ? $data['vpn'] : null;
240        $this->container['proxy'] = isset($data['proxy']) ? $data['proxy'] : null;
241        $this->container['incognito'] = isset($data['incognito']) ? $data['incognito'] : null;
242        $this->container['tampering'] = isset($data['tampering']) ? $data['tampering'] : null;
243        $this->container['cloned_app'] = isset($data['cloned_app']) ? $data['cloned_app'] : null;
244        $this->container['factory_reset'] = isset($data['factory_reset']) ? $data['factory_reset'] : null;
245        $this->container['jailbroken'] = isset($data['jailbroken']) ? $data['jailbroken'] : null;
246        $this->container['frida'] = isset($data['frida']) ? $data['frida'] : null;
247        $this->container['privacy_settings'] = isset($data['privacy_settings']) ? $data['privacy_settings'] : null;
248        $this->container['virtual_machine'] = isset($data['virtual_machine']) ? $data['virtual_machine'] : null;
249        $this->container['raw_device_attributes'] = isset($data['raw_device_attributes']) ? $data['raw_device_attributes'] : null;
250        $this->container['high_activity'] = isset($data['high_activity']) ? $data['high_activity'] : null;
251        $this->container['location_spoofing'] = isset($data['location_spoofing']) ? $data['location_spoofing'] : null;
252        $this->container['suspect_score'] = isset($data['suspect_score']) ? $data['suspect_score'] : null;
253        $this->container['remote_control'] = isset($data['remote_control']) ? $data['remote_control'] : null;
254        $this->container['velocity'] = isset($data['velocity']) ? $data['velocity'] : null;
255        $this->container['developer_tools'] = isset($data['developer_tools']) ? $data['developer_tools'] : null;
256        $this->container['mitm_attack'] = isset($data['mitm_attack']) ? $data['mitm_attack'] : null;
257        $this->container['proximity'] = isset($data['proximity']) ? $data['proximity'] : null;
258    }
259
260    /**
261     * Gets the string presentation of the object.
262     *
263     */
264    public function __toString(): string
265    {
266        return json_encode(ObjectSerializer::sanitizeForSerialization($this));
267    }
268
269    /**
270     * Array of property to type mappings. Used for (de)serialization.
271     */
272    public static function swaggerTypes(): array
273    {
274        return self::$swaggerTypes;
275    }
276
277    /**
278     * Array of property to format mappings. Used for (de)serialization.
279     */
280    public static function swaggerFormats(): array
281    {
282        return self::$swaggerFormats;
283    }
284
285    /**
286     * Array of attributes where the key is the local name,
287     * and the value is the original name.
288     */
289    public static function attributeMap(): array
290    {
291        return self::$attributeMap;
292    }
293
294    /**
295     * Array of attributes to setter functions (for deserialization of responses).
296     */
297    public static function setters(): array
298    {
299        return self::$setters;
300    }
301
302    /**
303     * Array of attributes to getter functions (for serialization of requests).
304     */
305    public static function getters(): array
306    {
307        return self::$getters;
308    }
309
310    /**
311     * The original name of the model.
312     */
313    public function getModelName(): string
314    {
315        return self::$swaggerModelName;
316    }
317
318    /**
319     * Show all the invalid properties with reasons.
320     *
321     * @return array invalid properties with reasons
322     */
323    public function listInvalidProperties(): array
324    {
325        return [];
326    }
327
328    /**
329     * Validate all the properties in the model
330     * return true if all passed.
331     *
332     * @return bool True if all properties are valid
333     */
334    public function valid(): bool
335    {
336        return 0 === count($this->listInvalidProperties());
337    }
338
339    /**
340     * Gets identification.
341     */
342    public function getIdentification(): ?ProductIdentification
343    {
344        return $this->container['identification'];
345    }
346
347    /**
348     * Sets identification.
349     *
350     * @param ?\Fingerprint\ServerAPI\Model\ProductIdentification $identification identification
351     *
352     * @return $this
353     */
354    public function setIdentification(?ProductIdentification $identification): self
355    {
356        $this->container['identification'] = $identification;
357
358        return $this;
359    }
360
361    /**
362     * Gets botd.
363     */
364    public function getBotd(): ?ProductBotd
365    {
366        return $this->container['botd'];
367    }
368
369    /**
370     * Sets botd.
371     *
372     * @param ?\Fingerprint\ServerAPI\Model\ProductBotd $botd botd
373     *
374     * @return $this
375     */
376    public function setBotd(?ProductBotd $botd): self
377    {
378        $this->container['botd'] = $botd;
379
380        return $this;
381    }
382
383    /**
384     * Gets root_apps.
385     */
386    public function getRootApps(): ?ProductRootApps
387    {
388        return $this->container['root_apps'];
389    }
390
391    /**
392     * Sets root_apps.
393     *
394     * @param ?\Fingerprint\ServerAPI\Model\ProductRootApps $root_apps root_apps
395     *
396     * @return $this
397     */
398    public function setRootApps(?ProductRootApps $root_apps): self
399    {
400        $this->container['root_apps'] = $root_apps;
401
402        return $this;
403    }
404
405    /**
406     * Gets emulator.
407     */
408    public function getEmulator(): ?ProductEmulator
409    {
410        return $this->container['emulator'];
411    }
412
413    /**
414     * Sets emulator.
415     *
416     * @param ?\Fingerprint\ServerAPI\Model\ProductEmulator $emulator emulator
417     *
418     * @return $this
419     */
420    public function setEmulator(?ProductEmulator $emulator): self
421    {
422        $this->container['emulator'] = $emulator;
423
424        return $this;
425    }
426
427    /**
428     * Gets ip_info.
429     */
430    public function getIpInfo(): ?ProductIPInfo
431    {
432        return $this->container['ip_info'];
433    }
434
435    /**
436     * Sets ip_info.
437     *
438     * @param ?\Fingerprint\ServerAPI\Model\ProductIPInfo $ip_info ip_info
439     *
440     * @return $this
441     */
442    public function setIpInfo(?ProductIPInfo $ip_info): self
443    {
444        $this->container['ip_info'] = $ip_info;
445
446        return $this;
447    }
448
449    /**
450     * Gets ip_blocklist.
451     */
452    public function getIpBlocklist(): ?ProductIPBlocklist
453    {
454        return $this->container['ip_blocklist'];
455    }
456
457    /**
458     * Sets ip_blocklist.
459     *
460     * @param ?\Fingerprint\ServerAPI\Model\ProductIPBlocklist $ip_blocklist ip_blocklist
461     *
462     * @return $this
463     */
464    public function setIpBlocklist(?ProductIPBlocklist $ip_blocklist): self
465    {
466        $this->container['ip_blocklist'] = $ip_blocklist;
467
468        return $this;
469    }
470
471    /**
472     * Gets tor.
473     */
474    public function getTor(): ?ProductTor
475    {
476        return $this->container['tor'];
477    }
478
479    /**
480     * Sets tor.
481     *
482     * @param ?\Fingerprint\ServerAPI\Model\ProductTor $tor tor
483     *
484     * @return $this
485     */
486    public function setTor(?ProductTor $tor): self
487    {
488        $this->container['tor'] = $tor;
489
490        return $this;
491    }
492
493    /**
494     * Gets vpn.
495     */
496    public function getVpn(): ?ProductVPN
497    {
498        return $this->container['vpn'];
499    }
500
501    /**
502     * Sets vpn.
503     *
504     * @param ?\Fingerprint\ServerAPI\Model\ProductVPN $vpn vpn
505     *
506     * @return $this
507     */
508    public function setVpn(?ProductVPN $vpn): self
509    {
510        $this->container['vpn'] = $vpn;
511
512        return $this;
513    }
514
515    /**
516     * Gets proxy.
517     */
518    public function getProxy(): ?ProductProxy
519    {
520        return $this->container['proxy'];
521    }
522
523    /**
524     * Sets proxy.
525     *
526     * @param ?\Fingerprint\ServerAPI\Model\ProductProxy $proxy proxy
527     *
528     * @return $this
529     */
530    public function setProxy(?ProductProxy $proxy): self
531    {
532        $this->container['proxy'] = $proxy;
533
534        return $this;
535    }
536
537    /**
538     * Gets incognito.
539     */
540    public function getIncognito(): ?ProductIncognito
541    {
542        return $this->container['incognito'];
543    }
544
545    /**
546     * Sets incognito.
547     *
548     * @param ?\Fingerprint\ServerAPI\Model\ProductIncognito $incognito incognito
549     *
550     * @return $this
551     */
552    public function setIncognito(?ProductIncognito $incognito): self
553    {
554        $this->container['incognito'] = $incognito;
555
556        return $this;
557    }
558
559    /**
560     * Gets tampering.
561     */
562    public function getTampering(): ?ProductTampering
563    {
564        return $this->container['tampering'];
565    }
566
567    /**
568     * Sets tampering.
569     *
570     * @param ?\Fingerprint\ServerAPI\Model\ProductTampering $tampering tampering
571     *
572     * @return $this
573     */
574    public function setTampering(?ProductTampering $tampering): self
575    {
576        $this->container['tampering'] = $tampering;
577
578        return $this;
579    }
580
581    /**
582     * Gets cloned_app.
583     */
584    public function getClonedApp(): ?ProductClonedApp
585    {
586        return $this->container['cloned_app'];
587    }
588
589    /**
590     * Sets cloned_app.
591     *
592     * @param ?\Fingerprint\ServerAPI\Model\ProductClonedApp $cloned_app cloned_app
593     *
594     * @return $this
595     */
596    public function setClonedApp(?ProductClonedApp $cloned_app): self
597    {
598        $this->container['cloned_app'] = $cloned_app;
599
600        return $this;
601    }
602
603    /**
604     * Gets factory_reset.
605     */
606    public function getFactoryReset(): ?ProductFactoryReset
607    {
608        return $this->container['factory_reset'];
609    }
610
611    /**
612     * Sets factory_reset.
613     *
614     * @param ?\Fingerprint\ServerAPI\Model\ProductFactoryReset $factory_reset factory_reset
615     *
616     * @return $this
617     */
618    public function setFactoryReset(?ProductFactoryReset $factory_reset): self
619    {
620        $this->container['factory_reset'] = $factory_reset;
621
622        return $this;
623    }
624
625    /**
626     * Gets jailbroken.
627     */
628    public function getJailbroken(): ?ProductJailbroken
629    {
630        return $this->container['jailbroken'];
631    }
632
633    /**
634     * Sets jailbroken.
635     *
636     * @param ?\Fingerprint\ServerAPI\Model\ProductJailbroken $jailbroken jailbroken
637     *
638     * @return $this
639     */
640    public function setJailbroken(?ProductJailbroken $jailbroken): self
641    {
642        $this->container['jailbroken'] = $jailbroken;
643
644        return $this;
645    }
646
647    /**
648     * Gets frida.
649     */
650    public function getFrida(): ?ProductFrida
651    {
652        return $this->container['frida'];
653    }
654
655    /**
656     * Sets frida.
657     *
658     * @param ?\Fingerprint\ServerAPI\Model\ProductFrida $frida frida
659     *
660     * @return $this
661     */
662    public function setFrida(?ProductFrida $frida): self
663    {
664        $this->container['frida'] = $frida;
665
666        return $this;
667    }
668
669    /**
670     * Gets privacy_settings.
671     */
672    public function getPrivacySettings(): ?ProductPrivacySettings
673    {
674        return $this->container['privacy_settings'];
675    }
676
677    /**
678     * Sets privacy_settings.
679     *
680     * @param ?\Fingerprint\ServerAPI\Model\ProductPrivacySettings $privacy_settings privacy_settings
681     *
682     * @return $this
683     */
684    public function setPrivacySettings(?ProductPrivacySettings $privacy_settings): self
685    {
686        $this->container['privacy_settings'] = $privacy_settings;
687
688        return $this;
689    }
690
691    /**
692     * Gets virtual_machine.
693     */
694    public function getVirtualMachine(): ?ProductVirtualMachine
695    {
696        return $this->container['virtual_machine'];
697    }
698
699    /**
700     * Sets virtual_machine.
701     *
702     * @param ?\Fingerprint\ServerAPI\Model\ProductVirtualMachine $virtual_machine virtual_machine
703     *
704     * @return $this
705     */
706    public function setVirtualMachine(?ProductVirtualMachine $virtual_machine): self
707    {
708        $this->container['virtual_machine'] = $virtual_machine;
709
710        return $this;
711    }
712
713    /**
714     * Gets raw_device_attributes.
715     */
716    public function getRawDeviceAttributes(): ?ProductRawDeviceAttributes
717    {
718        return $this->container['raw_device_attributes'];
719    }
720
721    /**
722     * Sets raw_device_attributes.
723     *
724     * @param ?\Fingerprint\ServerAPI\Model\ProductRawDeviceAttributes $raw_device_attributes raw_device_attributes
725     *
726     * @return $this
727     */
728    public function setRawDeviceAttributes(?ProductRawDeviceAttributes $raw_device_attributes): self
729    {
730        $this->container['raw_device_attributes'] = $raw_device_attributes;
731
732        return $this;
733    }
734
735    /**
736     * Gets high_activity.
737     */
738    public function getHighActivity(): ?ProductHighActivity
739    {
740        return $this->container['high_activity'];
741    }
742
743    /**
744     * Sets high_activity.
745     *
746     * @param ?\Fingerprint\ServerAPI\Model\ProductHighActivity $high_activity high_activity
747     *
748     * @return $this
749     */
750    public function setHighActivity(?ProductHighActivity $high_activity): self
751    {
752        $this->container['high_activity'] = $high_activity;
753
754        return $this;
755    }
756
757    /**
758     * Gets location_spoofing.
759     */
760    public function getLocationSpoofing(): ?ProductLocationSpoofing
761    {
762        return $this->container['location_spoofing'];
763    }
764
765    /**
766     * Sets location_spoofing.
767     *
768     * @param ?\Fingerprint\ServerAPI\Model\ProductLocationSpoofing $location_spoofing location_spoofing
769     *
770     * @return $this
771     */
772    public function setLocationSpoofing(?ProductLocationSpoofing $location_spoofing): self
773    {
774        $this->container['location_spoofing'] = $location_spoofing;
775
776        return $this;
777    }
778
779    /**
780     * Gets suspect_score.
781     */
782    public function getSuspectScore(): ?ProductSuspectScore
783    {
784        return $this->container['suspect_score'];
785    }
786
787    /**
788     * Sets suspect_score.
789     *
790     * @param ?\Fingerprint\ServerAPI\Model\ProductSuspectScore $suspect_score suspect_score
791     *
792     * @return $this
793     */
794    public function setSuspectScore(?ProductSuspectScore $suspect_score): self
795    {
796        $this->container['suspect_score'] = $suspect_score;
797
798        return $this;
799    }
800
801    /**
802     * Gets remote_control.
803     */
804    public function getRemoteControl(): ?ProductRemoteControl
805    {
806        return $this->container['remote_control'];
807    }
808
809    /**
810     * Sets remote_control.
811     *
812     * @param ?\Fingerprint\ServerAPI\Model\ProductRemoteControl $remote_control remote_control
813     *
814     * @return $this
815     */
816    public function setRemoteControl(?ProductRemoteControl $remote_control): self
817    {
818        $this->container['remote_control'] = $remote_control;
819
820        return $this;
821    }
822
823    /**
824     * Gets velocity.
825     */
826    public function getVelocity(): ?ProductVelocity
827    {
828        return $this->container['velocity'];
829    }
830
831    /**
832     * Sets velocity.
833     *
834     * @param ?\Fingerprint\ServerAPI\Model\ProductVelocity $velocity velocity
835     *
836     * @return $this
837     */
838    public function setVelocity(?ProductVelocity $velocity): self
839    {
840        $this->container['velocity'] = $velocity;
841
842        return $this;
843    }
844
845    /**
846     * Gets developer_tools.
847     */
848    public function getDeveloperTools(): ?ProductDeveloperTools
849    {
850        return $this->container['developer_tools'];
851    }
852
853    /**
854     * Sets developer_tools.
855     *
856     * @param ?\Fingerprint\ServerAPI\Model\ProductDeveloperTools $developer_tools developer_tools
857     *
858     * @return $this
859     */
860    public function setDeveloperTools(?ProductDeveloperTools $developer_tools): self
861    {
862        $this->container['developer_tools'] = $developer_tools;
863
864        return $this;
865    }
866
867    /**
868     * Gets mitm_attack.
869     */
870    public function getMitmAttack(): ?ProductMitMAttack
871    {
872        return $this->container['mitm_attack'];
873    }
874
875    /**
876     * Sets mitm_attack.
877     *
878     * @param ?\Fingerprint\ServerAPI\Model\ProductMitMAttack $mitm_attack mitm_attack
879     *
880     * @return $this
881     */
882    public function setMitmAttack(?ProductMitMAttack $mitm_attack): self
883    {
884        $this->container['mitm_attack'] = $mitm_attack;
885
886        return $this;
887    }
888
889    /**
890     * Gets proximity.
891     */
892    public function getProximity(): ?ProductProximity
893    {
894        return $this->container['proximity'];
895    }
896
897    /**
898     * Sets proximity.
899     *
900     * @param ?\Fingerprint\ServerAPI\Model\ProductProximity $proximity proximity
901     *
902     * @return $this
903     */
904    public function setProximity(?ProductProximity $proximity): self
905    {
906        $this->container['proximity'] = $proximity;
907
908        return $this;
909    }
910
911    /**
912     * Returns true if offset exists. False otherwise.
913     *
914     * @param int $offset Offset
915     */
916    public function offsetExists($offset): bool
917    {
918        return isset($this->container[$offset]);
919    }
920
921    /**
922     * Gets offset.
923     *
924     * @param int $offset Offset
925     */
926    public function offsetGet($offset): mixed
927    {
928        return isset($this->container[$offset]) ? $this->container[$offset] : null;
929    }
930
931    /**
932     * Sets value based on offset.
933     *
934     * @param int   $offset Offset
935     * @param mixed $value  Value to be set
936     */
937    public function offsetSet($offset, mixed $value): void
938    {
939        if (is_null($offset)) {
940            $this->container[] = $value;
941        } else {
942            $this->container[$offset] = $value;
943        }
944    }
945
946    /**
947     * Unsets offset.
948     *
949     * @param int $offset Offset
950     */
951    public function offsetUnset($offset): void
952    {
953        unset($this->container[$offset]);
954    }
955
956    /**
957     * Gets the string presentation of the object in a pretty JSON format.
958     *
959     */
960    public function toPrettyString(): string
961    {
962        return json_encode(
963            ObjectSerializer::sanitizeForSerialization($this),
964            JSON_PRETTY_PRINT
965        );
966    }
967}