capo-ebs 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 (103) hide show
  1. {capo_ebs-0.3.0/src/capo_ebs.egg-info → capo_ebs-0.4.0}/PKG-INFO +1 -1
  2. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/pyproject.toml +1 -1
  3. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/complete_snapshot.py +5 -1
  4. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/get_snapshot_block.py +5 -1
  5. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/list_changed_blocks.py +5 -1
  6. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/list_snapshot_blocks.py +5 -1
  7. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/put_snapshot_block.py +10 -2
  8. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_operations/ebs/start_snapshot.py +5 -1
  9. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_services/_pipeline.py +2 -0
  10. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_services/async_ebs.py +5 -0
  11. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_services/ebs.py +5 -0
  12. {capo_ebs-0.3.0 → capo_ebs-0.4.0/src/capo_ebs.egg-info}/PKG-INFO +1 -1
  13. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/LICENSE +0 -0
  14. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/README.md +0 -0
  15. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/setup.cfg +0 -0
  16. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/__init__.py +0 -0
  17. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_async.py +0 -0
  18. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_auth/_identity.py +0 -0
  19. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_auth/_providers.py +0 -0
  20. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_auth/_signers.py +0 -0
  21. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_auth/_sigv4.py +0 -0
  22. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_auth/_zapros_handler.py +0 -0
  23. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_body.py +0 -0
  24. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_iter.py +0 -0
  25. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_pagination.py +0 -0
  26. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_protocol/__init__.py +0 -0
  27. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_protocol/errors.py +0 -0
  28. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_protocol/eventstream.py +0 -0
  29. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_protocol/serialize.py +0 -0
  30. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_protocol/xml.py +0 -0
  31. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_rule_engine/__init__.py +0 -0
  32. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_rule_engine/_aws_partition.py +0 -0
  33. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_rule_engine/_endpoint_rule_set.py +0 -0
  34. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_rule_engine/_endpoint_runtime.py +0 -0
  35. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/_services/_aws_config.py +0 -0
  36. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/__init__.py +0 -0
  37. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/_base.py +0 -0
  38. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/access_denied_exception.py +0 -0
  39. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/concurrent_limit_exceeded_exception.py +0 -0
  40. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/conflict_exception.py +0 -0
  41. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/internal_server_exception.py +0 -0
  42. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/request_throttled_exception.py +0 -0
  43. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/resource_not_found_exception.py +0 -0
  44. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/service_quota_exceeded_exception.py +0 -0
  45. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/errors/validation_exception.py +0 -0
  46. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/py.typed +0 -0
  47. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/_prelude/blob.py +0 -0
  48. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/_prelude/timestamp.py +0 -0
  49. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/access_denied_exception_reason.py +0 -0
  50. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/block.py +0 -0
  51. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/block_data.py +0 -0
  52. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/block_index.py +0 -0
  53. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/block_size.py +0 -0
  54. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/block_token.py +0 -0
  55. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/blocks.py +0 -0
  56. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/boolean.py +0 -0
  57. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/changed_block.py +0 -0
  58. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/changed_blocks.py +0 -0
  59. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/changed_blocks_count.py +0 -0
  60. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/checksum.py +0 -0
  61. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/checksum_aggregation_method.py +0 -0
  62. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/checksum_algorithm.py +0 -0
  63. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/complete_snapshot_request.py +0 -0
  64. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/complete_snapshot_response.py +0 -0
  65. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/data_length.py +0 -0
  66. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/description.py +0 -0
  67. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/error_message.py +0 -0
  68. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/get_snapshot_block_request.py +0 -0
  69. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/get_snapshot_block_response.py +0 -0
  70. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/idempotency_token.py +0 -0
  71. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/kms_key_arn.py +0 -0
  72. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/list_changed_blocks_request.py +0 -0
  73. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/list_changed_blocks_response.py +0 -0
  74. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/list_snapshot_blocks_request.py +0 -0
  75. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/list_snapshot_blocks_response.py +0 -0
  76. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/max_results.py +0 -0
  77. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/owner_id.py +0 -0
  78. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/page_token.py +0 -0
  79. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/progress.py +0 -0
  80. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/put_snapshot_block_request.py +0 -0
  81. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/put_snapshot_block_response.py +0 -0
  82. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/request_throttled_exception_reason.py +0 -0
  83. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/resource_not_found_exception_reason.py +0 -0
  84. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/service_quota_exceeded_exception_reason.py +0 -0
  85. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/snapshot_id.py +0 -0
  86. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/sse_type.py +0 -0
  87. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/start_snapshot_request.py +0 -0
  88. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/start_snapshot_response.py +0 -0
  89. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/status.py +0 -0
  90. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/tag.py +0 -0
  91. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/tag_key.py +0 -0
  92. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/tag_value.py +0 -0
  93. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/tags.py +0 -0
  94. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/time_stamp.py +0 -0
  95. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/timeout.py +0 -0
  96. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/validation_exception_reason.py +0 -0
  97. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs/types/volume_size.py +0 -0
  98. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs.egg-info/SOURCES.txt +0 -0
  99. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs.egg-info/dependency_links.txt +0 -0
  100. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs.egg-info/requires.txt +0 -0
  101. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/src/capo_ebs.egg-info/top_level.txt +0 -0
  102. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/tests/test_body.py +0 -0
  103. {capo_ebs-0.3.0 → capo_ebs-0.4.0}/tests/test_sigv4.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-ebs
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Python SDK for AWS EBS.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "capo-ebs"
3
- version = "0.3.0"
3
+ version = "0.4.0"
4
4
  description = "Python SDK for AWS EBS."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -151,7 +151,11 @@ def build_request(
151
151
  )
152
152
  )
153
153
  body: bytes | None = b""
154
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
154
+ signer = (
155
+ None
156
+ if options.anonymous
157
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
158
+ )
155
159
  normalized_url = zapros.URL(url)
156
160
  for k, v in params:
157
161
  normalized_url.search_params.append(k, v)
@@ -148,7 +148,11 @@ def build_request(
148
148
  params.append(("blockToken", input_["block_token"]))
149
149
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
150
150
  body: bytes | None = b""
151
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
151
+ signer = (
152
+ None
153
+ if options.anonymous
154
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
155
+ )
152
156
  normalized_url = zapros.URL(url)
153
157
  for k, v in params:
154
158
  normalized_url.search_params.append(k, v)
@@ -141,7 +141,11 @@ def build_request(
141
141
  params.append(("startingBlockIndex", str(input_["starting_block_index"])))
142
142
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
143
143
  body: bytes | None = b""
144
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
144
+ signer = (
145
+ None
146
+ if options.anonymous
147
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
148
+ )
145
149
  normalized_url = zapros.URL(url)
146
150
  for k, v in params:
147
151
  normalized_url.search_params.append(k, v)
@@ -137,7 +137,11 @@ def build_request(
137
137
  params.append(("startingBlockIndex", str(input_["starting_block_index"])))
138
138
  headers: dict[str, str] = {k: ", ".join(v) for k, v in endpoint.headers.items()}
139
139
  body: bytes | None = b""
140
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
140
+ signer = (
141
+ None
142
+ if options.anonymous
143
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
144
+ )
141
145
  normalized_url = zapros.URL(url)
142
146
  for k, v in params:
143
147
  normalized_url.search_params.append(k, v)
@@ -171,7 +171,11 @@ def build_request(
171
171
  header.lower() for header in headers
172
172
  ]:
173
173
  raise ValueError("Content-Length is required for streaming input")
174
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
174
+ signer = (
175
+ None
176
+ if options.anonymous
177
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
178
+ )
175
179
  normalized_url = zapros.URL(url)
176
180
  for k, v in params:
177
181
  normalized_url.search_params.append(k, v)
@@ -229,7 +233,11 @@ async def async_build_request(
229
233
  header.lower() for header in headers
230
234
  ]:
231
235
  raise ValueError("Content-Length is required for streaming input")
232
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
236
+ signer = (
237
+ None
238
+ if options.anonymous
239
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
240
+ )
233
241
  normalized_url = zapros.URL(url)
234
242
  for k, v in params:
235
243
  normalized_url.search_params.append(k, v)
@@ -144,7 +144,11 @@ def build_request(
144
144
  capo_ebs.types.start_snapshot_request.serialize_json(input_), allow_nan=False
145
145
  ).encode()
146
146
  headers["content-type"] = "application/json"
147
- signer = get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
147
+ signer = (
148
+ None
149
+ if options.anonymous
150
+ else get_signer(options, auth_schemes=endpoint.properties.get("authSchemes"))
151
+ )
148
152
  normalized_url = zapros.URL(url)
149
153
  for k, v in params:
150
154
  normalized_url.search_params.append(k, v)
@@ -40,6 +40,7 @@ class OperationOptions:
40
40
  endpoint: str | None = None
41
41
  retry_max_attempts: int | None = None
42
42
  credentials_provider: IdentityProvider[Credentials] | None = None
43
+ anonymous: bool | None = None
43
44
 
44
45
 
45
46
  @dataclass
@@ -51,6 +52,7 @@ class AsyncOperationOptions:
51
52
  endpoint: str | None = None
52
53
  retry_max_attempts: int | None = None
53
54
  credentials_provider: IdentityProvider[Credentials] | None = None
55
+ anonymous: bool | None = None
54
56
 
55
57
 
56
58
  @dataclass
@@ -74,6 +74,7 @@ class AsyncEBSClientConfig(TypedDict, total=False, closed=True):
74
74
  use_fips: bool | None
75
75
  endpoint: str | None
76
76
  credentials_provider: IdentityProvider[Credentials] | None
77
+ anonymous: bool | None
77
78
 
78
79
 
79
80
  class AsyncEBSClient:
@@ -89,6 +90,7 @@ class AsyncEBSClient:
89
90
  endpoint: The value of the ``SDK::Endpoint`` endpoint parameter.
90
91
  credentials: AWS credentials for request signing.
91
92
  credentials_provider: Provider that resolves AWS credentials. Takes precedence over ``credentials``.
93
+ anonymous: Send requests unsigned, without resolving credentials, even for operations that require authentication.
92
94
  """
93
95
 
94
96
  def __init__(
@@ -102,6 +104,7 @@ class AsyncEBSClient:
102
104
  endpoint: str | None = None,
103
105
  credentials: Credentials | None = None,
104
106
  credentials_provider: CredentialsProvider | None = None,
107
+ anonymous: bool | None = None,
105
108
  ):
106
109
  self._client = AsyncClient(http_handler).wrap_with_middleware(
107
110
  lambda next: AuthMiddleware(next)
@@ -128,6 +131,7 @@ class AsyncEBSClient:
128
131
  "use_fips": use_fips,
129
132
  "endpoint": endpoint,
130
133
  "credentials_provider": resolved_credentials_provider,
134
+ "anonymous": anonymous,
131
135
  }
132
136
  )
133
137
 
@@ -156,6 +160,7 @@ class AsyncEBSClient:
156
160
  credentials_provider=overrides.get(
157
161
  "credentials_provider", self._config.get("credentials_provider")
158
162
  ),
163
+ anonymous=overrides.get("anonymous", self._config.get("anonymous")),
159
164
  )
160
165
  return interceptors_, options_
161
166
 
@@ -74,6 +74,7 @@ class EBSClientConfig(TypedDict, total=False, closed=True):
74
74
  use_fips: bool | None
75
75
  endpoint: str | None
76
76
  credentials_provider: IdentityProvider[Credentials] | None
77
+ anonymous: bool | None
77
78
 
78
79
 
79
80
  class EBSClient:
@@ -89,6 +90,7 @@ class EBSClient:
89
90
  endpoint: The value of the ``SDK::Endpoint`` endpoint parameter.
90
91
  credentials: AWS credentials for request signing.
91
92
  credentials_provider: Provider that resolves AWS credentials. Takes precedence over ``credentials``.
93
+ anonymous: Send requests unsigned, without resolving credentials, even for operations that require authentication.
92
94
  """
93
95
 
94
96
  def __init__(
@@ -102,6 +104,7 @@ class EBSClient:
102
104
  endpoint: str | None = None,
103
105
  credentials: Credentials | None = None,
104
106
  credentials_provider: CredentialsProvider | None = None,
107
+ anonymous: bool | None = None,
105
108
  ):
106
109
  self._client = Client(http_handler).wrap_with_middleware(
107
110
  lambda next: AuthMiddleware(next)
@@ -128,6 +131,7 @@ class EBSClient:
128
131
  "use_fips": use_fips,
129
132
  "endpoint": endpoint,
130
133
  "credentials_provider": resolved_credentials_provider,
134
+ "anonymous": anonymous,
131
135
  }
132
136
  )
133
137
 
@@ -156,6 +160,7 @@ class EBSClient:
156
160
  credentials_provider=overrides.get(
157
161
  "credentials_provider", self._config.get("credentials_provider")
158
162
  ),
163
+ anonymous=overrides.get("anonymous", self._config.get("anonymous")),
159
164
  )
160
165
  return interceptors_, options_
161
166
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: capo-ebs
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Python SDK for AWS EBS.
5
5
  Classifier: Development Status :: 4 - Beta
6
6
  Classifier: Intended Audience :: Developers
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes