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