stackit-stackitmarketplace 0.1.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 (31) hide show
  1. stackit/stackitmarketplace/__init__.py +84 -0
  2. stackit/stackitmarketplace/api/__init__.py +4 -0
  3. stackit/stackitmarketplace/api/default_api.py +1719 -0
  4. stackit/stackitmarketplace/api_client.py +627 -0
  5. stackit/stackitmarketplace/api_response.py +23 -0
  6. stackit/stackitmarketplace/configuration.py +138 -0
  7. stackit/stackitmarketplace/exceptions.py +199 -0
  8. stackit/stackitmarketplace/models/__init__.py +65 -0
  9. stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py +84 -0
  10. stackit/stackitmarketplace/models/catalog_product_detail.py +246 -0
  11. stackit/stackitmarketplace/models/catalog_product_details_vendor.py +96 -0
  12. stackit/stackitmarketplace/models/catalog_product_highlight.py +94 -0
  13. stackit/stackitmarketplace/models/catalog_product_overview.py +132 -0
  14. stackit/stackitmarketplace/models/catalog_product_overview_vendor.py +86 -0
  15. stackit/stackitmarketplace/models/catalog_product_pricing_option.py +146 -0
  16. stackit/stackitmarketplace/models/catalog_product_support_resource.py +89 -0
  17. stackit/stackitmarketplace/models/catalog_product_vendor_terms.py +86 -0
  18. stackit/stackitmarketplace/models/current_subscription_state_response.py +103 -0
  19. stackit/stackitmarketplace/models/error_response.py +95 -0
  20. stackit/stackitmarketplace/models/list_catalog_products_response.py +109 -0
  21. stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py +107 -0
  22. stackit/stackitmarketplace/models/requested_subscription_state_response.py +103 -0
  23. stackit/stackitmarketplace/models/resolve_customer_payload.py +82 -0
  24. stackit/stackitmarketplace/models/subscription_cancel_response.py +109 -0
  25. stackit/stackitmarketplace/models/subscription_product.py +130 -0
  26. stackit/stackitmarketplace/models/vendor_subscription.py +115 -0
  27. stackit/stackitmarketplace/py.typed +0 -0
  28. stackit/stackitmarketplace/rest.py +149 -0
  29. stackit_stackitmarketplace-0.1.0.dist-info/METADATA +44 -0
  30. stackit_stackitmarketplace-0.1.0.dist-info/RECORD +31 -0
  31. stackit_stackitmarketplace-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,149 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ STACKIT Marketplace API
5
+
6
+ API to manage STACKIT Marketplace.
7
+
8
+ The version of the OpenAPI document: 1
9
+ Contact: marketplace@stackit.de
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501 docstring might be too long
14
+
15
+ import io
16
+ import json
17
+ import re
18
+
19
+ import requests
20
+ from stackit.core.authorization import Authorization
21
+ from stackit.core.configuration import Configuration
22
+
23
+ from stackit.stackitmarketplace.exceptions import ApiException, ApiValueError
24
+
25
+
26
+ RESTResponseType = requests.Response
27
+
28
+
29
+ class RESTResponse(io.IOBase):
30
+
31
+ def __init__(self, resp) -> None:
32
+ self.response = resp
33
+ self.status = resp.status_code
34
+ self.reason = resp.reason
35
+ self.data = None
36
+
37
+ def read(self):
38
+ if self.data is None:
39
+ self.data = self.response.content
40
+ return self.data
41
+
42
+ def getheaders(self):
43
+ """Returns a dictionary of the response headers."""
44
+ return self.response.headers
45
+
46
+ def getheader(self, name, default=None):
47
+ """Returns a given response header."""
48
+ return self.response.headers.get(name, default)
49
+
50
+
51
+ class RESTClientObject:
52
+ def __init__(self, config: Configuration) -> None:
53
+ self.session = config.custom_http_session if config.custom_http_session else requests.Session()
54
+ authorization = Authorization(config)
55
+ self.session.auth = authorization.auth_method
56
+
57
+ def request(self, method, url, headers=None, body=None, post_params=None, _request_timeout=None):
58
+ """Perform requests.
59
+
60
+ :param method: http request method
61
+ :param url: http request url
62
+ :param headers: http request headers
63
+ :param body: request json body, for `application/json`
64
+ :param post_params: request post parameters,
65
+ `application/x-www-form-urlencoded`
66
+ and `multipart/form-data`
67
+ :param _request_timeout: timeout setting for this request. If one
68
+ number provided, it will be total request
69
+ timeout. It can also be a pair (tuple) of
70
+ (connection, read) timeouts.
71
+ """
72
+ method = method.upper()
73
+ if method not in ["GET", "HEAD", "DELETE", "POST", "PUT", "PATCH", "OPTIONS"]:
74
+ raise ValueError("Method %s not allowed", method)
75
+
76
+ if post_params and body:
77
+ raise ApiValueError("body parameter cannot be used with post_params parameter.")
78
+
79
+ post_params = post_params or {}
80
+ headers = headers or {}
81
+
82
+ try:
83
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
84
+ if method in ["POST", "PUT", "PATCH", "OPTIONS", "DELETE"]:
85
+
86
+ # no content type provided or payload is json
87
+ content_type = headers.get("Content-Type")
88
+ if not content_type or re.search("json", content_type, re.IGNORECASE):
89
+ request_body = None
90
+ if body is not None:
91
+ request_body = json.dumps(body)
92
+ r = self.session.request(
93
+ method,
94
+ url,
95
+ data=request_body,
96
+ headers=headers,
97
+ )
98
+ elif content_type == "application/x-www-form-urlencoded":
99
+ r = self.session.request(
100
+ method,
101
+ url,
102
+ params=post_params,
103
+ headers=headers,
104
+ )
105
+ elif content_type == "multipart/form-data":
106
+ # must del headers['Content-Type'], or the correct
107
+ # Content-Type which generated by urllib3 will be
108
+ # overwritten.
109
+ del headers["Content-Type"]
110
+ # Ensures that dict objects are serialized
111
+ post_params = [(a, json.dumps(b)) if isinstance(b, dict) else (a, b) for a, b in post_params]
112
+ r = self.session.request(
113
+ method,
114
+ url,
115
+ files=post_params,
116
+ headers=headers,
117
+ )
118
+ # Pass a `string` parameter directly in the body to support
119
+ # other content types than JSON when `body` argument is
120
+ # provided in serialized form.
121
+ elif isinstance(body, str) or isinstance(body, bytes):
122
+ r = self.session.request(
123
+ method,
124
+ url,
125
+ data=body,
126
+ headers=headers,
127
+ )
128
+ elif headers["Content-Type"] == "text/plain" and isinstance(body, bool):
129
+ request_body = "true" if body else "false"
130
+ r = self.session.request(method, url, data=request_body, headers=headers)
131
+ else:
132
+ # Cannot generate the request from given parameters
133
+ msg = """Cannot prepare a request message for provided
134
+ arguments. Please check that your arguments match
135
+ declared content type."""
136
+ raise ApiException(status=0, reason=msg)
137
+ # For `GET`, `HEAD`
138
+ else:
139
+ r = self.session.request(
140
+ method,
141
+ url,
142
+ params={},
143
+ headers=headers,
144
+ )
145
+ except requests.exceptions.SSLError as e:
146
+ msg = "\n".join([type(e).__name__, str(e)])
147
+ raise ApiException(status=0, reason=msg)
148
+
149
+ return RESTResponse(r)
@@ -0,0 +1,44 @@
1
+ Metadata-Version: 2.1
2
+ Name: stackit-stackitmarketplace
3
+ Version: 0.1.0
4
+ Summary: STACKIT Marketplace API
5
+ Author: STACKIT Developer Tools
6
+ Author-email: developer-tools@stackit.cloud
7
+ Requires-Python: >=3.8,<4.0
8
+ Classifier: License :: OSI Approved :: Apache Software License
9
+ Classifier: Operating System :: OS Independent
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Requires-Dist: pydantic (>=2.9.2)
18
+ Requires-Dist: python-dateutil (>=2.9.0.post0)
19
+ Requires-Dist: requests (>=2.32.3)
20
+ Requires-Dist: stackit-core (>=0.0.1a)
21
+ Description-Content-Type: text/markdown
22
+
23
+ # stackit.stackitmarketplace
24
+ API to manage STACKIT Marketplace.
25
+
26
+
27
+ This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK.
28
+
29
+
30
+ ## Installation & Usage
31
+ ### pip install
32
+
33
+ ```sh
34
+ pip install stackit-stackitmarketplace
35
+ ```
36
+
37
+ Then import the package:
38
+ ```python
39
+ import stackit.stackitmarketplace
40
+ ```
41
+
42
+ ## Getting Started
43
+
44
+ [Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK.
@@ -0,0 +1,31 @@
1
+ stackit/stackitmarketplace/__init__.py,sha256=6EFDlQHaMF4WgKhFjZcUB1Tk5czW2jLtBVi2HXr774o,2824
2
+ stackit/stackitmarketplace/api/__init__.py,sha256=P880O4PrMR2Y0cFiB7rmVvyLLGguBJ7Oshg9FaXy9qA,113
3
+ stackit/stackitmarketplace/api/default_api.py,sha256=EuxD_wtD3QkP8dMFM-7YNcyIJ5Ui12zj-G-IPjc8erQ,74225
4
+ stackit/stackitmarketplace/api_client.py,sha256=bwsVhiE9F3ZxJFvRUo27y9C3Z_33gRk7ex9dUHwKgi8,22758
5
+ stackit/stackitmarketplace/api_response.py,sha256=HRYkVqMNIlfODacTQPTbiVj2YdcnutpQrKJdeAoCSpM,642
6
+ stackit/stackitmarketplace/configuration.py,sha256=iDooD2zZeLL4PUxDToNfg2sA6Gabapq9taY3QcUV-OI,5154
7
+ stackit/stackitmarketplace/exceptions.py,sha256=cKbNVKGSjHAodVue69jsOF16rKzm6o4PxCLfx8bjTv8,5925
8
+ stackit/stackitmarketplace/models/__init__.py,sha256=6nqkQuB3Ku3rp_wPwWZyNumyRhpw_nVrjBTUnZ0ZHYI,2318
9
+ stackit/stackitmarketplace/models/catalog_pricing_option_highlight.py,sha256=CjuMwJaCsxtrQc3oBi40qglHC9hvRp6ZsWUVojcY6Lc,2615
10
+ stackit/stackitmarketplace/models/catalog_product_detail.py,sha256=e5POavlLmxIAEUcPqb58-SDrDrJny3tH3R6gR4mQO-o,9759
11
+ stackit/stackitmarketplace/models/catalog_product_details_vendor.py,sha256=YILFCQ8RHxsmQZWJD5i8hiuUp_ULgWZsVy8cHdg9EmA,3261
12
+ stackit/stackitmarketplace/models/catalog_product_highlight.py,sha256=KYnN11Fv7AxXFoOW2TURvNMNhIK89hS6Z5Q8dIyUOCU,3056
13
+ stackit/stackitmarketplace/models/catalog_product_overview.py,sha256=XQVkUI3FuGIE-GN6KEoumqzyiBGUG7q_H46h4dVKf7M,4640
14
+ stackit/stackitmarketplace/models/catalog_product_overview_vendor.py,sha256=oClXuNnYupjJVB1MwaFkiBDbmrJ9HjymM6KXZXU0qBo,2785
15
+ stackit/stackitmarketplace/models/catalog_product_pricing_option.py,sha256=CHa-_SbuDeSVweTzX2ygrKQOEAHLMK-85RjHeCAhOgA,5199
16
+ stackit/stackitmarketplace/models/catalog_product_support_resource.py,sha256=1i5xGPYaQtQmxIL0dieiUmTjUxhKyBWuYUm9P5Zn4rk,2839
17
+ stackit/stackitmarketplace/models/catalog_product_vendor_terms.py,sha256=SUbtxZhLMW-ghAImOpulrjbViVI1WigXbOyzZKkHusI,2741
18
+ stackit/stackitmarketplace/models/current_subscription_state_response.py,sha256=Z2gD2T3TfavQihgrdo8oA1an5k0XTp2rCX9rHFIEhrw,3494
19
+ stackit/stackitmarketplace/models/error_response.py,sha256=NKmg4baKDujPtiHhZlJFJDPUj7fgnn-lmsO9qbNte7A,3089
20
+ stackit/stackitmarketplace/models/list_catalog_products_response.py,sha256=K1lpsLPzM2JQpETGwWmbmolE89WCf-kalmHbXCZuG0w,3752
21
+ stackit/stackitmarketplace/models/list_vendor_subscriptions_response.py,sha256=_ZK8kUfq-jmnZOmQm8mJ2Aouq8YFTStdI7PB8UdKXIk,3694
22
+ stackit/stackitmarketplace/models/requested_subscription_state_response.py,sha256=_014i6eUE_jMOzR0qbxITy_ktJZqvJaR-XueIoxiLQM,3502
23
+ stackit/stackitmarketplace/models/resolve_customer_payload.py,sha256=tWcVjt9BRYVqhxtRRbpe43ZJJIb69NGU-7EMEG7BkHg,2507
24
+ stackit/stackitmarketplace/models/subscription_cancel_response.py,sha256=Ud4HJenB0FljlD9r5X8tAKjmzkUrjTZvoD6NIL41rh4,3858
25
+ stackit/stackitmarketplace/models/subscription_product.py,sha256=Ykrke5dIciQXDEYXDvxqEK9qaN3pZnFxXxIFKymqsAw,4753
26
+ stackit/stackitmarketplace/models/vendor_subscription.py,sha256=KZb2ZP-hwJ14JfUaZhlo2IBYRGYgJaCC5QhxsI20P84,4068
27
+ stackit/stackitmarketplace/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ stackit/stackitmarketplace/rest.py,sha256=hsi_7IHAAD0Nc3qIXP7r8lWg04_qNsQkkFKQAISXFIE,5816
29
+ stackit_stackitmarketplace-0.1.0.dist-info/METADATA,sha256=hDHtEP0AUttPNWxejeQ_-tye5yPevWWCE-eoNBdvVSA,1510
30
+ stackit_stackitmarketplace-0.1.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
31
+ stackit_stackitmarketplace-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.9.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any