hostinger-api 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. hostinger_api/__init__.py +105 -0
  2. hostinger_api/api/__init__.py +21 -0
  3. hostinger_api/api/billing_catalog_api.py +282 -0
  4. hostinger_api/api/billing_orders_api.py +313 -0
  5. hostinger_api/api/billing_payment_methods_api.py +819 -0
  6. hostinger_api/api/billing_subscriptions_api.py +584 -0
  7. hostinger_api/api/domains_portfolio_api.py +282 -0
  8. hostinger_api/api/vps_actions_api.py +599 -0
  9. hostinger_api/api/vps_backups_api.py +882 -0
  10. hostinger_api/api/vps_data_centers_api.py +282 -0
  11. hostinger_api/api/vps_firewall_api.py +2872 -0
  12. hostinger_api/api/vps_malware_scanner_api.py +842 -0
  13. hostinger_api/api/vps_post_install_scripts_api.py +1419 -0
  14. hostinger_api/api/vps_public_keys_api.py +1154 -0
  15. hostinger_api/api/vps_recovery_api.py +597 -0
  16. hostinger_api/api/vps_snapshots_api.py +1100 -0
  17. hostinger_api/api/vps_virtual_machine_api.py +3714 -0
  18. hostinger_api/api/vpsos_templates_api.py +551 -0
  19. hostinger_api/api/vpsptr_records_api.py +565 -0
  20. hostinger_api/api_client.py +795 -0
  21. hostinger_api/api_response.py +21 -0
  22. hostinger_api/configuration.py +579 -0
  23. hostinger_api/exceptions.py +214 -0
  24. hostinger_api/models/__init__.py +72 -0
  25. hostinger_api/models/billing_v1_catalog_catalog_item_price_resource.py +107 -0
  26. hostinger_api/models/billing_v1_catalog_catalog_item_resource.py +99 -0
  27. hostinger_api/models/billing_v1_order_order_billing_address_resource.py +145 -0
  28. hostinger_api/models/billing_v1_order_order_resource.py +116 -0
  29. hostinger_api/models/billing_v1_order_store_request.py +97 -0
  30. hostinger_api/models/billing_v1_order_store_request_items_inner.py +87 -0
  31. hostinger_api/models/billing_v1_payment_method_payment_method_resource.py +102 -0
  32. hostinger_api/models/billing_v1_subscription_cancel_request.py +117 -0
  33. hostinger_api/models/billing_v1_subscription_subscription_resource.py +130 -0
  34. hostinger_api/models/common_schema_error_response_schema.py +87 -0
  35. hostinger_api/models/common_schema_pagination_meta_schema.py +89 -0
  36. hostinger_api/models/common_schema_unauthorized_response_schema.py +87 -0
  37. hostinger_api/models/common_schema_unprocessable_content_response_schema.py +93 -0
  38. hostinger_api/models/common_schema_unprocessable_content_response_schema_errors.py +87 -0
  39. hostinger_api/models/common_success_empty_resource.py +85 -0
  40. hostinger_api/models/domains_v1_domain_domain_resource.py +126 -0
  41. hostinger_api/models/vps_get_action_list_v1200_response.py +99 -0
  42. hostinger_api/models/vps_get_backup_list_v1200_response.py +99 -0
  43. hostinger_api/models/vps_get_firewall_list_v1200_response.py +99 -0
  44. hostinger_api/models/vps_get_post_install_script_list_v1200_response.py +99 -0
  45. hostinger_api/models/vps_get_public_key_list_v1200_response.py +99 -0
  46. hostinger_api/models/vpsv1_action_action_resource.py +104 -0
  47. hostinger_api/models/vpsv1_backup_backup_resource.py +90 -0
  48. hostinger_api/models/vpsv1_data_center_data_center_resource.py +113 -0
  49. hostinger_api/models/vpsv1_firewall_firewall_resource.py +104 -0
  50. hostinger_api/models/vpsv1_firewall_firewall_rule_resource.py +115 -0
  51. hostinger_api/models/vpsv1_firewall_rules_store_request.py +105 -0
  52. hostinger_api/models/vpsv1_firewall_store_request.py +85 -0
  53. hostinger_api/models/vpsv1_ip_address_ip_address_resource.py +94 -0
  54. hostinger_api/models/vpsv1_malware_metrics_resource.py +101 -0
  55. hostinger_api/models/vpsv1_metrics_metrics_collection.py +149 -0
  56. hostinger_api/models/vpsv1_metrics_metrics_collection_cpu_usage.py +127 -0
  57. hostinger_api/models/vpsv1_metrics_metrics_collection_disk_space.py +127 -0
  58. hostinger_api/models/vpsv1_metrics_metrics_collection_incoming_traffic.py +127 -0
  59. hostinger_api/models/vpsv1_metrics_metrics_collection_outgoing_traffic.py +127 -0
  60. hostinger_api/models/vpsv1_metrics_metrics_collection_ram_usage.py +127 -0
  61. hostinger_api/models/vpsv1_metrics_metrics_collection_uptime.py +127 -0
  62. hostinger_api/models/vpsv1_metrics_metrics_resource.py +87 -0
  63. hostinger_api/models/vpsv1_post_install_script_post_install_script_resource.py +94 -0
  64. hostinger_api/models/vpsv1_post_install_script_store_request.py +87 -0
  65. hostinger_api/models/vpsv1_public_key_attach_request.py +85 -0
  66. hostinger_api/models/vpsv1_public_key_public_key_resource.py +89 -0
  67. hostinger_api/models/vpsv1_public_key_store_request.py +87 -0
  68. hostinger_api/models/vpsv1_snapshot_snapshot_resource.py +90 -0
  69. hostinger_api/models/vpsv1_template_template_resource.py +96 -0
  70. hostinger_api/models/vpsv1_virtual_machine_hostname_update_request.py +85 -0
  71. hostinger_api/models/vpsv1_virtual_machine_metric_get_request.py +88 -0
  72. hostinger_api/models/vpsv1_virtual_machine_nameservers_update_request.py +87 -0
  73. hostinger_api/models/vpsv1_virtual_machine_panel_password_update_request.py +86 -0
  74. hostinger_api/models/vpsv1_virtual_machine_recovery_start_request.py +85 -0
  75. hostinger_api/models/vpsv1_virtual_machine_recreate_request.py +90 -0
  76. hostinger_api/models/vpsv1_virtual_machine_root_password_update_request.py +86 -0
  77. hostinger_api/models/vpsv1_virtual_machine_setup_request.py +108 -0
  78. hostinger_api/models/vpsv1_virtual_machine_setup_request_public_key.py +87 -0
  79. hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource.py +190 -0
  80. hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv4.py +131 -0
  81. hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv6.py +131 -0
  82. hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_template.py +127 -0
  83. hostinger_api/py.typed +0 -0
  84. hostinger_api/rest.py +256 -0
  85. hostinger_api-1.0.0.dist-info/METADATA +26 -0
  86. hostinger_api-1.0.0.dist-info/RECORD +88 -0
  87. hostinger_api-1.0.0.dist-info/WHEEL +5 -0
  88. hostinger_api-1.0.0.dist-info/top_level.txt +1 -0
hostinger_api/rest.py ADDED
@@ -0,0 +1,256 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Hostinger API Python SDK
5
+
6
+ API Version: 0.0.1-beta
7
+
8
+ NOTE: This file is auto-generated, DO NOT EDIT THIS FILE MANUALLY!
9
+ If you want to contribute or request a new feature, please create an issue or pull request on https://github.com/hostinger/api
10
+ """ # noqa: E501
11
+
12
+
13
+ import io
14
+ import json
15
+ import re
16
+ import ssl
17
+
18
+ import urllib3
19
+
20
+ from hostinger_api.exceptions import ApiException, ApiValueError
21
+
22
+ SUPPORTED_SOCKS_PROXIES = {"socks5", "socks5h", "socks4", "socks4a"}
23
+ RESTResponseType = urllib3.HTTPResponse
24
+
25
+
26
+ def is_socks_proxy_url(url):
27
+ if url is None:
28
+ return False
29
+ split_section = url.split("://")
30
+ if len(split_section) < 2:
31
+ return False
32
+ else:
33
+ return split_section[0].lower() in SUPPORTED_SOCKS_PROXIES
34
+
35
+
36
+ class RESTResponse(io.IOBase):
37
+
38
+ def __init__(self, resp) -> None:
39
+ self.response = resp
40
+ self.status = resp.status
41
+ self.reason = resp.reason
42
+ self.data = None
43
+
44
+ def read(self):
45
+ if self.data is None:
46
+ self.data = self.response.data
47
+ return self.data
48
+
49
+ def getheaders(self):
50
+ """Returns a dictionary of the response headers."""
51
+ return self.response.headers
52
+
53
+ def getheader(self, name, default=None):
54
+ """Returns a given response header."""
55
+ return self.response.headers.get(name, default)
56
+
57
+
58
+ class RESTClientObject:
59
+
60
+ def __init__(self, configuration) -> None:
61
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
62
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
63
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
64
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
65
+
66
+ # cert_reqs
67
+ if configuration.verify_ssl:
68
+ cert_reqs = ssl.CERT_REQUIRED
69
+ else:
70
+ cert_reqs = ssl.CERT_NONE
71
+
72
+ pool_args = {
73
+ "cert_reqs": cert_reqs,
74
+ "ca_certs": configuration.ssl_ca_cert,
75
+ "cert_file": configuration.cert_file,
76
+ "key_file": configuration.key_file,
77
+ "ca_cert_data": configuration.ca_cert_data,
78
+ }
79
+ if configuration.assert_hostname is not None:
80
+ pool_args['assert_hostname'] = (
81
+ configuration.assert_hostname
82
+ )
83
+
84
+ if configuration.retries is not None:
85
+ pool_args['retries'] = configuration.retries
86
+
87
+ if configuration.tls_server_name:
88
+ pool_args['server_hostname'] = configuration.tls_server_name
89
+
90
+
91
+ if configuration.socket_options is not None:
92
+ pool_args['socket_options'] = configuration.socket_options
93
+
94
+ if configuration.connection_pool_maxsize is not None:
95
+ pool_args['maxsize'] = configuration.connection_pool_maxsize
96
+
97
+ # https pool manager
98
+ self.pool_manager: urllib3.PoolManager
99
+
100
+ if configuration.proxy:
101
+ if is_socks_proxy_url(configuration.proxy):
102
+ from urllib3.contrib.socks import SOCKSProxyManager
103
+ pool_args["proxy_url"] = configuration.proxy
104
+ pool_args["headers"] = configuration.proxy_headers
105
+ self.pool_manager = SOCKSProxyManager(**pool_args)
106
+ else:
107
+ pool_args["proxy_url"] = configuration.proxy
108
+ pool_args["proxy_headers"] = configuration.proxy_headers
109
+ self.pool_manager = urllib3.ProxyManager(**pool_args)
110
+ else:
111
+ self.pool_manager = urllib3.PoolManager(**pool_args)
112
+
113
+ def request(
114
+ self,
115
+ method,
116
+ url,
117
+ headers=None,
118
+ body=None,
119
+ post_params=None,
120
+ _request_timeout=None
121
+ ):
122
+ """Perform requests.
123
+
124
+ :param method: http request method
125
+ :param url: http request url
126
+ :param headers: http request headers
127
+ :param body: request json body, for `application/json`
128
+ :param post_params: request post parameters,
129
+ `application/x-www-form-urlencoded`
130
+ and `multipart/form-data`
131
+ :param _request_timeout: timeout setting for this request. If one
132
+ number provided, it will be total request
133
+ timeout. It can also be a pair (tuple) of
134
+ (connection, read) timeouts.
135
+ """
136
+ method = method.upper()
137
+ assert method in [
138
+ 'GET',
139
+ 'HEAD',
140
+ 'DELETE',
141
+ 'POST',
142
+ 'PUT',
143
+ 'PATCH',
144
+ 'OPTIONS'
145
+ ]
146
+
147
+ if post_params and body:
148
+ raise ApiValueError(
149
+ "body parameter cannot be used with post_params parameter."
150
+ )
151
+
152
+ post_params = post_params or {}
153
+ headers = headers or {}
154
+
155
+ timeout = None
156
+ if _request_timeout:
157
+ if isinstance(_request_timeout, (int, float)):
158
+ timeout = urllib3.Timeout(total=_request_timeout)
159
+ elif (
160
+ isinstance(_request_timeout, tuple)
161
+ and len(_request_timeout) == 2
162
+ ):
163
+ timeout = urllib3.Timeout(
164
+ connect=_request_timeout[0],
165
+ read=_request_timeout[1]
166
+ )
167
+
168
+ try:
169
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
170
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
171
+
172
+ # no content type provided or payload is json
173
+ content_type = headers.get('Content-Type')
174
+ if (
175
+ not content_type
176
+ or re.search('json', content_type, re.IGNORECASE)
177
+ ):
178
+ request_body = None
179
+ if body is not None:
180
+ request_body = json.dumps(body)
181
+ r = self.pool_manager.request(
182
+ method,
183
+ url,
184
+ body=request_body,
185
+ timeout=timeout,
186
+ headers=headers,
187
+ preload_content=False
188
+ )
189
+ elif content_type == 'application/x-www-form-urlencoded':
190
+ r = self.pool_manager.request(
191
+ method,
192
+ url,
193
+ fields=post_params,
194
+ encode_multipart=False,
195
+ timeout=timeout,
196
+ headers=headers,
197
+ preload_content=False
198
+ )
199
+ elif content_type == 'multipart/form-data':
200
+ # must del headers['Content-Type'], or the correct
201
+ # Content-Type which generated by urllib3 will be
202
+ # overwritten.
203
+ del headers['Content-Type']
204
+ # Ensures that dict objects are serialized
205
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a,b) for a, b in post_params]
206
+ r = self.pool_manager.request(
207
+ method,
208
+ url,
209
+ fields=post_params,
210
+ encode_multipart=True,
211
+ timeout=timeout,
212
+ headers=headers,
213
+ preload_content=False
214
+ )
215
+ # Pass a `string` parameter directly in the body to support
216
+ # other content types than JSON when `body` argument is
217
+ # provided in serialized form.
218
+ elif isinstance(body, str) or isinstance(body, bytes):
219
+ r = self.pool_manager.request(
220
+ method,
221
+ url,
222
+ body=body,
223
+ timeout=timeout,
224
+ headers=headers,
225
+ preload_content=False
226
+ )
227
+ elif headers['Content-Type'].startswith('text/') and isinstance(body, bool):
228
+ request_body = "true" if body else "false"
229
+ r = self.pool_manager.request(
230
+ method,
231
+ url,
232
+ body=request_body,
233
+ preload_content=False,
234
+ timeout=timeout,
235
+ headers=headers)
236
+ else:
237
+ # Cannot generate the request from given parameters
238
+ msg = """Cannot prepare a request message for provided
239
+ arguments. Please check that your arguments match
240
+ declared content type."""
241
+ raise ApiException(status=0, reason=msg)
242
+ # For `GET`, `HEAD`
243
+ else:
244
+ r = self.pool_manager.request(
245
+ method,
246
+ url,
247
+ fields={},
248
+ timeout=timeout,
249
+ headers=headers,
250
+ preload_content=False
251
+ )
252
+ except urllib3.exceptions.SSLError as e:
253
+ msg = "\n".join([type(e).__name__, str(e)])
254
+ raise ApiException(status=0, reason=msg)
255
+
256
+ return RESTResponse(r)
@@ -0,0 +1,26 @@
1
+ Metadata-Version: 2.4
2
+ Name: hostinger_api
3
+ Version: 1.0.0
4
+ Summary: Hostinger API
5
+ Home-page: https://github.com/hostinger/api-python-sdk
6
+ Author: Hostinger
7
+ Author-email: devs@hostinger.com
8
+ License: MIT
9
+ Keywords: hostinger,openapi,python,sdk,rest,api
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: urllib3<3.0.0,>=1.25.3
12
+ Requires-Dist: python-dateutil>=2.8.2
13
+ Requires-Dist: pydantic>=2
14
+ Requires-Dist: typing-extensions>=4.7.1
15
+ Dynamic: author
16
+ Dynamic: author-email
17
+ Dynamic: description
18
+ Dynamic: description-content-type
19
+ Dynamic: home-page
20
+ Dynamic: keywords
21
+ Dynamic: license
22
+ Dynamic: requires-dist
23
+ Dynamic: summary
24
+
25
+ &gt; [!caution] &gt; Currently, this API is in beta stage, meaning that breaking changes, while unlikely, might be introduced. &gt; If you encounter any issues or have any feedback, please create an issue on the [Github Repository](https://github.com/hostinger/api/issues). # Overview The Hostinger API provides a comprehensive set of endpoints that allow developers to interact with Hostinger&#39;s services programmatically. This API enables you to manage various aspects of your Hostinger account. The Hostinger API is a (mostly) RESTful API that uses standard HTTP methods and status codes. # Authentication The Hostinger API uses tokens for authentication. To authenticate your requests, you need to include a valid bearer token in the Authorization header of your HTTP requests: &#x60;&#x60;&#x60;yaml Authorization: Bearer YOUR_API_TOKEN &#x60;&#x60;&#x60; API tokens for individual users can be created and managed from the [VPS page](https://hpanel.hostinger.com/vps) of the Hostinger Panel. Tokens will have same permissions as the owning user. Optionally, tokens can be set to expire after a certain period of time. # Rate Limiting To ensure fair usage and prevent abuse, the API enforces rate limits on the number of requests that can be made within a certain time period. If you exceed the rate limit, you will receive a 429 Too Many Requests response. Rate limit headers are included in the response to help you manage your requests. Your IP address might get temporarily blocked if you exceed the rate limit multiple times. # Parameters All requests sent to API must have the content type &#x60;application/json&#x60;. &#x60;POST&#x60;, &#x60;PUT&#x60;, &#x60;PATCH&#x60; methods may include a JSON object in the request body. Documentation provides required structure and examples of the object. Some endpoints require path parameters. These parameters are included in the URL path and are marked with curly braces. # Pagination Some endpoints return a large number of items. To make these responses more manageable, the API uses pagination. By default, the API returns 50 items per page. The page number can be specified using the &#x60;page&#x60; query parameter, for example: &#x60;/api/vps/v1/public-keys?page&#x3D;2&#x60; # Errors The Hostinger API uses standard HTTP status codes to indicate the success or failure of a request. In case of an error, the API will return a JSON response with an &#x60;error&#x60; field, containing a human-readable error message. Error responses also contain a &#x60;correlation_id&#x60; field which can be used to identify the request in case you need to contact support. # Change log For information on the latest changes to the API, please refer to the [change log](https://github.com/hostinger/api/blob/main/CHANGELOG.md). # Support If you have any questions, feedback or feature requests, please create an [issue](https://github.com/hostinger/api/issues) or [discussion](https://github.com/hostinger/api/discussions) on the repository. For any support take a look at our [Github Repository](https://github.com/hostinger/api/), dedicated to the Hostinger API.
26
+
@@ -0,0 +1,88 @@
1
+ hostinger_api/__init__.py,sha256=MLmum_3gNjG5Hh35sywsfWUo2su-ggqlGsQujy5n5Mk,8451
2
+ hostinger_api/api_client.py,sha256=3iASQm3nWWeE8NgSNi_OpL926nhWtKdX1wRraDFg2Wc,27452
3
+ hostinger_api/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
+ hostinger_api/configuration.py,sha256=zOdHpm7EqhjNRsGIvVvnKVszuKB96dx9DpbbgwipApA,18255
5
+ hostinger_api/exceptions.py,sha256=0ZSJa1cEm7Ov_CPVIW_bYxi6HVDyjhsSKBNIC0KSPsQ,6455
6
+ hostinger_api/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ hostinger_api/rest.py,sha256=Ozuqz2umxho_9B8-uFVvC-85pDLQdEY9EerwATMl75A,9451
8
+ hostinger_api/api/__init__.py,sha256=RSOKy7MJPdYXIi6SvfIa62tko2WnAM2KaiwfCjLpT4o,1229
9
+ hostinger_api/api/billing_catalog_api.py,sha256=WeG3NLj41JUTDEVNNUBTyu5lzIrxm5eBrEqg5Nwix_w,11307
10
+ hostinger_api/api/billing_orders_api.py,sha256=-Vq9o7KgCKbFYVLwCdpLX56sM_zqJj2UQLA9gQmiiUE,13298
11
+ hostinger_api/api/billing_payment_methods_api.py,sha256=LESdnFFIqZssgJDQxxTBwpoiNsix_tO1XK3UXJzR3oQ,33111
12
+ hostinger_api/api/billing_subscriptions_api.py,sha256=x-wcoUvmPPW0OVrG53of_p26TFrmOHz4qe4PDx1oV-o,23825
13
+ hostinger_api/api/domains_portfolio_api.py,sha256=sCLnarPDYi9kRz4h7-10K29bZdox05PvqgSC2C2C0IA,10854
14
+ hostinger_api/api/vps_actions_api.py,sha256=Y7YVcDqMJdkxwSlRc9CDmZLz0uP8IdwkQ7F_5guyKTk,25186
15
+ hostinger_api/api/vps_backups_api.py,sha256=4FXoMDcS2q9rD6ebNSclN5F8NUeGA-jVtskm9Ur29Xk,35897
16
+ hostinger_api/api/vps_data_centers_api.py,sha256=FJtaN-dHKpNamtl_kHucudN4gn87CiQMrOapL4C5LW0,10898
17
+ hostinger_api/api/vps_firewall_api.py,sha256=cBwMReex5IE9tzNhDa1pqTo4o9t1jl6MN-jgbAMMijk,118300
18
+ hostinger_api/api/vps_malware_scanner_api.py,sha256=0uXY5RGojn4qE5klnHYqktohGHdUCm6iZh7xQqRvOvU,36179
19
+ hostinger_api/api/vps_post_install_scripts_api.py,sha256=MbjA3pTCtg0QVmHURU0PUKisaVV--WjGiwCHPiI7GE4,59759
20
+ hostinger_api/api/vps_public_keys_api.py,sha256=07qCeqLFgOH361z_TLM-uT4r-MVygYiEX8eatv60-tw,47308
21
+ hostinger_api/api/vps_recovery_api.py,sha256=NN3MXEOXyqvZSO5g5X0zr6kqvEubAazWBGdiF77-z8I,25851
22
+ hostinger_api/api/vps_snapshots_api.py,sha256=IP39i5OMWy1HBGDLd_XaBPJOhMo6o4hE-3ufPBL5mBI,45571
23
+ hostinger_api/api/vps_virtual_machine_api.py,sha256=cO9KOD3X_XIU2JOeAcWfCvGCUXGjSe2ZWpgNrft-77E,160847
24
+ hostinger_api/api/vpsos_templates_api.py,sha256=rlQkJxAPW5sLgQCE8fKFxMBVLSFSGlFa9qod9AbGgt0,21490
25
+ hostinger_api/api/vpsptr_records_api.py,sha256=FtWN52I_1FPdBVEFGSbfSZ5wpZxDnalTIV9qoLV_XCY,22948
26
+ hostinger_api/models/__init__.py,sha256=ynX6Yy02fDFtse_7JTnVVMaHZes1c_52DZIXqkRytjg,6735
27
+ hostinger_api/models/billing_v1_catalog_catalog_item_price_resource.py,sha256=gXlazPAWQL3H3a-IdKS2x3lnINKcULUlw_qJBtyiM_E,3895
28
+ hostinger_api/models/billing_v1_catalog_catalog_item_resource.py,sha256=Sp1eiBx2io34SLg-iJmw8JzUOS3w5hQg2NZrW7jx4eo,3610
29
+ hostinger_api/models/billing_v1_order_order_billing_address_resource.py,sha256=m5EPfMh26n01e77Wn79C_sSlgPIFgoUTTi6tmRfRZqY,5187
30
+ hostinger_api/models/billing_v1_order_order_resource.py,sha256=wp7h0uUZY4TPJEskkmDh3pDzgs9IHqUWudXWLaOwkpM,4666
31
+ hostinger_api/models/billing_v1_order_store_request.py,sha256=3FSmuD24IvJm9F-I1KluOXDfLcfYM7f_uWZmhGh0aZg,3345
32
+ hostinger_api/models/billing_v1_order_store_request_items_inner.py,sha256=bVETH11BTioiGbSTUd84hbpy5BrFJ_e4L8VMduYnkk0,2743
33
+ hostinger_api/models/billing_v1_payment_method_payment_method_resource.py,sha256=jBi6DxBaNzlzeOmTNXFHt-kzqS7B7-Den2aCBGTWpb8,3548
34
+ hostinger_api/models/billing_v1_subscription_cancel_request.py,sha256=JyqWzNiyH9Uh7dvGnjzGU-DJQX00qxDOrSKwmckpCIw,3914
35
+ hostinger_api/models/billing_v1_subscription_subscription_resource.py,sha256=67Wfu9OEAk4oKbS4F8oxULlKY7J_1eJm3xgpm-18ccY,5056
36
+ hostinger_api/models/common_schema_error_response_schema.py,sha256=FgGEsSk_cJxttXXSonTq02SU62FoTIfs79FTpNu9d9k,2685
37
+ hostinger_api/models/common_schema_pagination_meta_schema.py,sha256=hbjHcAWizboUuu8VZZ6f9__1QWRzIPqG2DMgufXruU0,2771
38
+ hostinger_api/models/common_schema_unauthorized_response_schema.py,sha256=73TylpkoU_XWHhrd1TagXBKa6GerjDEyNAokscr7aQs,2713
39
+ hostinger_api/models/common_schema_unprocessable_content_response_schema.py,sha256=5H-Cx6VrXcEk5weZpzfD-V0wPCDB8CDkW-hw-tcvPK4,3349
40
+ hostinger_api/models/common_schema_unprocessable_content_response_schema_errors.py,sha256=hsiJ7lmwj4tEit4CKlG_47_7jvsVA0W8wwbSdvjAgks,2730
41
+ hostinger_api/models/common_success_empty_resource.py,sha256=oNbQ7ljdFUhWs83RVSETLXUYmoqD-PLYdIv5pQd1BBE,2543
42
+ hostinger_api/models/domains_v1_domain_domain_resource.py,sha256=1BSy_JGlrLvu957ZJMlzyZKM1bfowl6gAcRJZ3GgEvE,4269
43
+ hostinger_api/models/vps_get_action_list_v1200_response.py,sha256=idBWNZ8M9KjzwMDLuzqPPntFBa4Eyc7Bwq4nCySViTo,3600
44
+ hostinger_api/models/vps_get_backup_list_v1200_response.py,sha256=tZUIKMIABpDRRjF27OW-BeVqPBUYV7D_tCsfUynAAnA,3600
45
+ hostinger_api/models/vps_get_firewall_list_v1200_response.py,sha256=MwDp8SfaMQbGt75b2Jic_236Y2A1ATr9xQ6fRPPmmLQ,3632
46
+ hostinger_api/models/vps_get_post_install_script_list_v1200_response.py,sha256=hP-UvNG4a33Yb-DDr0Y7TB2NcCKL9yWyl6URxR4ZcwI,3780
47
+ hostinger_api/models/vps_get_public_key_list_v1200_response.py,sha256=AFIv2K_L3_cr4-Ux1qkhejxZupn2ThpTg-Cnm96pjes,3650
48
+ hostinger_api/models/vpsv1_action_action_resource.py,sha256=9OnGfQcd2toVy80NEwXx3m-6zREGy9milZVm4zsAOhs,3456
49
+ hostinger_api/models/vpsv1_backup_backup_resource.py,sha256=GVMoj-qXW2-sicmRTLODcP-g6GhLz3oIi_qPb9kPxyw,2863
50
+ hostinger_api/models/vpsv1_data_center_data_center_resource.py,sha256=YP3Eqz6oespUgVWiWhDWE43JIPw8L_2vkK5V34QF96c,4051
51
+ hostinger_api/models/vpsv1_firewall_firewall_resource.py,sha256=E6u0GLaFAqE8UF6JHf8t7E72HWfRkfdrh1fP-IGuaV0,3892
52
+ hostinger_api/models/vpsv1_firewall_firewall_rule_resource.py,sha256=4p6zvY80isSbF2mM9gLSUfDh-fMTIvf8XSPaDyzKi3E,4270
53
+ hostinger_api/models/vpsv1_firewall_rules_store_request.py,sha256=DrWwGOLwzqb-UgHE3meQN7aUez0nIuDYo9lD4I8AK5U,3602
54
+ hostinger_api/models/vpsv1_firewall_store_request.py,sha256=aB_4CYwrhqxX9e0vR8a40dvoaxsWdnor8dLAhD98JoU,2500
55
+ hostinger_api/models/vpsv1_ip_address_ip_address_resource.py,sha256=Wz33-UCPqZ0lvdyMnRyOGURkwqy67kZmsUyl9YAi3WY,3079
56
+ hostinger_api/models/vpsv1_malware_metrics_resource.py,sha256=n_NH01DnJuOCJP_gpunajsKoMI0UFOmqAjMPRN6SGJY,3669
57
+ hostinger_api/models/vpsv1_metrics_metrics_collection.py,sha256=qQG-x1yI50SrKdIK6CbVIBmMq8R-4kDAh0d4U9N-Pvc,7019
58
+ hostinger_api/models/vpsv1_metrics_metrics_collection_cpu_usage.py,sha256=YecN00JgRUCyY8yy1vF3zrl7cz33AnGggZBqIzjJ304,5052
59
+ hostinger_api/models/vpsv1_metrics_metrics_collection_disk_space.py,sha256=a4YFwX9EYXaw6sQ_eAilXQB03Nc0hs1ozCeN2VuIYzM,5051
60
+ hostinger_api/models/vpsv1_metrics_metrics_collection_incoming_traffic.py,sha256=7-SWuS9C2r4EYx2Azsa27bHkoLszXWdIUJTXnkKlhow,5093
61
+ hostinger_api/models/vpsv1_metrics_metrics_collection_outgoing_traffic.py,sha256=KvCVO5oxUT8Ov7aWSeBxekXU2fSdF6SLoMacm6XTI5g,5093
62
+ hostinger_api/models/vpsv1_metrics_metrics_collection_ram_usage.py,sha256=eH3JdHNm8kvE74wFaWWrDSQdgJEQq6Qukizh4xW1klo,5037
63
+ hostinger_api/models/vpsv1_metrics_metrics_collection_uptime.py,sha256=xfA1jGs-qzLXRDkOvZYTXvw3dceUzHx_lzb5Xi8tAP0,5027
64
+ hostinger_api/models/vpsv1_metrics_metrics_resource.py,sha256=oSYx5y7my1OLEggiHf6dpWW9ngMbWqGE6CEtuCP2JQE,2782
65
+ hostinger_api/models/vpsv1_post_install_script_post_install_script_resource.py,sha256=Ahzd8zgd5nxWhVvxjuqx-c6vCMPZf_O_6L5IHP_64pM,3195
66
+ hostinger_api/models/vpsv1_post_install_script_store_request.py,sha256=smvWufvLJ8BwfaQJVhTXK18AsXSf64roiL3HYl5ufHE,2707
67
+ hostinger_api/models/vpsv1_public_key_attach_request.py,sha256=LqOBhpdna_CH3MYbvOE7WfTA9RpeNs7m9iJLLKJI4uI,2565
68
+ hostinger_api/models/vpsv1_public_key_public_key_resource.py,sha256=qvBw_BrAR2NjzpXQ42_clx4NM2kg-Oel1Mix6X92QpY,2860
69
+ hostinger_api/models/vpsv1_public_key_store_request.py,sha256=w9oDUs26A0dK_Lce_yeHDeF2i0DfHI_XmVME5g-2yu4,2565
70
+ hostinger_api/models/vpsv1_snapshot_snapshot_resource.py,sha256=0pJNaAJFR2gXMc75buyXcBUOYCfkNmNS-UzvECw_2V8,2824
71
+ hostinger_api/models/vpsv1_template_template_resource.py,sha256=dr4yRnG_JUWrzGpj1cqQORdNudCw3I9OqGUXTeCU39U,3299
72
+ hostinger_api/models/vpsv1_virtual_machine_hostname_update_request.py,sha256=R-3KqleIv6BhIPzMGvPaLL4q-7N9JHSRS95poJ6_acY,2576
73
+ hostinger_api/models/vpsv1_virtual_machine_metric_get_request.py,sha256=XLdM-_sIus77YaQONwNUK7-hbjXvOZ3MrbspUSo3QwY,2654
74
+ hostinger_api/models/vpsv1_virtual_machine_nameservers_update_request.py,sha256=LbxABhb8I0Mx9pEWfLNepniTVCViu2531J8lDPLjUBo,2656
75
+ hostinger_api/models/vpsv1_virtual_machine_panel_password_update_request.py,sha256=JgJWkGxhGNzuCgezg9s1zhz3nOWVjorG_dM0q6lZogc,2733
76
+ hostinger_api/models/vpsv1_virtual_machine_recovery_start_request.py,sha256=7Pc6Zn9VdGcuqXHSJjLdjMpfWoEm7DcR66tm_9J7tdA,2664
77
+ hostinger_api/models/vpsv1_virtual_machine_recreate_request.py,sha256=Q4kFcb-CEMD3lA7YOtIn6rJxJx0VV6_NlLcKynpk2gE,3160
78
+ hostinger_api/models/vpsv1_virtual_machine_root_password_update_request.py,sha256=cPKdovl7FbWZFyf7iysgMqDz1IdSWde9T7EAipG0jbg,2728
79
+ hostinger_api/models/vpsv1_virtual_machine_setup_request.py,sha256=aDkh95LjmXOyR0lvXs_sqT80TAkM1TAGBlE-hNs7ghk,4663
80
+ hostinger_api/models/vpsv1_virtual_machine_setup_request_public_key.py,sha256=243bUQql4ucaQfaHTAP9FofBEgGbkelNEBif1sV-sxg,2767
81
+ hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource.py,sha256=tHWOwUnX6RxTJnXl1_udlr3Fszg0ugcLC2n-3sy7-jo,8459
82
+ hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv4.py,sha256=1YDq2hytUj_Xj3NoT-OXmhuuUduZrZ3RF762H4uVltM,5458
83
+ hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv6.py,sha256=UOVlgEszEaikaOQLLOyOHEuasGJKEml6p5VsH8k7Kt4,5482
84
+ hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_template.py,sha256=mnza828bnxR3ypQFzKqEklNm6GBN_3ScDOUo-ahQEkA,5177
85
+ hostinger_api-1.0.0.dist-info/METADATA,sha256=1Efl7o0DY_DxWdPZRoKVxLD7DjVtwtKEpcOuoWlZiDg,3765
86
+ hostinger_api-1.0.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
87
+ hostinger_api-1.0.0.dist-info/top_level.txt,sha256=-1YOPEak-7A0zT5TQjOQPyES66mSb8mcK3IgjEucXLc,14
88
+ hostinger_api-1.0.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (78.1.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1 @@
1
+ hostinger_api