capo-cloudcontrol 0.3.0__tar.gz → 0.4.0__tar.gz

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 (115) hide show
  1. {capo_cloudcontrol-0.3.0/src/capo_cloudcontrol.egg-info → capo_cloudcontrol-0.4.0}/PKG-INFO +2 -2
  2. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/pyproject.toml +2 -2
  3. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/cancel_resource_request.py +3 -2
  4. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/create_resource.py +3 -2
  5. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/delete_resource.py +3 -2
  6. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/get_resource.py +3 -2
  7. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/get_resource_request_status.py +3 -2
  8. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/list_resource_requests.py +3 -2
  9. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/list_resources.py +3 -2
  10. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_operations/cloud_api_service/update_resource.py +3 -2
  11. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_services/_pipeline.py +17 -0
  12. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0/src/capo_cloudcontrol.egg-info}/PKG-INFO +2 -2
  13. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/LICENSE +0 -0
  14. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/README.md +0 -0
  15. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/setup.cfg +0 -0
  16. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/__init__.py +0 -0
  17. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_async.py +0 -0
  18. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_auth/_identity.py +0 -0
  19. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_auth/_providers.py +0 -0
  20. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_auth/_signers.py +0 -0
  21. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_auth/_sigv4.py +0 -0
  22. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_auth/_zapros_handler.py +0 -0
  23. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_body.py +0 -0
  24. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_iter.py +0 -0
  25. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_pagination.py +0 -0
  26. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_protocol/__init__.py +0 -0
  27. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_protocol/errors.py +0 -0
  28. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_protocol/eventstream.py +0 -0
  29. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_protocol/serialize.py +0 -0
  30. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_protocol/xml.py +0 -0
  31. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_rule_engine/__init__.py +0 -0
  32. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_rule_engine/_aws_partition.py +0 -0
  33. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_rule_engine/_endpoint_rule_set.py +0 -0
  34. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_rule_engine/_endpoint_runtime.py +0 -0
  35. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_services/_aws_config.py +0 -0
  36. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_services/async_cloud_control.py +0 -0
  37. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/_services/cloud_control.py +0 -0
  38. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/__init__.py +0 -0
  39. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/_base.py +0 -0
  40. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/already_exists_exception.py +0 -0
  41. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/client_token_conflict_exception.py +0 -0
  42. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/concurrent_modification_exception.py +0 -0
  43. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/concurrent_operation_exception.py +0 -0
  44. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/general_service_exception.py +0 -0
  45. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/handler_failure_exception.py +0 -0
  46. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/handler_internal_failure_exception.py +0 -0
  47. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/invalid_credentials_exception.py +0 -0
  48. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/invalid_request_exception.py +0 -0
  49. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/network_failure_exception.py +0 -0
  50. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/not_stabilized_exception.py +0 -0
  51. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/not_updatable_exception.py +0 -0
  52. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/private_type_exception.py +0 -0
  53. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/request_token_not_found_exception.py +0 -0
  54. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/resource_conflict_exception.py +0 -0
  55. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/resource_not_found_exception.py +0 -0
  56. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/service_internal_error_exception.py +0 -0
  57. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/service_limit_exceeded_exception.py +0 -0
  58. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/throttling_exception.py +0 -0
  59. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/type_not_found_exception.py +0 -0
  60. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/errors/unsupported_action_exception.py +0 -0
  61. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/py.typed +0 -0
  62. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/_prelude/blob.py +0 -0
  63. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/_prelude/timestamp.py +0 -0
  64. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/cancel_resource_request_input.py +0 -0
  65. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/cancel_resource_request_output.py +0 -0
  66. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/client_token.py +0 -0
  67. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/create_resource_input.py +0 -0
  68. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/create_resource_output.py +0 -0
  69. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/delete_resource_input.py +0 -0
  70. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/delete_resource_output.py +0 -0
  71. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/error_message.py +0 -0
  72. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/get_resource_input.py +0 -0
  73. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/get_resource_output.py +0 -0
  74. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/get_resource_request_status_input.py +0 -0
  75. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/get_resource_request_status_output.py +0 -0
  76. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/handler_error_code.py +0 -0
  77. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/handler_next_token.py +0 -0
  78. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hook_failure_mode.py +0 -0
  79. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hook_invocation_point.py +0 -0
  80. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hook_progress_event.py +0 -0
  81. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hook_status.py +0 -0
  82. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hook_type_arn.py +0 -0
  83. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/hooks_progress_event.py +0 -0
  84. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/identifier.py +0 -0
  85. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/list_resource_requests_input.py +0 -0
  86. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/list_resource_requests_output.py +0 -0
  87. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/list_resources_input.py +0 -0
  88. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/list_resources_output.py +0 -0
  89. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/max_results.py +0 -0
  90. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/next_token.py +0 -0
  91. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/operation.py +0 -0
  92. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/operation_status.py +0 -0
  93. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/operation_statuses.py +0 -0
  94. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/operations.py +0 -0
  95. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/patch_document.py +0 -0
  96. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/progress_event.py +0 -0
  97. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/properties.py +0 -0
  98. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/request_token.py +0 -0
  99. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/resource_description.py +0 -0
  100. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/resource_descriptions.py +0 -0
  101. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/resource_request_status_filter.py +0 -0
  102. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/resource_request_status_summaries.py +0 -0
  103. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/role_arn.py +0 -0
  104. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/status_message.py +0 -0
  105. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/timestamp.py +0 -0
  106. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/type_name.py +0 -0
  107. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/type_version_id.py +0 -0
  108. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/update_resource_input.py +0 -0
  109. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol/types/update_resource_output.py +0 -0
  110. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol.egg-info/SOURCES.txt +0 -0
  111. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol.egg-info/dependency_links.txt +0 -0
  112. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol.egg-info/requires.txt +0 -0
  113. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/src/capo_cloudcontrol.egg-info/top_level.txt +0 -0
  114. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/tests/test_body.py +0 -0
  115. {capo_cloudcontrol-0.3.0 → capo_cloudcontrol-0.4.0}/tests/test_sigv4.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-cloudcontrol
3
- Version: 0.3.0
4
- Summary: Python SDK for Cloudcontrol.
3
+ Version: 0.4.0
4
+ Summary: Python SDK for AWS Cloudcontrol.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "capo-cloudcontrol"
3
- version = "0.3.0"
4
- description = "Python SDK for Cloudcontrol."
3
+ version = "0.4.0"
4
+ description = "Python SDK for AWS Cloudcontrol."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
7
7
  classifiers = [
@@ -21,6 +21,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
21
21
  from capo_cloudcontrol._services._pipeline import (
22
22
  AsyncOperationOptions,
23
23
  OperationOptions,
24
+ raise_error,
24
25
  )
25
26
  from capo_cloudcontrol.errors import UnknownServiceError
26
27
 
@@ -130,7 +131,7 @@ def cancel_resource_request(
130
131
  try:
131
132
  if response.status >= 300:
132
133
  response.read()
133
- handle_error(response)
134
+ raise_error(response, handle_error)
134
135
  return handle_response(response), response
135
136
  except BaseException:
136
137
  response.close()
@@ -148,7 +149,7 @@ async def async_cancel_resource_request(
148
149
  try:
149
150
  if response.status >= 300:
150
151
  await response.aread()
151
- handle_error(response)
152
+ raise_error(response, handle_error)
152
153
  return await async_handle_response(response), response
153
154
  except BaseException:
154
155
  await response.aclose()
@@ -38,6 +38,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
38
38
  from capo_cloudcontrol._services._pipeline import (
39
39
  AsyncOperationOptions,
40
40
  OperationOptions,
41
+ raise_error,
41
42
  )
42
43
  from capo_cloudcontrol.errors import UnknownServiceError
43
44
 
@@ -216,7 +217,7 @@ def create_resource(
216
217
  try:
217
218
  if response.status >= 300:
218
219
  response.read()
219
- handle_error(response)
220
+ raise_error(response, handle_error)
220
221
  return handle_response(response), response
221
222
  except BaseException:
222
223
  response.close()
@@ -233,7 +234,7 @@ async def async_create_resource(
233
234
  try:
234
235
  if response.status >= 300:
235
236
  await response.aread()
236
- handle_error(response)
237
+ raise_error(response, handle_error)
237
238
  return await async_handle_response(response), response
238
239
  except BaseException:
239
240
  await response.aclose()
@@ -38,6 +38,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
38
38
  from capo_cloudcontrol._services._pipeline import (
39
39
  AsyncOperationOptions,
40
40
  OperationOptions,
41
+ raise_error,
41
42
  )
42
43
  from capo_cloudcontrol.errors import UnknownServiceError
43
44
 
@@ -216,7 +217,7 @@ def delete_resource(
216
217
  try:
217
218
  if response.status >= 300:
218
219
  response.read()
219
- handle_error(response)
220
+ raise_error(response, handle_error)
220
221
  return handle_response(response), response
221
222
  except BaseException:
222
223
  response.close()
@@ -233,7 +234,7 @@ async def async_delete_resource(
233
234
  try:
234
235
  if response.status >= 300:
235
236
  await response.aread()
236
- handle_error(response)
237
+ raise_error(response, handle_error)
237
238
  return await async_handle_response(response), response
238
239
  except BaseException:
239
240
  await response.aclose()
@@ -36,6 +36,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
36
36
  from capo_cloudcontrol._services._pipeline import (
37
37
  AsyncOperationOptions,
38
38
  OperationOptions,
39
+ raise_error,
39
40
  )
40
41
  from capo_cloudcontrol.errors import UnknownServiceError
41
42
 
@@ -206,7 +207,7 @@ def get_resource(
206
207
  try:
207
208
  if response.status >= 300:
208
209
  response.read()
209
- handle_error(response)
210
+ raise_error(response, handle_error)
210
211
  return handle_response(response), response
211
212
  except BaseException:
212
213
  response.close()
@@ -223,7 +224,7 @@ async def async_get_resource(
223
224
  try:
224
225
  if response.status >= 300:
225
226
  await response.aread()
226
- handle_error(response)
227
+ raise_error(response, handle_error)
227
228
  return await async_handle_response(response), response
228
229
  except BaseException:
229
230
  await response.aclose()
@@ -21,6 +21,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
21
21
  from capo_cloudcontrol._services._pipeline import (
22
22
  AsyncOperationOptions,
23
23
  OperationOptions,
24
+ raise_error,
24
25
  )
25
26
  from capo_cloudcontrol.errors import UnknownServiceError
26
27
 
@@ -126,7 +127,7 @@ def get_resource_request_status(
126
127
  try:
127
128
  if response.status >= 300:
128
129
  response.read()
129
- handle_error(response)
130
+ raise_error(response, handle_error)
130
131
  return handle_response(response), response
131
132
  except BaseException:
132
133
  response.close()
@@ -144,7 +145,7 @@ async def async_get_resource_request_status(
144
145
  try:
145
146
  if response.status >= 300:
146
147
  await response.aread()
147
- handle_error(response)
148
+ raise_error(response, handle_error)
148
149
  return await async_handle_response(response), response
149
150
  except BaseException:
150
151
  await response.aclose()
@@ -20,6 +20,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
20
20
  from capo_cloudcontrol._services._pipeline import (
21
21
  AsyncOperationOptions,
22
22
  OperationOptions,
23
+ raise_error,
23
24
  )
24
25
  from capo_cloudcontrol.errors import UnknownServiceError
25
26
 
@@ -121,7 +122,7 @@ def list_resource_requests(
121
122
  try:
122
123
  if response.status >= 300:
123
124
  response.read()
124
- handle_error(response)
125
+ raise_error(response, handle_error)
125
126
  return handle_response(response), response
126
127
  except BaseException:
127
128
  response.close()
@@ -139,7 +140,7 @@ async def async_list_resource_requests(
139
140
  try:
140
141
  if response.status >= 300:
141
142
  await response.aread()
142
- handle_error(response)
143
+ raise_error(response, handle_error)
143
144
  return await async_handle_response(response), response
144
145
  except BaseException:
145
146
  await response.aclose()
@@ -36,6 +36,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
36
36
  from capo_cloudcontrol._services._pipeline import (
37
37
  AsyncOperationOptions,
38
38
  OperationOptions,
39
+ raise_error,
39
40
  )
40
41
  from capo_cloudcontrol.errors import UnknownServiceError
41
42
 
@@ -206,7 +207,7 @@ def list_resources(
206
207
  try:
207
208
  if response.status >= 300:
208
209
  response.read()
209
- handle_error(response)
210
+ raise_error(response, handle_error)
210
211
  return handle_response(response), response
211
212
  except BaseException:
212
213
  response.close()
@@ -223,7 +224,7 @@ async def async_list_resources(
223
224
  try:
224
225
  if response.status >= 300:
225
226
  await response.aread()
226
- handle_error(response)
227
+ raise_error(response, handle_error)
227
228
  return await async_handle_response(response), response
228
229
  except BaseException:
229
230
  await response.aclose()
@@ -38,6 +38,7 @@ from capo_cloudcontrol._rule_engine._endpoint_rule_set import EndpointParams, re
38
38
  from capo_cloudcontrol._services._pipeline import (
39
39
  AsyncOperationOptions,
40
40
  OperationOptions,
41
+ raise_error,
41
42
  )
42
43
  from capo_cloudcontrol.errors import UnknownServiceError
43
44
 
@@ -216,7 +217,7 @@ def update_resource(
216
217
  try:
217
218
  if response.status >= 300:
218
219
  response.read()
219
- handle_error(response)
220
+ raise_error(response, handle_error)
220
221
  return handle_response(response), response
221
222
  except BaseException:
222
223
  response.close()
@@ -233,7 +234,7 @@ async def async_update_resource(
233
234
  try:
234
235
  if response.status >= 300:
235
236
  await response.aread()
236
- handle_error(response)
237
+ raise_error(response, handle_error)
237
238
  return await async_handle_response(response), response
238
239
  except BaseException:
239
240
  await response.aclose()
@@ -6,6 +6,7 @@ from collections.abc import AsyncIterator, Iterator, Sequence
6
6
  from dataclasses import dataclass
7
7
  from typing import TYPE_CHECKING, Awaitable, Callable, Generic, TypeVar, cast
8
8
 
9
+ from typing_extensions import Never
9
10
  from zapros import (
10
11
  AsyncClient,
11
12
  Client,
@@ -135,6 +136,22 @@ async def aexecute_pipeline(
135
136
  return await make_chain(0)(request)
136
137
 
137
138
 
139
+ def raise_error(response: Response, handle_error: Callable[[Response], Never]) -> Never:
140
+ try:
141
+ handle_error(response)
142
+ except ServiceError as exc:
143
+ # The response itself can say a retry is safe, even when the error is
144
+ # not marked @retryable: a 429, a transient 5xx or a Retry-After header.
145
+ if response.status == 429:
146
+ exc.is_throttling_error = True
147
+ if (
148
+ response.status in (429, 500, 502, 503, 504)
149
+ or "retry-after" in response.headers
150
+ ):
151
+ exc.is_retryable = True
152
+ raise
153
+
154
+
138
155
  def _is_retryable(exc: Exception) -> bool:
139
156
  if isinstance(exc, ServiceError):
140
157
  return exc.is_retryable
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-cloudcontrol
3
- Version: 0.3.0
4
- Summary: Python SDK for Cloudcontrol.
3
+ Version: 0.4.0
4
+ Summary: Python SDK for AWS Cloudcontrol.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
7
7
  Classifier: License :: OSI Approved :: MIT License