1<?php
2
3namespace GeoIp2\Record;
4
5/**
6 * Contains data for the traits record associated with an IP address.
7 *
8 * This record is returned by all location services and databases.
9 *
10 * @property-read int|null $autonomousSystemNumber The
11 * {@link * http://en.wikipedia.org/wiki/Autonomous_system_(Internet) autonomous
12 * system number} associated with the IP address. This attribute is only
13 * available from the City and Insights web service and the GeoIP2
14 * Enterprise database.
15 * @property-read string|null $autonomousSystemOrganization The organization
16 * associated with the registered {@link * http://en.wikipedia.org/wiki/Autonomous_system_(Internet) autonomous
17 * system number} for the IP address. This attribute is only available from
18 * the City and Insights web service and the GeoIP2 Enterprise
19 * database.
20 * @property-read string|null $connectionType The connection type may take the
21 * following  values: "Dialup", "Cable/DSL", "Corporate", "Cellular".
22 * Additional values may be added in the future. This attribute is only
23 * available in the GeoIP2 Enterprise database.
24 * @property-read string|null $domain The second level domain associated with the
25 * IP address. This will be something like "example.com" or "example.co.uk",
26 * not "foo.example.com". This attribute is only available from the
27 * City and Insights web service and the GeoIP2 Enterprise
28 * database.
29 * @property-read string $ipAddress The IP address that the data in the model
30 * is for. If you performed a "me" lookup against the web service, this
31 * will be the externally routable IP address for the system the code is
32 * running on. If the system is behind a NAT, this may differ from the IP
33 * address locally assigned to it. This attribute is returned by all end
34 * points.
35 * @property-read bool $isAnonymous This is true if the IP address belongs to
36 * any sort of anonymous network. This property is only available from GeoIP2
37 * Precision Insights.
38 * @property-read bool $isAnonymousProxy *Deprecated.* Please see our
39 * {@link * https://www.maxmind.com/en/geoip2-anonymous-ip-database GeoIP2
40 * Anonymous IP database} to determine whether the IP address is used by an
41 * anonymizing service.
42 * @property-read bool $isAnonymousVpn This is true if the IP address belongs to
43 * an anonymous VPN system. This property is only available from GeoIP2
44 * Precision Insights.
45 * @property-read bool $isHostingProvider This is true if the IP address belongs
46 * to a hosting provider. This property is only available from GeoIP2
47 * Precision Insights.
48 * @property-read bool $isLegitimateProxy This attribute is true if MaxMind
49 * believes this IP address to be a legitimate proxy, such as an internal
50 * VPN used by a corporation. This attribute is only available in the GeoIP2
51 * Enterprise database.
52 * @property-read bool $isPublicProxy This is true if the IP address belongs to
53 * a public proxy. This property is only available from GeoIP2 Precision
54 * Insights.
55 * @property-read bool $isSatelliteProvider *Deprecated.* Due to the
56 * increased coverage by mobile carriers, very few satellite providers now
57 * serve multiple countries. As a result, the output does not provide
58 * sufficiently relevant data for us to maintain it.
59 * @property-read bool $isTorExitNode This is true if the IP address is a Tor
60 * exit node. This property is only available from GeoIP2 Precision Insights.
61 * @property-read string|null $isp The name of the ISP associated with the IP
62 * address. This attribute is only available from the City and Insights web
63 * services and the GeoIP2 Enterprise database.
64 * @property-read string|null $organization The name of the organization associated
65 * with the IP address. This attribute is only available from the City and
66 * Insights web services and the GeoIP2 Enterprise database.
67 * @property-read string|null $userType <p>The user type associated with the IP
68 *  address. This can be one of the following values:</p>
69 *  <ul>
70 *    <li>business
71 *    <li>cafe
72 *    <li>cellular
73 *    <li>college
74 *    <li>content_delivery_network
75 *    <li>dialup
76 *    <li>government
77 *    <li>hosting
78 *    <li>library
79 *    <li>military
80 *    <li>residential
81 *    <li>router
82 *    <li>school
83 *    <li>search_engine_spider
84 *    <li>traveler
85 * </ul>
86 * <p>
87 *   This attribute is only available from the Insights web service and the
88 *   GeoIP2 Enterprise database.
89 * </p>
90 */
91class Traits extends AbstractRecord
92{
93    /**
94     * @ignore
95     */
96    protected $validAttributes = [
97        'autonomousSystemNumber',
98        'autonomousSystemOrganization',
99        'connectionType',
100        'domain',
101        'ipAddress',
102        'isAnonymous',
103        'isAnonymousProxy',
104        'isAnonymousVpn',
105        'isHostingProvider',
106        'isLegitimateProxy',
107        'isp',
108        'isPublicProxy',
109        'isSatelliteProvider',
110        'isTorExitNode',
111        'organization',
112        'userType',
113    ];
114}
115