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.
- hostinger_api/__init__.py +105 -0
- hostinger_api/api/__init__.py +21 -0
- hostinger_api/api/billing_catalog_api.py +282 -0
- hostinger_api/api/billing_orders_api.py +313 -0
- hostinger_api/api/billing_payment_methods_api.py +819 -0
- hostinger_api/api/billing_subscriptions_api.py +584 -0
- hostinger_api/api/domains_portfolio_api.py +282 -0
- hostinger_api/api/vps_actions_api.py +599 -0
- hostinger_api/api/vps_backups_api.py +882 -0
- hostinger_api/api/vps_data_centers_api.py +282 -0
- hostinger_api/api/vps_firewall_api.py +2872 -0
- hostinger_api/api/vps_malware_scanner_api.py +842 -0
- hostinger_api/api/vps_post_install_scripts_api.py +1419 -0
- hostinger_api/api/vps_public_keys_api.py +1154 -0
- hostinger_api/api/vps_recovery_api.py +597 -0
- hostinger_api/api/vps_snapshots_api.py +1100 -0
- hostinger_api/api/vps_virtual_machine_api.py +3714 -0
- hostinger_api/api/vpsos_templates_api.py +551 -0
- hostinger_api/api/vpsptr_records_api.py +565 -0
- hostinger_api/api_client.py +795 -0
- hostinger_api/api_response.py +21 -0
- hostinger_api/configuration.py +579 -0
- hostinger_api/exceptions.py +214 -0
- hostinger_api/models/__init__.py +72 -0
- hostinger_api/models/billing_v1_catalog_catalog_item_price_resource.py +107 -0
- hostinger_api/models/billing_v1_catalog_catalog_item_resource.py +99 -0
- hostinger_api/models/billing_v1_order_order_billing_address_resource.py +145 -0
- hostinger_api/models/billing_v1_order_order_resource.py +116 -0
- hostinger_api/models/billing_v1_order_store_request.py +97 -0
- hostinger_api/models/billing_v1_order_store_request_items_inner.py +87 -0
- hostinger_api/models/billing_v1_payment_method_payment_method_resource.py +102 -0
- hostinger_api/models/billing_v1_subscription_cancel_request.py +117 -0
- hostinger_api/models/billing_v1_subscription_subscription_resource.py +130 -0
- hostinger_api/models/common_schema_error_response_schema.py +87 -0
- hostinger_api/models/common_schema_pagination_meta_schema.py +89 -0
- hostinger_api/models/common_schema_unauthorized_response_schema.py +87 -0
- hostinger_api/models/common_schema_unprocessable_content_response_schema.py +93 -0
- hostinger_api/models/common_schema_unprocessable_content_response_schema_errors.py +87 -0
- hostinger_api/models/common_success_empty_resource.py +85 -0
- hostinger_api/models/domains_v1_domain_domain_resource.py +126 -0
- hostinger_api/models/vps_get_action_list_v1200_response.py +99 -0
- hostinger_api/models/vps_get_backup_list_v1200_response.py +99 -0
- hostinger_api/models/vps_get_firewall_list_v1200_response.py +99 -0
- hostinger_api/models/vps_get_post_install_script_list_v1200_response.py +99 -0
- hostinger_api/models/vps_get_public_key_list_v1200_response.py +99 -0
- hostinger_api/models/vpsv1_action_action_resource.py +104 -0
- hostinger_api/models/vpsv1_backup_backup_resource.py +90 -0
- hostinger_api/models/vpsv1_data_center_data_center_resource.py +113 -0
- hostinger_api/models/vpsv1_firewall_firewall_resource.py +104 -0
- hostinger_api/models/vpsv1_firewall_firewall_rule_resource.py +115 -0
- hostinger_api/models/vpsv1_firewall_rules_store_request.py +105 -0
- hostinger_api/models/vpsv1_firewall_store_request.py +85 -0
- hostinger_api/models/vpsv1_ip_address_ip_address_resource.py +94 -0
- hostinger_api/models/vpsv1_malware_metrics_resource.py +101 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection.py +149 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_cpu_usage.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_disk_space.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_incoming_traffic.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_outgoing_traffic.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_ram_usage.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_collection_uptime.py +127 -0
- hostinger_api/models/vpsv1_metrics_metrics_resource.py +87 -0
- hostinger_api/models/vpsv1_post_install_script_post_install_script_resource.py +94 -0
- hostinger_api/models/vpsv1_post_install_script_store_request.py +87 -0
- hostinger_api/models/vpsv1_public_key_attach_request.py +85 -0
- hostinger_api/models/vpsv1_public_key_public_key_resource.py +89 -0
- hostinger_api/models/vpsv1_public_key_store_request.py +87 -0
- hostinger_api/models/vpsv1_snapshot_snapshot_resource.py +90 -0
- hostinger_api/models/vpsv1_template_template_resource.py +96 -0
- hostinger_api/models/vpsv1_virtual_machine_hostname_update_request.py +85 -0
- hostinger_api/models/vpsv1_virtual_machine_metric_get_request.py +88 -0
- hostinger_api/models/vpsv1_virtual_machine_nameservers_update_request.py +87 -0
- hostinger_api/models/vpsv1_virtual_machine_panel_password_update_request.py +86 -0
- hostinger_api/models/vpsv1_virtual_machine_recovery_start_request.py +85 -0
- hostinger_api/models/vpsv1_virtual_machine_recreate_request.py +90 -0
- hostinger_api/models/vpsv1_virtual_machine_root_password_update_request.py +86 -0
- hostinger_api/models/vpsv1_virtual_machine_setup_request.py +108 -0
- hostinger_api/models/vpsv1_virtual_machine_setup_request_public_key.py +87 -0
- hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource.py +190 -0
- hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv4.py +131 -0
- hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_ipv6.py +131 -0
- hostinger_api/models/vpsv1_virtual_machine_virtual_machine_resource_template.py +127 -0
- hostinger_api/py.typed +0 -0
- hostinger_api/rest.py +256 -0
- hostinger_api-1.0.0.dist-info/METADATA +26 -0
- hostinger_api-1.0.0.dist-info/RECORD +88 -0
- hostinger_api-1.0.0.dist-info/WHEEL +5 -0
- 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
|
+
> [!caution] > Currently, this API is in beta stage, meaning that breaking changes, while unlikely, might be introduced. > 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'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: ```yaml Authorization: Bearer YOUR_API_TOKEN ``` 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 `application/json`. `POST`, `PUT`, `PATCH` 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 `page` query parameter, for example: `/api/vps/v1/public-keys?page=2` # 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 `error` field, containing a human-readable error message. Error responses also contain a `correlation_id` 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 @@
|
|
|
1
|
+
hostinger_api
|